归一化,标准化与正则化学习

机器学习的数据处理中,常见归一化、标准化与正则化的说法。它们都是什么意思呢?

 

一、归一化

归一化是把数据处理到一个范围内。机器学习中的数据,可能差别非常大,比如人的年龄与年收入,就不是一个数量级的数字;另外,除数字外,还有很多其他类型的数据。这些数据直接进行机器学习,效果会非常不好,这就需要归一化处理了。归一化处理后,就消除了这种不同数据类型,不同数据范围的差别了,方便数据比较和共同处理,还可以加快机器学习的速度。

常见的归一化处理有0均值标准化,最大最小标准化。

1)0均值标准化的公式是:归一值 = (原值 - 均值)/方差

sklearn里的实现是:sklearn.preprocessing.scale(),将数据按其属性(按列进行)减去其均值,然后除以方差。最后得到的结果是,对每个属性/每列来说所有数据都聚集在0附近,方差值为1。

2)最大最小标准化的公式是:归一值 = (原值 - 最小值)/(最大值 - 最小值)

sklearn里的实现是:sklearn.preprocessing.MinMaxScaler()

这里,我把归一化和标准化放在一起了,两者的差别不大。

 

二、正则化

用一组与原不适定问题相“邻近”的适定问题的解,去逼近原问题的解,这种方法称为正则化方法。正则化可以提高模型的泛化能力,目的是解决数据不够多,或者训练过度导致的过拟合的问题。

常用的正则化方法有:L1正则化,L2正则化,人为扩充数据等

sklearn里的实现是:sklearn.preprocessing.normalize()

 

三、什么机器学习的方法需要归一化、正则化处理

最常用的判断标准是多做几遍,一遍用归一化,一遍不用,看看结果。 :-D :-D

通常在机器学习的方法中,需要用到具体数据的,需要归一化;只在乎概率的,不用归一化。

在(https://cloud.tencent.com/developer/article/1092952)里,有个概括。

需要归一化的模型有

  • 神经网络,标准差归一化
  • 支持向量机,标准差归一化
  • 线性回归,可以用梯度下降法求解,需要标准差归一化
  • PCA
  • LDA
  • 聚类算法基本都需要
  • K近邻,线性归一化,归一到[0,1]区间内。
  • 逻辑回归

不需要归一化的模型:

  • 决策树: 每次筛选都只考虑一个变量,不考虑变量之间的相关性,所以不需要归一化。
  • 随机森林:不需要归一化,mtry为变量个数的均方根。
  • 朴素贝叶斯

需要正则化的模型:

  • Lasso
  • 岭回归
  • Elastic Net
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值