在机器学习任务中,不同的特征有不同的取值范围,因此特征缩放是必不可少的预处理过程步骤。
对于在线学习来说,不太可能仅根据已观察到的一些训练样本后就准确的确定特征的取值范围,此外,数据的分布也可能会随着时间的推移而改变。所以论文《Dynamic Feature Scaling for Online Learning of Binary Classifiers》针对在线学习应用场景提出了两种动态特征缩放方法。
1.无监督动态特征缩放
对于一个特征
x
j
x_j
xj,如果特征的均值为
μ
(
x
j
)
\mu(x_j)
μ(xj),标准差为
δ
(
x
j
)
\delta (x_j)
δ(xj),进行特征标准化后有:
x
j
′
=
x
j
−
μ
j
δ
j
x_j^{\prime} = \frac {x_j - \mu_j} {\delta_j}
xj′=δjxj−μj
对于预处理步骤来说,我们可以根据训练集的所有样本来计算
μ
\mu
μ和
δ
\delta
δ,对于在线学习,可按照下式来进行更新它们的值:
μ
j
k
=
m
j
k
δ
j
k
=
s
j
k
/
(
k
−
1
)
m
j
k
=
m
j
k
−
1
+
x
j
k
−
m
j
k
−
1
k
s
k
=
s
k
−
1
+
(
x
j
k
−
m
j
k
−
1
)
(
x
j
k
−
m
j
k
)
\begin{aligned} \mu_j^k &= m_j^k \\ \delta_j^k &= \sqrt{s^k_j / (k-1)} \\ m_j^k & =m_j^{k-1}+\frac{x_j^k-m_j^{k-1}}{k} \\ s^k & =s^{k-1}+\left(x_j^k-m_j^{k-1}\right)\left(x_j^k-m_j^k\right) \end{aligned}
μjkδjkmjksk=mjk=sjk/(k−1)=mjk−1+kxjk−mjk−1=sk−1+(xjk−mjk−1)(xjk−mjk)
- 有监督动态特征缩放
相比于无监督动态特征缩放,会考虑样本的标签。
论文的实验结果表明无监督动态特征缩放方法相比于有监督特征缩放性能更好,暂时用不上,先偷个懒,后续补上这部分的笔记