网站首页 > 技术文章 正文
数据降维,顾名思义它就是将数据的维度减少,这里维度就是往期文章所提特征如人肤色、头发长度、性别等。数据降维有两种方式:1.特征选择 2. 主成分分析
特征选择
特征选择从字面的理解就是从众多的特征选择特征。
特征选择深入单纯地从提取到的所有特征中选择部分特征作为训练集特征,特征在选择前和选择后可以改变值、也不改变值,但是选择后的特征维数肯定比选择前小,毕竟只选择了其中的一部分特征。
特征选择的原因
冗余:部分特征的相关度高,容易消耗计算性能
噪声:部分特征对预测结果有负影响
比方说我们要从身高,体重,肤色,头发长度特征中筛选出性别女的人,这个肤色就可以拿掉,对于筛选出性别并没有帮助。当然现实中这种维度的选择并不是像上面所说用肉眼看出来,而是从数据中判断分析出来的。
特征选择的主要方法:
1.Filter(过滤式):VarianceThreshold
2. Embedded(嵌入式):正则化、决策树
3. Wrapper(包裹式)
这篇文章主要介绍Filter(过滤式),Embedded后续文章会介绍,Wrapper现实很少使用暂时不介绍。
Filter(过滤式)VarianceThreshold语法
包:
sklearn.feature_selection.VarianceThreshold
方法:
VarianceThreshold(threshold = 0.0) 删除所有低方差特征 Variance.fit_transform(X,y) X:numpy array格式的数据[n_samples,n_features] 返回值:训练集差异低于threshold的特征将被删除 默认值是保留所有非零方差特征,即删除所有样本中 具有相同值的特征
案例:
from sklearn.feature_selection import VarianceThreshold def var(): var = VarianceThreshold(threshold=0.0) data = var.fit_transform([[0, 2, 0, 3], [0, 1, 4, 3], [0, 1, 1, 3]]) print(data)
PCA 主成分分析
本质:PCA是一种分析、简化数据集的技术
目的:是数据维数压缩,尽可能降低原数据的维数(复杂度),损失少量信息
作用:可以削减回归分析或者聚类分析中特征的数量。降维并减少维度里的特征值。
如果特征过多,成百上千的特征,将会出现一个情况特征之间通常是线性相关的。
特征1和特征50有什么区别,特征1乘2是不是就接近特征50。如果交给pca处理,将会将他们当成一个特征进行处理。下面进一步理解pca它是如何对数据进行精简的。
如上图,如何将这个二维的数据简化成一维?如果将数据全投到x轴,那么这上面点将会5个点会变成3个点。如果将数据全投到y轴,结果也是5个点也会变成3个点,但是如果让pca来处理这个问题,它会如何处理?
pca的处理的方式如上图,它会降维的同时尽可能减少的数据的损失。这就是pca会将高纬度的数据降成低纬度,并将数据精简。
计算公式
上面文章所提到的图2维为转1维,就如同公式计算出的Y的五个点。
语法
包:
sklearn. decomposition.PCA
方法:
PCA(n_components=None) 将数据分解为较低维数空间 PCA.fit_transform(X) X:numpy array格式的数据[n_samples,n_features] 返回值:转换后指定维度的array
n_components 可输入小数和整数。填写小数据如0.9则会减少百分之十的特征值的数据。一般填写0.9~0.95。填写整数如10,是减少到特征数量,一般不用这个方式。
案例
from sklearn.decomposition import PCA def pca(): pca = PCA(n_components=0.9) data = pca.fit_transform([[2,8,4,5],[6,3,0,8],[5,4,9,1]]) print(data)
后续会持续更新由浅入深机器学习的技术文章,关注我随时了解人工智能
猜你喜欢
- 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)
本文暂时没有评论,来添加一个吧(●'◡'●)