来源:数据STUDIO
作者:云朵君
01、降维的意义
- 降低无效、错误数据对建模的影响,提高建模的准确性。
- 少量切具有代表性的数据将大幅缩减挖掘所需的时间。
- 降低存储数据的成本。
02、需要降维的情况
大多数情况下,面临高维数据,就要降维处理
- 维度数量。降维基本前提是高维。
- 建模输出是否必须保留原始维度。如果需要最终建模输出是能够分析、解释和应用,则只能通过特征筛选或聚类等方式降维。
- 对模型对计算效率和建模时效性有要求。
- 是否需要保留完整的数据特征。
03、基于特征选择的降维
根据一定的规则和经验,直接选取原有维度的一部分参与后续的计算和建模过程,用选择的维度代替所有维度。优势是既能满足后续数据处理和建模要求,又能保留维度原本的业务含义,以便业务理解和应用。
四种思路
经验法: 根据业务专家或数据专家的以往经验、实际数据情况、业务理解程度等进行综合考虑。
测算法: 通过不断测试多种维度选择参与计算,通过结果来反复验证和调整,并最终找到最佳特征方案。
基于统计分析方法: 通过相关分析不同维度间的线性关系,在相关性高的维度中进行人工去除或筛选
- 方差过滤:classs sklearn.feature_selection.VarianceThreshold(threshold=0.0) .fit_transform(X,y)
- 卡方过滤:原假设是相互独立 SelectKBest(chi2,k).fit_transform(X,y)
- F检验:原假设是不存在显著的线性关系 SelectKBest(f_classif,k).fit_transform(X,y)
- 通过计算不同维度间的互信息,找到具有较高互信息的特征集,然后去除或留下其中一个。SelectKBest(model,k).fit_transform(X,y) 其中 model=multual_info_classif 或 multual_info_regression
机器学习算法: 通过机器学习算法得到不同特征的特征值或权重,选择权重较大的特征。
-
嵌入法:精确度模型本身,是过滤法的进阶版。
sklearn.feature_selection.SelectFromModel(sklearn.ensemble.RandomForestClassifier(),threshold=0.01).fit_transfrom(X,y) -
包装法:
sklearn.feature_selection.RFE(sklearn.SVM.SVC(),k).fit_transfrom(X,y)
04、基于特征转换的降维
按照一定的数学变换方法,把给定的一组相关变量(特征)通过数学模型将高维空间数据点映射到低维空间中,然后用映射后到变量的特征来表示原有变量的总体特征。这种方式是一种产生新维度的过程,转换后的维度并非原有的维度本体,而是其综合多个维度转换或映射后的表达式。
PCA(主成分分析)
PCA (Principal Component Analysis) sklearn.decomposition.PCA(n_components=None,whiten=False)
from sklearn.decomposition import PCA
pca=PCA().fit()
pca.components_ # 返回模型各个特征向量 pca.explained_variance_ratio_ # 返回各自成分的方差百分比
按照一定的数学变换方法,把给定的一组相关变量(特征)通过线性变换转换成另一组不相关的变量,这些新变量按照方差依次递减的顺序排列。方法越大,包含的信息越多。(无监督式学习,从特征的协方差角度,去选择样本点投影具有最大方差方向)n维可用。
二维转一维举例
所谓主成分:选出比原始变量个数少、能够解释数据中大部分的变量的几个新变量,来替换原始变量进行建模。
PCA是将数据投影到方差最大的几个相互正交的方向上,以期待保留最多的样本信息。
PCA算法
1,将原始数据按列组成 行 列矩阵
2,将 的每一行(代表一个属性字段) 进行标准化处理。
3,求出相关系数矩阵
4,求出 的特征值 及对应的特征向量
5,将特征向量按对应特征值大小从上到下按行排列成矩阵,取前 行组成矩阵
6,,
LDA(线性判别分析)
LDA (Linear Discriminant Analysis)
通过已知类别的“训练样本”,来建立判别准则,并通过预测变量来为已知数据进行分类。(有监督式学习,考虑分类标签信息,投影后选择分类性能最好的方向) C-1维(分类标签数-1)
基本思想是将高维数据的模式样本投影到最佳鉴别矢量空间,已到达抽取分类信息和压缩特征空间维度的效果。投影后保证模式样本在新子空间的类空间距离和最小的类距离,集模式在该空间中有最佳可分离性。
使样本尽可能好分的投影方向,就是要使投影后使得同类样本尽可能近,不同类样本尽可能远。
图片来源网络
05、基于特征组合的降维
将输入特征与目标预测变量做拟合的过程,它将输入特征经过运算,并得出能对目标变量作出很好解释(预测性)对复合特征,这些特征不是原有对单一特征,而是经过组合和变换后的新特征。
优点: 提高模型准确率、降低噪声干扰(鲁棒性更强)、增加了对目标变量的解释性。
方法:
- 基于单一特征离散化后的组合。 现将连续性特征离散化后组合成新的特征。如RFM模型
- 基于单一特征的运算后的组合。 对于单一列基于不同条件下获得的数据记录做求和、均值等获得新特征。
- 基于多个特征的运算后的组合。 将多个单一特征做复合计算(包括加减乘除对数等),(一般基于数值型特征)获得新特征。
- 基于模型等特征最优组合。 基于输入特征与目标变量,在特定的优化函数的前提下做模型迭代计算,以到达模型最优的解。如多项式的特征组合、基于GBDT的特征组合。
GBDT
sklearn.ensemble.GradientBoostingClassifier(
).fit(X,y).apply(X)[:,:,0]
apply()返回的是
[n_samples,n_estimators, n_classes]
多项式
sklearn.preprocessing. PolynomialFeatures.fit_transform(X,y ).get_feature_names()
Ok,今天的分享就到这里啦!