数据的降维:
简单来说就是讲特征数量减少。去掉不需要的特征。
常用方式:
- 特征选择
- 主成分分析
特征选择:
主要方法:Filter(过滤式):VarianceThreshold(方差)
Embedded(嵌入式):正则化、决策树(后期介绍)
Wrapper(包裹式)、
神经网络(后期介绍)
(一)Filter(过滤式):VarianceThreshold
从方差大小来考虑特征的数值情况
API:sklearn.feature_selection.VarianceThreshold
语法:
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)
if __name__ == '__main__':
var()
运行结果:
(二)主成分分析:
目的:是数据维数压缩,尽可能降低原数据的维数(复杂度),损失少量信息。维度会降低,但是数据也会降低。
API:sklearn. decomposition.PCA
语法:
解释:
n_components = 小数: 一般 0 - 1.要求是 90% - 95%
= 整数:一般不用
代码:
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)
if __name__ == '__main__':
pca()
结果: