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()
  • 相关阅读:
    LINUX下 my.cnf php.ini的位置
    如何启动/停止/重启MySQL
    Windows下Git Bash中文乱码
    linux下忘记密码怎么办,如何重置密码
    如何在word里面插入目录
    git常见问题解决办法
    git配置global信息
    怎样把excel一列分成多列
    php中array_flip数组翻转
    笔记本电脑键盘字母和字母错乱怎样解决
  • 原文地址:https://www.cnblogs.com/ywjfx/p/10847154.html
Copyright © 2011-2022 走看看