网站首页 > 技术文章 正文
数据降维 :这里的维度指定是特征数量,这里的降维是指减少特征的数量,从而达到增加样本密度以及去噪的目的。
降维方式主要有两种:特征选择和特征提取。其中特征提取是按照一定的数学变换方法,将高维空间的数据点映射到低维空间中,然后利用映射后的变量特征来表示原有的总体特征(即通过组合现有特征来达到降维的目的)。常用算法有主成分分析PCA、独立成分分析(ICA)、因子分析FA、线性判别分析LDA、局部线性嵌入(LLE)、核主成分分析(Kernel PCA)等。本文从使用的角度介绍一下常用的主成分分析,原理部分后面再补充。
特征选择
概念
特征选择就是指 单纯的从提取到的所有特征选择部分特征作为训练集特征, 特征在选择前和选择后可以改变值,也可以不改变值.但是选择后的特征维数肯定比选择前小,毕竟我们只选择了其中的一部分。
原因
- 冗余 : 部分特征的相关度高,容易消化计算性能.
- 噪声 : 部分特征对预测结果有影响.
主要方法
- Filter(过滤式): VarianceThreshold
- Embedded(嵌入式): 正则化 , 决策树
sklearn API (降维)
类:sklearn.feature_selection.VarianceThreshold
VarianceThreshold(threshold=0.0)
删除所有低 方差特征
Variance.?t_transform(x)
x:numpy array格式的数据
返回值
删除方差低于threshold的特征之后的数据集,默认值是保留所有非零方差特征,即删除所有样本中具有相同值的特征。
流程
- 初始化VarianceThreshold,指定阈值方差
- 调用 ?t_transform
案例
结果
主成分分析PCA (Principal Component Analysis)
本质
PCA是一种分析,简化数据集的技术,无监督学习。
目的
是数据维度压缩,提取最有价值的信息(基于方差),尽可能降低原数据的维数(复杂度),尽可能地减少损失信息。
作用
可以消减回归分析或者聚类分析中特征的数量(降维中最常用的一种手段)
使用场景
特征数量达到上百的时候,考虑数据的简化.
sklearn API
类 sklearn.decompositon.PCAPCA(n_componets=None)
将数据分解为较低维数据
PCA.?t_transform(x)
x:numpy array格式
返回值
转换后降低维度的array。
n_componets参数:
小数:表示将信息保存到原信息的百分比,例如0.95表示降维后信息量是原来的95%。一般制定到0.9-0.95
整数:较少到的特征数量,一般不使用
流程
- 实例化 PCA
- 调用 ?t_transform
PCA案例
结果
数据降维从3*4 降到2*2,具体的含义看不懂,只有机器知道,因为PCA在降维的过程中进行了一系列的矩阵变换,将原始信息进行了压缩,失去了原始数据的物理意义,但是降维后的数据不影响我们最终结果(分类,预测),只是不知道中间的过程。
总结:数据降维就是降低数据的维度,达到增加样本密度以及去噪的目的,从而提升模型训练的速度和精度。本文从使用的角度介绍一下机器学习中数据降维比较常用的两种方法---特征选择 和 主成分分析供大家参考,感谢阅读~
猜你喜欢
- 2024-10-12 Excel查找重复次数最多的项目 excell查找重复数据
- 2024-10-12 经典动态规划题——打家劫舍 打家劫舍猜一肖
- 2024-10-12 函数公式的左膀右臂:ROW、COLUMN函数知多少
- 2024-10-12 C|二维数组做函数参数求矩阵乘积 c二维数组作为函数参数
- 2024-10-12 sum() 函数性能堪忧,列表降维有何良方?
- 2024-10-12 【译】Vue 何以对 React“降维打击”?
- 2024-10-12 奇异值分解与主成分分析,一文带你理解Spark分布式降维方法
- 2024-10-12 收下这波 JS 技巧,从此少加班 js怎么做加法
- 2024-10-12 不足 20 行 Python 代码,高效实现 k-means 均值聚类算法
- 2024-10-12 盘ES6、ES7、ES8、ES9、ES10 es6解构赋值
你 发表评论:
欢迎- 最近发表
-
- 在 Spring Boot 项目中使用 activiti
- 开箱即用-activiti流程引擎(active 流程引擎)
- 在springBoot项目中整合使用activiti
- activiti中的网关是干什么的?(activiti包含网关)
- SpringBoot集成工作流Activiti(完整源码和配套文档)
- Activiti工作流介绍及使用(activiti工作流会签)
- SpringBoot集成工作流Activiti(实际项目演示)
- activiti工作流引擎(activiti工作流引擎怎么用)
- 工作流Activiti初体验及在数据库中生成的表
- Activiti工作流浅析(activiti6.0工作流引擎深度解析)
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)