数据预处理:
参考 朱/欧等,《数据科学导引》
朱占星课程ppt
离散特征编码:
One Hot编码:在数据是离散的分类的时候采用。避免用0,1,2,3...这样的编码方式给各个分类引入次序。
但是One Hot的缺点是:1,引入了太高的维度。
2,特征之间引入了线性相关性:f1+...+fn=1
解决2的办法是引入哑变量。
=====
数据标准化:
量纲会造成影响,所以要标准化。
有时候需要输入特征为标准化形式,线性模型里面的l1 l2正则项等等,需要特征均值在0附近而且方差齐次。
Z-score:
适用于最大最小值位置,分布很离散的情况。
min-max:
可以弄到小区间里。缺点是:不是online,如果有离群点,会比较差
小数定标标准化:
直接除以10多少次,然后缩小到[-1,1]区间里。一个问题是有可能原先的特征的大小很集中在一个量级,比如1000-2000,那么除以10000的话就容易集中在一个位置。而且也不是online。
Logistic标准化:
用逻辑斯蒂函数。缺点是:如果特征是绝对值比较大的,那么会分布在0和1附近。对于那些绝对值小而且分布在0周围的有用。
=====
数据离散化:
增加鲁棒性,减少离群点的影响。使得模型的可解释性更强(数据区间有明确的含义)。特征取值大大减少,减少存储和实际运算量。
离散化的目标:在尽可能减少损失的前提下,去减少离散化的元数。
无监督离散化:
等距离散化(每个段的长度基本一致。缺点:离群点影响大)
等频离散化(每个段的样本数量基本一致。一定程度解决了离群点的问题,但是很接近的两个样本很有可能分到两个不同的区间里)
聚类离散化(直接对特征做聚类,然后把聚类簇做进一步的分解或者是合并)
有监督离散化:
信息增益离散化(利用决策树中的信息增益方法离散化。是自顶向下的)
卡方离散化(自底向上。算卡方统计量。算法开销大)
=====
处理缺失值:
直接删掉
均值填补法(连续用平均,离散用众数)(缺点是特征之间是有相关性的,直接均值填补的话会忽略掉相关性)(一个例子,也是处理上个括号的方法是:如果有两个特征,一个是入学年份,另一个是年龄。年龄有缺失。这两个特征是明显相关的。可以按照入学年份分成小组,然后均值)
最近邻填补(用其他的特征来判断,选择其他特征最近的一个做填补。)(怎么定义“距离”是个问题)
=====
检测离群点:
统计方法:分位点,箱图
k近邻方法:算出每个点的k近邻距离,然后按照从小到大排列,选定一个阈值,大于的设置为离群。
(一个问题是!只能检测到整体的离群,检测不到局部离群)
LOF算法:k近邻方法的升级版,可以检测局部离群:
表示x到第k个最近的样本的距离。定义距离:
。如果x1不在x2所在的那个小类里面,这个值就会和x1和x2之间的距离比较接近。
定义 看倒数里面,如果这个值很大,说明那些跟x很近的点看来,x离他们并不近,x可能是个离群点。所以这个值(倒数)越小越离群。定义指标:
如果接近1.说明正常,如果小于1,也是正常,如果远大于1,说明x应该是离群的。
(缺点!样本量大维度大的时候,是很低效的)
网友评论