解决方法
1、忽视元组。
缺少类别标签时,通常这样做(假设挖掘任务与分类有关),除非元组有多个属性缺失值,否则该方法不太有效。当个属性缺值的百分比变化很大时,其性能特别差。
2、人工填写缺失值。
一般来说,这种方法需要很长时间,当数据集大且缺少很多值时,这种方法可能无法实现。
3、使用全局常量填充缺失值。
将缺失的属性值用同一常数(如Unknown或负)替换。如果缺失值都是用unknown替换的话,挖掘程序可能会认为形成有趣的概念。因为有同样的价值unknown。因此,这种方法很简单,但不可靠。
4、使用与给定元组相同类型的所有样本的属性平均值。
5、使用最可能的值填充缺失值。
可以通过回归、使用贝叶斯形式化的基于推理的工具和决策树的总结来决定。
实例
import numpy as np from sklearn.preprocessing import Imputer imp = Imputer(missing_values='NaN', strategy='mean', axis=0) import numpy as np from sklearn.preprocessing import Imputer ###1.使用均值填充缺失值 imp = Imputer(missing_values='NaN', strategy='mean', axis=0) imp.fit([[1, 2], [np.nan, 3], [7, 6]]) X = [[np.nan, 2], [6, np.nan], [7, 6]] print(imp.transform(X)) [[4. 2. ] [6. 3.66666667] [7. 6. ]]
神龙|纯净稳定代理IP免费测试>>>>>>>>天启|企业级代理IP免费测试>>>>>>>>IPIPGO|全球住宅代理IP免费测试