对数据挖掘的实际应用而言,即使数据量很大,具有完整数据的案例子集可能相对较小。可用的样本和将来的事件都可能有丢失值。一些数据挖掘方法可以接受丢失值,并能进行圆满的处理,得到最终结论。一个明显的问题是,在应用数据挖掘方法之前的数据准备阶段,能否把这些丢失值补上。最简单的解决办法是减少数据集,去除包含丢失值的所有样本。若大型数据集是可用的,且只有一小部分样本包含丢失值,则这是可行的。
如果不去除丢失值的样本,如何找到他们的丢失值呢?
首先,数据挖掘者和领域内专家可手动检查缺失值样本,再根据姜堰加入一个合理的,可能的,预期的值。对丢失值较小的数据集合来说,这种方法简单明了。但是如果每个样本的值都不明显或似是而非,挖掘者就要手动生成一个值,从而把噪点引入数据集
第二种方法消除丢失值的一个更简单的解决方案,这种方法基于一种形式,常常用一些常量自动替换丢失值 如
1) 用一个全局常量替换所有的丢失值
2)用特征平均值替换丢失值
3)用给定种类的特征平均值替换丢失值
这些方法简单具有诱惑力,但是主要缺点是替代之并不准确。用常量替换丢失值或改变少数不同特征的值,数据就会有误差。替代值会均话带有丢失值的样本,给丢失值最多的类别生成一致的子集。如果所有特征的丢失值都用一个全局变量来替代,一个未知值可能会暗中形成一个未经客观证明的正因数
最后一种方法是,数据挖掘者可以生成一个预测模型,来预测每个丢失值。如果丢失值与其他已知特征高度有关,这样的处理就可以为特征生成最合适的值。
一般来讲,用简单的人工数据准备模式来替代丢失值是有风险的,常常有误导作用。最好对带有和不带有丢失值的特征生成多种数据挖掘解决方案,然后对他们进行分析和解释