怎样下载建设银行信用卡网站,四平网站建设哪家好,精准营销及推广,北京怎样在社保网站上做减员这里写自定义目录标题特征缩放标准化归一化平均值归一化收敛学习率特征缩放
特征缩放#xff08;Feature scaling#xff09;是一种数据预处理技术#xff0c;它用于将不同尺度的特征值缩放到相同的范围内#xff0c;以便更好地应用于机器学习算法中。在不进行特征缩放的情…
这里写自定义目录标题特征缩放标准化归一化平均值归一化收敛学习率特征缩放
特征缩放Feature scaling是一种数据预处理技术它用于将不同尺度的特征值缩放到相同的范围内以便更好地应用于机器学习算法中。在不进行特征缩放的情况下一些特征值可能会因其量级较大而对模型的训练产生更大的影响导致模型无法充分学习其他特征值的影响。
几种常见的特征缩放方法 标准化Standardization通过将每个特征值减去其均值然后除以其标准差将特征值缩放为以0为中心、标准差为1的正态分布。 归一化Normalization通过将每个特征值缩放到0和1之间的范围内使得所有特征值的范围相同。 平均值归一化Mean normalization通过将每个特征值缩放到[-1,1]或[0,1]范围内从而使特征值在[-1,1]或[0,1]之间。 e.g.e.g.e.g. 比如 bedrooms 代表卧室的数量size in feet2^22 代表房间的尺寸。 一般卧室的数量都是个位数十位数而房间的尺寸却一般都是百位数千位数所以为了防止房间的尺寸数量级较大从而使得模型无法充分学习卧室个数的情况 我们有如下三种方法进行特征缩放 标准化
标准化Standardization又称为 Z-score normalization对于一个特征 xxx其均值为 μ\muμ标准差为 σ\sigmaσ则对于每个样本xxx 的缩放后的值 yyy 可以通过以下公式计算 yx−μσy \frac {x-\mu} \sigmayσx−μ
通过这种方法缩放后的特征值 yyy 的平均值为0标准差为1 例如在上述的房间尺寸与卧室数量的案例中
300≤x1≤2000;x1,scaledx1−μ1σ10≤x2≤5;x2,scaledx2−μ2σ2300≤x_1≤2000; x_{1,scaled}\frac {x_1-\mu_1} {\sigma_1} \\ 0≤x_2≤5; x_{2,scaled}\frac {x_2-\mu_2} {\sigma_2} 300≤x1≤2000;x1,scaledσ1x1−μ10≤x2≤5;x2,scaledσ2x2−μ2
import numpy as np
def zscore_normalize_features(X):mu np.mean(X, axis0)sigma np.std(X, axis0)X_norm (X - mu) / sigma return (X_norm, mu, sigma)通过 Sklearn 实现 Z-Score Normalization
from sklearn.preprocessing import StandardScaler
scaler StandardScaler()
X_norm scaler.fit_transform(X_train)归一化
归一化Normalization又称为最大值缩放 Max Scaling。具体来说对于一个特征xxx其最大值为 maxmaxmax则对于每个样本xxx 的缩放后的值 yyy 可以通过以下公式计算 yxmaxy \frac x {max}ymaxx
例如在上述的房间尺寸与卧室数量的案例中 300≤x1≤2000;x1,scaledx120000≤x2≤5;x2,scaledx25300≤x_1≤2000; x_{1,scaled}\frac {x_1} {2000} \\ 0≤x_2≤5; x_{2,scaled}\frac {x_2} {5} 300≤x1≤2000;x1,scaled2000x10≤x2≤5;x2,scaled5x2
def max_normalize_features(X):x_max np.max(X) X_norm X / x_maxreturn X_norm平均值归一化
平均值归一化具体来说对于一个特征 xxx其均值为 μ\muμ最小值为 minminmin最大值为 maxmaxmax则对于每个样本xxx 的缩放后的值 yyy 可以通过以下公式计算 yx−μmax−miny \frac {x-\mu} {max-min}ymax−minx−μ
例如在上述的房间尺寸与卧室数量的案例中 300≤x1≤2000;x1,scaledx1−μ12000−3000≤x2≤5;x2,scaledx2−μ25−0300≤x_1≤2000; x_{1,scaled}\frac {x_1-\mu_1} {2000-300} \\ 0≤x_2≤5; x_{2,scaled}\frac {x_2-\mu_2} {5-0} 300≤x1≤2000;x1,scaled2000−300x1−μ10≤x2≤5;x2,scaled5−0x2−μ2
def mean_normalize_features(X):mu np.mean(X, axis0) x_max np.max(X)x_min np.min(X)X_norm (X - mu) / (m_max - m_min)return X_norm收敛
收敛Convergence通常指的是训练过程中模型的参数逐渐趋于稳定不再发生明显变化的情况。当模型的参数收敛时其对训练数据的拟合误差training error也会逐渐降低直到达到一个较小的阈值或收敛标准。
如下图所示一般来说伴随着迭代iterations应该呈现下图所示曲线即损失函数越来越小直到趋于稳定不再发生明显变化 损失函数在迭代100次时下降的速度还是很快的 在迭代200次的时候损失值下降的速度明显变慢 在迭代300次的时候每次迭代损失值下降的已经很小很小了 在迭代400次的时候几乎看不到变化趋于稳定此时我们称之为 converged即收敛了。
而如果出现损失值变大的情况则可能是学习率 α\alphaα 设置的有问题下面我们将学习了解学习率的概念 学习率
学习率learning rate是梯度下降算法中的一个重要超参数用于控制每一次参数更新的步长大小。在梯度下降算法中每一次迭代都需要计算损失函数的梯度然后按照一定的步长沿着梯度方向更新模型参数。
学习率决定了每次更新的步长大小 如果学习率过大会导致参数在梯度方向上 “跳跃” 太大而无法收敛 如果学习率过小会导致参数更新缓慢耗费较长的时间才能达到最优解。
学习率的选择是一个经验性的问题需要根据具体问题和数据集的特征来进行调整。一般来说可以从较小的学习率比如 α\alphaα 0.001开始观察损失函数的收敛情况和模型的性能然后逐步调整学习率的大小直到达到最佳的性能和收敛速度。
在梯度下降算法中有三种不同的学习率策略可供选择
固定学习率使用固定的学习率不随着迭代次数的增加而改变。动态学习率根据迭代次数或其他规则来动态调整学习率。自适应学习率根据梯度的大小来自适应地调整学习率常见的方法包括Adagrad、Adam等。
对于初学者而言无需参与到动态学习率 与 自适应学习率的讨论中尝试固定学习率以 0.001 与 0.01 多做尝试即可。