如何使用Python中的scikit-learn库实现L1正则化?

如何使用Python中的scikit-learn库实现L1正则化?

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

输入学习算法的数据应始终保持一致和结构化。所有输入数据的特征应在单个比例上,以有效地预测值。但在现实世界中,数据是不受限制的,并且大多数情况下不在相同的比例上。

这就是正则化发挥作用的时候,它是数据准备阶段中最重要的过程之一。

它有助于将输入数据集的列值更改为落在同一比例上的值。

在正则化过程中,保证值的范围不受扭曲。

注意 − 并非所有输入数据集都必须标准化。仅当数据集中的特征具有完全不同的值尺度时才需要标准化。

有不同种类的正则化 −

  • 最大-最小值正则化
  • Z正则化
  • 单位向量正则化

让我们了解一下L1正则化是如何工作的。

L1正则化也被称为最小绝对偏差,它改变数据以使每行的绝对值之和保持为1。

让我们看看如何使用scikit learn来实现L1正则化。

更多Python相关文章,请阅读:Python 教程

示例

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)
Python

输出

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]]
Python

说明

  • 导入所需的包。

  • 使用Numpy库生成输入数据。

  • 使用类“preprocessing”中的“normalize”函数来标准化数据。

  • 规范化类型指定为“l1”。

  • 通过这种方式,数组中的任何数据都将被标准化,每行的总和只会为1。

  • 将规范化后的数据显示在控制台上。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程