本文是由菜鸟窝特邀清华的人工智能博士亲授,从零开始教你如何进行数据预处理,并通过实际案例手把手教会大家进行实操。相关的源码会发给大家实践,让你真正做到学以致用。
一、机器学习算法流程
• 数据预处理
• 模型训练
• 参数选择•
模型(内部)评估
• 模型应用
二、为何要进行数据预处理
• 原因:现实世界情况复杂
• 数据库太大,信息多而杂
• 数据易受噪声数据、空缺数据和不一致性数据的侵扰
• 目标:• 提机器学习效果和质量
• 使机器学习更有效、更容易
三、数据预处理
1、数据清洗
• 数据清洗原因:现实世界的数据一般是有噪声的、不完整和不一致的。• 数据清洗对象: • 错误数据• 缺失数据• 冗余/关联数据• 无意义特征
2、数据清洗常见方法
• 错误数据
• 缺失数据
• 冗余数据
• 特征选择
2.1、错误数据
• 更改/修复数据:根据以往数据规律修改数据
比如1号,身高改为170,或者男性平均身高
• 忽略数据• 比如抛弃第一行1号数据
缺失数据
• 数据补缺
• 局部:局部数据的线性插值法进行补缺
• 全局:使用一个全局常量或属性的平均值填充空缺值
• 例子:2号男的身高使用所有用户/男性平均身高代替
• 忽略数据• 比如抛弃财富这一维度
• 比如抛弃6号用户数据
冗余数据
• 移除冗余部分
• 例子:第5号用户数据重复,可以移除一行
特征选择
目标是移除无用特征,只保留有效特征
• 例子:用户的id不代表任何含义,对于我们的分析任务无用,在机器学习时可以移除
• 例子:财富特征缺失严重,可以移除
四、数据标准化
1、数据标准化
• 将数据按比例缩放,使之落入一个小的特定区间。在某些比较和评价的指标处理中经常会用到,去除数据的单位限制,将其转化为无量纲的纯数值,便于不同单位或量级的指标能够进行比较和加权。
例子一:单位不同的时候标准化• 身高、体重和财富• 人与人之间的身高和体重的差异不大• 人与人之间的财富差异巨大,比如我和马云比较
例子二:单位相同的时候的标准化-1 • 体重差异• 假设对3名新生婴儿体重(5,6,7)斤和3名成年人的体重(150,151,152)斤差异的大小进行对比分析,从表面上看,两组人员的平均差异均为1斤,由此便得出两组人员的体重差异程度相同显然是不合适,因为两者的体重水平不在同一等级上;
例子三:单位相同的时候的标准化-2 • 应用背景的差异• 假设一个程序员要需要读取温度计/风力计/地震计的数目,但是他却很难进一步对数据进行理解和分析,因为他缺乏相关行业背景。
2、常见数据标准化方法
2.1、min-max标准化
• 是对原始数据的线性变换,使结果映射到[0,1]区间。
2.2、 z-score 标准化
• 这种方法基于原始数据的均值和标准差进行数据的标准化。将A的原始值x使用z-score标准化到x’。 • z-score标准化方法适用于属性A的最大值和最小值未知的情况,或有超出取值范围的离群数据的情况。
2.3、(正数)归一化方法