前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用sklearn轻松实现数据缩放

使用sklearn轻松实现数据缩放

作者头像
Python大数据分析
发布2022-04-03 09:45:19
5060
发布2022-04-03 09:45:19
举报

本文参考翻译Jason Brownlee博客

机器学习在建模之前,需要做数据准备。数据准备的过程主要包括3个步骤:

  • 数据选择
  • 数据预处理
  • 数据转换

本文会告诉你两种方法,即如何使用Python的Scikit-Learn库进行简单的数据转换。

一、数据缩放

你的预处理数据集中可能包含各种各样、不同比例的特征字段,比如美元、千克、价格,有的特征列数值范围在100以内,有的却达到几百万,差异很大。

很多机器学习模型不希望有这样大的差异,如果数据集各个属性之间的数值差异越小,则模型表现的会越好。这里不一概而论,具体原因小伙伴们自行探索下。

方法1:数据归一化

数据归一化是指将原始数据缩放到0和1之间。

对于依赖于值的大小的模型,这种对输入属性的缩放很管用。比如在K近邻模型的距离测量和回归系数的准备。

接下来用都知道的鸢尾花数据集演示数据归一化:

代码语言:javascript
复制
# 对鸢尾花数据集进行数据归一化处理.
from sklearn.datasets import load_iris
from sklearn import preprocessing
# 加载数据
iris = load_iris()
print(iris.data.shape)
# 分离原始数据集,分为自变量和因变量
X = iris.data
y = iris.target
# 归一化处理
normalized_X = preprocessing.normalize(X)

更多关于归一化处理,详见API

方法2:数据标准化

数据标准化是指:将数据缩放,改变每个属性的分布,使其平均值为0,标准差为1。

诸如高斯过程等依赖于特征分布的模型,对特征进行标准化是非常有用的。

依然用鸢尾花的例子:

代码语言:javascript
复制
# 对鸢尾花数据集进行数据标准化处理.
from sklearn.datasets import load_iris
from sklearn import preprocessing
# 加载数据
iris = load_iris()
print(iris.data.shape)
# 分离原始数据集,分为自变量和因变量
X = iris.data
y = iris.target
# 标准化处理
standardized_X = preprocessing.scale(X)

更多关于归一化处理,详见API

二、说明

很难知道数据缩放是否会有利于模型的效果,大概率上是有用的,但不排除出现产生负效果。

中肯的建议是,先建立一个数据缩放后的副本,使用你的算法模型测试对比缩放前后的效果。

这可以让你快速知道,你的模型中缩放带来的好处或弊端。

你也可以试用不同的缩放方法,进行对比。

三、总结

数据缩放是一种非常重要的数据转换方法。

本文介绍了归一化和标准化两种方法,均用Python Scikit-Learn库提供的方法实现。简单好用,快试试吧!

-END-

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

本文分享自 Python大数据分析 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、数据缩放
    • 方法1:数据归一化
      • 方法2:数据标准化
      • 二、说明
      • 三、总结
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档