将值范围转换为标准值范围的过程称为标准化。这些值可以在-1到+1或0到1之间。数据也可以借助减法和除法进行归一化。
作为输入馈入学习算法的数据应保持一致和结构化。输入数据的所有特征都应在单个范围内,以有效地预测值。但是在现实世界中,数据是非结构化的,而且在大多数情况下,数据的规模是不同的。
这是规范化的时候。这是最重要的数据准备过程之一。
它有助于将输入数据集的列的值更改为相同的范围。
在规范化过程中,确保值的范围不失真。
注意-并非所有输入到机器学习算法的输入数据集都必须进行标准化。仅当数据集中的要素具有完全不同的值范围时才需要规范化。
有不同种类的规范化-
最小-最大归一化
Z归一化
单位向量归一化
让我们了解L1归一化的工作原理。
也称为最小绝对偏差,它会更改数据,使绝对值的总和在每一行中保持为1。
让我们看看如何使用scikit learning在Python中实现L1规范化-
输出结果import numpy as np
from sklearn import preprocessing
input_data = np.array(
[[34.78, 31.9, -65.5],[-16.5, 2.45, -83.5],[0.5, -87.98, 45.62],[5.9, 2.38, -55.82]]
)
data_normalized_l1 = preprocessing.normalize(input_data, norm='l1')
print("\nL1 normalized data is \n", data_normalized_l1)
L1 normalized data is
[[ 0.26312604 0.24133757 -0.49553639]
[-0.16105417 0.0239141 -0.81503172]
[ 0.00372856 -0.65607755 0.34019389]
[ 0.09204368 0.03712949 -0.87082683]]
所需的软件包已导入。
输入数据是使用Numpy库生成的。
类“预处理”中存在的“规格化”功能用于规格化数据。
规范化的类型指定为“ l1”。
这样,数组中的任何数据都将被标准化,并且每一行的总和将仅为1。
此规范化数据显示在控制台上。