sklearn.decomposition.PCA
重要接口:
fit
transform:用训练好的模型对数据进行转换
fit_transform:二合一
inverse_transform:【pca.inverse_transform(数据集) ,就是把降维后的数据集按照原来的框架升维回去,但不能完全将数据重置回去,可以用来降噪】
重要参数
n_components:
根据我们的降维目标来选取,如果我们希望可视化一组数据来观察数据分布,我们往往将数据降到三维以下,很多时候是二维,即n_components的取值为2。
svd_solver:是pca与svd混合起来使用,太过复杂,默认为auto。先选auto再选randomized,一般不用full
重要属性
components_: 可以查看 svd中的V(k,n),也就是构造新特征的框架,然后再用transform将数据填入新的框架。
explained_variance_,查看降维后每个新特征向量上所带的信息量大小(可解释性方差的大小)
explained_variance_ratio_,查看降维后每个新特征向量所占的信息量占原始数据总信息量的百分比(方差贡献率)
小tips
当n_components默认为原有特征数量时,可以使用explained_variance_ratio_来看每个特征的所占信息量的大小,从而帮助我们来判断需要多少个特征,还可以配合np.cumsum来画图
n_components的其他参数
mle:最大似然估计自选超参数
svd_solver: n_components 输入[0,1]之间的浮点数,并且让参数svd_solver ==‘full’,表示希望降维后的总解释性方差占比大于n_components指定的百分比,即是说,希望保留百分之多少的信息量。
注意事项
PCA 和 SVD 属于特征创造,创造出来的特征没有可读性,
在探索特征与标签之间关系的模型(如线性回归),应使用特征选择。
PCA使用的信息量衡量指标,就是样本方差,又称可解释性方差,方差越大,特征所带的信息量越多。
pca和svd的特征创造都要经历这些步骤