python 数据挖掘(7)-- 主从分析 PCA

主从分析的主要目的是降维,从而提高数据挖掘的效率,降低计算成本。

主从分析计算步骤如下:

(1)设置原始属性 X1,X2,...Xp 的 n 次观测矩阵为:

(2)将数据矩阵按列进行中心标准化。

(3)求标准化后的相关系数矩阵 R,我们知道这是一个实对称矩阵

(4)求R 的特征根  

(5)确定主成分个数 m , 一般取 0.8

          

(6)计算 m 个相应的特征向量

(7)计算主成分

python 主从成分分析函数 sklearn.decomposition.PAC(n_components = None,copy = True,whiten = False)

n_components:默认为 None,所有成分被保留。赋值为 int ,确定主成分个数;复制为 string ,比如 'mle',则自动选取特征个数。即参考上述第 (5)个步骤

copy:默认为 True,表示在运行算法时,将原始训练数据复制一份,若为 True,则运行 PCA 算法后,原始数据的值不会有任何改变,因为是在原始数据的副本上训练。若为 False,则原始数据会改变成降维后的运算结果。

whiten: 默认为 False,意义:白化,使得每个特征具有相同的方差。

使用 PCA 降维的代码如下: principal_component.xls

#-*- coding:utf-8 -*-
import pandas as pd

# 数据文件
inputfile = 'wajue/principal_component.xls'
# 降维后保存的数据
outputfile = 'wajue/dimention_reducted.xls'

data = pd.read_excel(inputfile,header = None) # 没有标头

# 导入 PCA
from sklearn.decomposition import PCA
# 参数默认
#pca = PCA(n_components = 'mle')
pca = PCA(n_components = 3)
pca.fit(data)

# 返回模型的各个特征向量
print pca.components_

# 返回各个成分各自的方差百分比
print pca.explained_variance_ratio_

# 用它来降低维度
low_d = pca.transform(data)
# 保存数据
pd.DataFrame(low_d).to_excel(outputfile)
# 必要时也可以恢复数据
pca.inverse_transform(low_d)

 以上代码将 8 维降到了 3 维,降维公式由步骤 (7) 给定

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值