数据预处理系列:(九)用主成分分析(PCA)降维
来源:互联网 发布:ubuntu硬盘大小 编辑:程序博客网 时间:2024/06/13 14:56
声明:版权所有,转载请联系作者并注明出处 http://blog.csdn.net/u013719780
博主简介:风雪夜归子(英文名: Allen),机器学习算法攻城狮,喜爱钻研Machine Learning的黑科技,对Deep Learning和Artificial Intelligence充满兴趣,经常关注kaggle数据挖掘竞赛平台,对数据、Machine Learning和Artificial Intelligence有兴趣的各位童鞋可以一起探讨哦,个人CSDN博客: http://blog.csdn.net/u013719780?viewmode=contents
用主成分分析降维
现在是时候升一级了!主成分分析(Principal component analysis,PCA)是本书介绍的第一个高级技术。到目前为止都是些简单的统计学知识,而PCA将统计学和线性代数组合起来实现降维,堪称简单模型的杀手锏。
Getting ready
PCA是scikit-learn的一个分解模块。还有一些分解模块后面会介绍。让我们用iris
数据集演示一下,你也可以用自己的数据集:
from sklearn import datasetsiris = datasets.load_iris()iris_X = iris.data
How to do it...
首先导入分解模块:
from sklearn import decomposition
然后,初始化一个PCA对象:
pca = decomposition.PCA()pca
和scikit-learn其他对象相比,PCA的参数很少。这样PCA对象就创建了,下面用fit_transform
处理iris_X
数据:
iris_pca = pca.fit_transform(iris_X)iris_pca[:5]
这样PCA就完成了,我们可以看看降维的效果:
pca.explained_variance_ratio_
How it works...
PCA是在数据分析中有一般性的数学定义和具体的应用场景。PCA用正交向量集表示原始数据集。
通常,PCA将原始数据集映射到新的空间中,里面每个列向量都是彼此正交的。从数据分析的视角看,PCA将数据集的协方差矩阵变换成若干能够“解释”一定比例变量的列向量。例如,在iris
数据集中,92.5%的变量可以由第一个主成份表示。
数据分析里面维度多会导致维度灾难,因此降维至关重要。通常算法处理高维训练集时会出现拟合过度(overfit)的情况,于是难以把握测试集的一般性特征。如果数据集的真实结构可以用更少的维度表示,那么通常都值得一试。
为了演示这点,我们用PCA将iris
数据集转换成二维数据。iris
数据集用全部的维度通常可以很好的分类:
pca = decomposition.PCA(n_components=2)iris_X_prime = pca.fit_transform(iris_X)iris_X_prime.shape
我们的矩阵现在是
%matplotlib inlinefrom matplotlib import pyplot as pltf = plt.figure(figsize=(5, 5))ax = f.add_subplot(111)ax.scatter(iris_X_prime[:,0], iris_X_prime[:, 1], c=iris.target)ax.set_title("PCA 2 Components")
把数据集降成二维之后还是分离特征依然保留。我们可以查看这二维数据保留了多少变量信息:
pca.explained_variance_ratio_.sum()
There's more...
PCA对象还可以一开始设置解释变量的比例。例如,如果我们想介绍98%的变量,PCA对象就可以这样创建:
pca = decomposition.PCA(n_components=.98)iris_X_prime = pca.fit_transform(iris_X)pca.explained_variance_ratio_.sum()
iris_X_prime.shape
由于我们想比二维主成份解释更多的变量,第三维就需要了。
- 数据预处理系列:(九)用主成分分析(PCA)降维
- PCA主成分分析(降维)
- 降维--主成分分析(PCA)
- 主成分分析(PCA)
- 主成分分析(PCA)
- 主成分分析(PCA)
- 主成分分析(PCA)
- 主成分分析(PCA)
- 主成分分析(PCA)
- 主成分分析(PCA)
- 主成分分析(PCA)
- 主成分分析(PCA)
- 主成分分析(PCA)
- 主成分分析(PCA)
- 主成分分析(PCA)
- 主成分分析(PCA)
- 【机器学习系列】python版PCA(主成分分析)
- 主成分分析(pca)算法原理
- 一致性哈希算法
- visio premium 2010密钥
- Comet技术在项目中的使用
- android系统中移动物体检测步骤和方法
- 输出该链表中倒数第k个结点
- 数据预处理系列:(九)用主成分分析(PCA)降维
- Oracle数据导入导出imp/exp命令 10g以上expdp/impdp命令
- Android开发中graphic layout看不到预览问题的解决
- php操作mysql数据库的函数(天龙八部)
- MD5加密以及字符串剪切
- 织梦分页如何控制每页显示数量
- mybatis的查询缓冲
- top命令的Load average 含义及性能参考基值
- Android Studio集成极光推送(Jpush) 报错 java.lang.UnsatisfiedLinkError: cn.jpush.android.service.PushProtocol