码迷,mamicode.com
首页 > 其他好文 > 详细

特征选择与特征降维

时间:2019-05-10 23:21:21      阅读:145      评论:0      收藏:0      [点我收藏+]

标签:取值   聚类分析   features   特殊   范围   none   矩阵   ==   使用   

# 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()

 

特征选择与特征降维

标签:取值   聚类分析   features   特殊   范围   none   矩阵   ==   使用   

原文地址:https://www.cnblogs.com/ywjfx/p/10847154.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!