数据清洗 (Data Cleaning)
为什么需要数据清洗?:一颗老鼠屎也会破坏掉一整个大规模数据集
怎么进行数据清洗?:
缩放特征值(Scaling)
即转换数据集的数值范围(标准化数据),
缩放是指将浮点特征值从自然范围(例如 100 到 900)转换为标准范围(例如 0 到 1 或 -1 到 +1)。
如果特征集包含多个特征,则缩放特征可以带来以下优势:
- 帮助梯度下降法更快速地收敛。
- 帮助避免“NaN 陷阱”。在这种陷阱中,模型中的一个数值变成
NaN(例如,当某个值在训练期间超出浮点精确率限制时),并且模型中的所有其他数值最终也会因数学运算而变成 NaN。 - 帮助模型为每个特征确定合适的权重。如果没有进行特征缩放,则模型会对范围较大的特征投入过多精力。
处理极端/离群值
如何最大限度降低这些极端离群值的影响?
- 对每个值取对数(对数缩放)
- 限制最大/最小值
数据分箱(Binning)
将特征值浮点数,分为几个范围,如32.3 32.5 为32-33范围,相应值为1
为了将纬度变为一项实用的预测指标,我们对纬度“分箱”
审查(Scrubbing)
我们假定用于训练和测试的所有数据都是值得信赖的。在现实生活中,数据集中的很多样本是不可靠的:
- 遗漏值。 例如,有人忘记为某个房屋的年龄输入值。
- 重复样本。 例如,服务器错误地将同一条记录上传了两次。
- 不良标签。例如,有人错误地将一颗橡树的图片标记为枫树。
- 不良特征值。 例如,有人输入了多余的位数,或者温度计被遗落在太阳底下。
直方图是一种用于可视化集合中数据的很好机制。此外,收集如下统计信息也会有所帮助:
- 最大值和最小值
- 均值和中间值
- 标准偏差
了解数据
- 记住预期的数据状态。
- 确认数据是否满足这些预期(或者您可以解释为何数据不满足预期)。
- 仔细检查训练数据是否与其他来源(例如信息中心)的数据一致。