zoukankan      html  css  js  c++  java
  • 特征选择与特征降维

    # coding = utf-8
    from sklearn.feature_selection import VarianceThreshold
    from sklearn.decomposition import PCA
    '''
    数据降维:特征的数量减少(即columns减少)
        1、特征选择原因:
            1、数据冗余:部分特征的相关度高,容易消耗计算机性能
            2、噪声:部分特征对预测结果有影响
        2、特征选择
            方式1:
                Filter(过滤式 VarianceThreshold): 从方差大小考虑样本的数据情况
                   Api:VarianceThreshold.fit_transform()
                Embedded(嵌入式):正则化、决策树
                Wrapper(包裹式)
                其他方式:神经网络
            方式2:
                主成分分析(PCA):使得数据会改变,同时特征维度也减少
                    公式:Y =PX,其中Y为降维后数据,P为映射矩阵,X为原始矩阵
                    作用:可以削减回归分析或者聚类分析中特征的数量
                    API: PCA(n_components=None) ,n_components取值范围为(90%-95%) 将数据分解为较低维数空间
                        PCA.fit_transform(X)       
                            X:numpy array格式的数据[n_samples,n_features]
                            返回值:转换后指定维度的array
                其他降维方法:线性判别法
                    
                
    
         Pandas合并表,一般使用merge()
         交叉表:特殊的分组工具(生成用户,商品的稀疏矩阵)
            pd.crosstab(mt["user_id"],mt["aisle"]),其中mt["user_id"]作为index ,mt["aisle"]作为columns
    '''
    
    def var():
        """
        特征选择--删除低方差的特征,低方差表明数据相近,没有意义不大
        :return:
        """
        var = VarianceThreshold(threshold=0.0) #一般在(0-10)之间范围取值
        data = var.fit_transform([[0,2,0,3],[0,1,4,3],[0,1,1,3]])
        print(data)
        return None
    
    
    def pca():
        """
        主成分分析进行特征降维
        :return:
        """
        p = PCA(n_components=0.9)
        data = p.fit_transform([[0,2,0,3],[0,1,4,3],[0,1,1,3]])
        print(data)
        return None
    if __name__ == '__main__':
        var()
        pca()
  • 相关阅读:
    写多了博客,就想沽名钓誉
    中医与DBA
    关于OneProxy推广
    使用分布式数据库集群做大数据分析之OneProxy
    不能使用tpcc-mysql测试OneProxy
    下三滥
    建立自己的客户关系网
    编译spock proxy
    胆子还是小了
    主流语言的异常处理对比
  • 原文地址:https://www.cnblogs.com/ywjfx/p/10847154.html
Copyright © 2011-2022 走看看