特征工程
常用方法:
标准化:
x
i
−
u
σ
\frac{x_i -u}{\sigma}
σxi−u
归一化:
x
i
−
m
i
n
(
x
)
m
a
x
(
x
)
−
m
i
n
(
x
)
\frac{x_i - min(x)}{max(x) - min(x)}
max(x)−min(x)xi−min(x)
多项式:
Label Encodel:
One-hot Encoder:
为什么要进行feature scaling?
1.特征单位不同。特征单位不同会导致计算距离不同,尺度大的特征起的作用比较大,尺度小的特征作用可能被忽略。为了消除特征间的差异,使所有的特征同等重要,需要进行标准/归一化。
2.使损失函数收敛更快。损失函数的等高线一般是椭圆的,损失函数下降的方向可能会有震荡,进行特征标准/归一化之后,损失函数的等高线更接近圆形,梯度下降的方向震荡小,收敛速度更快。
什么时候需要进行feature scaling?
1.涉及距离计算的算法,如K-Means,KNN,PCA,SVM
2.损失函数中含有正则项时
3.梯度下降算法需要feature scaling
什么时候不需要进行标准化/归一化?
1.与距离计算无关的概率模型,如Naive Bayes
2.与距离无关的基于树的模型,如决策树、随机森林
参考:https://www.cnblogs.com/shine-lee/p/11779514.html