解释如何在Python中使用scikit-learn库实现L1规范化?

将值范围转换为标准值范围的过程称为标准化。这些值可以在-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。

  • 此规范化数据显示在控制台上。