一、维度:

1、对于数组和series来说,维度就是功能shape返回的结果,shape中返回了几个数字,就是几维。

2、维度指的是样本的数量或特征的数量,一般无特别说明,指的都是特征的数量。

3、对图像来说,维度就是图像中特征向量的个数,特征向量可以理解为坐标轴,一个特征向量代表一维。也就是说,三维及一下的特征矩阵是可以被可视化的,三维以上的则不能。

二、特征矩阵:

特征矩阵特指二维,一定有行列,一个特征是一维。若将特征矩阵用pandas的DataFrame表示,形式如下:

由上面的DataFrame可知,行数代表样本的个数,列数代表特征的个数,特征的个数往往比样本的个数少的多。

三、降维相关

1、降维算法中的降维,指的是降低特征矩阵中特征的数量。

2、sklearn中的降维算法都被包括在模块decomposition中,其本质是矩阵分解,即使特征矩阵的分解。

3、在高维数据中,必然有一些特征是不带有有效信息的(比如噪音),或者有一些特征带的信息和其他特征的信息是重复的(比如一些特征可能会线性相关),因此我们需要既能减少特征的数量,又能保留大部分有效信息,在PCA中,用方差来衡量有效信息的多少,如果一个特征的方差很小,则意味着这个特征上很有可能大量取值都相同(比如大部分都围绕着一个数),那这个特征的取值对样本来说就没有区分度,这种特征就不带有有效信息;相反,如果一个特征的方差很大,则说明这个特征带有大量的有效信息。

4、解释一下为什么特征的方差越小,带有的信息越小:在机器学习中,我认为衡量特征的好坏看的就是该特征与结果的相关性,即特征的取值变化要引起结果的变化,这样的特征才能说对结果有影响,才能分配权重,若一个特征的方差很小,即所有的值都很集中,那么无论这个特征取什么值,都不会对结果带来太大的影响,也就是说有或者没有这个特征,对最终的结果不会带来太大的影响。

5、降维过程中的几个重要的步骤:

四、sklearn中的降维算法

sklearn中的降维算法如下:(用的时候直接调用即可)

其中,主成分分析(PCA)、高级矩阵分解(LDA、NMF)最重要。

五、PCA如何构建主成分?

1、第一个主成分以占数据集中最大可能方差的方式构造,从数学的角度讲,它是最大化方差的线。

2、第二个主成分以相同的方式计算,条件是它与第一个主成分不相关(即垂直),并且它占下一个最高方差。

3、依次类推,一直持续到计算出总共P个主成分,主成分的个数可手动输入,默认为特征矩阵shape中最小的一个数。

六、最大方差理论 

接着五中的第一条,讲一下什么是最大化方差理论

在信号处理中,认为信号具有较大的方差,噪音有较小的方差,信噪比就是信号与噪音的方差比,越大越好。举个例子:

如上图所示,样本在F1方向上的投影方差较大,而在F2上的投影方差较小 ,那么可以认为F2上的投影是由噪音引起的。因此我们认为,最好的k维特征是将n维样本点转换为k维特征后,每一个维度上的样本方差都很大。下面在举一个例子:

如上图所示,有五个点,分别沿着两个方向投影,显然第一个方向投影获得的方差更大,更有相关性。

思考:PCA和特征选择技术都是特征工程的一部分,它们有什么不同?

1、特征工程中有三种方式:特征提取,特征创造和特征选择。

2、特征选择是从已存在的特征中选取携带信息最多的,选完之后的特征依然具有可解释性,我们依然知道这个特征在原数据的哪个位置,代表着原数据上的什么含义。而PCA,是将已存在的特征进行压缩,降维完毕后的特征不是原本的特征矩阵中的任何一个特征,而是通过某些方式组合起来的新特征。通常来说,在新的特征矩阵生成之前,我们无法知晓PCA都建立了怎样的新特征向量,新特征矩阵生成之后也不具有可读性,我们无法判断新特征矩阵的特征是从原数据中的什么特征组合而来,新特征虽然带有原始数据的信息,却已经不是原数据上代表着的含义了。以PCA为代表的降维算法因此是特征创造(feature creation,或feature construction)的一种。可以想见,PCA一般不适用于探索特征和标签之间的关系的模型(如线性回归),因为无法解释的新特征和标签之间的关系不具有意义。在线性回归模型中,我们使用特征选择。

注:博客园链接:https://www.cnblogs.com/wdkblog/p/14180744.html

sklearn中的降维算法(PCA)(原理相关)-1相关推荐

  1. svd降维 python案例_菜菜的机器学习sklearn实战-----sklearn中的降维算法PCA和SVD

    菜菜的机器学习sklearn实战-----sklearn中的降维算法PCA和SVD 概述 从什么叫维度说开来 简单讲,shape中返回了几个数字就是几维. 一张表最多就是一维 当一个数组中存在2张3行 ...

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

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

  3. Sklearn中的降维算法PCA和SVD --from菜菜机器学习

    1.PCA降维概述 在降维过程中,我们会减少特征的数量,这意味着删除数据,数据量变少则表示模型可以获取的信息会变少,模型的表现可能会因此受影响.同时,在高维数据中,必然有一些特征是不带有有效的信息的( ...

  4. 《菜菜的机器学习sklearn课堂》降维算法PCA和SVD

    降维算法PCA和SVD 什么是维度? sklearn中的降维算法 PCA 与 SVD 降维究竟是怎样实现的? PCA重要参数 n_components 迷你案例:高维数据的可视化 附录 PCA参数列表 ...

  5. sklearn实战之降维算法PCA与SVD

    sklearn实战系列: (1) sklearn实战之决策树 (2) sklearn实战之随机森林 (3) sklearn实战之数据预处理与特征工程 (4) sklearn实战之降维算法PCA与SVD ...

  6. 【sklearn学习】降维算法PCA和SVD

    sklearn中的降维算法 主成分分析 独立成分分析 decomposition.PCA class sklearn.decomposition.PCA(n_components=None, *, c ...

  7. sklearn学习 5.降维算法PCA和SVD

    一.概述 **1.从什么叫"维度"说开来 ** 对于数组和Series来说,维度就是功能shape返回的结果,shape中返回了几个数字,就是几维.索引以外的数 据,不分行列的叫一 ...

  8. python pca降维_机器学习之sklearn中的降维算法

    1. PCA与SVD sklearn中降维算法都被包括在模块decomposition中,这个模块本质是一个矩阵分解模块.在过去的十年中,如果要讨论算法进步的先锋,矩阵分解可以说是独树一帜.矩阵分解可 ...

  9. 机器学习-Sklearn-04(降维算法PCA和SVD)

    机器学习-Sklearn-04(降维算法PCA和SVD) 学习04 1 概述 1.1 从什么叫"维度"说开来 对于数组和Series来说,维度就是功能shape返回的结果,shap ...

  10. (sklearn学习笔记)降维算法PCA与SVD的原理及用法

    听了菜菜讲的机器学习PCA及SVD所写 什么是维度? 什么是"降维"? 为什么要"降维"? PCA基本原理 sklearn中用于降维的类PCA 参数解释 n_c ...

最新文章

  1. 如何用Asp判断你的网站的虚拟物理路径
  2. 编写一个程序,打印输入中各个字符出现频度的直方图
  3. 电脑svchost进程占用内存
  4. 为什么redis取出来是null_跳表:为什么Redis一定要用跳表来实现有序集合
  5. 设计进步,记一笔,控制层的代码,他不光控制还要校验数据!以前理解错啦
  6. SAP Cloud for Customer interaction center 呼叫中心集成
  7. svm解决兵王问题_机器学习: svm
  8. java监听焦点事件_【Java Swing公开课|Java Swing焦点事件监听器怎么用,看完这篇文章你一定就会了】- 环球网校...
  9. ssh隧道 mysql,如何通过SSH隧道连接MySQL
  10. vant部署_详解VUE项目中安装和使用vant组件
  11. 一眼中毒!雷军晒小米9官方高清真机图:全息幻彩惊艳无比
  12. js实现kmp算法_搜索算法 与 随机算法 (JS实现)
  13. 初识liux简单命令
  14. Java基础之父类引用指向子类对象
  15. 好妈妈胜过好老师 书摘
  16. 服务器维修预算申请,云服务器费用预算申请范文
  17. 获取微信QQ好友高精地址
  18. Redis删除大Key
  19. 搭载地平线征程2芯片的长安UNI-V正式亮相;美通社再度成为国际消费类电子产品展官方合作伙伴 | 全球TMT...
  20. EAUML日拱一卒-微信小程序实战:位置闹铃 (15)-实现监控点状态迁移功能

热门文章

  1. 第三季-第20课-多线程程序设计
  2. 微服务设计笔记——几种远程过程调用方法
  3. 前后端分离的思考与实践(一)
  4. Java JSON中无分隔符日期字符串处理
  5. 【数据库基础随手记】 Oracle DB及SQL语句的一些细节
  6. 自定义nagios监控mogilefs存储节点脚本
  7. AD OU管理|委派密码重置权限
  8. RichTextBox 中英文混输时,字体样式不同的解决方式
  9. 软件工程导论 四则运算
  10. 10.5~10.6复习与预习的进行