当前位置: 首页 > news >正文

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

目录

一、什么是特征缩放:

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

三、如何进行特征缩放:

        1、归一化:

        2、均值归一化:

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


一、什么是特征缩放:

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

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

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

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

总平方米:300平~2000平房间数量:1间~5间
w_1 = 50w_2 = 0.1
w_1 = 0.1w_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 }

http://www.lryc.cn/news/320781.html

相关文章:

  • 机器学习_正则化
  • python知识点总结(四)
  • upload-labs-pass01
  • 2.4 ROC曲线是什么?
  • mysql笔记:21. 演示脏读、不可重复读和幻读现象
  • iOS通过wifi连接硬件设备
  • SQL-Labs靶场“36-37”关通关教程
  • RabbitMQ介绍及搭建
  • VSCode + PicGo + Github 实现markdown图床管理
  • 小程序搜索排名优化二三事
  • 分布式 Session--一起学习吧之架构
  • 记录一下小程序自定义导航栏消息未读已读小红点,以及分组件的消息数量数据实时读取
  • qt+ffmpeg 实现音视频播放(二)之音频播放
  • Bash Shell中双引号中的感叹号问题详解
  • MFC中CString的用法及使用示例
  • 注册个人小程序
  • VTK----VTK的事件机制
  • 常用的vim和linux命令
  • 生产环境中间件服务集群搭建-zk-activeMQ-kafka-reids-nacos
  • Smart Light Random Memory Sprays Retinex 传统图像增强 SLRMSR
  • Oracle数据库实例概述
  • Odoo17免费开源ERP开发技巧:如何在表单视图中调用JS类
  • [RCTF2015]EasySQL ---不会编程的崽
  • Memcached-分布式内存对象缓存系统
  • bash: sqlplus: command not found 问题解决方法
  • 大模型-Prompt
  • Python实战:SQLAlchemy ORM使用教程
  • 能不能绕过c去学c++?
  • Python 小爬虫:爬取 bing 每日壁纸设为桌面壁纸
  • 利用textarea和white-space实现最简单的文章编辑器 支持缩进和换行