美文网首页
缺省值处理

缺省值处理

作者: dechuan | 来源:发表于2017-02-15 11:23 被阅读0次

    引言:当数据集中包含缺失值,要么是空白,或者NaN等,这些数据无法直接使用scikit-learn分类器直接训练,所以需要处理。
    方法一:用pandas自带的方法
    如: df.fillna(value=5)或者df.fillna(value=5,inplace='True')
    或者df.fillna('s')等 使用fillna处理
    方法二:sklearn中的imputer类提供了一些方法用于处理缺失值,如使用缺失值所在列中频繁出现的值、均值、中位值等进行替换。

    import numpy as np
    from sklearn.preprocessing import Imputer
    imp=Imputer(missing_values='NaN',strategy='mean',axis=0)
    X1=[[1,2],[np.nan,3],[7,6]]
    #用X1的均值来求X2中的NaN
    imp.fit(X1)
    X2=[[np.nan, 2], [6, np.nan], [7, 6]]
    print(imp.transform(X2))
    #用X2的均值来求X2中的NaN
    imp.fit(X2)
    print(imp.transform(X2))
    

    进一步说明:用imputer类处理稀疏矩阵
    百度百科:在矩阵中,若数值为0的元素数目远远多于非0元素的数目时,则称该矩阵为稀疏矩阵;与之相反,若非0元素数目占大多数时,则称该矩阵为稠密矩阵。定义非零元素的总数比上矩阵所有元素的总数为矩阵的稠密度。

    X=[[1,2],[0,3],[7,6]]
    imp=Imputer(missing_values=0,strategy='mean',axis=0)
    #用X处理X_test中的0
    imp.fit(X)
    X_test=[[0,2],[6,0],[7,6]]
    print(imp.transform(X_test))
    

    相关文章

      网友评论

          本文标题:缺省值处理

          本文链接:https://www.haomeiwen.com/subject/avfqwttx.html