实现特征缩放和特征归一化的方法有哪些?

栏目: 数据库 · 发布时间: 5年前

内容简介:本文将为你介绍实现特征缩放和特征归一化的方法。在随机梯度下降(stochastic gradient descent)算法中,特征缩放有时能提高算法的收敛速度。特征缩放是用来标准化数据特征的范围。

本文将为你介绍实现特征缩放和特征归一化的方法。

1. 特征缩放

在随机梯度下降(stochastic gradient descent)算法中,特征缩放有时能提高算法的收敛速度。

1.1 什么是特征缩放

特征缩放是用来标准化数据特征的范围。

1.2 机器算法为什么要特征缩放

特征缩放还可以使机器学习算法工作的更好。比如在K近邻算法中,分类器主要是计算两点之间的欧几里得距离,如果一个特征比其它的特征有更大的范围值,那么距离将会被这个特征值所主导。因此每个特征应该被归一化,比如将取值范围处理为0到1之间。

在梯度下降法中,当有多个特征向量的时候,如果其中一个变化范围比较大,则该特征向量的参数可能会变化范围很大,从而主导整个梯度下降的过程,使得整个收敛轨迹变得复杂,让收敛的时间更长。

2. 特征缩放的方法

2.1 调节比例(Rescaling)

这种方法是将数据的特征缩放到[0,1]或[-1,1]之间。缩放到什么范围取决于数据的性质。对于这种方法的公式如下:

  1. x' = \frac{x - min(x)}{max(x) - min(x)}

$x$ 是最初的特征值, $x'$ 是缩放后的值。

2.2 标准化(Standardization)

特征标准化使每个特征的值有零均值(zero-mean)和单位方差(unit-variance)。这个方法在机器学习地算法中被广泛地使用。例如:SVM,逻辑回归和神经网络。这个方法的公式如下:

  1. x' = \frac{x - \bar x}{\sigma}

3. 特征归一化

3.1 为什么要进行特征归一化

数据标准化(归一化)处理是数据挖掘的一项基础工作,不同评价指标往往具有不同的量纲和量纲单位,这样的情况会影响到数据分析的结果,为了消除指标之间的量纲影响,需要进行数据标准化处理,以解决数据指标之间的可比性。原始数据经过数据标准化处理后,各指标处于同一数量级,适合进行综合对比评价。

3.2 特征归一化的意义

  • 各特征之间的大小范围一致,才能使用距离度量等算法
  • 加速梯度下降算法的收敛
  • 在SVM算法中,一致化的特征能加速寻找支持向量的时间
  • 不同的机器学习算法,能接受的输入数值范围不一样

3.3 特征归一化的方法

3.3.1 Rescaling

采用上述的

  1. x' = \frac{x - min(x)}{max(x) - min(x)}

公式实现。

sklearn 中,对应的是 sklearn.preprocessing.MinMaxScaler ,其使用方法如下:

from sklearn.preprocessing import MinMaxScaler
x=[[10001,2],[16020,4],[12008,6],[13131,8]]
min_max_scaler = MinMaxScaler()
X_train_minmax = min_max_scaler.fit_transform(x)#归一化后的结果

它默认将每种特征的值都归一化到[0,1]之间,归一化后的数值大小范围是可调的(根据 MinMaxScaler 的参数 feature_range 调整)。下面代码能将特征归一化到 [-1,1] 之间。

min_max_scaler = MinMaxScaler(feature_range=(-1,1))
X_train_minmax = min_max_scaler.fit_transform(x)#归一化后的结果

3.3.2 Standardization

其数学公式为:

  1. x'=\frac{x-\overline{x}}{\sigma}

sklearn 中对应的是 sklearn.preprocessing.StandardScaler 。其代码如下:

from sklearn.preprocessing import StandardScaler
x=[[10001,2],[16020,4],[12008,6],[13131,8]]
X_scaler = StandardScaler()
X_train = X_scaler.fit_transform(x)

StandardScaler的归一化方式是用每个特征减去列均值,再除以列标准差。

==总结==:

  • 当我们需要将特征值都归一化为某个范围[a,b]时,选MinMaxScaler
  • 当我们需要归一化后的特征值均值为0,标准差为1,选StandardScaler

3.3.3 Scaling to unit length

其数学公式为:

  1. x'=\frac{x}{\left \| x \right \|}

参考文献

  •   https://blog.csdn.net/sd9110110/article/details/53453945

作者介绍:邵洲,在读博士。研究兴趣:数据挖掘、学者迁徙研究。


以上所述就是小编给大家介绍的《实现特征缩放和特征归一化的方法有哪些?》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Python 3网络爬虫开发实战

Python 3网络爬虫开发实战

崔庆才 / 人民邮电出版社 / 2018-4 / 99

本书介绍了如何利用Python 3开发网络爬虫,书中首先介绍了环境配置和基础知识,然后讨论了urllib、requests、正则表达式、Beautiful Soup、XPath、pyquery、数据存储、Ajax数据爬取等内容,接着通过多个案例介绍了不同场景下如何实现数据爬取,后介绍了pyspider框架、Scrapy框架和分布式爬虫。 本书适合Python程序员阅读。一起来看看 《Python 3网络爬虫开发实战》 这本书的介绍吧!

URL 编码/解码
URL 编码/解码

URL 编码/解码

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试