数据挖掘机器学习路径

1. 基础部分

http://www.cnblogs.com/charlotte77/p/5606926.html   这个系列非常基础可重点看看

1.1  数据清洗  http://www.cnblogs.com/charlotte77/p/5606926.html  

标准差:中文环境也叫均方差,均方差和方差都是反应一批数据和平均数的偏离程度,计算公式分别为:

https://baike.baidu.com/item/%E6%96%B9%E5%B7%AE/3108412?fr=aladdin

https://baike.baidu.com/item/%E6%A0%87%E5%87%86%E5%B7%AE/1415772?fr=aladdin

 

协方差和相关系数: https://www.zhihu.com/question/20852004 这篇文章讲的非常好

协方差:表示2个变量的变化程度,方差:表示的一个变量相对于均值的变化程度

相关系数:在协方差的基础下剔除了标准差的影响,表示的每单元变化幅度的影响

 

1.2  数据转化  http://www.cnblogs.com/charlotte77/p/5622325.html   主要提纲

一.标准化的原因

二.适用情况
三.三种数据变换方法的含义与应用
四.具体方法及代码
一)标准化
  1.1 scale----零均值单位方差
      1.2 StandardScaler
二)归一化
     2.1 MinMaxScaler(最小最大值标准化)
     2.2 MaxAbsScaler(绝对值最大标准化)
     2.3 对稀疏数据进行标准化
     2.4 对离群点进行标准化
三)正则化
  3.1  L1、L2正则化
四)二值化
  4.1特征二值化
五)对类别特征进行编码
六)缺失值的插补
七)生成多项式特征 
八)自定义转换
 
 
PCA: 无监督的处理方法,线性变换,在pca中,我们是找到一个成分(方向)来把我们的数据最大化方差
这篇文章对原理的解释非常清楚。
为什么PCA不被推荐用来避免过拟合
1.  PCA是一种无监督学习,其存在的假设是:方差越大信息量越多。但是信息(方差)小的特征并不代表表对于分类没有意义,可能正是某些方差小的特征直接决定了分类结果,而PCA在降维过程中完全不考虑目标变量的做法会导致一些关键但方差小的分类信息被过滤掉。
2. 
PCA是高维环境下能想到的最直接的方案。比如人脸识别,维度往往成千上万,但识别身份的话,每个人样本最多也就几十,过拟合现象是很严重的。由此产生了人脸识别早期研究中影响力极大的工作eigenface,其实就是先用PCA对人脸图像进行降维,然后再训练分类器。

但PCA是无监督的,正如Andrew所说:“it does not consider the values of our results y”。所以它虽然能解决过拟合问题,但又会带来欠拟合问题。拿人脸识别来说,eigenface虽然能训练出识别能力尚可的分类器,但因为分类信息并不一定存在于前几个主成分上,所以用前几个主成分来做分类的话,会丢失后面变化细微的主成分上存在的大量分类信息。正因为如此,之后又出现了fisherface等有监督降维工作,识别能力也因此提高了很多。

深度学习也是这样,pre-training阶段很多训练都是无监督的,其实和PCA异曲同工,但之后一定要有进一步的fine-tuning,把无监督提取出来的特征transfer到我们的目标任务上,这样得到的特征才真正work。

所以说,类似于PCA和auto-encoder这样的无监督方法,提取的特征不会太差、但也不会太好,它最大的作用,是总结出一些关于X的较高层次的抽象知识、为之后的有监督训练提供一个比原始特征空间更好的起点。实际上,无监督最具优势之处,就在于它的通用性:不管y是什么,只要有X就行,之后可以在各种各样的y上进一步训练。有证据显示,人类在婴儿时期也是先有一个无监督学习阶段,然后才是各种有监督学习。

3. 

本质还是因为是unsupervised learning,不涉及Y.

pca就是对design matrix / data matrix做singular value decomposition,做完后得到的是低维度的原feature的线性组合。因为不涉及response Y,因此无法根据feature和response的关系来做变量选择。它可以拿来做visualization看feature在哪个方向有较大的variation,但是没法合理的做variable selection。
 
1.4 特征工程:
1. 特征选择:   当数据处理完成后,我们需要选择意义的特征输出机器学习的算和模型进行训练。通常来说,从两个方面考虑来选择特征:
特征是否发散:如果一个特征不发散,例行方差接近于0,也就是说样本在这个特征上基本上没有差异,这个特征对于样本的区分并没有用。
特征与目标的相关性:与目标相关性高的特征,应当优先选择。
(1) FIlter方法:
包括:方差选择法, Pearson相关系数,卡方检验,互信息法,Gini-Index(基尼指数),IG(信息增益)等,主要侧重单个特征跟目标变量的相关性,有点是计算时间上较高效,对于过拟合问题也具有比较高的鲁棒性,缺点就是倾向于选择冗余的特征,因为他们不考虑特征之间的相关性,有可能某一个特征的分类能力很差,但是它和某些特征组合起来就会得到不错的效果。
http://blog.csdn.net/yihucha166/article/details/50646615 这个文章介绍了卡方检验和互信息,并且比较了2者的区别。
互信息是用来评价一个事件的出现对于另一个事件的出现所贡献的信息量。
在统计学中,卡方检验用来评价是两个事件是否独立,也就是P(AB) = P(A)*P(B) 
 卡方检验对于出现次数较少的特征更容易给出高分。例如某一个特征就出现过一次在分类正确的数据中,则该特征会得到相对高的分数,而互信息则给分较低。其主要原因还是由于互信息在外部乘上了一个该类型出现的概率值,从而打压了出现较少特征的分数。
刚开始时,卡方检验会选择一些小众特征,覆盖率不好,噪音较大,所以效果不如互信息方法,但是从100开始会选择到一些较好的特征,整体效果有所上升。
 (2) Wrapper 递归特征消除法
递归消除特征法使用一个基模型来进行多轮训练,每轮训练后,消除若干权值系数的特征,再基于新的特征集进行下一轮训练。 http://blog.csdn.net/coffee_cream/article/details/61421963 这篇文章介绍了LVW算法 算法里面涉及到了交叉验证方法:https://zhuanlan.zhihu.com/p/24825503 这个文章介绍交叉验证方法。
 
 
posted on 2017-10-24 16:53  raul313  阅读(404)  评论(0编辑  收藏  举报