数据的特征选择与降维

特征选择:

特征选择的原因:

  • 冗余:部分特征的相关度高,容易消耗计算性能
  • 噪声:部分特征对预测结果有负影响

特征选择是什么:

  特征选择就是单纯地从提取到的所有特征中选择部分特征作为训练集特征,特征在选择前和选择后可以改变值、也可以不改变值,但是选择后的特征维数肯定比选择前小,毕竟我们只选择了其中的一部分特征

主要方法(三大武器):

  • Filter(过滤式):VaianceThreshold
  • Embedded(嵌入式):正则化、决策树
  • Wrapper(包裹式)

其它特征选择方法:

  • 神经网络

sklearn特征选择API:

  

       

       

代码示例:

输出:[[2, 0 ], [1, 4], [1, 1]]

 1 from sklearn.feature_selection import VarianceThreshold
 2 
 3 
 4 # 数据降维,特征选择
 5 def var():
 6     """方差特征选择,删除低方差的特征"""
 7     v = VarianceThreshold(threshold=0.0)  # 参数大小根据实际情况
 8     data = v.fit_transform([[0,2,0,3],[0,1,4,3],[0,1,1,3]])
 9     print(data)
10 
11 
12 if __name__ == '__main__':
13     var()

数据降维,PCA(主成分分析):

本质:

  PCA是一种分析、简化数据集的技术

目的:

  是数据维数压缩,尽可能降低原数据的的维数(复杂度),损失少量信息

作用:

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

高纬度数据容易出现的问题:

  特征之间通常是线性相关的

sklearn降维API:

  

代码示例:

 1 from sklearn.decomposition import PCA
 2 
 3 
 4 def pca():
 5     """主成分分析,进行数据降维"""
 6     pca = PCA(n_components=0.9)
 7     data = pca.fit_transform([[2,8,4,5],[6,3,0,8],[5,4,9,1]])
 8     print(data)
 9 
10 
11 if __name__ == '__main__':
12     pca()

 

posted @ 2019-10-30 17:21  springionic  阅读(388)  评论(0编辑  收藏  举报