1. 介绍
数据归一化大致分为两种,一种是最值归一化,一种是均值方差归一化。
本文根据计算公式对其进行归一化处理。具体相关介绍及模块化代码实现请参考:
https://blog.csdn.net/weixin_43585050/article/details/107900811
2. 最值归一化
2.1 公式
2.2 代码实现
import numpy as np
np.set_printoptions(suppress=True)
from sklearn.datasets import load_iris
# 加载鸢尾花数据集
iris = load_iris()
# 调取鸢尾花样本集
X = iris.data
print(X)
# 根据输出值发现鸢尾花数据集是一个150行4列的矩阵
print(X.shape)
# 由于是4列,因此对每一列的所有元素取值;
# X[:,0]中,“:”指的是对矩阵X取所有行,“0”指的是对矩阵X取第一列
# np.min(X[:,0])是指取矩阵X中第一列所有元素中的最小值,同理可得np.max(X[:,0])
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]))
X[:,2] = (X[:,2]-np.min(X[:,2]))/(np.max(X[:,2])-np.min(X[:,2]))
X[:,3] = (X[:,3]-np.min(X[:,3]))/(np.max(X[:,3])-np.min(X[:,3]))
print(X)
2.3 结果显示
2.3.1 原始数据:
2.3.2 最值归一化后的数据
3. 均值方差归一化
3.1 公式
3.2 代码实现
import numpy as np
np.set_printoptions(suppress=True)
from sklearn.datasets import load_iris
# 加载鸢尾花数据集
iris = load_iris()
# 调取鸢尾花样本集
X = iris.data
print(X)
# 根据输出值发现鸢尾花数据集是一个150行4列的矩阵
print(X.shape)
# 由于是4列,因此对每一列的所有元素取值;
# X[:,0]中,“:”指的是对矩阵X取所有行,“0”指的是对矩阵X取第一列
# np.min(X[:,0])是指取矩阵X中第一列所有元素中的最小值,同理可得np.max(X[:,0])
X[:,0] = (X[:,0]-np.mean(X[:,0]))/np.std(X[:,0])
X[:,1] = (X[:,1]-np.mean(X[:,1]))/np.std(X[:,1])
X[:,2] = (X[:,2]-np.mean(X[:,2]))/np.std(X[:,2])
X[:,3] = (X[:,3]-np.mean(X[:,3]))/np.std(X[:,3])
print(X)