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. 解决Anaconda出现Solving environment:failed问题之一

    解决Anaconda出现Solving environment:failed问题之一 刚开始输入 conda update conda 后显示 Solving environment:failed 上 ...

  2. 8.4 苹果macOS电脑如何安装Java开发环境(JDK)

    和Windows电脑安装差不多. 下载 来到JDK官方下载界面,点击Java SE 8(简称JDK 8)后面的JDK下载,来到该界面,先同意协议,然后下载对应平台的JDK,我们这里下载Mac OS X ...

  3. NC202492 仓库选址

    NC202492 仓库选址 题目 题目描述 牛能在某小城有了固定的需求,为了节省送货的费用,他决定在小城里建一个仓库,但是他不知道选在哪里,可以使得花费最小. 给出一个 \(m \times n\) ...

  4. 详解HashMap源码解析(上)

    jdk版本:1.8 数据结构: HashMap的底层主要基于数组+链表/红黑树实现,数组优点就是查询块,HashMap通过计算hash码获取到数组的下标来查询数据.同样也可以通过hash码得到数组下标 ...

  5. labview从入门到出家1--第一个加法程序

    概述: Labview在众多编程语言中排名靠后,显然在当今互联网,物联网时代并非主流语言.但是俗话说行行 出状元,即便不是立身于某个主流的领域,用好了依旧可以独领风骚,而且Labview对于硬件出身的 ...

  6. SQLZOO练习5--join(表的连接)

    game表: id mdate stadium team1 team2 1001 8 June 2012 National Stadium, Warsaw POL GRE 1002 8 June 20 ...

  7. 【CSP-J 2021】总结

    前言:程不在长,能过则行.码不在多,无虫则灵.斯是信竞,惟吾爆零.线段维护快,树状跳的勤.数论剩余系,图论前向星.无数竞之推理,无物竞之劳形.大佬楼教主,超奆姚期智,神犇云:您太强了. 早上5:00就 ...

  8. Hadoop集群搭建(完全分布式版本) VMWARE虚拟机

    Hadoop集群搭建(完全分布式版本) VMWARE虚拟机 一.准备工作 三台虚拟机:master.node1.node2 时间同步 ntpdate ntp.aliyun.com 调整时区 cp /u ...

  9. C# 虚方法、抽象方法

    一.虚方法(virtual) 作用:当有一个定义在类中的函数需要在继承类中实现时,可以使用虚方法. 示例: class Person { public virtual void XXX() { Con ...

  10. OC高仿iOS网易云音乐AFNetworking+SDWebImage+MJRefresh+MVC+MVVM

    效果 因为OC版本大部分截图和Swift版本一样,所以就不再另外截图了. 列文章目录 因为目录比较多,每次更新这里比较麻烦,所以推荐点击到主页,然后查看iOS云音乐专栏. 目简介 这是一个使用OC语言 ...