1.6.1 数据清洗、特征工程的注意事项
1.要服务于数据统计分析或机器学习项目
开展数据清洗、特征工程的根本目的是提升数据和特征的质量,提升数据统计分析或机器学习项目的效率和效果。因此,开展数据清洗、特征工程应用时也要注意紧密结合相应的数据统计分析或机器学习项目,而不应机械割裂地操作,尤其是要注意对于每个过滤规则都要认真进行验证,不要将有用的数据或特征过滤掉(类似于在给婴儿洗了澡后,不能把婴儿和脏水一块泼到门外)。
比如数据清洗中的一个重要步骤是检测并处理异常值,这时候就需要考虑相应的数据统计分析或机器学习项目的具体要求,如果异常值的存在是合理的,而且有着较高的分析价值,甚至很多数据统计分析或机器学习算法应用场景本身就是为了发现异常值,并针对异常值进行分析,探究出现的根因,那么就不需要处理异常值,将之作为样本示例全集的重要组成部分即可;如果认为异常值的存在是不合理的,甚至异常值是错误值,比如客户年龄为负值等,那么就需要考虑删除异常值。
2.要考虑业务目标,具备一定的业务经验
Wolpert等提出了“没有免费的午餐定理(No Free Lunch Theorem)”,该理论的数学证明非常复杂,核心思想是当所有问题同等重要时,无论算法是复杂还是简单,也无论算法是前沿还是传统,各种算法的期望性能都相同。基于该理论,人工神经网络等各种复杂的机器学习算法的期望性能并不优于随机预测。这充分强调了建模人员自身在相关领域具有业务经验的重要性,清晰理解业务目标是开展机器学习的重要前提,当然也是数据清洗、特征工程的重要前提。
比如商业银行个人授信业务中,如果响应变量为授信业务是否违约,那么可能需要选择客户的性别、职业、年收入水平、历史征信记录等系列变量作为模型的特征变量,而客户的爱好、身高、体重等变量可能不是很好的特征变量,因为这些对于客户是否违约的影响预期不够显著。因此,数据清洗和特征工程是基于对业务与解决问题的深刻理解和洞察。换句话说,机器学习的成功很大程度上并不在于技术人员或数据分析,更多的在于实施机器学习的相关业务领域专家的高能力、高水平和丰富的经验。