sklearn.preprocessing.normalize()是Scikit-learn库中的一个函数,用于对特征向量进行归一化处理。归一化的目的是将每个样本的特征向量缩放到单位范数(即长度为1)。
normalize函数的主要参数包括:
- X:要归一化的数组或稀疏矩阵,形状为[n_samples, n_features]
- norm:指定要使用的范数类型,可以是l1、l2或max
- l1范数:将每个样本的特征向量的绝对值之和归一化为1
- l2范数:将每个样本的特征向量的欧几里得长度归一化为1(默认)
- max范数:将每个样本的特征向量的最大绝对值归一化为1
以下是一个简单的代码示例,
import numpy as np
from sklearn.preprocessing import normalize
# 示例数据
X = np.array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
# 使用 l2 范数进行归一化
X_normalized_l2 = normalize(X, norm='l2')
# 使用 l1 范数进行归一化
X_normalized_l1 = normalize(X, norm='l1')
# 使用 max 范数进行归一化
X_normalized_max = normalize(X, norm='max')
print("Original Data:\n", X)
print("\nL2 Normalized Data:\n", X_normalized_l2)
print("\nL1 Normalized Data:\n", X_normalized_l1)
print("\nMax Normalized Data:\n", X_normalized_max)
输出结果如下,
Original Data:
[[1 2 3]
[4 5 6]
[7 8 9]]
L2 Normalized Data:
[[0.26726124 0.53452248 0.80178373]
[0.45584231 0.56980288 0.68376346]
[0.50257071 0.57436653 0.64616234]]
L1 Normalized Data:
[[0.16666667 0.33333333 0.5 ]
[0.26666667 0.33333333 0.4 ]
[0.29166667 0.33333333 0.375 ]]
Max Normalized Data:
[[0.33333333 0.66666667 1. ]
[0.66666667 0.83333333 1. ]
[0.77777778 0.88888889 1. ]]
以下是安装指令,
pip install scikit-learn
conda install scikit-learn