使用sklearn库中的PCA类进行主成分分析。
导入要用到的库,还没有的直接pip安装就好了。
from sklearn.decomposition import PCA
import numpy as np # 如果使用numpy的array作为参数的数据结构就需要,其他type没试过是否可以
import pandas as pd # 非必要
PCA类的主要输入参数有以下几个:
n_components:这个参数可以帮我们指定希望PCA降维后的特征维度数目。
最常用的做法是直接指定降维到的维度数目,此时n_components是一个大于等于1的整数。
也可以指定主成分的方差和所占的最小比例阈值,让PCA类自己去根据样本特征方差来决定降维到的维度数,此时n_components是一个(0,1]之间的数。
还可以将参数设置为"mle", 此时PCA类会用MLE算法根据特征的方差分布情况自己去选择一定数量的主成分特征来降维。
也可以用默认值,即不输入n_components,此时n_components=min(样本数,特征数)。
whiten :判断是否进行白化。所谓白化,就是对降维后的数据的每个特征进行归一化,让方差都为1。对于PCA降维本身来说,一般不需要白化。如果你PCA降维后有后续的数据处理动作,可以考虑白化。默认值是False,即不进行白化。
svd_solver:即指定奇异值分解SVD的方法,由于特征分解是奇异值分解SVD的一个特例,一般的PCA库都是基于SVD实现的。有4个可以选择的值:{‘auto’, ‘full’, ‘arpack’, ‘randomiz