机器学习之特征归一化(normalization)

参考自斯坦福机器学习课程


一 引子

对房屋售价进行预测时,我们的特征仅有房屋面积一项,但是,在实际生活中,卧室数目也一定程度上影响了房屋售价。下面,我们有这样一组训练样本:

房屋面积(英尺) 卧室数量(间) 售价(美元)
2104 3 399900
1600 3 329900
2400 3 369000
1416 2 232000
3000 4 539900
1985 4 299900
.... ... ....

注意到,房屋面积及卧室数量两个特征在数值上差异巨大,如果直接将该样本送入训练,则代价函数的轮廓会是“扁长的”,在找到最优解前,梯度下降的过程不仅是曲折的,也是非常耗时的:


二 归一化

     该问题的出现是因为我们没有同等程度的看待各个特征,即我们没有将各个特征量化到统一的区间。

### 机器学习中的特征归一化 #### 特征归一化的概念 特征归一化是一种数据预处理技术,用于调整输入变量的范围以便于模型训练。其主要目的是消除不同特征间因量纲差异带来的影响,从而提高算法收敛速度和预测性能。通过对数值型特征进行归一化操作,可以使所有特征处于相似的数量级范围内[^3]。 #### 常见的特征归一化方法及其作用 以下是几种常见的特征归一化方法以及它们的作用: 1. **线性归一化 (Min-Max 归一化)** Min-Max 归一化通过线性变换将原始数据映射至指定区间(通常为 [0,1])。这种方法适用于数据分布较为均匀的情况,并能有效保留数据间的相对关系。公式表示如下: \[ X_{\text{norm}} = \frac{X - X_{\min}}{X_{\max} - X_{\min}} \] 这里 \(X\) 表示原始数据,\(X_{\min}\) 和 \(X_{\max}\) 分别代表样本集合中的最小值与最大值。 2. **零均值归一化 (Z-Score Normalization)** 零均值归一化也称为标准差标准化,它会先计算每列特征的平均数 (\(\mu\)) 及标准偏差 (\(\sigma\)) ,再利用下述方程转换原数据点使其服从均值为 0 方差为 1 的正态分布。 \[ X_{\text{std}} = \frac{X - \mu}{\sigma} \] 此种方式特别适合当数据呈现近似高斯分布时采用[^1]。 3. **基于其他数学函数的归一化** 当面对极端值较多的数据集或者希望压缩较大数值的影响时,则可以选择诸如对数(logarithmic scaling),倒数(reciprocal transformation), 或者双曲正切(tanh function)等方式来进行非线性的尺度变化[^2]。 #### 应用场景分析 - 数据分化较大的情况:如果某些维度上的取值跨度极大而另一些则非常集中,在这种情况下应用合适的归一化手段能够帮助提升分类器效果; - 距离度量为基础的学习模型:像 KNN(K Nearest Neighbor),SVM(Support Vector Machine with RBF kernel)之类的依赖欧几里得距离衡量实例相似程度的算法尤其受益于此过程因为未经处理可能会让那些幅度较高的属性主导最终决策边界形成; - 梯度下降优化求解的目标函数:对于很多需要迭代更新权重参数并通过梯度方向寻找最优解的问题而言,良好的初始化状态加上合理的步长控制往往离不开恰当规模约束后的输入向量支持; ```python from sklearn.preprocessing import MinMaxScaler, StandardScaler # 示例代码展示如何使用 scikit-learn 中内置工具完成上述两种基本形式的操作 data = [[-1, 2], [-0.5, 6], [0, 10], [1, 18]] scaler_min_max = MinMaxScaler() normalized_data_mm = scaler_min_max.fit_transform(data) scaler_z_score = StandardScaler() standardized_data_zs = scaler_z_score.fit_transform(data) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值