文章目录
特征缩放
特征缩放这个名字听起来很腻害的样子,实际上它讲了一个非常浅显的方法。
例如下面的Cameront1身高5.9,体重175,他穿L号的衣服。
Sarah体重115,身高5.2,她穿S号的衣服。
那么有个人叫Chris,他体重140,身高6.1,应该穿了L还是S呢?
我们可以合理的猜测一下,Chris的身高6.1更接近Cameron的5.9的身高,因此可以和他一样穿L号的,当然你也可以有其他的猜测,例如根据体重
特征缩放就讲的这么一回事,公式如下:
x'=\frac{x-x_{min}}{x_{max}-x_{min}}
例如刚刚的图片中,我们的身高有[115,140,174],这里的最大值是175,最小值是115,那么140的缩放值就是
x_{140}'=\frac{140-115}{175-115}≈0.417
这中做法的有好有坏:
好处 :得到的值都是0~1之间的,很方便
坏处:如果存在异常值,那么结果就很不可靠
在Python中实践特征缩放
这个公式非常简单,当然你也可以自己编写代码来计算,不过我们要用到的是Sklearn文档中的函数,因为这样子更懒~
打开Sklearn的MinMaxScaler函数,会看到下面的代码示例:
然后我们打开Python的终端来操作一下刚刚例子中的身高数组[115,140,174]
>>> from sklearn.preprocessing import MinMaxScaler
>>> import numpy
>>> weights=numpy.array([[115.],[140.],[175.]])
>>> scaler=MinMaxScaler()
>>> rescaled_weight=scaler.fit_transform(weights)
>>> rescaled_weight
array([[0. ],
[0.41666667],
[1. ]])
需要注意的是【使用RBF核函数的SVM】和【K-均值聚类】算法都会收到【特征缩放】的影响,而【决策树】和【线性回归】则不会受到影响
你的赞是对作者莫大的支持哦~?
如果你想看其他的关于机器学习的一些知识,可以关注我的知乎专栏,我是一个机器学习小白,初学者总会遇到各种各样的困难,我会从初学者的角度把每一个坑都给你仔仔细细的讲明白咯~