[comment]: # 机器学习实战 - 读书笔记(13) - 利用PCA来简化数据

前言

最近在看Peter Harrington写的“机器学习实战”,这是我的学习心得,这次是第13章 - 利用PCA来简化数据。

这里介绍,机器学习中的降维技术,可简化样品数据。

降维技术的用途

  • 使得数据集更易使用;
  • 降低很多算法的计算开销;
  • 去除噪声;
  • 使得结果易懂。

基本概念

  • 降维(dimensionality reduction)。

    如果样本数据的特征维度很大,会使得难以分析和理解。我们可以通过降维技术减少维度。

    降维技术并不是将影响少的特征去掉,而是将样本数据集转换成一个低维度的数据集。

  • 协方差(covariance)

    协方差用于衡量两个变量的总体误差.

  • 协方差矩阵(covariance matrix)

    对于一个N维的样品数据,\(X=[x_1, x_2, ..., x_n]^T\),其协方差矩阵是一个n * n的matrix,

    元素\(C_{ij}\)是\(x_i\)和\(x_j\)的协方差。

  • 协方差矩阵的特征值(Eigenvalues)和特征向量(eigenvectors)

    特征值:表示特征向量对应列的权重,越大说明特征向量对应列的影响越大。

    特征向量:是一个n * n 的matrix,n是样本数据的特征数。用于降维转换。

    降维转换过程

在特征向量中,选出特征值最大的m列,形成一个m * n的降维向量矩阵。
对(去除平均值的)样本数据的每行数据,和降维矩阵相乘,得到一个m维的**降维数据**。
重构的数据 = **降维数据** * **降维矩阵的转置** + 平均值

核心算法解释

主成分分析(Principal Component Analysis,PCA)

  • 基本原理

    线性代数的理论:

    • 对一个n维的样本数据,通过其协方差矩阵,可以计算出特征值和特征向量。
    • 选择特征值最大的前m项,可以将样本数据和特征向量进行计算,得到一个m维的降维数据集。
  • 输入
    • 数据集
    • 应用的Feature数
  • 输出
    • 降维数据集
    • 重构的数据集(可用于与原数据集比较)
  • 逻辑过程
对数据集的每个Feature的数据,减去Feature的平均值。
计算协方差矩阵
计算协方差矩阵的特征值和特征向量
将特征值从大到小排序
保留最上面的N个特征向量
使用前面提到的降维转换过程,转换数据集为降维数据集和重构的数据集

核心公式

协方差(covariance)

协方差用于衡量两个变量的总体误差.

\[\begin{align}
cov(X, Y) & = E[(X-E(X))(Y-E(Y))] \\
& = E[XY] - E[X]E[Y]
\end{align} \\
where \\
\qquad E(X): mean(X)
\]

Matrix乘法运算

\[a * b = [a_{11}b_{11} + a_{12}b_{21} + ... + a_{1n}b_{n1}, ..., a_{11}b_{1m} + a_{12}b_{2m} + ... + a_{1n}b_{nm}] \\
a * b^T = [a_{11}b_{11} + a_{12}b_{12} + ... + a_{1n}b_{1n}, ..., a_{11}b_{1m} + a_{12}b_{2m} + ... + a_{1n}b_{nm}] \\
where \\
\qquad \text{a: a is a n-dimensions vector.} \\
\qquad \text{b: b is a m * n of matrix).}
\]

参考

机器学习实战 - 读书笔记(13) - 利用PCA来简化数据的更多相关文章

  1. 机器学习实战 - 读书笔记(07) - 利用AdaBoost元算法提高分类性能

    前言 最近在看Peter Harrington写的"机器学习实战",这是我的学习笔记,这次是第7章 - 利用AdaBoost元算法提高分类性能. 核心思想 在使用某个特定的算法是, ...

  2. 【转载】 机器学习实战 - 读书笔记(07) - 利用AdaBoost元算法提高分类性能

    原文地址: https://www.cnblogs.com/steven-yang/p/5686473.html ------------------------------------------- ...

  3. 机器学习实战 - 读书笔记(14) - 利用SVD简化数据

    前言 最近在看Peter Harrington写的"机器学习实战",这是我的学习心得,这次是第14章 - 利用SVD简化数据. 这里介绍,机器学习中的降维技术,可简化样品数据. 基 ...

  4. 【机器学习实战】第13章 利用 PCA 来简化数据

    第13章 利用 PCA 来简化数据 降维技术 场景 我们正通过电视观看体育比赛,在电视的显示器上有一个球. 显示器大概包含了100万像素点,而球则可能是由较少的像素点组成,例如说一千个像素点. 人们实 ...

  5. 机器学习实战 - 读书笔记(11) - 使用Apriori算法进行关联分析

    前言 最近在看Peter Harrington写的"机器学习实战",这是我的学习心得,这次是第11章 - 使用Apriori算法进行关联分析. 基本概念 关联分析(associat ...

  6. 机器学习实战 - 读书笔记(12) - 使用FP-growth算法来高效发现频繁项集

    前言 最近在看Peter Harrington写的"机器学习实战",这是我的学习心得,这次是第12章 - 使用FP-growth算法来高效发现频繁项集. 基本概念 FP-growt ...

  7. 《机器学习实战》学习笔记第十三章 —— 利用PCA来简化数据

    相关博文: 吴恩达机器学习笔记(八) —— 降维与主成分分析法(PCA) 主成分分析(PCA)的推导与解释 主要内容: 一.向量內积的几何意义 二.基的变换 三.协方差矩阵 四.PCA求解 一.向量內 ...

  8. 机器学习实战 - 读书笔记(06) – SVM支持向量机

    前言 最近在看Peter Harrington写的"机器学习实战",这是我的学习笔记,这次是第6章:SVM 支持向量机. 支持向量机不是很好被理解,主要是因为里面涉及到了许多数学知 ...

  9. 机器学习实战读书笔记(二)k-近邻算法

    knn算法: 1.优点:精度高.对异常值不敏感.无数据输入假定 2.缺点:计算复杂度高.空间复杂度高. 3.适用数据范围:数值型和标称型. 一般流程: 1.收集数据 2.准备数据 3.分析数据 4.训 ...

随机推荐

  1. fast-framework – 基于 JDK 8 实现的 Java Web MVC 框架

    摘要: 原创出处:www.bysocket.com 泥瓦匠BYSocket 希望转载,保留摘要,谢谢! fast-framework 轻量级 Java Web 框架 – https://github. ...

  2. 兼容IE与firefox的css 线性渐变(linear-gradient)

    IE系列 filter: progid:DXImageTransform.Microsoft.Gradient(startColorStr='#FF0000',endColorStr='#F9F900 ...

  3. JSONP跨域请求数据报错 “Unexpected token :”的解决办法

    原文  http://www.cnphp6.com/archives/65409 Jquery使用ajax方法实现jsonp跨域请求数据的时候报错 “Uncaught SyntaxError: Une ...

  4. CentOS 6 安装 python 2.7 和 mod_wsgi 运行pyocr[tesseract]

    最新版本的tesseract-ocr 3.0.4 需要运行于python2.7版本以上,因此需要升级系统中默认的2.6版本python及Mod_WSGI 1,下载安装Python-2.7.10 > ...

  5. EPLAN 软件平台中的词“点“大全

    1. 中断点(Interruption Point):     在原理图绘制时,如果当前绘图区域的空间不足,需要转到其它页面继续绘制,而这两页之间存在连续的"信息流"时,可以使用& ...

  6. [LeetCode] Additive Number

    Af first I read the title as "Addictive Number". Anyway, this problem can be solved elegan ...

  7. 牛顿方法(Newton-Raphson Method)

    本博客已经迁往http://www.kemaswill.com/, 博客园这边也会继续更新, 欢迎关注~ 牛顿方法是一种求解等式的非常有效的数值分析方法. 1.  牛顿方法 假设\(x_0\)是等式的 ...

  8. MemSQL start[c]up Round 2 - online version C. More Reclamation(博弈)

    题目大意 额,写来写去,我还是直接说抽象之后的题目大意吧: 有一个 r*2 的矩形,两个人轮流的在矩形上面减去一个 1*1 的小正方形,要求在减的过程中,不能使矩形“断开”,也就是说,如果一个人减去了 ...

  9. 视觉SLAM中的数学基础 第四篇 李群与李代数(2)

    前言 理解李群与李代数,是理解许多SLAM中关键问题的基础.本讲我们继续介绍李群李代数的相关知识,重点放在李群李代数的微积分上,这对解决姿态估计问题具有重要意义. 回顾 为了描述三维空间里的运动,我们 ...

  10. 再说 c++11 内存模型

    可见性与乱序 在说到内存模型相关的东西时,我们常常会说到两个名词:乱序与可见性,且两者经常交错着使用,容易给人错觉仿佛是两个不同的东西,其实不是这样,他们只是从不同的角度来描述一个事情,本质是相同的. ...