PCA是一种线性降维算法,想要了解其基本原理的博友,建议到此博客(https://blog.youkuaiyun.com/Mr_tyting/article/details/76070436)去研读原理。
sklearn.decomposition.PCA(n_components = None, copy = True, whiten = False)
n_components表示需要保留的主成分个数,即需要降低到几维;若n_components=1,则表示降低为1维,若n_components=‘mle’,则自动选取要保留的维度。
copy表示是否需要将原始数据集复制一份;若copy=True,则复制原始训练集的副本,并在副本上进行运算,原始训练不会有任何改变;若copy=False
,则直接在原始训练集上进行降维运算。
whiten表示使每个特征拥有相同的方差
例
数据如下
代码如下
#-*- coding: utf-8 -*-
#主成分分析 降维
import pandas as pd
#参数初始化
inputfile = '../data/principal_component.xls'
outputfile = '../tmp/dimention_reducted.xls' #降维后的数据
data = pd.read_excel(inputfile, header = None) #读入数据
from sklearn.decomposition import PCA
pca = PCA()
pca.fit(data) #训练数据
pca.components_ #返回模型的各个特征向量
pca.explained_variance_ratio_ #返回各个成分各自的方差百分比
print(pca.components_)
print(pca.explained_variance_ratio_)
运行结果
[[ 0.56788461 0.2280431 0.23281436 0.22427336 0.3358618 0.43679539
0.03861081 0.46466998]
[ 0.64801531 0.24732373 -0.17085432 -0.2089819 -0.36050922 -0.55908747
0.00186891 0.05910423]
[-0.45139763 0.23802089 -0.17685792 -0.11843804 -0.05173347 -0.20091919
-0.00124421 0.80699041]
[-0.19404741 0.9021939 -0.00730164 -0.01424541 0.03106289 0.12563004
0.11152105 -0.3448924 ]
[-0.06133747 -0.03383817 0.12652433 0.64325682 -0.3896425 -0.10681901
0.63233277 0.04720838]
[ 0.02579655 -0.06678747 0.12816343 -0.57023937 -0.52642373 0.52280144
0.31167833 0.0754221 ]
[-0.03800378 0.09520111 0.15593386 0.34300352 -0.56640021 0.18985251
-0.69902952 0.04505823]
[-0.10147399 0.03937889 0.91023327 -0.18760016 0.06193777 -0.34598258
-0.02090066 0.02137393]]
[7.74011263e-01 1.56949443e-01 4.27594216e-02 2.40659228e-02
1.50278048e-03 4.10990447e-04 2.07718405e-04 9.24594471e-05]
本博文主要参考书籍张良均等著《python数据分析与挖掘实战》