sklearn中的PCA
详见–>http://scikit-learn.org/stable/modules/generated/sklearn.decomposition.PCA.html
导入库
from sklearn.decomposition import PCA
参数
pca = PCA(n_components=None, copy=True, whiten=False)
n_components:
意义:PCA算法中所要保留的主成分个数n,也即保留下来的特征个数n
类型:int 或者 string,缺省时默认为None,所有成分被保留。
赋值为int,比如n_components=1,将把原始数据降到一个维度。
赋值为string,比如n_components='mle',将自动选取特征个数n,使得满足所要求的方差百分比。
copy:
类型:bool,True或者False,缺省时默认为True。
意义:表示是否在运行算法时,将原始训练数据复制一份。若为True,则运行PCA算法后,原始训练数据的值不会有任何改变,因为是在原始数据的副本上进行运算;若为False,则运行PCA算法后,原始训练数据的值会改,因为是在原始数据上进行降维计算。
whiten:
类型:bool,缺省时默认为False
意义:白化。
例子:
arr = array([[1,1,1,0,1,0,0,1],
[0,1,1,0,1,0,0,1],
[0,1,1,0,1,0,0,1],
[1,1,0,1,0,0,1,1],
[0,1,1,0,1,0,0,1],
[1,0,1,0,0,1,0,1],
[0,1,1,0,1,0,0,1]])
arr3 = copy(arr)
pca = PCA(n_components=0.9, copy=True, whiten=False)
arr2 = pca.fit_transform(arr)
print arr2
结果
[[-0.05589893 -0.06936121]
[-0.58413532 0.10595442]
[-0.58413532 0.10595442]
[ 1.50720333 0.89629847]
[-0.58413532 0.10595442]
[ 0.88523688 -1.25075492]
[-0.58413532 0.10595442]]
对象属性:
arr2 = pca.fit_transform(arr)#用arr来训练PCA模型,同时返回降维后的数据。
print pca.transform(arr3)#将数据X转换成降维后的数据
print pca.explained_variance_ratio_#各项特征方差百分比
print pca.explained_variance_#各项特征方差
print pca.get_params#返回各参数值
print pca.mean_#原始数据均值
print pca.inverse_transform(arr2)#将降维后的数据转换成原始数据