数据分析的一般流程(利用机器学习)

一、EDA

------explore  data  analysis,顾名思义,数据探索性分析。主要目的是对数据有个大体的认识

    1、看下整体数据信息,有多少行,多少特征,特征是数值还是分类

    2、看目标值(假如有)的分布。如果是分类,看看各样本比例是否平衡;如果是回归,看看均值,方差

    3、观察特征,看含义是什么?有没有冗余?分布情况如何,有没有异常值,缺失值

    4、观察少不了作图,matplotlib.pyplot,你懂的。当然还有一个高级库,seaborn.

 二、数据前处理(data  preprocessing)

    1、缺失值与异常值处理

    一般来说,我们采用替换法来处理,常见的有平均值替换,中位数替换、拉格朗日插值法等。特殊情况下我们可以删掉样本(样本量很大),也可以不处理(部分算法对缺失异常值并不敏感)

    2、样本不平衡问题

    这种主要通过采样来解决。

    上采样----在样本数目不够时,对少数类进行过采样。

    下采样----在样本数目充足时,对多数类进行欠采样

    3、类别属性转换成数值

    数据分析中经常遇到类别属性,比如性别,名字等。大多数算法无法直接处理这类数据(决策树不服),需要把他们先处理成数值型变量

    one-hot code-----独热编码,用0/1多维向量表示。男  01   女  10

    label encoding---标签编码,用自然数进行编码,小学  1  中学 2   大学  3

    以上两种编码较常见,但是有其弊端,所以又有均值编码等其他编码方式

    4、归一化

    常见的有0-1归一化与均值方差标准化

    什么时候需要归一化?一般的准则是,该模型关心变量的值。还有就是模型使用梯度下降法求解时也需要。否则很难收敛甚至不能收敛。

    不需要归一化的模型----决策树、随机森林、朴素贝叶斯

--------------------------------------------------------------------------------------------------------------------------

三、特征工程(feature engineer)

------数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限罢了

    1、特征构建(feature  construction)

    比如我现在有身高、体重两个特征,输出为胖  瘦  正常。直接喂给模型,可能分类效果并不是特别好,此时我构建了一个新的特征BMI指数。这样分类准确性便大大提高了

    2、特征选择(feature  selection)

    思考一个问题,现在我有几十个特征。所有的特征都和目标有关系吗?特征之间是否存在相关性?更少的特征降低模型的复杂度,一个简单的模型更方便理解与解释

    2.1  filter  methods(过滤法)

    方差选择法:如果一个特征没啥变动,那他对结果基本也没有什么解释性。

    最大信息系数:对线性非线性相关都适用,比较健壮

    2.2 wrapper  methods(包裹法)

    RFE:递归特征消除。使用一个有监督的模型来训练,逐步剔除权重较小的特征,.RFE给出的是特征重要性顺序

    stability  selection:稳定性选择。他的主要思想是在不同的数据子集和特征子集上运行特征选择算法,最终汇总特征选择的结果。该方法性能比较好

    2.3 Embedded methods(插入法)

    L1正则化:将额外的惩罚项加到模型上面,最后很多特征系数为0.惩罚系数越大,特征系数越稀疏

    基于树模型:这里用随机森林的平均精确度减少。主要思想是打乱每个特征的顺序,如果模型的准确度受到影响,说明该特征是重要的。

    3. feature  extraction(特征提取)

    PCA:数据从原来的坐标系转换为新的坐标系,第一个坐标轴选择的是原始数据中方差最大的方向。第二个坐标轴与第一个正交且方差次之,以此类推。最后几个维度的方差很小,可以舍去,故有降维的效果

四、机器学习算法

    1、分类算法

    决策树:目前一般用CART算法。他建立的是二叉树,分类时使用基尼系数来度量划分点

    朴素贝叶斯:一种基于先验概率以及特征独立假设的算法。

    KNN算法:根据距离选取K个样本,样本中哪个类别多则划分为哪一类

    SVM:除去集成算法,在简单算法里面是很强大的分类算法。通常会用到高斯核函数。核函数是什么?他能把数据映射到高维空间以便线性分开,同时又能在低维进行内积运算。

    逻辑回归:是一种线性分类器,主要通过最大似然估计来学习。

    2、回归算法

    Linear  Regression:使用拟合直线在因变量和一个或多个自变量之间建立关系(现实世界不会这么简单,所以就有下面的算法)

    逻辑回归:当因变量的类型属于二元变量时,我们就应该使用逻辑回归。

    Ridge  Regression:主要适用于过拟合严重以及自变量高度相关的情况

    Lasso  Regression:比岭回归更严厉。如果一组变量高度相关,那么他会选出一组变量并将其他变量系数降低为0.

    3、聚类算法

    K-Means:基于距离的聚类。目前除了仍必须指定K值外(其实可以调参解决),其他缺点都有改善的办法

    DBSCAN:基于密度的算法。缺点是对密度变化比较大时效果不好,但是OPTICS很好的解决了这一问题。

    spectral  clustering:谱聚类。他的主要思想是把所有的数据看作空间中的点。点之间的相似度看成是带权重的边。聚类时簇的边权重值尽可能高,簇之间尽可能低

    4、集成算法

    Random  Forest:随机森林。从原始样本集中抽取训练集,有放回的抽样。而且每次随机的选取节点上的部分特征进行划分。抽样K次形成K个决策树,每棵树是平行的,独立的。分类结果投票决定。优点泛化能力强

    AdaBoost:最开始每个样本的权重是一样的,训练得到第一个分类器,分对的样本权重降低,分错的样本权重提高,然后进行下一轮训练。

    GBDT:假设第一轮拟合产生的残差是10,那么第二轮就针对10进行拟合,结果是-5.两者相加等于5.这样逐步逼近0.

    XGBoost:和gbdt大体相同。只是在拟合残差时用的是二阶泰勒展开,所以结果更为精确。

五、算法评价与参数调整

聚类算法的评价稍微有些麻烦,一般可以用兰德系数(Rind  Index)进行评估。

分类算法可以用平均绝对误差、平均绝对百分误差、均方根误差等评价

分类算法可以用ROC曲线,AUC,混淆矩阵等进行评价

部分算法也自带了评价方法。

参数调整:一般使用GridSearchCV进行调参。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,236评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,867评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,715评论 0 340
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,899评论 1 278
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,895评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,733评论 1 283
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,085评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,722评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,025评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,696评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,816评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,447评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,057评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,009评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,254评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,204评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,561评论 2 343

推荐阅读更多精彩内容