机器学习:数据降维特征选择和主成分分析PCA

简介: 机器学习:数据降维特征选择和主成分分析PCA

数组维度

数据维度:特征数量

特征选择和主成分分析使用:

  • 特征选择 特征较少时使用
  • 主成分分析 特征有上百个

1、特征选择

主要方法:

Filter 过滤式 (方差variance)

Embedded 嵌入式(正则化,决策时)

Wrapper 包裹式

神经网络

代码示例

from sklearn.feature_selection import VarianceThreshold
# 特征选择-删除低方差的特征
data = [
    [0, 2, 0, 3],
    [0, 1, 4, 3],
    [0, 1, 1, 3]
]
var = VarianceThreshold(threshold=0.0)
result = var.fit_transform(data)
print(result)
"""
[[2 0]
 [1 4]
 [1 1]]
"""

2、主成分分析PCA

PCA(principal Component Analysis)

二维表示一个立体物体

特征选择的原因

冗余:部分特征的相关度高,容易消耗计算资源

噪声:部分特征对预测结果有影响

本质:一种分析,简化数据集的技术

目的:使数据维数压缩,竟可能降低元数据的维数(复杂度),损失少量信息

作用:可以削减回归分析或者聚类分析中特征的数量

场景:特征数量达到上百的时候,考虑数据简化

代码示例

from sklearn.decomposition import PCA
data = [
    [2, 8, 4, 5],
    [6, 3, 0, 8],
    [5, 4, 9, 1]
]
# n_components取小数:保留百分比,取整数:保留特征个数
pca = PCA(n_components=0.9)
result = pca.fit_transform(data)
print(result)
"""
[[-3.13587302e-16  3.82970843e+00]
 [-5.74456265e+00 -1.91485422e+00]
 [ 5.74456265e+00 -1.91485422e+00]]
"""


相关文章
|
机器学习/深度学习 数据采集 监控
机器学习-特征选择:如何使用递归特征消除算法自动筛选出最优特征?
机器学习-特征选择:如何使用递归特征消除算法自动筛选出最优特征?
1719 0
|
11月前
|
算法
前向-后向算法
前向-后向算法是隐马尔可夫模型(HMM)中的关键算法,用于计算观测序列的概率及评估模型参数。前向算法通过动态规划计算观测序列出现的概率,而后向算法则计算状态的后验概率。两者结合,广泛应用于概率计算、参数评估和平滑处理,是处理时序数据和序列标注的重要工具。
|
数据可视化 数据挖掘 TensorFlow
Python贝叶斯高斯混合模型GMM聚类分析数据和混合密度可视化
Python贝叶斯高斯混合模型GMM聚类分析数据和混合密度可视化
|
机器学习/深度学习 数据可视化 PyTorch
PyTorch实现DCGAN(生成对抗网络)生成新的假名人照片实战(附源码和数据集)
PyTorch实现DCGAN(生成对抗网络)生成新的假名人照片实战(附源码和数据集)
244 1
ArcGIS || ENVI:如何将彩色影像拆分为R、G、B以及H、S、I(B/V)影像?
ArcGIS || ENVI:如何将彩色影像拆分为R、G、B以及H、S、I(B/V)影像?
789 0
ArcGIS || ENVI:如何将彩色影像拆分为R、G、B以及H、S、I(B/V)影像?
|
消息中间件 Java Apache
RocketMQ在windows环境下的安装与配置
1、下载RocketMQ 2、解压下载的安装包rocketmq-all-4.3.0-bin-release.zip 3、配置环境变量        变量名:ROCKETMQ_HOME        变量值:MQ解压路径        ROCKETMQ_HOME=D:\devtools\rocketmq-all-4.
16401 0
|
存储
教你如何锁定移动硬盘盘符
教你如何锁定移动硬盘盘符
746 0
|
前端开发 JavaScript 程序员
7个既可学习又可玩游戏的CSS在线学习网站
学习编码并不容易,尤其是 CSS,所以,在本文中我将跟大家分享一些既能学习CSS知识技能有可以玩游戏的网站,以有趣好玩的方式来帮助你提高学习兴趣以及解决问题的能力。
7个既可学习又可玩游戏的CSS在线学习网站
|
iOS开发 MacOS Windows
比微信文件传输助手更好用的传输工具|Telegram
比微信文件传输助手更好用的传输工具|Telegram
|
JavaScript 前端开发 API
VUE 脚手架框架 编写一个简洁的登录界面
一个好的前端开发项目,都是一个团队负责一个部分进行通力合作的。简单的一个系统网站一般包含登录、主体、各个模块功能这三个大部分,现在我们写的登录界面,我们一般编写这样的登录界面可以说有一定的固定套路。
VUE 脚手架框架 编写一个简洁的登录界面