本文参考翻译Jason Brownlee博客

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

  • 数据选择

  • 数据预处理

  • 数据转换

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

一、数据缩放

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

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

方法1:数据归一化

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

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

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

# 对鸢尾花数据集进行数据归一化处理.
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。

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

依然用鸢尾花的例子:

# 对鸢尾花数据集进行数据标准化处理.
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-

往期精彩回顾适合初学者入门人工智能的路线及资料下载机器学习在线手册深度学习在线手册AI基础下载(pdf更新到25集)本站qq群1003271085,加入微信群请回复“加群”获取一折本站知识星球优惠券,复制链接直接打开:https://t.zsxq.com/yFQV7am喜欢文章,点个在看

使用Scikit-Learn轻松实现数据缩放相关推荐

  1. 机器学习与Scikit Learn学习库

    摘要: 本文介绍机器学习相关的学习库Scikit Learn,包含其安装及具体识别手写体数字案例,适合机器学习初学者入门Scikit Learn. 在我科研的时候,机器学习(ML)是计算机科学领域中最 ...

  2. 【scikit-learn】如何用Python和SciKit Learn 0.18实现神经网络

    本教程的代码和数据来自于 Springboard 的博客教程.本文的作者为 Jose Portilla,他是网络教育平台 Udemy 一门数据科学类课程的讲师. GitHub 链接:https://g ...

  3. Scikit Learn: 在python中机器学习

    Warning 警告:有些没能理解的句子,我以自己的理解意译. 翻译自:Scikit Learn:Machine Learning in Python 作者: Fabian Pedregosa, Ga ...

  4. [转载]Scikit Learn: 在python中机器学习

    原址:http://my.oschina.net/u/175377/blog/84420 目录[-] Scikit Learn: 在python中机器学习 载入示例数据 一个改变数据集大小的示例:数码 ...

  5. python笔迹识别_python_基于Scikit learn库中KNN,SVM算法的笔迹识别

    之前我们用自己写KNN算法[网址]识别了MNIST手写识别数据 [数据下载地址] 这里介绍,如何运用Scikit learn库中的KNN,SVM算法进行笔迹识别. 数据说明: 数据共有785列,第一列 ...

  6. python scikit learn 关闭开源_scikit learn 里没有神经网络?

    本教程的代码和数据来自于 Springboard 的博客教程,希望能为你提供帮助.作者为 Jose Portilla,他是网络教育平台 Udemy 一门数据科学类课程的讲师. GitHub 链接:ht ...

  7. scikit - learn 做文本分类

    文章来源: https://my.oschina.net/u/175377/blog/84420 Scikit Learn: 在python中机器学习 Warning 警告:有些没能理解的句子,我以自 ...

  8. 服务器邮箱备份文件在哪里,如何轻松将数据文件备份到电子邮箱?

    原标题:如何轻松将数据文件备份到电子邮箱? 随着各大免费邮箱服务商的激烈竞争,邮箱的空间也越来越大,利用邮箱空间来进行文件备份,对于个人来说的确是一种很好的选择. 它的好处,一是利用了免费的空间,不需 ...

  9. R语言层次聚类(hierarchical clustering):数据缩放、PCA聚类结果可视化、fpc包的clusterboot函数通过bootstrap重采样的方法评估hclust层次聚类的稳定性

    R语言层次聚类(hierarchical clustering):数据缩放.PCA聚类结果可视化.fpc包的clusterboot函数通过bootstrap重采样的方法评估hclust层次聚类的稳定性 ...

最新文章

  1. python -socket -client
  2. android 课程——样式
  3. 设计模式:程序员跳不开的坑
  4. hdu Turn the corner
  5. leetcode刷题 153.寻找旋转排序数组中的最小值
  6. 使用Hibernate 4,JPA和Maven的架构创建脚本
  7. arcgis vue 添加图层优化_行业 | ArcGIS制图技巧(超全)
  8. Magento: 设置产品列表默认排序方式 How to sort Magento products by date added as default
  9. python正则表达式之re模块方法介绍
  10. list 分页_mybatis一对多分页查询
  11. Linux内核的学习(二)
  12. 小白Linux入门之:常用命令介绍
  13. atitit.thumb生成高质量缩略图 php .net c++ java
  14. 显示器尺寸对照表_【开屏说】⑦:入手显示器须知的十大参数
  15. Java语言背景介绍
  16. 金蝶EAS-BOS二开详细过程
  17. 在EXCEL中插入超级链接
  18. 「Linux」网络配置大揭秘
  19. LabVIEW在无线设备中的应用
  20. 使用ProcMon 输出调试信息

热门文章

  1. mysql xtrabackup备份工具使用
  2. 查询数据库游标使用情况以及sql
  3. 团队-Forward团队一阶段互评
  4. sqlserver计算时间差DATEDIFF 函数
  5. Python 基础篇:介绍
  6. 解决通过 Visual Studio 打不开 ui 文件的问题
  7. 剪切板复制word图片是本地路径_如何将图片数学公式快速输入到Word中?
  8. python 直方图的绘制方法全解_python plotly绘制直方图实例详解
  9. 开发实践 | Android开发Zegbee 温度、气体采集系统(代码类)
  10. 声学漫谈之六:音腔频段如何判定?