主成分分析降维

from sklearn.datasets import load_iris
from sklearn.decomposition import PCA
import pylab as pl
from itertools import cycleiris = load_iris()  # 再熟悉不过的数据集鸢尾花numSamples, numFeatures = iris.data.shape
print(numSamples)
print(numFeatures)  # 花萼长度,花萼宽度,花瓣长度,花瓣宽度4个属性(4D)
print(list(iris.target_names))
150
4
['setosa', 'versicolor', 'virginica']
X = iris.data
pca = PCA(n_components=2, whiten=True).fit(X)
X_pca = pca.transform(X)
X = iris.data
pca = PCA(n_components=2, whiten=True).fit(X) # 降维到2D
X_pca = pca.transform(X)

n_components:这个参数可以帮我们指定希望PCA降维后的特征维度数目。最常用的做法是直接指定降维到的维度数目,此时n_components是一个大于等于1的整数。当然,我们也可以指定主成分的方差和所占的最小比例阈值,让PCA类自己去根据样本特征方差来决定降维到的维度数,此时n_components是一个(0,1]之间的数。当然,我们还可以将参数设置为"mle", 此时PCA类会用MLE算法根据特征的方差分布情况自己去选择一定数量的主成分特征来降维。我们也可以用默认值,即不输入n_components,此时n_components=min(样本数,特征数)。

whiten :判断是否进行白化。所谓白化,就是对降维后的数据的每个特征进行归一化,让方差都为1.对于PCA降维本身来说,一般不需要白化。如果你PCA降维后有后续的数据处理动作,可以考虑白化。默认值是False,即不进行白化。

https://blog.csdn.net/cxmscb/article/details/66473130

print(pca.components_) #返回模型的各个特征向量
[[ 0.36138659 -0.08452251  0.85667061  0.3582892 ][ 0.65658877  0.73016143 -0.17337266 -0.07548102]]
print(pca.explained_variance_ratio_)  #返回各个成分各自的方差百分比,第1个投影特征的方差占比高达0.91
print(sum(pca.explained_variance_ratio_))
[0.92461872 0.05306648]
0.9776852063187949
%matplotlib inline
from pylab import *colors = cycle('rgb')
target_ids = range(len(iris.target_names))
pl.figure()
for i, c, label in zip(target_ids, colors, iris.target_names):pl.scatter(X_pca[iris.target == i, 0], X_pca[iris.target == i, 1],c=c, label=label)
pl.legend()
pl.show()

机器学习之CPA降维相关推荐

  1. 机器学习算法-PCA降维技术

    机器学习算法-PCA降维 一.引言 在实际的数据分析问题中我们遇到的问题通常有较高维数的特征,在进行实际的数据分析的时候,我们并不会将所有的特征都用于算法的训练,而是挑选出我们认为可能对目标有影响的特 ...

  2. 【火炉炼AI】机器学习053-数据降维绝招-PCA和核PCA

    [火炉炼AI]机器学习053-数据降维绝招-PCA和核PCA (本文所使用的Python库和版本号: Python 3.6, Numpy 1.14, scikit-learn 0.19, matplo ...

  3. 机器学习之三:降维技术

    机器学习之三:降维技术 如果想了解更多的知识,可以去我的机器学习之路 The Road To Machine Learning通道 1. 基本概念 机器学习领域中所谓的降维就是指采用某种映射方法,将原 ...

  4. 机器学习笔记之降维(一)维数灾难

    机器学习笔记之降维--维数灾难 引言 回顾:过拟合 维度灾难 从数值角度观察维数灾难 从几何角度观察维度灾难 示例1 示例2 引言 本节将介绍降维算法,并介绍降维算法的相关背景. 回顾:过拟合 我们在 ...

  5. 机器学习-Sklearn-04(降维算法PCA和SVD)

    机器学习-Sklearn-04(降维算法PCA和SVD) 学习04 1 概述 1.1 从什么叫"维度"说开来 对于数组和Series来说,维度就是功能shape返回的结果,shap ...

  6. 机器学习笔记之降维(二)样本均值与样本方差的矩阵表示

    机器学习笔记之降维--样本均值与样本方差的矩阵表示 引言 场景介绍 样本均值与样本方差 样本均值与样本方差的矩阵表示 样本均值的矩阵表达 样本方差的矩阵表达 中心矩阵的性质 引言 上一节介绍了维数灾难 ...

  7. 【机器学习】【降维】局部保持投影(LPP Locality Preserving Projections)

    文章目录 局部保持投影(LPP) 一.摘要: 二.主要思想 三.算法步骤 四.算法详解 局部保持投影(LPP) 论文:<Locality Preserving Projections>作者 ...

  8. 机器学习基础-数据降维

    http://blog.itpub.net/29829936/viewspace-2643140/ 2019-05-01 10:06:00 首先需要了解下:什么叫做数据降维,为什么要对数据进行降维,如 ...

  9. 机器学习笔记(十)降维和度量学习

    10.降维和度量学习 10.1k近邻学习 k近邻(k-NearestNeighbor,简称kNN)学习是一种常用的监督学习方法,其原理是:给定测试样本,基于某种距离度量找出训练集中与其最靠近的k个训练 ...

最新文章

  1. Redis 为什么默认 16 个数据库?
  2. SQL数据定义、查询、更新+空值的处理 实践学习报告
  3. 如何编写一个测试HIDL接口的vts(gtest)的testcase
  4. 记录 之 在华为NPU上变更镜像
  5. MySQL速忆笔记(更新中)
  6. 阿里一面 —— 什么是多线程?
  7. 练习一下爬虫,使用Selenium包
  8. 无盘服务器秒卡 锐起0359,锐起无盘系统问题汇集
  9. 正规矩阵 酉矩阵 对角矩阵
  10. 货币代码php,根据符号获取货币代码 - php
  11. SPSS典型相关分析案例
  12. MySQL Binlog 【ROW】和【STATEMENT】选择(转)
  13. 高德地图获取经纬度工具类
  14. c语言四个人中有一个人是小偷,涛涛学BASIC逻辑判断
  15. 机器学习方法三要素理解:模型、策略、算法
  16. 不用PS,也可以轻松组合漂亮的图片—135编辑器拼图教程
  17. Render函数渲染页面
  18. 成功举办!805个团队参赛~
  19. anaconda安装后打不开,卡在loading application
  20. 计算机无法建立word文档,(电脑中右键不能新建word和excel文档怎么办)为何电脑无法新建excle...

热门文章

  1. Android期末复习篇_8章节练习题附答案
  2. 图论基础知识(二) —— 路与连通
  3. 采用汇编语言对c语言函数调用的方法求平均数 汇编实验报告,汇编语言调用c语言完成求平均值.docx...
  4. 最毁三观的明星爆料你知道吗
  5. 【NOIP2014模拟11.2B组】人品问题
  6. SpringMVC 异常处理(简单异常处理器 SimpleMappingExceptionResolver;自定义异常处理需要实现HandlerExceptionResolver接口)
  7. 转载:转载:水平思考:跳出思维定式
  8. oracle 文本下划线_字体真棒文本装饰和链接下划线
  9. Fedora 12下手动安装GT240M显卡驱动,配置compiz,开启桌面效果
  10. 数据分析手把手入门:打造自己的股票分析系统