Normalizer#
- class sklearn.preprocessing.Normalizer(norm='l2', *, copy=True)#
标准化样本为单位范数。
每个样本(即数据矩阵的每一行)至少有一个非零分量,独立于其他样本进行重缩放,使其范数(l1、l2或inf)等于一。
该转换器能够同时处理密集的numpy数组和scipy.sparse矩阵(如果您想避免复制/转换的负担,请使用CSR格式)。
将输入缩放到单位范数是文本分类或聚类等操作的常见操作。例如,两个l2归一化的TF-IDF向量的点积是向量的余弦相似度,并且是向量空间模型中常用的相似度度量,常被信息检索社区使用。
有关示例可视化,请参阅 Compare Normalizer with other scalers 。
更多信息请参阅 User Guide 。
- Parameters:
- norm{‘l1’, ‘l2’, ‘max’}, default=’l2’
用于归一化每个非零样本的范数。如果使用norm=’max’,值将按绝对值的最大值进行重缩放。
- copybool, default=True
设置为False以就地进行行归一化并避免复制(如果输入已经是numpy数组或scipy.sparse CSR矩阵)。
- Attributes:
See also
normalize
等效函数,没有估计器API。
Notes
该估计器是 stateless 的,不需要拟合。然而,我们建议调用
fit_transform
而不是transform
,因为参数验证仅在fit
中执行。Examples
>>> from sklearn.preprocessing import Normalizer >>> X = [[4, 1, 2, 2], ... [1, 3, 9, 3], ... [5, 7, 5, 1]] >>> transformer = Normalizer().fit(X) # fit does nothing. >>> transformer Normalizer() >>> transformer.transform(X) array([[0.8, 0.2, 0.4, 0.4], [0.1, 0.3, 0.9, 0.3], [0.5, 0.7, 0.5, 0.1]])
- fit(X, y=None)#
仅验证估计器的参数。
此方法允许:(i) 验证估计器的参数和 (ii) 与 scikit-learn 转换器 API 保持一致。
- Parameters:
- X{array-like, sparse matrix},形状为 (n_samples, n_features)
用于估计归一化参数的数据。
- y忽略
未使用,此处存在是为了通过约定保持 API 一致性。
- Returns:
- selfobject
拟合的转换器。
- fit_transform(X, y=None, **fit_params)#
拟合数据,然后进行转换。
将转换器拟合到
X
和y
,并带有可选参数fit_params
, 并返回X
的转换版本。- Parameters:
- X形状为 (n_samples, n_features) 的类数组
输入样本。
- y形状为 (n_samples,) 或 (n_samples, n_outputs) 的类数组, 默认=None
目标值(无监督转换为 None)。
- **fit_paramsdict
其他拟合参数。
- Returns:
- X_new形状为 (n_samples, n_features_new) 的 ndarray 数组
转换后的数组。
- get_feature_names_out(input_features=None)#
获取变换后的输出特征名称。
- Parameters:
- input_features字符串数组或None,默认=None
输入特征。
如果
input_features
是None
,则使用feature_names_in_
作为输入特征名称。如果feature_names_in_
未定义,则生成以下输入特征名称:["x0", "x1", ..., "x(n_features_in_ - 1)"]
。如果
input_features
是数组类型,则input_features
必须与feature_names_in_
匹配(如果feature_names_in_
已定义)。
- Returns:
- feature_names_out字符串对象的ndarray
与输入特征相同。
- get_metadata_routing()#
获取此对象的元数据路由。
请查看 用户指南 以了解路由机制的工作原理。
- Returns:
- routingMetadataRequest
MetadataRequest
封装的 路由信息。
- get_params(deep=True)#
获取此估计器的参数。
- Parameters:
- deepbool, 默认=True
如果为True,将返回此估计器和包含的子对象(也是估计器)的参数。
- Returns:
- paramsdict
参数名称映射到它们的值。
- set_output(*, transform=None)#
设置输出容器。
请参阅 介绍 set_output API 以了解如何使用API的示例。
- Parameters:
- transform{“default”, “pandas”, “polars”}, 默认=None
配置
transform
和fit_transform
的输出。"default"
: 转换器的默认输出格式"pandas"
: DataFrame 输出"polars"
: Polars 输出None
: 转换配置不变
Added in version 1.4:
"polars"
选项已添加。
- Returns:
- self估计器实例
估计器实例。
- set_params(**params)#
设置此估计器的参数。
该方法适用于简单估计器以及嵌套对象(例如
Pipeline
)。后者具有形式为<component>__<parameter>
的参数,以便可以更新嵌套对象的每个组件。- Parameters:
- **paramsdict
估计器参数。
- Returns:
- selfestimator instance
估计器实例。
- set_transform_request(*, copy: bool | None | str = '$UNCHANGED$') Normalizer #
Request metadata passed to the
transform
method.Note that this method is only relevant if
enable_metadata_routing=True
(seesklearn.set_config
). Please see User Guide on how the routing mechanism works.The options for each parameter are:
True
: metadata is requested, and passed totransform
if provided. The request is ignored if metadata is not provided.False
: metadata is not requested and the meta-estimator will not pass it totransform
.None
: metadata is not requested, and the meta-estimator will raise an error if the user provides it.str
: metadata should be passed to the meta-estimator with this given alias instead of the original name.
The default (
sklearn.utils.metadata_routing.UNCHANGED
) retains the existing request. This allows you to change the request for some parameters and not others.Added in version 1.3.
Note
This method is only relevant if this estimator is used as a sub-estimator of a meta-estimator, e.g. used inside a
Pipeline
. Otherwise it has no effect.- Parameters:
- copystr, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED
Metadata routing for
copy
parameter intransform
.
- Returns:
- selfobject
The updated object.
- transform(X, copy=None)#
缩放X中每个非零行的单位范数。
- Parameters:
- X{array-like, sparse matrix},形状为 (n_samples, n_features)
要规范化的数据,按行进行。scipy.sparse矩阵应为CSR格式,以避免不必要的复制。
- copybool, 默认=None
是否复制输入的X。
- Returns:
- X_tr{ndarray, sparse matrix},形状为 (n_samples, n_features)
变换后的数组。