一、PCA主成分分析原理
1.降维的作用:(为什么会有这些作用?)
(1)降低时间的复杂度和空间复杂度
(2)节省了提取不必要特征的开销
(3)去掉数据集中夹杂的噪音
(4)较简单的模型在小数据集上有更强的鲁棒性
(5)当数据能有较少的特征进行解释,我们可以更好地解释数据,是的我们可以提取知识
(6)实现数据的可视化
2、降维的目的
用来进行特征选择和特征提取。
①特征选择:选择重要的特征子集,删除其余特征;
②特征提取:由原始特征形成的较少的新特征。
3.将样本投影到某一维上,新的坐标的选择方式:找到第一个坐标,数据集在该坐标的方差最大(方差最大也就是我们在这个数据维度上能更好地区分不同类型的数据),然后找到第二个坐标,该坐标与原来的坐标正交。该过程会一直的重复,直到新坐标的数目和原来的特征个数相同,这时候我们会发现数据的大部分方差都在前面几个坐标上表示,这些新的维度就是我们所说的主成分。
(1)PCA的基本思想:寻找数据的主轴方向,由主轴构成一个新的坐标系,这里的维数可以比原维数低,然后数据由原坐标系向新坐标系投影,这个投影的过程就是降维的过程。
缺陷是降维处理后的两个组成的特征的物理特性未知。
(2)PCA算法的过程
①将原始数据中的每一个样本都用向量表示,把所有样本组合起来构成样本矩阵,通常对样本矩阵进行中心化处理,得到中心化样本矩阵。
②求中心化后的样本矩阵的协方差;
③求协方差矩阵的特征值和特征向量;
④将求出的特征值按从大到小的顺序排列,并将其对应的特征向量按照此顺序组合成一个映射矩阵,根据指定的PCA保留的特征个数取出映射矩阵的前n行或者前n列作为最终的映射矩阵;
⑤用映射矩阵对数据进行映射,达到数据降维的目的。
二.数据预处理
import numpy as np
import pandas as pd
import matplotlib.pylab as plt
iris_data = pd.read_csv('iris.csv')
print(iris_data.head())
#切分
x = iris_data.iloc[:,0:4].as_matrix() #提取第0-3列
y = iris_data.iloc[:,4].as_matrix() #提取第4列