导读:本文用图的形式介绍机器学习中特征降维的基本思想和方法。阅读完本篇文章,您将很容易理解PCA降维的基本思想和方法。

一、为什么要进行特征降维?

在机器学习中,一些数据集的特征数量很多,达到几千维甚至几万维。特征数量太多会导致训练模型所花费时间很长。这就需要对特征进行降维,剔除次要特征,保留主要特征。然后使用主要特征训练分类或聚类模型。

二、什么是特征降维?

特征降维实际上就是把N维空间的样本点投影的一个低维的R维空间(R

图1 二维空间的点投影到一维坐标轴

三、保留或剔除特征的原则是什么?

那么问题来了,降维时,什么样的特征应该被保留,什么样的特征可以剔除掉?这要看特征被投影后的分散程度。从上面的图可以看出,二维空间的点投影到一维的x轴以后,点不那么分散了。这意味着降维后信息有所丢失。一种极端的情况如下图所示,二维平面的点投影到x轴后完全重合,变成了一个点。

图2 二维平面的点投影到x轴后重合

这导致降维后该特征对样本的区分能力完全丧失,因为所有的样本降维后都变成了相同的点。如同生活中我们很难区分一对双胞胎一样,因为他们的身高、长相、穿衣、发型等特征非常相似,几乎完全一样。

反过来说,如果高维空间的样本点投影到低维空间后仍然比较分散,如同第一张图一样,则降维后的特征仍然具有样本区分能力。因此,我们很自然地想到,如果降维后的某个特征是分散的,则它对区分样本是有用的;降维后的样本点越分散,它的样本区分能力越高。因此,将N维空间的样本投影到R维(R

这个分散程度可以用方差来度量。方差越大,样本越分散;反之则越集中。如果降维后的R维特征在各个维度都比较分散,即方差比较大,则这些特征对样本的区分能力就比较好。这就是一个成功的降维。

四、特征降维的本质是什么?

需要说明的是,特征降维不一定是要把N维空间的点投影到其自身的R个坐标轴组成的低维空间上。看下面两张图,图3是把二维平面的点投影的横轴后统计绘制的直方图。图4是投影到斜率k=2的直线上后统计绘制的直方图。

图3 二维平面内的点在x轴投影的直方图

图4 二维平面内的点投影到斜率为2的直线的直方图

显然,图4中投影到斜率k=2的直线上后,投影点更为分散,意味着它对样本的区分能力比投影到横轴的要高。下面的图5中,绘制了把二维平面的点投影到斜率为k=-0.5的直线上统计计算的直方图。可以看出,投影点更集中了。它是三个图中最集中的一个,它的样本区分能力也就最差。

图5 二维平面内的点投影到斜率为-0.5的直线的直方图

因此,对N维特征降维要考虑的是,如何找到一个R维的坐标系,使得在所有R维坐标系中,该坐标系里的投影点最为分散。

因此,从N维空间到R维空间的特征降维,其实就是寻找一个最优坐标系,使得N维空间的样本点投影到R维空间后,投影点在该R维坐标系里最为分散的过程。这就是PCA降维的思想。

需要说明的是,在大于三维的空间中,我们不好说某两个坐标轴垂直。而用正交表示。所谓正交,表示一个坐标轴上的所有点在另外一个坐标轴的投影点全部重合,其实质还相当于二维或三维空间的垂直。另外,为区分原坐标系坐标轴的概念,把任意R个正交的维度称为正交基。可以认为正交基是一个广义的坐标系概念。

因此,N维特征降至R维的本质就是寻找一组R个最优正交基,使得高维空间的样本投影到该组正交基后,投影点是在所有R维正交基里最为分散的。

五、特征降维如何实现?

幸运的是,寻找最优R维正交基的工作已经有人替我们做了。我们只需要把这些方法拿来用就行。例如机器学习库scikit learn里就提供了PCA()类,用户只需指定要降至的维度R,就可以实现PCA降维。下面图6展示了某数据集的20个特征。图7是将其PCA降维至8维后,各个维度投影点的抖动散点图。

图6 某数据集的20个特征抖动散点图

图7 PCA降至8维后的抖动散点图

可以看出,PCA降维后,将投影后特征按照分散程度(方差)进行排序,保留了前8个最分散的特征,而把其余特征剔除。

六、如何绘制倾斜直方图和抖动散点图?

前文我们使用了倾斜直方图来说明将样本点投影到任意斜率直线后,投影点的分散程度。该倾斜直方图的计算和绘制方法是作者自己开发的。使用了Python和Maplotlib库。抖动散点图的绘制使用了seaborn库,感兴趣的朋友可以私信交流。

画出降维后的图片_看了这几张图,让你彻底理解特征降维相关推荐

  1. 画出降维后的图片_机器学习实战基础(二十三):sklearn中的降维算法PCA和SVD(四) PCA与SVD 之 PCA中的SVD...

    PCA中的SVD 1 PCA中的SVD哪里来? 细心的小伙伴可能注意到了,svd_solver是奇异值分解器的意思,为什么PCA算法下面会有有关奇异值分解的参数?不是两种算法么?我们之前曾经提到过,P ...

  2. 画出降维后的图片_有没有人能画出《三体》里太阳系被二维化的概念图?

    按照 @小夫子老男孩 答案中视频的思路,我自己画了几幅星球降维的效果图.[manim]降维打击可视化_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili​www.bilibili.com 视频中把三维 ...

  3. html 怎么显示co2字体,如何通过CAD画出二氧化碳的化学符号,看完你就知道了

    当我们通过CAD软件画出图形后,有时候需要在图形中标注出二氧化碳的化学符号,这个该怎么操作呢?下面就跟大家分享一下通过CAD软件画出二氧化碳化学符号的方法,希望能帮助到大家. 工具/材料 电脑CAD软 ...

  4. 计算机品牌企业关系图,AJ71C24-S3 画出PLC的I/O点与输入/输出设备的连接图或对应关系表, 三菱AJ71C24-S3 - 广州凌控...

    品牌: 三菱 产品名称: 计算机链接模块 型号: AJ71C24-S3 RS-232:1个,RS-422/485:1个. 传输速度:0.3-19.2kpbs. 计算机连接功能. 打印机/周连设备连接用 ...

  5. 看完这5张图!不同类型停车位的停车技巧get!

    看完这5张图!不同类型停车位的停车技巧get! http://auto.sohu.com/20160818/n465319051.shtml 对于很多新手车主来说,最怕的事情应该就是停车了!本来在城市 ...

  6. 用python画多啦爱梦图片_哆啦a梦画画步骤

    哆啦a梦画画大全(共6篇)word绘图哆啦A梦多啦A梦哆啦A梦和大雄闯进中国国画啦,真是毫无违和感啊!哆啦A梦和大雄闯进中国国画啦真是毫无违和感啊!哆啦A梦图片哆啦A梦3D立体拼图哆啦A梦3D立体拼图 ...

  7. 画出的点做交互_设计之下交互设计原型设计之概念设计

    目录 //交互设计// 「设计之下」---交互设计:交互设计师是做什么的?上线的产品中那一块是交互设计师的产物呢? ·项目启动 1.1「设计之下」---交互设计:项目启动之从想法到项目,什么是项目? ...

  8. 画出多项式的硬件编码_信息论与编码习题解答.doc

    信息论与编码习题解答.doc 还剩 61页未读, 继续阅读 下载文档到电脑,马上远离加班熬夜! 亲,很抱歉,此页已超出免费预览范围啦! 如果喜欢就下载吧,价低环保! 内容要点: JPEG-2000 是 ...

  9. ps切图后 JAVA开发_做一个会PS切图的前端开发

    系列链接 切图方法分类 PhotoShop从CS版本演变到现在的CC版本,切图功能发生了比较大的变化,我们可以把PhotoShop CS版本时的切图功能称为传统切图,而从PhotoShop CC版本开 ...

最新文章

  1. 读javascript高级程序设计03-函数表达式、闭包、私有变量
  2. linux 协议栈 位置,[置顶] Linux协议栈代码阅读笔记(一)
  3. JZOJ 5398. 【NOIP2017提高A组模拟10.7】Adore
  4. 将cocos2dx项目从VS移植到Eclipse
  5. Unable to resolve dependency for xxx, Could not resolve project
  6. python3下使用requests实现模拟用户登录 —— 基础篇(马蜂窝)
  7. eos 编译笔记(注意点)
  8. python中str转unicode_python将unicode和str互相转化的实现
  9. Linux C socket 编程之TCP
  10. 16QAM调制的仿真及其Python实现的代码(超级详细)
  11. 2.4g和5g要不要合并_路由器2.4g和5g双频合一好还是分开好
  12. 编写程序,统计某旅馆住宿客人的总数,要求输入客人姓名,输出客人编号(按先后顺序自动生成),姓名以及总人数。...
  13. 【精选】VI手册设计模板合集,附带源文件、预览图、精细分类
  14. Unity表情聊天(NGUI图文混排)
  15. 360P2建html网站,如何自己建网站
  16. 谁说待国企就是养老?前阿里P8总结500页Java成长笔记全网首发!爱了爱了!
  17. WIN10电脑热点无法共享
  18. django框架使用pdf.js 使用说明
  19. 使用阿里云服务器搭建代理服务器
  20. android室内定位传感器辅助pdr jar,基于PDR辅助的视觉室内定位算法的研究

热门文章

  1. MATLAB生成Bad Apple!!(使用MATLAB APP)
  2. 360云盘单个文件5G限制
  3. jQuery遍历数组
  4. java花卉网站计算机毕业设计MyBatis+系统+LW文档+源码+调试部署
  5. 爱奇艺Android客户端启动优化与分析(转载)
  6. tracert与traceroute命令详解
  7. vue中静态资源文件中的图片element.style.backgroundImage设置url无效问题
  8. WebGIS支持国内各地方坐标系数据展示的方案
  9. Layer.tips
  10. linux之输出命令