简单机器学习分类算法与Scikit-learn库的使用
1. 特征缩放改进梯度下降
许多机器学习算法为实现最优性能,需要进行某种特征缩放。梯度下降算法就是受益于特征缩放的算法之一。这里我们使用标准化(standardization)这种特征缩放方法,它能让数据具有标准正态分布的特性,即零均值和单位方差。标准化过程有助于梯度下降学习更快收敛,但不会使原始数据集呈正态分布。
标准化是将每个特征的均值移到零,使每个特征的标准差为 1(单位方差)。对于第 j 个特征,标准化公式为:
[x’_j = \frac{x_j - \mu_j}{\sigma_j}]
其中,(x_j) 是包含所有训练示例第 j 个特征值的向量,该标准化技术会应用于数据集中的每个特征 j。
标准化可以通过 NumPy 的内置方法 mean 和 std 轻松实现:
import numpy as np
X_std = np.copy(X)
X_std[:,0] = (X[:,0] - X[:,0].mean()) / X[:,0].std()
X_std[:,1] = (X[:,1] - X[:,1].mean()) / X[:,1].std()
标准化后,使用学习率 (\eta = 0.01) 再次训练 Adaline,它会在较少的迭代次数后收敛:
ada_gd = AdalineGD(n_iter=15, eta=0.01)
ada_gd
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



