【机器学习】数据预处理 - 归一化和标准化_归一化处理(1)

「作者主页」:士别三日wyx
「作者简介」:CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者
「推荐专栏」:对网络安全感兴趣的小伙伴可以关注专栏《网络安全入门到精通》

数据预处理

处理数据之前,通常会使用一些转换函数将「特征数据」转换成更适合「算法模型」的特征数据。这个过程,也叫数据预处理。

比如,我们在择偶时,有身高、体重、存款三个特征,身高是180、体重是180、存款是180000;存款的数值跟其他数据不在一个数量级,这意味着存款的对择偶结果的影响比较大,但我们认为这三个特征同样重要,这时候就需要把这些规格不同的数据转换到同一规格。

「归一化」是常用的预处理方式之一,就是把数据转换到 0~1 之间。

一、数据预处理API

sklearn.preprocessing 是数据预处理的 API

sklearn.preprocessing.MinMaxScaler( feature_range=(0,1) )

  • MinMaxScaler.fit_transform( data ):接收array类型数据,返回归一化后的array类型数据。

参数:

  • feature_range=(0,1):(可选,默认0~1)指定归一化的范围,。

二、准备数据集

准备一个测试用的「数据集」,这里我们用 datasets 自带的 鸢尾花数据集

from sklearn import datasets

# 获取数据源
iris = datasets.load_iris()
# 打印数据
print(iris.data)

输出:

[[5.1 3.5 1.4 0.2]
 [4.9 3.  1.4 0.2]
 ......
 [5.9 3.  5.1 1.8]]

从输出结果可以看到,数据规格都是有「差异」的,接下来,我们对数据进行归一。

三、归一化处理

fit_transform() 可以对数据进行「归一」处理

from sklearn import preprocessing
from sklearn import datasets


# 初始化
mm = preprocessing.MinMaxScaler()

# 获取数据源
iris = datasets.load_iris()

# 归一化处理
new_data = mm.fit_transform(iris.data)
print(new_data)

输出:

[[0.22222222 0.625      0.06779661 0.04166667]
 [0.16666667 0.41666667 0.06779661 0.04166667]
 ......
 [0.44444444 0.41666667 0.69491525 0.70833333]]

从结果可以看到,归一后的结果,数据规格都在 0~1 之间。

实际上,fit_transform() 不只可以 “归1” ,我们自己设置归一的范围。

四、设置归一化范围

实例化 MinMaxScaler 时,指定 feature_range 参数的值,可以设置归一的「范围」。

from sklearn import preprocessing
from sklearn import datasets


# 初始化
mm = preprocessing.MinMaxScaler(feature_range=(2,3))

# 获取数据源
iris = datasets.load_iris()

# 归一化处理
new_data = mm.fit_transform(iris.data)
print(new_data)

输出:

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

需要这份系统化资料的朋友,可以戳这里获取*

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 20
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值