缺失数据的,是数据清洗里头最容易被忽略但最容易出问题的一块。tinyxml的这一篇中文指南,讲得还挺细,尤其是配合了RapidMiner来操作——界面操作友好,逻辑也清晰,蛮适合刚接触数据挖掘的人。
数据准备阶段常见的坑之一就是搞不清楚“缺失”和“为零”的区别。像图里说的,缺失数据不是填了个0
或者null
,而是啥都没有,值本身就压根不存在。这种情况下要不要补,怎么补,就得看你挖掘的目的。
举个例子,在Other Social Network
这个属性上,缺失数据其实是合理的。人家就是没填,也真没用别的社交软件。可在Online Gaming
上就不一样了,只接受Y
或N
,缺失就是异常,得补。
工具用的是RapidMiner,对新手友好,多设置都是可视化的,逻辑流操作也比较直观。你如果习惯写脚本也行,可以自己定条件填补。比如设定缺失值替换为平均值、众数,或者干脆直接删掉。看你数据量和目标。
建议你先把这篇指南浏览一遍,是图 7.7,挺关键的,对后面的建模影响不小。顺手的话,相关链接也可以点进去看看,像《基于 RapidMiner 的链接开放数据挖掘》就讲得更深入一些。
如果你是第一次玩数据挖掘,建议直接先用界面操作,熟了以后再上代码,效率高不少。