数据是数据分析的基础,因此选择合适的数据进行分析,会提高数据分析的效率及准确性。常用的数据特征选择方法有以下四种。
统计分析可以用来分析选择对结果影响最大的数据特征。scikit-learn中提供了SelectKBest类,可以使用一系列统计方法来选定数据特征,从而实现卡方检验。
所谓卡方检验是指,统计样本的实际观测值与理论推断值之间的偏离程度,实际观测值与理论推断值之间的偏离程度就决定卡方值的大小,卡方值越大,越不符合;卡方值越小,偏差越小,越趋于符合,若两个值完全相等时,卡方值就为0,表明理论值完全符合。
使用单变量特征选定的代码如下:
1 | #导入必要的类库 |
SelectKBest更多使用方法,可以参见documentation for scikit-learn
递归特征消除(RFE)使用一个基模型来进行多轮训练,每轮训练后消除若干权值系数的特征,再基于新的特征集进行下一轮训练。通过每一个基模型的精度,找到对最终的预测结果影响最大的数据特征。
使用递归特征消除代码如下:
1 | #导入必要的类库 |
在上述代码中,使用到了LogisticRegression这个逻辑回归模型。所谓逻辑回归,是一种分类方法,即将对象分为两类,目标即因变量,其值为“是”与“否”,而其他的自变量值就可以包括很多了。这些值可以是连续的,也可以是分类的。通过logistic回归分析,可以得到自变量的权重,从而可以大致了解到哪些因素是导致目标值的关键因素。具体可以参见:IBM-Logistic回归 scikit-learn
在多元统计分析中,主成分分析(英语:Principal components analysis,PCA)是一种分析、简化数据集的技术。主成分分析经常用于减少数据集的维数,同时保持数据集中的对方差贡献最大的特征。这是通过保留低阶主成分,忽略高阶主成分做到的。这样低阶成分往往能够保留住数据的最重要方面。但是,这也不是一定的,要视具体应用而定。由于主成分分析依赖所给数据,所以数据的准确性对分析结果影响很大。
设有m条n维数据。
1)将原始数据按列组成n行m列矩阵X
2)将X的每一行(代表一个属性字段)进行零均值化,即减去这一行的均值
3)求出协方差矩阵$C=1/m(XX^T)$
4)求出协方差矩阵的特征值及对应的特征向量
5)将特征向量按对应特征值大小从上到下按行排列成矩阵,取前k行组成矩阵P
6)Y=PX即为降维到k维后的数据
使用主成分分析代码如下:
1 | #导入必要的类库 |