PCA principal component analysis

主成分分析是一个快速灵活的数据降维无监督方法,

可视化一个包含200个数据点的二维数据集

x 和 y有线性关系,无监督学习希望探索x值和y值之间的相关性

在主成分分析中。一种量化俩变量之间关系的方法 是在数据中找到一组主轴,并用这些主轴来描述 数据集。

利用PCA评估器

该拟合从数据中心学习到了一些指标,其中最重要的是 “成分” 和 “可解释差异”



在数据图上将这些指标以向量形式画出来。

成分 定义向量的方向。

可解释差异 作为向量的平方长度。

这些向量表示数据主轴,箭头长度表示输入数据中各个轴的 重要程度,衡量了数据投影到主轴上的方差的大小。

每个数据点在主轴上的投影就是数据 的主成分

这种从数据的坐标轴变换到主轴的编号 是一个 仿射变换,

仿射变换包含 平移 translation 旋转 rotation 均匀缩放 uniform scaling

用PCA降维

用PCA降为意味着去除一个 或 多个 最小主成分,从而得到一个更低维度且保留最大数据方差的数据投影。

PCA降维示例:

变换的数据投影到一个单一维度。

把降维的数据进行逆变换 ,来和原始数据对比



可以看出,沿着最不重要的主轴的信息都被去除了,仅留下了含有最高方差值得数据成分。

这种降维后的数据集在某种程度上足以体现数据中最主要的关系

用PCA作数据可视化:手写数字

降维的有用之处在俩个维度时不明显。 当数据维度很高是,价值就有所体现。

导入数据:



该数据包含 8* 8 像素的图像。是64维的。 将这些数据投影到一个可操作的维度。 二维

画出每个点的前俩个主成分,

成分的含义:

消减的维度有什么含义?

每幅图像 由一组 64像素值 的 集合定义。将其称为 向量x

x=[x1,x2,x3⋯x64]

为了构建一幅图像,将向量的每个元素与对应描述的像素(单位列向量)相乘,然后将这些结果加和就是这幅图像

image(x)=x1⋅(pixel 1)+x2⋅(pixel 2)+x3⋅(pixel 3)⋯x64⋅(pixel 64)

我们可以将降维理解为删除绝大部分元素,保留少量元素的基向量,basis vector .

仅使用前8个像素,我们会得到数据的8维投影,但是它并不能反映整幅图像。

上面一行是单独的像素信息,下面一行是这些像素值的累加,累加值最终构成这幅图像。

但是逐像素表示方法并不是选择基向量的唯一方式,我们可以使用其他基函数,这些基函数包含预定义的每个像素的贡献。

PCA可以被认为 是选择最优基函数的过程,这样将这些基函数中前几个加起来就足以重构数据中 的大部分元素。

用低维形式表现数据的主成分,

用均值加上前8个PCA基函数重构数字的效果。

Python数据科学手册-机器学习: 主成分分析的更多相关文章

  1. Python数据科学手册-机器学习:朴素贝叶斯分类

    朴素贝叶斯模型 朴素贝叶斯模型是一组非常简单快速的分类方法,通常适用于维度非常高的数据集.因为运行速度快,可调参数少.是一个快速粗糙的分类基本方案. naive Bayes classifiers 贝 ...

  2. Python数据科学手册-机器学习介绍

    机器学习分为俩类: 有监督学习 supervised learning 和 无监督学习 unsupervised learning 有监督学习: 对数据的若干特征与若干标签之间 的关联性 进行建模的过 ...

  3. Python数据科学手册-机器学习: k-means聚类/高斯混合模型

    前面学习的无监督学习模型:降维 另一种无监督学习模型:聚类算法. 聚类算法直接冲数据的内在性质中学习最优的划分结果或者确定离散标签类型. 最简单最容易理解的聚类算法可能是 k-means聚类算法了. ...

  4. Python数据科学手册-机器学习: 流形学习

    PCA对非线性的数据集处理效果不太好. 另一种方法 流形学习 manifold learning 是一种无监督评估器,试图将一个低维度流形嵌入到一个高纬度 空间来描述数据集 . 类似 一张纸 (二维) ...

  5. Python数据科学手册-机器学习: 决策树与随机森林

    无参数 算法 随机森林 随机森林是一种集成方法,集成多个比较简单的评估器形成累计效果. 导入标准程序库 随机森林的诱因: 决策树 随机森林是建立在决策树 基础上 的集成学习器 建一颗决策树 二叉决策树 ...

  6. Python数据科学手册-机器学习: 支持向量机

    support vector machine SVM 是非常强大. 灵活的有监督学习算法, 可以用于分类和回归. 贝叶斯分类器,对每个类进行了随机分布的假设,用生成的模型估计 新数据点 的标签.是属于 ...

  7. Python数据科学手册-机器学习:线性回归

    朴素贝叶斯是解决分类任务的好起点,线性回归是解决回归任务的好起点. 简单线性回归 将数据拟合成一条直线. y = ax + b , a 是斜率, b是直线截距 原始数据如下: 使用LinearRegr ...

  8. Python数据科学手册-机器学习之特征工程

    特征工程常见示例: 分类数据.文本.图像. 还有提高模型复杂度的 衍生特征 和 处理 缺失数据的填充 方法.这个过程被叫做向量化.把任意格式的数据 转换成具有良好特性的向量形式. 分类特征 比如房屋数 ...

  9. Python数据科学手册-机器学习之模型验证

    模型验证 model validation 就是在选择 模型 和 超参数 之后.通过对训练数据进行学习.对比模型对 已知 数据的预测值和实际值 的差异. 错误的模型验证方法. 用同一套数据训练 和 评 ...

随机推荐

  1. Redis如何实现多可用区?

    在如今的业务场景下,高可用性要求越来越高,核心业务跨可用区已然成为标配.腾讯云数据库高级工程师刘家文结合腾讯云数据库的内核实战经验,给大家分享Redis是如何实现多可用区,内容包含Redis主从版.集 ...

  2. RapidEye快鸟、SPOT卫星遥感影像数据

    ​目前地理遥感生态网平台已发布高分辨率卫星遥感影像数据. 数据样例:百度云下载链接:https://pan.baidu.com/s/17ofPwpDM3OCHnE-LuhvUp 提取码:i0m4   ...

  3. 【小程序自动化Minium】三、元素定位- WXSS 选择器的使用

    最近更新略疲,主要是业余时间多了几个变化.比如忙活自己的模拟赛车驾舱升级.还跟朋友筹备一个小程序项目.另外早上的时间留给背单词了... 上一章中讲到Page接口的get_element()与get_e ...

  4. 4-1 Spring框架基础知识

    Spring框架基础知识 1.Spring 框架作用 主要解决了创建对象和管理对象的问题. 自动装配机制 2.Spring 框架 (Spring容器,JavaBean容器,Bean容器,Spring容 ...

  5. 总结下对我对于CSS中BFC的认知

    首先第一个,什么是BFC? BFC的全称叫Block  Formatting  Context   (块级格式化上下文)BFC是css中隐含属性,开启BFC后元素会变成一个独立的布局环. 简单来说,它 ...

  6. Linux—文件系统结构

    1.文件目录结构 /:是Linux系统的根目录 /bin:存放用户经常使用的命令 /boot:启动加载程序的静态文件 /dev:设备文件目录,不能单独分区 /etc:系统配置文件目录 /home:普通 ...

  7. 二位数组——扩展:冒泡排序、Arrays类

    1.冒泡排序 速记口诀(升序)   n个数字来排队:两两相比小靠前:外层循环n-1:内层循环n-i-1. 示例:定义一个数组,用冒泡排序将数组进行升序排序 关键代码: 输出结果: 2.Arrays 类 ...

  8. 用JavaScript写输入框的校验

    //Script function cheack(){ var kong = ''//获取值不能放外面,不然一直为空 kong = document.getElementById('name').va ...

  9. 搞定面试官 - MySQL 中你知道如何计算一个索引的长度嘛?

    大家好,我是程序员啊粥. 今天给大家分享一个我遇到过的比较少见的面试题,那就是 MySQL 中如何计算一个索引的长度. 说实话,我第一次遇到这个问题的时候想当然的以为索引长度就是我们建表时定义的字段长 ...

  10. LuoguP1016 旅行家的预算 (贪心)

    胡一个错误代码都能有75pts 忘了怎么手写deque其实是懒 #include <cstdio> #include <iostream> #include <cstri ...