缺省值处理

引言:当数据集中包含缺失值,要么是空白,或者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))
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容