解决方法
1、忽视元组。
当没有类别标签时,通常会这样做(假设挖掘任务与分类有关)。除非元组中有多个属性缺失值,否则该方法不是很有效。当属性缺陷的百分比变化很大时,其性能特别差。
2、人工填写缺失值。
一般来说,这种方法需要很长时间,当数据集大且缺乏大量值时,这种方法可能无法实现。
3、缺失值采用全局常量填充。
用同一常数(如Unknown或负)替换缺失的属性值。如果所有缺失值都被Unknown取代,挖掘程序可能会认为它们形成了一个有趣的概念。因为Unknown有相同的价值。所以这个方法很简单,但是不可靠。
4、所有样本的属性平均值与给定元组相同类型。
5、使用最可能的值填充缺失值。
基于推理的工具和决策树的总结可以通过回归和使用贝叶斯形式化来决定。
实例
importnumpyasnp fromsklearn.preprocessingimportImputer imp=Imputer(missing_values='NaN',strategy='mean',axis=0) importnumpyasnp fromsklearn.preprocessingimportImputer ###1.使用均值填充缺失值 imp=Imputer(missing_values='NaN',strategy='mean',axis=0) imp.fit([1,2],[np.nan,[7,6]]) X=[[np.nan,2],[6,np.nan],[7,6]] print(imp.transform(X)) [[4.2.] [6.3.66666667] [7.6.]]
以上是python缺失值的解决方案,希望对大家有所帮助。更多Python学习指导:python基础教程
本文教程操作环境:windows7系统Python 3.9.1,DELL G3电脑。