栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

【机器学习】什么是特征缩放?如何去实现特征缩放?

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【机器学习】什么是特征缩放?如何去实现特征缩放?

系列文章目录


第七章 Python 机器学习入门之特征缩放与多项式回归


系列文章目录

文章目录

前言

一、特征缩放是什么?

二、如何去实现特征缩放

1.将特征值除以最大值

2.均值归一化

3.z-score 归一化

总结


前言

特征缩放可以使得梯度下降 gradient descent 的幅度更大,程序运行的更快,


一、特征缩放是什么?

我们先来看看特征的大小,也就是特征的数值大小与相关参数的大小之间的关系

举个例子,我们使用两个特征值X来预测房子的价格,

假设这两个特征值分别是:x1房子的大小, x2卧室的数量
很明显x1 要比 x2 大的多

如果已知一个房子的大小为2000,有5个卧室,价格为500k,我们来求其它两个参数w1,w2

不难发现当一个特征x1较大时,与之对应的参数w1应该较小,反之也是一样

下面来看看特征的散点图,左边,
横轴房子的大小比纵轴卧室的规模要大得多,或者说取值的范围要大得多

来看看代价函数的等高线图,右边,横轴的取值范围很小,纵轴很大,这说明w1一个很小的变化都会对估计价格产生很大的影响,对代价函数也会有很大的影响,因为w1要乘以一个很大的数 房子的大小,而w2 与之相反。


如果我们直接使用训练数据,当使用梯度下降来使得代价函数最小化时,它可能会来回跳很长时间才能找到,原因就是w1一个很小的变化都会对代价函数产生很大的影响,

为了解决这个问题,一个有用的做法就是特征缩放,就是对训练数据做一些转换,

如果我们可以将两个特征的取值范围都缩放到0到1之间,
那么使用梯度下降来找到代价函数最小值是不是更加简单了。

二、如何去实现特征缩放

1.将特征值除以最大值

如果一个特征x1 的取值范围是300 到 2000,那么一种特征缩放的方法就是除以最大值,将x1/2000,缩放后x1的取值范围在0.15到1之间。

2.均值归一化

另一种方法是均值归一化,重新计算训练数据,使它们都在0附件,取值范围在(-1,1)间,
如果要对x1数据进行均值归一化,我们首先要在数据集上找到平均值u1,计算公式如图

3.z-score 归一化

第三种方法是z-score 归一化,我们需要计算每个特征的标准差

总结一下,当我们的特征值的取值范围太大或者太小时,使用梯度下降来使得代价函数最小化会很慢,这时候我们一般都会进行特征缩放。


总结

总结一下,当我们的特征值的取值范围太大或者太小时,使用梯度下降来使得代价函数最小化会很慢,这时候我们一般都会进行特征缩放。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1000771.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号