LabelPropagation#

class sklearn.semi_supervised.LabelPropagation(kernel='rbf', *, gamma=20, n_neighbors=7, max_iter=1000, tol=0.001, n_jobs=None)#

标签传播分类器。

更多信息请参阅 用户指南

Parameters:
kernel{‘knn’, ‘rbf’} 或可调用对象, 默认=’rbf’

要使用的核函数标识符或核函数本身。只有 ‘rbf’ 和 ‘knn’ 字符串是有效输入。传递的函数应接受两个输入,每个输入的形状为 (n_samples, n_features),并返回一个形状为 (n_samples, n_samples) 的权重矩阵。

gammafloat, 默认=20

rbf 核的参数。

n_neighborsint, 默认=7

knn 核的参数,该参数需要严格为正。

max_iterint, 默认=1000

更改允许的最大迭代次数。

tolfloat, 1e-3

收敛容差:认为系统处于稳态的阈值。

n_jobsint, 默认=None

并行运行的作业数量。 None 表示 1,除非在 joblib.parallel_backend 上下文中。 -1 表示使用所有处理器。有关更多详细信息,请参阅 Glossary

Attributes:
X_{array-like, sparse matrix},形状为 (n_samples, n_features)

输入数组。

classes_ndarray,形状为 (n_classes,)

用于分类实例的不同标签。

label_distributions_ndarray,形状为 (n_samples, n_classes)

每个项目的分类分布。

transduction_ndarray,形状为 (n_samples)

fit 期间分配给每个项目的标签。

n_features_in_int

fit 期间看到的特征数量。

Added in version 0.24.

feature_names_in_ndarray,形状为 ( n_features_in_ ,)

fit 期间看到的特征名称。仅当 X 的特征名称均为字符串时定义。

Added in version 1.0.

n_iter_int

运行的迭代次数。

See also

LabelSpreading

另一种标签传播策略,对噪声更鲁棒。

References

Xiaojin Zhu 和 Zoubin Ghahramani。通过标签传播从标记和未标记数据中学习。技术报告 CMU-CALD-02-107,卡内基梅隆大学,2002 http://pages.cs.wisc.edu/~jerryzhu/pub/CMU-CALD-02-107.pdf

Examples

>>> import numpy as np
>>> from sklearn import datasets
>>> from sklearn.semi_supervised import LabelPropagation
>>> label_prop_model = LabelPropagation()
>>> iris = datasets.load_iris()
>>> rng = np.random.RandomState(42)
>>> random_unlabeled_points = rng.rand(len(iris.target)) < 0.3
>>> labels = np.copy(iris.target)
>>> labels[random_unlabeled_points] = -1
>>> label_prop_model.fit(iris.data, labels)
LabelPropagation(...)
fit(X, y)#

拟合一个半监督标签传播模型到X。

Parameters:
X{array-like, sparse matrix} of shape (n_samples, n_features)

训练数据,其中 n_samples 是样本数量, n_features 是特征数量。

yarray-like of shape (n_samples,)

目标类别值,未标记的点标记为-1。 所有未标记的样本将通过归纳方式内部分配标签,这些标签存储在 transduction_ 中。

Returns:
selfobject

返回实例本身。

get_metadata_routing()#

获取此对象的元数据路由。

请查看 用户指南 以了解路由机制的工作原理。

Returns:
routingMetadataRequest

MetadataRequest 封装的 路由信息。

get_params(deep=True)#

获取此估计器的参数。

Parameters:
deepbool, 默认=True

如果为True,将返回此估计器和包含的子对象(也是估计器)的参数。

Returns:
paramsdict

参数名称映射到它们的值。

predict(X)#

执行模型中的归纳推理。

Parameters:
X形状为 (n_samples, n_features) 的类数组

数据矩阵。

Returns:
y形状为 (n_samples,) 的 ndarray

输入数据的预测结果。

predict_proba(X)#

预测每个可能结果的概率。

计算X中每个单独样本的概率估计,以及在训练期间看到的每个可能结果(分类分布)。

Parameters:
X形状为 (n_samples, n_features) 的类数组

数据矩阵。

Returns:
probabilities形状为 (n_samples, n_classes) 的 ndarray

类别标签上的归一化概率分布。

score(X, y, sample_weight=None)#

返回给定测试数据和标签的平均准确率。

在多标签分类中,这是子集准确率,这是一个严格的指标,因为你要求每个样本的每个标签集都被正确预测。

Parameters:
X形状为 (n_samples, n_features) 的类数组

测试样本。

y形状为 (n_samples,) 或 (n_samples, n_outputs) 的类数组

` X`的真实标签。

sample_weight形状为 (n_samples,) 的类数组,默认=None

样本权重。

Returns:
scorefloat

self.predict(X) 相对于 y 的平均准确率。

set_params(**params)#

设置此估计器的参数。

该方法适用于简单估计器以及嵌套对象(例如 Pipeline )。后者具有形式为 <component>__<parameter> 的参数,以便可以更新嵌套对象的每个组件。

Parameters:
**paramsdict

估计器参数。

Returns:
selfestimator instance

估计器实例。

set_score_request(*, sample_weight: bool | None | str = '$UNCHANGED$') LabelPropagation#

Request metadata passed to the score method.

Note that this method is only relevant if enable_metadata_routing=True (see sklearn.set_config ). Please see User Guide on how the routing mechanism works.

The options for each parameter are:

  • True : metadata is requested, and passed to score if provided. The request is ignored if metadata is not provided.

  • False : metadata is not requested and the meta-estimator will not pass it to score .

  • 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:
sample_weightstr, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED

Metadata routing for sample_weight parameter in score .

Returns:
selfobject

The updated object.