前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Normalization vs Standardization:规范化与标准化

Normalization vs Standardization:规范化与标准化

作者头像
深度学习与Python
发布2019-06-18 21:05:53
1.7K0
发布2019-06-18 21:05:53
举报

标准化、规范化以及正则化是机器学习中三个常用的数据处理方法,其中标准化和规范化解决不同单位和比例的数据间的差异,用于数据缩放;而正则化主要解决模型的过拟合问题。今天我们主要来学习标准化与规范化,通过原理分析和Python案例来综合学习。文中使用加利福尼亚州住房价格分布数据,其数据分布直方图如下:

Standardization:标准化

标准化是重新调整特征的过程,使其满足零均值单位方差的高斯分布。其转换公式如下:

标准化的代码实现可以调用sklearn库中preprocessing.Standardscaler的api接口,其具体实现如下:

代码语言:javascript
复制
from sklearn import preprocessing
# Get column names first
names = df.columns
# Create the Scaler object
scaler = preprocessing.StandardScaler()
# Fit your data on the scaler object
scaled_df = scaler.fit_transform(df)
scaled_df = pd.DataFrame(scaled_df, columns=names)

标准化处理的结果

Normalization:规范化

规范化简称为Min-Max缩放,通过变换将数据范围缩放在0和1之间(如果有负值则为-1到1)。其数学公式如下:

规范化的代码实现可以调用sklearn库中preprocessing.normalize的api接口,其具体实现如下:

代码语言:javascript
复制
from sklearn import preprocessing
import numpy as np
# Get dataset
df = pd.read_csv("https://storage.googleapis.com/mledudatasets/california_housing_train.csv", sep=",")
# Normalize total_bedrooms column
x_array = np.array(df['total_bedrooms'])
normalized_X = preprocessing.normalize([x_array])

规范化处理结果

特征缩放优缺点

优点:

特征缩放广泛用于机器学习算法中,主要有以下几点:

  • 如果希望所有特征都有相同的贡献则需使用特征缩放
  • 可用于Logistic回归,SVM,感知器,神经网络以及K-近邻
  • 线性判别分析,主成分分析和核主成分分析
  • 基于图形模型的分类器,例如朴素贝叶斯、决策树和基于树的集合方法

缺点:

规范化处理对数据异常值很敏感,处理之后数据中的异常值会消失,因此如果数据集中存在异常值,则这是一种不好的做法。 而标准化不受数据限制,所以一般我们采用标准化来处理数据。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-04-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 深度学习与python 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档