Task04:特征工程
特征工程指的是把原始数据转变为模型的训练数据的过程,它的目的就是获取更好的训练数据特征,使得机器学习模型逼近这个上限。特征工程能使得模型的性能得到提升,有时甚至在简单的模型上也能取得不错的效果。特征工程在机器学习中占有非常重要的作用,一般认为括特征构建、特征提取、特征选择三个部分。特征构建比较麻烦,需要一定的经验。 特征提取与特征选择都是为了从原始特征中找出最有效的特征。它们之间的区别是特征提取强调通过特征转换的方式得到一组具有明显物理或统计意义的特征;而特征选择是从特征集合中挑选一组具有明显物理或统计意义的特征子集。两者都能帮助减少特征的维度、数据冗余,特征提取有时能发现更有意义的特征属性,特征选择的过程经常能表示出每个特征的重要性对于模型构建的重要性。本文主要尝试总结几个常用的特征提取和特征选择的方法。
特征构建
特征构建是指从原始数据中人工的找出一些具有物理意义的特征。需要花时间去观察原始数据,思考问题的潜在形式和数据结构,对数据敏感性和机器学习实战经验能帮助特征构建。除此之外,属性分割和结合是特征构建时常使用的方法。结构性的表格数据,可以尝试组合二个、三个不同的属性构造新的特征,如果存在时间相关属性,可以划出不同的时间窗口,得到同一属性在不同时间下的特征值,也可以把一个属性分解或切分,例如将数据中的日期字段按照季度和周期后者一天的上午、下午和晚上去构建特征。总之特征构建是个非常麻烦的问题,书里面也很少提到具体的方法,需要对问题有比较深入的理解。
PCA主成分分析
PCA的思想是通过坐标轴转换,寻找数据分布的最优子空间,从而达到降维、去相关的目的。下面的图是直接从《机器学习实战》中截取的,原始数据二维特征,三分类问题,左图是原始数据。进行PCA特征转换,第一个新坐标轴选择的是原始数据中方差最大的方向(线B),第二个新坐标轴与第一个坐标轴正交且具有最大方差的方向(线C),当特征维度较多时,重复上述过程,会发现大部分的方差都包含在前几个新的坐标轴中,通过选择保留前N个坐标轴达到降维的效果,下面中上是特征转换的图右,中下是降维后的图。在数学上,是先用原始数据协方差矩阵的前N个最大特征值对应的特征向量构成映射矩阵,然后原始矩阵左乘映射矩阵,从而对原始数据降维。下图右面列出了两个随机变脸之间协方差的计算公式、怎么计算矩阵的协方差矩阵、矩阵的特征值、特征向量。特征向量可以理解为坐标准换中的新坐标轴的方向,特征值表示矩阵在对应的特征向量上的方差,特征值越大,方差越大,信息量越多。
LDA线性判别分析
LDA的原理是将带上标签的数据(点),通过投影的方法,投影到维度更低的空间,使得投影后的点,会形成按类别区分,相同类别的点,将会在投影后更接近,不同类别的点距离越远。skearn网站上面有个例子介绍PCA与LDA的区别,分别通过PCA和LDA将4维特征三分类的Iris数据降维为2维特征,然后再进行分类,效果差不多,可视化出来发现有些不同,毕竟降维方式有些不同。