机器学习----特征缩放

目录

一、什么是特征缩放:

二、为什么要进行特征缩放?

三、如何进行特征缩放:

        1、归一化:

        2、均值归一化:

        3、标准化(数据需要符合正态分布):


一、什么是特征缩放:

        通俗来讲就是将原本由于数据规范化的单位,导致所训练的数据集中各种数据的无单位数值差距较大,而我们通过归一化处理等方式使得数据范围均稳定在一个较小区间的过程。

二、为什么要进行特征缩放?

        我看了许多文章,就好比我们常常会由于其过于突出的一面而片面理解某个事物一样,对于值大的一方,我们会不知觉地倾向过去。对于这个点我们最好还是从一个等高线图来进行理解:

        以吴恩达老师的例子来说明,假设其购房:

总平方米:300平~2000平 房间数量:1间~5间
w_1 = 50 w_2 = 0.1
w_1 = 0.1 w_2 = 50

        同时我们假设b = 50,对于其2000平米,5个房间的房子,其正常的价格为50万:

那么我们带入列表中两组不同的w1和w2,可以发现,其数值较大的因素:总平方*50 + 房间*0.1求得的值约为10万元,而另一组则大约为50万元。

        我们可以发现:我们更希望一个数值越小的,其对应的系数应该越大,那这与梯度下降有什么关系呢?

        我们这是便从等高线图中来理解:

        这个是其对应的J(\vec{w},b)  的等高线图,那么我们可以看看梯度下降需要走到其中最小点的话,他可能会怎么走: 

        由于size对应的轴范围太短,room对应的轴由过于长,要想通过梯度下降得到一能满足条件的最小值可能就会出现这种状况,导致其收敛减慢。 这便是为什么我们需要进行特征缩放,而如果图中并非椭圆而是圆形,其效果就是最好的情况。

        同时我们也可以结合欧氏距离进行理解。

三、如何进行特征缩放:

        1、归一化:

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

        其对应的取值区间为[0,1],当然也有更加灵活的形式:

x^{'} = a + \frac{x - min(x)}{max(x) - min(x)}(b - a)

        其对应的取值区间为[a,b],一般来说,a,b的值不要过大也不要过小,其 [-5 , 5] 都是适合的。

        2、均值归一化:

x^{'} = \frac{x - \bar{x}}{max(x) - min(x)}

        3、标准化(数据需要符合正态分布):

x^{'} = \frac{x - \bar{x}}{\sigma }

        其中分母对应x的标准差,其实这个式子就是正态分布的标准化的公式:

x^{'} = \frac{x - \mu}{\sigma }

相关推荐

  1. 机器学习流程—数据预处理 和转换

    2024-03-19 10:40:09       41 阅读
  2. Scikit-Learn 中级教程——特征

    2024-03-19 10:40:09       53 阅读
  3. 深度学习之梯度介绍

    2024-03-19 10:40:09       25 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-19 10:40:09       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-19 10:40:09       100 阅读
  3. 在Django里面运行非项目文件

    2024-03-19 10:40:09       82 阅读
  4. Python语言-面向对象

    2024-03-19 10:40:09       91 阅读

热门阅读

  1. 【运维笔记】记录一次SSH登录太慢的问题

    2024-03-19 10:40:09       38 阅读
  2. Function.prototype.bind的用法

    2024-03-19 10:40:09       42 阅读
  3. geemap和ee库简介及常用函数

    2024-03-19 10:40:09       48 阅读
  4. Qt与MFC:跨平台现代化与传统Windows框架的对比

    2024-03-19 10:40:09       38 阅读
  5. Node.js

    Node.js

    2024-03-19 10:40:09      50 阅读
  6. Android FrameWork基础之Makefile

    2024-03-19 10:40:09       40 阅读
  7. Flutter第五弹:Flutter布局

    2024-03-19 10:40:09       49 阅读
  8. vue触发真实的点击 事件 跟用户行为一致

    2024-03-19 10:40:09       42 阅读
  9. 【概率论中的两种重要公式:全概率和贝叶斯】

    2024-03-19 10:40:09       49 阅读
  10. python教程——把视频转成gif

    2024-03-19 10:40:09       46 阅读
  11. ubuntu20.04 创建ros环境、创建rospackage

    2024-03-19 10:40:09       52 阅读
  12. 【兆易创新GD32H759I-EVAL开发板】 LUT功能

    2024-03-19 10:40:09       48 阅读