解释如何使用 Python 的 scikit-learn 库实现 L1 范数归一化?


将一系列值转换为标准化值范围的过程称为归一化。这些值可能在 -1 到 +1 或 0 到 1 之间。数据也可以通过减法和除法进行归一化。

作为输入提供给学习算法的数据应保持一致性和结构化。输入数据的所有特征都应处于单个尺度上,以便有效地预测值。但在现实世界中,数据是非结构化的,大多数情况下并不处于相同的尺度上。

这就是归一化发挥作用的地方。它是最重要的数据准备过程之一。

它有助于更改输入数据集列的值,以使其落入相同的尺度。

在归一化过程中,确保值范围不会失真。

注意 -并非所有提供给机器学习算法的输入数据集都需要归一化。只有当数据集中特征的值尺度完全不同时,才需要归一化。

有不同类型的归一化:

  • 最小-最大归一化
  • Z-score 归一化
  • 单位向量归一化

让我们了解 L1 归一化是如何工作的。

也称为最小绝对偏差,它会更改数据,以便每一行的绝对值之和保持为 1。

让我们看看如何使用 scikit-learn 在 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 库生成输入数据。

  • 使用 'preprocessing' 类中的 'normalize' 函数来归一化数据。

  • 将归一化类型指定为 'l1'。

  • 这样,数组中的任何数据都会被归一化,并且每一行的总和都将仅为 1。

  • 归一化后的数据将显示在控制台上。

更新于:2020-12-11

889 次浏览

启动您的职业生涯

完成课程获得认证

开始
广告