目录

0. 前言

1. 主成分分析(PCA)

2. 主成分分析PCA的流程

3. 低维空间维度的选择

4. 主成分分析使用方式


学习完吴恩达老师机器学习课程的降维,简单的做个笔记。文中部分描述属于个人消化后的理解,仅供参考。

如果这篇文章对你有一点小小的帮助,请给个关注喔~我会非常开心的~

0. 前言

数据的特征数量,又称作向量的维度。降维(dimensionality reduction)是通过一些方法,减少数据的特征数量,以降低维度,通常采用主成分分析PCA(Principal Component Analysis)。降维的作用有:

  • 数据压缩,减小占用的存储空间
  • 加快算法的计算速度
  • 低维平面可以可视化数据

初始作如下定义:

  •  --- 第  个数据的第  个向量
  •  --- 向量
  •  --- 高维向量映射到低维平面后,在高维空间中的位置
  •  --- 高维向量映射到低维平面后,在低维空间中的位置

1. 主成分分析(PCA)

主成分分析PCA是寻找一个低维平面,使得各个数据点到平面的投影距离最小,换句话说,就是寻找  个向量,作为子空间,将数据映射到这个子空间上,则数据的维度转换为  

如下图所示(图源:吴恩达机器学习),三维空间的数据几乎可看作分布在一个斜面上,则可在这个斜面上建立一个二维的平面,将数据映射上去,转换为二维空间。

2. 主成分分析PCA的流程

主成分分析PCA的流程主要由两部分组成:

  1. 数据预处理(均值归一化)
  2. 计算低维空间向量(计算协方差  奇异值分解  计算低维矩阵  转换为低维数据)

数据预处理主要是进行均值归一化,对每个特征值进行如下变化:

均值归一化可使得特征的均值为  ,其中  为特征缩放(取值范围的最大值减去最小值,使之取值范围接近  )。

计算低维空间向量,首先计算数据的协方差矩阵,采用如下公式,注意  是一个矩阵

进行奇异值分解,在matlab中,可有如下公式:

其中  是一个  的矩阵, ,取前  列,得到  ,为一个  的矩阵,接着:

将每一个向量  转换为  , 为  的向量,达到了降维的目的。

注:最后一步转换的  是没有偏置  的。

3. 低维空间维度的选择

我们已知主成分分析是要寻找一个低维平面,使得各个数据点到这个平面的距离最小,这个距离可采用平均投影误差的平方(average squared projection error)量化,定义如下:

其中, 是在高维空间中映射到低维平面上的近似点(维度仍然是高维,与  不同,  的维度是低维),

我们需寻找满足下式的最小的  :

其中,右侧的数值可根据实际情况调整, 为保证了  的方差。

此外,还有一种计算方法,在奇异值分解  中, ,满足下式:

只需求解最小的  ,满足下式即可:

4. 主成分分析使用方式

  • 用主成分分析PCA防止过拟合是不适合的,过拟合应该采用正则化
  • 在项目中,应首先试着不采用PCA,若达不到预想的想过,则可采用PCA试试看

如果这篇文章对你有一点小小的帮助,请给个关注喔~我会非常开心的~

吴恩达机器学习(十二)主成分分析(降维、PCA)相关推荐

  1. 吴恩达机器学习作业7 - K-means和PCA主成分分析(Python实现)

    吴恩达机器学习作业7 - K-means和PCA主成分分析(Python实现) Introduction 在本实验中,将实现K-means聚类算法,并将其应用于图像压缩.在第二部分实验中,将使用主成分 ...

  2. 7. 吴恩达机器学习课程-作业7-Kmeans and PCA

    fork了别人的项目,自己重新填写,我的代码如下 https://gitee.com/fakerlove/machine-learning/tree/master/code 代码原链接 文章目录 7. ...

  3. 吴恩达机器学习(二十六) 数据压缩与可视化、PCA

    文章目录 1.数据压缩 2.数据可视化 3.PCA 1.数据压缩   降维也是一种无监督学习的方法,降维并不需要使用数据的标签.   降维的其中一个目的是数据压缩,数据压缩不仅能够压缩数据,使用较少的 ...

  4. 吴恩达机器学习(二十二)—— 大规模机器学习

    吴恩达机器学习系列内容的学习目录→\rightarrow→吴恩达机器学习系列内容汇总. 1. 大型数据集的学习 2. 随机梯度下降 3. 小批量梯度下降 4. 随机梯度下降收敛 5. 在线学习 6. ...

  5. 西瓜书+实战+吴恩达机器学习(二)机器学习基础(偏差、方差、调试模型技巧)

    文章目录 0. 前言 1. 偏差方差的解决方法 2. 高偏差高方差的学习曲线 3. 调试模型技巧 如果这篇文章对你有一点小小的帮助,请给个关注,点个赞喔,我会非常开心的~ 0. 前言 泛化误差可分解为 ...

  6. 吴恩达机器学习(二)多元线性回归(假设、代价、梯度、特征缩放、多项式)

    目录 0. 前言 1. 假设函数(Hypothesis) 2. 代价函数(Cost Function) 3. 梯度下降(Gradient Descent) 4. 特征缩放(Feature Scalin ...

  7. 吴恩达机器学习(二)监督学习/无监督学习

    文章目录 1.监督学习 2.无监督学习 1.监督学习 定义: 根据已有的数据集,知道输入和输出结果之间的关系.根据这种已知的关系,训练得到一个最优的模型.也就是说,在监督学习中训练数据既有特征(fea ...

  8. 吴恩达机器学习(二十九)大规模机器学习

    目录 1.随机梯度下降 2.Mini-Batch梯度下降 3.随机梯度下降收敛 4.减少映射与数据并行 1.随机梯度下降   对很多机器学习算法,例如线性回归.逻辑回归和神经网络,推导算法的方法是提出 ...

  9. 吴恩达机器学习(二十八)推荐系统

    文章目录 前言 1.基于内容的推荐算法 2.协同过滤 2.协同过滤算法 3.矢量化:低秩矩阵分解 4.实施细节:均值规范化 前言   机器学习领域的一个伟大思想:对于某些问题,有一些算法可以自动地学习 ...

  10. 吴恩达机器学习(二十二)精确率和召回率

    当面对一个机器学习问题时,有很多不同的思想来改进学习算法. 通过一个简单的算法来快速实现它,然后使用交叉验证集来测试数据: 画出相应的学习曲线: 误差分析:   机器学习分类模型存在一种情况叫偏斜类. ...

最新文章

  1. 《图像处理实例》之 曲线之间距离求解
  2. tomcat与jvm的关系分析
  3. Intel Realsense D435 python wrapper pyrealsense.pipeline类
  4. 添加库路经 linux,linux下的静态库与动态库
  5. 【洛谷3768】简单的数学题【莫比乌斯反演】【杜教筛】【小学奥数】
  6. 软件项目管理第三课—如何应对投标书的软件功能报价
  7. BitCome比特彗星v1.82豪华版(bt下载)
  8. php分块查找,索引查找(索引查找、分块查找) C语言实现
  9. 科技行业的起步时代已结束
  10. Struts,Hibernate,Spring经典面试题收藏(转)
  11. 蚂蚁金服做区块链:我们绝不发空气币,要做就服务民生!
  12. centos 7 网络DNS设置的相关配置文件配置
  13. dede WAP 版 限制标题title的字数的方法
  14. vs使用快捷键注销多行
  15. Unity Input键盘输入无反应
  16. 为什么要ROS2而不是对ROS1修修补补?
  17. SparkStreaming动态读取配置文件
  18. Android 解决65536
  19. L - Ray in the tube Gym - 101911L (暴力)
  20. 猪皮做成眼角膜为盲人恢复视力,不用等人捐献了

热门文章

  1. Windows 8及以上系统安装好SQL Server 2008之后找不到SQL Server配置管理器的问题
  2. Smart ORM v0.3发布(完全面向对象的轻量级ORM工具)
  3. 支付宝小程序封装请求
  4. ST算法 Sliding Window algorithm template
  5. 记一次mysql千万订单汇总查询优化
  6. memcached在大负载高并发网站上的应用(一)
  7. Replication的犄角旮旯(二)--寻找订阅端丢失的记录
  8. 对bmp文件内存压缩 与 解压缩
  9. 【实践】阿里妈妈流量反作弊算法实践
  10. python运行程序的时间计算