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. 【Azure Developer】记录一次使用Java Azure Key Vault Secret示例代码生成的Jar包,单独运行出现 no main manifest attribute, in target/demo-1.0-SNAPSHOT.jar 错误消息

    问题描述 创建一个Java Console程序,用于使用Azure Key Vault Secret.在VS Code中能正常Debug,但是通过mvn clean package打包为jar文件后, ...

  2. PTA(BasicLevel)-1094 谷歌的招聘

    一.问题定义 2004 年 7 月,谷歌在硅谷的 101 号公路边竖立了一块巨大的广告牌(如下图)用于招聘.内容超级简单,就是一个以 .com 结尾的网址, 而前面的网址是一个 10 位素数,这个素数 ...

  3. throws关键字_异常处理的第一种方式(交给别人处理)和try_catch_异常处理的第二种方式(自己处理)

    throws关键字:异常处理的第一种方式,交给别人处理 作用: 当方法内部抛出异常对象的时候,那么我们就必须处理这个异常对象 可以使用throws关键字处理异常对象, 会把异常对象声明抛出给方法的调用 ...

  4. poste.io自建邮件服务器

    随便说些什么 腾讯企业邮新增账号不方便,这里的主要是指不经过手机验证或微信扫码的,虽然提供了最多3个"业务邮箱",很明显不够用. EwoMail,装没装起来我不记得了,反正是不好用 ...

  5. Kubuntu安装字体

    打开设置,选择字体-字体管理器,再把网上下载好的ttf字体包解压,选择安装即可.(建议选为系统字体) Kubuntu20.04LTS

  6. 使用codeblocks创建新项目

    很多同学在学习C或C++版的数据结构的时候,自己写项目是一个不错的锻炼方法,而用codeblocks写项目的时候我们就会遇到很多问题了,比如说: 1.如何建立新项目. 2.如何建立头文件和主函数文件. ...

  7. odoo14 重启服务后权限不见了

    1 Odoo14权限更新有两个地方: 2 一.你在编写xml权限记录的时候没有将noupdate设置为'1'这样导致你每次升级模块,你的权限都会重置一遍. 3 二.你在运行odoo-bin服务的时候, ...

  8. JavaScript的入门

    书写的三种方式 1. 书写在script标签里面(一般会用到的) 2.书写在js文件里面(推荐)定义一个js文件(xxx.js) 3. 书写对应的事件属性里面(比较少用) 初体验 1. 目前js的代码 ...

  9. io几乎没有,iowait却很高

    遇到如下一种情况: top - 09:43:03 up 2 days, 22:48, 9 users, load average: 133.19, 132.60, 132.32 Tasks: 767 ...

  10. CF593D Happy Tree Party(不用树剖)

    题面 题解 我们发现,对于除法有效的xi最小为2,yi最多除log次就会变成0,所以我们可以每次找路径上下一个>=2的xi,暴力除,当发现y=0时就停止 于是我们维护每个点向上走一直走到根最近的 ...