特征缩放_概念

  • 给出这三个人的身高和体重:

这里写图片描述

  • 按照我们的理解,明显Chris应该穿L码,但是根据身高+体重的结果,Chris却应该穿S。这是为什么呢?

因为在这里,体重完全主导了结果,身高的影响微乎其微。 
而我们应该尽量让两者对结果有同等重要的影响。 
这就引来了特征缩放——把特征都限制在[0,1]之间。

这里写图片描述

解释:

  • X’是你要构建的新特征
  • X(max)和X(min)是原始特征再被缩放前所取的最小值和最大值
  • X代表需要缩放的各项特征的原始值

特点:缩放后的特征值总是在0和1之间

  • 优点:你的预估输出相对稳定
  • 缺点:如果你的输出特征中有异常值,那么你的特征缩放就会比较棘手(最大值最小值可能是极端值)

代码示例:

from sklearn.preprocessing import MinMaxScaler
import numpy
#这里numpy数组中的是特征,因为此处特征只有一个,所以看起来是这样的
#因为这里应该作为一个浮点数进行运算,所以数字后面要加.
weights = numpy.array([[115.],[140.],[175.]])
scaler = MinMaxScaler()
rescaled_weight = scaler.fit_transform(weights)
print rescaled_weight

哪些机器学习算法会受到特征缩放的影响?

  1. 使用RBF核函数的SVN
  2. K-均值聚类

在这两种算法中计算距离时,你其实是在利用一个维度与另一个维度进行交换

如:

  • SVM计算最大距离时就是这种情况。如果我们把某一点增大至其他点的两倍,那么它的数值也会扩大一倍
  • K-均值聚类也是。计算各数据点到集群中心的距离
原文地址:https://www.cnblogs.com/HL-blog/p/8923782.html