且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

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

更新时间:2022-04-21 04:10:24

数组维度

数据维度:特征数量

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

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

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]]
"""