接着补充昨天的学习笔记:
1. 数据规约
(1) 属性规约
和冰属性、逐步向前选择、向后删除、决策树归纳、主成分分析
主成分分析:是一种用于连续属性的数据降维方法,它够早了原始数据的一个正交变换,新空间的基底去除了原始空间基底下数据的相关性,只需使用少数新变量就能够解释原始数据中的大部分变异。应用中通常是选出比原始变量个数少,能解释大部分数据中的变量的几个新变量,即所谓主成分,来代替原始变量进行建模。
步骤如下:
① 设原始变量X1,X2···Xp的n词观测数据矩阵为:
= (X1,x2,```xp)
② 将数据矩阵按列进行中心标准化,为了方便,将标准化后的数据矩阵仍然记为X。
③ 求相关系数矩阵R,R=(rij)pxp,,rij定义为:
④ 求R的特征方程
⑤ 确定主成分个数m,而此处a一般取>=80%。
⑥ 计算m个相应的单位特征向量
⑦ 计算主成分
在Python中,主成分分析的函数位于Scikit-learn下:
Sklearn.decomposition.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
意义:表示是否在运行算法是,将原始训练集数据复制一份。
Whiten
类型:bool,缺省时默认为False
意义:白化,使得每个特征具有相同的方差。
使用主成分分析降维的程序如下:
import pandas as pd
#参数初始化
inputfile='F:/fenxiyuwajue/dataandcode/chapter4/chapter4/demo/data/principal_component.xls'
output