机器学习中的数据归一化

最值归一化 normalization

最值归一化:把所有的数据映射到[0,1]之间。

x = x − x m i n x m a x − x m i n \large x=\frac{x-x_{min}}{x_{max}-x_{min}} x=xmaxxminxxmin

下面使用np实现最值归一化。

import numpy as np
import matplotlib.pyplot as plt
#生成数据
X=np.random.randint(0,10,(30,2))
X=np.array(X,dtype=float)

观察归一化之前的数据分布。

plt.scatter(X[:,0],X[:,1])
plt.show()

在这里插入图片描述
进行最值归一化。

X[:,0]=(X[:,0]-np.min(X[:,0]))/(np.max(X[:,0])-np.min(X[:,0]))
X[:,1]=(X[:,1]-np.min(X[:,1]))/(np.max(X[:,1])-np.min(X[:,1]))

再次观察分布,可以发现数据都被映射到了[0,1]之间。

plt.scatter(X[:,0],X[:,1])
plt.show()

在这里插入图片描述

均值方差归一化 Standardization

x = x − x m e a n x s t d \large x=\frac{x-x_{mean}}{x_{std}} x=xstdxxmean
均值方差归一化也叫做数据标准化,适用于数据分布没有明显边界的情况:可能存在极端数据。例如,假设100个数据中,99个都分布在[0,100]之间,而剩下的一个大小为10000,那经过最值归一化,10000显然映射为了1,而其他数据则都在[0,0.01]之间。

X=np.random.randint(0,10,(30,2))
X=np.array(X,dtype=float)
plt.scatter(X[:,0],X[:,1])
plt.show()

在这里插入图片描述

X[:,0]=(X[:,0]-np.mean(X[:,0]))/np.std(X[:,0])
X[:,1]=(X[:,1]-np.mean(X[:,1]))/np.std(X[:,1])
plt.scatter(X[:,0],X[:,1])
plt.show()

在这里插入图片描述

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值