特征工程:利用数据领域的相关知识来创建能够使机器学习算法达到最佳性能的特征的过程。
特征构建:是原始数据中人工的构建新的特征。
特征提取:自动地构建新的特征,将原始特征转换为一组具有明显物理意义或者统计意义或核的特征。
特征选择:从特征集合中挑选一组最具统计意义的特征子集,从而达到降维的效果
· 依据先验经验人工挑选。如题目描述中的天气预测问题,可以预先确定湿度、温度、是否有云、风向、风速、近几日天气状况等明显较为相关的特征。
· 线性特征选择。假设特征之间相互独立,不存在交互,那么可以使用卡方检验、信息增益、互信息等方法逐个检验特征与结果之间的相关程度。更为简便的方法是使用LR等线性模型,先做一次预训练,根据特征对应的线性模型权值的绝对值大小来对特征的重要程度进行排序。
· 非线性特征选择。如果考虑特征之间的交互,可以使用随机森林来进行特征选择,具体方法不赘述,概括来说就是将想要检验重要性的特征在样本上进行permutation,然后观察OOB错误的上升程度,上升越大,说明这个特征越重要。
· 自动特征提取。如第一段所述,核技巧、集成学习、深度学习等较为复杂的算法都可以看做是特征提取的过程,虽然简单省力,但是模型的解释性也会下降,尤其像深度学习这种黑盒子。
缺失值处理:
1. 删除
2. 均值:当缺失数据不是随机数据时会产生偏差。
3. 中位数:数据是倾斜的,使用中位数比均值可能更好。
4. 插值法:
随机插值--随机选取一个样本的值
拉格朗日插值和牛顿插值
相关变量预测插值--通过与缺失变量关系相关性大的变量,来预测相关值。
5. 相似样本值
找到和缺失样本类似的样本,缺失样本所丢失的属性用相似样本的值替代。
6. 用回归或者决策树等,小范围属性列表构建模型判断缺失值,个人感觉只适合较为重要的列属性缺失值预估。
离群点识别:
1. 画图
2. 正态分布的3a原则
如果数据服从正态分布(如何看数据是否正态分布), 如果值超过平均值的3倍标准差的值被认为离群值。如果不服从正态分布,则用偏离平均值多少倍来衡量。
3. 箱型图识别异常值。利用数据中的五个统计量:最小值、第一四分位数、中位数、第三四分位数与最大值来描述数据的一种方法,它也可以粗略地看出数据是否具有有对称性,分布的分散程度等信息。
第一四分位数(Q1):表示全部观察值中有四分之一的数据取值比它小。
第三四分位数(Q3):表示全部观察值中有四分之一的数据取值比它大。
IQR为四分位数间距,是上四分位数QU与下四分位数QL的差值,包含了全部观察值的一半。
如果值小于Q1-1.5IQR, 或者大于Q3 + 1.5IQR,认为数据为异常值。
4. Z-score(Standard Score)
将Z分数低于-3或高于3的数据看成是异常值。这些数据的准确性要复查,以决定它是否属于该数据集。计算Z值时需要“母体”的平均值和标准差,而不是“样本”的平均值和标准差。
降维:
1. 主成分分析法(PCA):为了让映射后的样本具有最大的发散性(无监督)
计算协方差矩阵的特征值和特征向量,找到前k个最大特征值,将原始矩阵与特征向量相乘
2. 线性判别分析法(LDA):为了让映射后的样本有最好的分类性能(有监督)--也可用于分类
“投影后类内方差最小,类间方差最大”
主要优点:
1)在降维过程中可以使用类别的先验知识经验,而像PCA这样的无监督学习则无法使用类别先验知识。
2)LDA在样本分类信息依赖均值而不是方差的时候,比PCA之类的算法较优。
主要缺点有:
1)LDA不适合对非高斯分布样本进行降维,PCA也有这个问题。
2)LDA降维最多降到类别数k-1的维数,如果我们降维的维度大于k-1,则不能使用LDA。当然目前有一些LDA的进化版算法可以绕过这个问题。
3)LDA在样本分类信息依赖方差而不是均值的时候,降维效果不好。
4)LDA可能过度拟合数据。