当我们得到一份数据之后,一份新鲜的数据摆在你的面前,它可不是一盘可以直接吃的美味沙拉,这是一盘你刚从超市买回来的菜,需要经过一定的清洗和爆炒才能变成美食,供机器学习算法使用。
所谓清洗,指的就是数据清洗。
所谓爆炒,指的就是特征工程。
经过了这两个漫长的步骤,你才可以开始使用各种模型去拟合数据,最终得到符合预期能力的模型。为什么说是漫长的步骤呢,因为通常在套用模型之前的这些数据准备工作,往往会花费百分之70以上的时间。是的你没听错,数据清洗和特征工程真的很麻烦!!!不同的业务场景的处理方式可能完全不一样,这里没有捷径,没有通法,有的只是你对于数据的理解,它将是你处理数据的指南针。
请记住,数据处理(或者说特征工程)的好坏,决定了机器学习算法的上限!
我们需要首先进行数据预处理,有这么几个内容:
- Data Transformation——数据转换
- Data Cleansing——数据清洗
- Data Description——数据描述
- Feature Selection——特征筛选
- Feature Extraction——特征提取
拿到数据的第一步,毫无疑问是看看数据的结构类型,通常用pandas库中的describe或者info函数,可以得到数据的基本描述,是否有缺失值,是否数据类型不一致等等基本信息。
然后我们要按顺序完成下面几个步骤 :
一、数据清洗
1)转换数据类型、删除重复数据、(特征编码)
2)探索性数据分析、可视化(将数据挖掘模块中描述)
3)缺失值填补、异常值处理
4)归一化/标准化
二、特征工程
1)特征组合
2)特征选择
3)特征提取
这三个小步骤通常是同时进行的。
这里其实更多的会涉及到数据挖掘的内容,在机器学习模块我不会谈及太多这方面的东西,在数据挖掘模块中会有更加详细的描述。所以部分内容将会在机器学习模块中省略,下面我将用2篇博文来描述数据清洗和特征工程的部分工作。