机器学习

归一化、标准化和正则化及代码实现

2019-08-06  本文已影响0人  一位学有余力的同学

归一化、标准化和正则化都是对数据进行处理的,那么这三种有什么区别呢?

归一化(normalization)

归一化有两个作用:

归一化的主要方法
1.线性转换,即min-max归一化:
y = \frac{x-min}{max-min}
2.对数函数转换:
y=\log_{10}(x)
3.反余切函数转换:
y=atan(x)*2/PI

可实现代码

'''MinMaxScaler方法'''
from sklearn import preprocessing
scaler = preprocessing.MinMaxScaler(feature_range=(0,1), copy=True)
scaler.fit_transform(data)

分别对每一列做做最小最大化归一化,特征范围默认为(0,1)之间,原理比较简单,不再累述,详见官方文档

标准化(Standardization)

数据的标准化是将数据按比例缩放让数据落入某一特定区间内,使均值为0。公式为:(x-mean)/std
与归一化相比,标准化更为常见,原因如下:

主要方法
标准化最常用的方法是Z-Score方法,

'''StandardScaler方法'''
from sklearn import preprocessing
scaler = preprocessing.StandardScaler(copy=True, with_mean=True,with_std=True)
scaler.fit_transform(data)

计算公式为:
z=(x-u)/s
u为每列训练样本均值,s为每列标准差,详见官方文档

正则化(Regularization)

'''normalize方法'''
from sklearn import preprocessing
scaler = preprocessing.normalize(data,norm='l2',axis=1,return_norm=False)

norm='l1','l2'或'max',默认为‘l2’
官方文档

参考博客:
数据归一化、标准化和正则化
归一化,标准化,正则化的概念和区别
sklearn.preprocessing官方文档

上一篇 下一篇

猜你喜欢

热点阅读