本文章的是基于另外一位博主文章的分析型文章,读者可先行阅读此文章再来看我的文章
Python机器学习房价预测 (斯坦福大学机器学习课程)
机器学习的步骤简单的分为以下三步
步骤①数据获取与处理
步骤②选择与训练模型
步骤③评估与显示
一. 对于文章涉及知识的学习
(1)数据处理——数据标准化
1.为什么要进行数据标准化?
在现实生活中,一个目标变量(y)可以认为是由多个特征变量(x)影响和控制的,那么这些特征变量的量纲和数值的量级就会不一样.
比如x1 = 10000,x2 = 1,x3 = 0.5 可以很明显的看出特征x1和x2、x3存在量纲的差距;x1对目标变量的影响程度将会比x2、x3对目标变量的影响程度要大(可以这样认为目标变量由x1掌控,x2,x3影响较小,一旦x1的值出现问题,将直接的影响到目标变量的预测,把目标变量的预测值由x1独揽大权,会存在高风险的预测)而通过标准化处理,可以使得不同的特征变量具有相同的尺度(也就是说将特征的值控制在某个范围内),这样目标变量就可以由多个相同尺寸的特征变量进行控制,这样,在使用梯度下降法学习参数的时候,不同特征对参数的影响程度就一样了。比如在训练神经网络的过程中,通过将数据标准化,能够加速权重参数的收敛。
简而言之:对数据标准化的目的是消除特征之间的差异性,便于特征一心一意学习权重。
2.什么时候需要进行数据标准化,什么时候不需要进行数据标准化?
当原始数据不同维度上的特征的尺度(单位)不一致时,需要标准化步骤对数据进行预处理,反之则不需要进行数据标准化。
下面这几类问题一般都需要进行数据标准化:
1 | 回归问题 |
---|---|
2 | 机器学习算法 |
3 | 训练神经网络 |
4 | 聚类问题 |
5 | 分类问题 |
6 | 主成分分析(PCA)问题 |
3.如何进行标准化
实际上标准化包含如下多种方法:
方法名 | 作用 | 数学 公式 | 资料 |
---|---|---|---|
z-score标准化 | 实现中心化和正态分布 | x ∗ = x − x ‾ σ x^*=\frac{x-\overline{x}}{\sigma} x∗=σx−x ( x ∗ = x − m e a n s t d ) (x^*=\frac{x-mean}{std}) (x∗=stdx−mean) | 机器学习——特征工程——数据的标准化(Z-Score,Maxmin,MaxAbs,RobustScaler,Normalizer) |
Min-Max | 归一化 | x ∗ = x − m i n m a x − m i n x^*=\frac{x-min}{max-min} x∗=max−minx−min | 机器学习——特征工程——数据的标准化(Z-Score,Maxmin,MaxAbs,RobustScaler,Normalizer) |