SelfTrainingClassifier#

class sklearn.semi_supervised.SelfTrainingClassifier(base_estimator, threshold=0.75, criterion='threshold', k_best=10, max_iter=10, verbose=False)#

自训练分类器。

这个 metaestimator 允许给定的监督分类器作为半监督分类器运行,允许它从未标记的数据中学习。它通过迭代地预测未标记数据的伪标签并将其添加到训练集中来实现这一点。

分类器将继续迭代,直到达到 max_iter,或者在前一次迭代中没有伪标签被添加到训练集中。

更多信息请参阅 用户指南

Parameters:
base_estimatorestimator object

一个实现了 fitpredict_proba 的估计器对象。 调用 fit 方法将拟合传递的估计器的一个克隆,该克隆将存储在 base_estimator_ 属性中。

thresholdfloat, default=0.75

用于 criterion='threshold' 的决策阈值。 应在 [0, 1) 范围内。当使用 'threshold' 标准时,应使用 校准良好的分类器

criterion{‘threshold’, ‘k_best’}, default=’threshold’

用于选择将哪些标签添加到训练集的选择标准。如果 'threshold' ,预测概率高于 threshold 的伪标签将被添加到数据集中。如果 'k_best' ,预测概率最高的 k_best 伪标签将被添加到数据集中。当使用 ‘threshold’ 标准时,应使用 校准良好的分类器

k_bestint, default=10

每次迭代中要添加的样本数量。仅在 criterion='k_best' 时使用。

max_iterint or None, default=10

允许的最大迭代次数。应大于或等于 0。如果为 None ,分类器将继续预测标签,直到没有新的伪标签被添加,或者所有未标记的样本都被标记。

verbosebool, default=False

启用详细输出。

Attributes:
base_estimator_estimator object

已拟合的估计器。

classes_ndarray 或 list of ndarray of shape (n_classes,)

每个输出的类标签。(取自训练的 base_estimator_ )。

transduction_ndarray of shape (n_samples,)

用于分类器最终拟合的标签,包括拟合过程中添加的伪标签。

labeled_iter_ndarray of shape (n_samples,)

每个样本被标记的迭代次数。当样本的迭代次数为 0 时,该样本已经在原始数据集中被标记。当样本的迭代次数为 -1 时,该样本在任何迭代中都没有被标记。

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

自训练的轮数,即基础估计器在重新标记的训练集变体上拟合的次数。

termination_condition_{‘max_iter’, ‘no_change’, ‘all_labeled’}

拟合停止的原因。

  • 'max_iter'n_iter_ 达到 max_iter

  • 'no_change' :没有预测到新的标签。

  • 'all_labeled' :所有未标记的样本在达到 max_iter 之前被标记。

See also

LabelPropagation

标签传播分类器。

LabelSpreading

半监督学习的标签扩散模型。

References

David Yarowsky. 1995. Unsupervised word sense disambiguation rivaling supervised methods. In Proceedings of the 33rd annual meeting on Association for Computational Linguistics (ACL ‘95). Association for Computational Linguistics, Stroudsburg, PA, USA, 189-196.

Examples

>>> import numpy as np
>>> from sklearn import datasets
>>> from sklearn.semi_supervised import SelfTrainingClassifier
>>> from sklearn.svm import SVC
>>> rng = np.random.RandomState(42)
>>> iris = datasets.load_iris()
>>> random_unlabeled_points = rng.rand(iris.target.shape[0]) < 0.3
>>> iris.target[random_unlabeled_points] = -1
>>> svc = SVC(probability=True, gamma="auto")
>>> self_training_model = SelfTrainingClassifier(svc)
>>> self_training_model.fit(iris.data, iris.target)
SelfTrainingClassifier(...)
decision_function(X)#

调用 base_estimator 的决策函数。

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

表示数据的数组。

Returns:
yndarray,形状为 (n_samples, n_features)

base_estimator 的决策函数的结果。

fit(X, y)#

拟合自训练分类器使用 X , y 作为训练数据。

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

表示数据的数组。

y{array-like, sparse matrix} 形状为 (n_samples,)

表示标签的数组。未标记的样本应有标签 -1。

Returns:
selfobject

拟合的估计器。

get_metadata_routing()#

Raise NotImplementedError .

此估计器尚不支持元数据路由。

get_params(deep=True)#

获取此估计器的参数。

Parameters:
deepbool, 默认=True

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

Returns:
paramsdict

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

predict(X)#

预测 X 的类别。

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

表示数据的数组。

Returns:
yndarray,形状为 (n_samples,)

包含预测标签的数组。

predict_log_proba(X)#

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

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

表示数据的数组。

Returns:
yndarray,形状为 (n_samples, n_features)

包含对数预测概率的数组。

predict_proba(X)#

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

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

表示数据的数组。

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

包含预测概率的数组。

score(X, y)#

调用 base_estimator 上的score方法。

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

表示数据的数组。

y形状为 (n_samples,) 的array-like

表示标签的数组。

Returns:
scorefloat

调用 base_estimator 上的score方法的结果。

set_params(**params)#

设置此估计器的参数。

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

Parameters:
**paramsdict

估计器参数。

Returns:
selfestimator instance

估计器实例。