LabelSpreading#

class sklearn.semi_supervised.LabelSpreading(kernel='rbf', *, gamma=20, n_neighbors=7, alpha=0.2, max_iter=30, tol=0.001, n_jobs=None)#

LabelSpreading 模型用于半监督学习。

该模型类似于基本的标签传播算法, 但使用基于归一化图拉普拉斯的亲和矩阵 和跨标签的软钳制。

更多信息请参阅 用户指南

Parameters:
kernel{‘knn’, ‘rbf’} 或 callable, default=’rbf’

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

gammafloat, default=20

rbf 内核的参数。

n_neighborsint, default=7

knn 内核的参数,这是一个严格正整数。

alphafloat, default=0.2

钳制因子。一个在 (0, 1) 之间的值,指定实例应从其邻居采纳信息相对于其初始标签的相对量。 alpha=0 表示保留初始标签信息;alpha=1 表示替换所有初始信息。

max_iterint, default=30

允许的最大迭代次数。

tolfloat, default=1e-3

收敛容差:考虑系统处于稳态的阈值。

n_jobsint, default=None

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

Attributes:
X_ndarray of shape (n_samples, n_features)

输入数组。

classes_ndarray of shape (n_classes,)

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

label_distributions_ndarray of shape (n_samples, n_classes)

每个项目的分类分布。

transduction_ndarray of shape (n_samples,)

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

n_features_in_int

fit 期间看到的特征数量。

Added in version 0.24.

feature_names_in_ndarray of shape ( n_features_in_ ,)

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

Added in version 1.0.

n_iter_int

运行的迭代次数。

See also

LabelPropagation

基于图的非正则化半监督学习。

References

Dengyong Zhou, Olivier Bousquet, Thomas Navin Lal, Jason Weston, Bernhard Schoelkopf. Learning with local and global consistency (2004)

Examples

>>> import numpy as np
>>> from sklearn import datasets
>>> from sklearn.semi_supervised import LabelSpreading
>>> label_prop_model = LabelSpreading()
>>> 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)
LabelSpreading(...)
fit(X, y)#

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

输入样本(标记的和未标记的)由矩阵X提供,目标标签由矩阵y提供。在半监督分类中,我们通常将矩阵y中的未标记样本标记为-1。

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

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

yarray-like,形状为(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$') LabelSpreading#

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.