sklearn学习笔记3:降维算法
sklearn中降维算法都被包括在模块decomposition中,这个模块本质是一个矩阵分解模块
- PCA使用的信息量衡量指标,就是样本方差,又称可解释性方差,方差越大,特征所带信息量就越多
- PCA与特征选择有什么不同?特征选择是从已存在的特征中选取携带信息最多的,选完之后的特征依然具有可解释性,我们依然知道这个特征在原数据的哪个位置,代表着原数据上的什么含义。而PCA是将已存在的特征进行压缩,降维完毕后的特征不是原本的特征矩阵中的任何一个特征,而是通过某些方式组合起来的新特征。通常来说,在新的特征矩阵生成之前,我们无法知晓PCA都建立了怎样的新特征向量,新特征矩阵生成之后也不具有可读性。以PCA为代表的降维算法是特征创造的一种
- PCA一般不适用于探索特征与标签之间的关系的模型(如线性回归),因为无法解释的新特征和标签之间的关系不具有意义。在线性回归模型中,我们使用特征选择
1.重要参数n_components
- 是我们降维后需要的维度,即降维后需要保留的特征数量,降维流程中第二步里需要确认的k值,一般输入[0,min(X.shape)]范围中的整数
- 如果我们希望可视化一组数据来观察数据分布,往往将数据降到三维以下,很多时候是二维,即n_component的取值为2
画出累计可解释方差贡献率曲线:
- 累计可解释方差贡献率曲线是一条以降维后保留的特征个数为横坐标,降维后新特征矩阵捕捉到的可解释方差贡献率为纵坐标的曲线,能够帮助我们决定n_components最好的取值
最大似然估计自选超参数:
- 输入“mle”作为n_components的参数输入
按信息量占比选超参数:
- 输入[0,1]之间的浮点数,并且让参数svd_solver = ‘full’,表示希望降维后的总解释性方差占比大于n_components指定的百分比,即是说,希望保留百分之多少的信息量
2.PCA中的SVD
- SVD可以跳过数学神秘的宇宙,不计算协方差矩阵,直接找出一个新特征向量组成的n维空间
- 也就是说,奇异值分解可以不计算协方差矩阵等结构复杂计算冗长的矩阵,就直接求出新特征空间和降维后的特征矩阵
重要参数svd_solver与random_state
- 参数svd_solver是在降维过程中,用来控制矩阵分解的一些细节的参数,有四种模式可选:auto,full,arpack,randomized,默认auto
- auto:基于X.shape和n_components的默认策略来选择分解器,如果输入数据的尺寸大于500*500且要提取的特征数小于数据最小维度min(X.shape)的80%,就启用效率更高的randomized方法。否则,精确完整的SVD将被计算,截断将会在矩阵被分解完后有选择地发生
- full:适合数据量比较适中,计算时间充足的情况
- arpack:可以加快运算速度,适合特征矩阵很大的时候,但一般用于特征矩阵为系数矩阵的情况
- randomized:适合特征矩阵巨大,计算量庞大的情况
- 参数random_state是在参数svd_solver的值为“arpack”或者“randomized”的时候生效,可以控制这两种SVD模式中的随机模式
重要属性components_
- 通常来说,在新的特征矩阵生成之前,我们无法知晓PCA都建立了怎样的新特征向量,新特征矩阵生成之后也不具有可读性
重要接口inverse_transform
- 可以将归一化,标准化,甚至做过哑变量的特征矩阵还原到原始数据中的特征矩阵
- inverse_transform的功能是基于数据进行升维,将数据重新映射到原数据所在的特征空间中,而并非恢复所有原有的数据,所以,降维不是完全可逆的
sklearn学习笔记3:降维算法相关推荐
- (sklearn学习笔记)降维算法PCA与SVD的原理及用法
听了菜菜讲的机器学习PCA及SVD所写 什么是维度? 什么是"降维"? 为什么要"降维"? PCA基本原理 sklearn中用于降维的类PCA 参数解释 n_c ...
- SKlearn学习笔记——XGBoost
SKlearn学习笔记--XGBoost 1. 概述 1.1 xgboost库与XGB的sklearn API 1.2 XGBoost的三大板块 2. 梯度提升树 2.1 提升集成算法:重要参数 n_ ...
- R语言与机器学习学习笔记(分类算法)
转载自:http://www.itongji.cn/article/0P534092014.html 人工神经网络(ANN),简称神经网络,是一种模仿生物神经网络的结构和功能的数学模型或计算模型.神经 ...
- 《基于张量网络的机器学习入门》学习笔记8(Shor算法)
<基于张量网络的机器学习入门>学习笔记8 Shor算法 来源 Shor算法的大致流程 因数分解 周期求取与量子傅里叶变换(QFT) Shor算法 来源 1994 1994 1994年,应用 ...
- 【学习笔记】【算法】【智能优化】粒子群优化(PSO)
[学习笔记][算法][智能优化]粒子群优化(PSO) 文章目录 [学习笔记][算法][智能优化]粒子群优化(PSO) 1 算法背景 1.1 背景 1.2 基础知识 2 算法原理 2.1 基本原理 2. ...
- 【学习笔记】网络流算法简单入门
[学习笔记]网络流算法简单入门 [大前言] 网络流是一种神奇的问题,在不同的题中你会发现各种各样的神仙操作. 而且从理论上讲,网络流可以处理所有二分图问题. 二分图和网络流的难度都在于问题建模,一般不 ...
- 点云学习笔记11——VoxelNet算法+代码运行
点云学习笔记11--VoxelNet算法+代码运行 一.算法分析 摘要 介绍 相关工作 1.2. 贡献 2.VoxelNet 2.1.特征学习网络 2.1.1 特征学习网络 二.代码复现 2.1.环境 ...
- 学习笔记------人工蜂群算法
学习笔记------人工蜂群算法 为了解决多变量函数优化问题Karaboga在2005年提出了人工蜂群算法ABC模型. 1. 蜜蜂采蜜机理 蜜蜂是一种群居昆虫,虽然单个昆虫的行为极其简单,但是由单个简 ...
- sklearn学习笔记
1.监督学习 1.1.广义线性模型 1.1.1.普通最小二乘法 class sklearn.linear_model.LinearRegression(fit_intercept=True, norm ...
最新文章
- beautifulsoup以及正则表达式re之间的一些知识!
- RDKit:化学指纹(Chemical Fingerprinting)
- Altium designer几个网络同时走线
- 复习HTML+CSS(2)
- 全栈工程师?并没有什么卵用。每个人都应该去创业,不为别的,就为了健全你的人格(转)...
- VTK:PolyData之QuantizePolyDataPoints
- 将Maven与Ivy集成
- python重复元素判定去除_Python去除列表中重复元素的方法
- 票据的生命周期与人的灵魂
- DB2 SQL Error: SQLCODE=-668, SQLSTATE=57016错误解决方法
- [引]构造文法时表达式中算符优先级的问题
- 【DevOps】SVN分支操作快速入门
- 产品是什么:PMF模型
- 【MAC技巧】 MAC下两款免费的风扇调节工具
- 用众城计算机弹学猫叫,19年真男神当众被逼学猫叫?谁能把我的童年还给我!...
- 小米为何要死磕某国产手机企业?这是多年被压迫下的反击
- 从ghost映像.gho文件快速创建vmware虚拟机
- 机柜风扇 的组成及如何正确安装 机柜散热风扇
- 深度迅雷5.8.3.556无广告绿色超级精简版【迅雷6核心文件】-绿软下载
- 005_解密饿了么大前端团队
热门文章
- 冰箱有哪些尺寸 冰箱尺寸的选择 冰箱尺寸大小标准对照表
- npx:调用项目内部安装的模块
- zookeeper重零开始--------自学(借鉴一些视频,书籍等工具)
- 利用winform 操作access 数据库
- uni-popup简单使用
- 创视通录播服务器怎么修改系统时间,教学录播系统的历史
- 《程序员必读之软件架构》
- Bad Request:Your browser sent a request that this server could not understand.
- java后台判断请求来自移动端访问还是PC端访问
- 微信公众号开发Day01: 消息回复 英文励志语录回复实战