当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python sklearn SelfTrainingClassifier用法及代码示例


本文简要介绍python语言中 sklearn.semi_supervised.SelfTrainingClassifier 的用法。

用法:

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

Self-training 分类器。

此类允许给定的监督分类器充当semi-supervised 分类器,使其能够从未标记的数据中学习。它通过迭代预测未标记数据的pseudo-labels 并将它们添加到训练集中来实现这一点。

分类器将继续迭代,直到达到max_iter,或者在上一次迭代中没有将pseudo-labels添加到训练集中。

在用户指南中阅读更多信息。

参数

base_estimator估计器对象

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

threshold浮点数,默认=0.75

criterion='threshold' 一起使用的决策阈值。应该在 [0, 1) 中。使用'threshold' 标准时,应使用经过良好校准的分类器。

criterion{‘threshold’, ‘k_best’},默认='阈值'

用于选择要添加到训练集中的标签的选择标准。如果 'threshold' ,将预测概率高于 threshold 的 pseudo-labels 添加到数据集中。如果 'k_best' ,则将具有最高预测概率的 k_best pseudo-labels 添加到数据集中。使用‘threshold’ 标准时,应使用经过良好校准的分类器。

k_best整数,默认=10

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

max_iterint 或无,默认=10

允许的最大迭代次数。应该大于等于0。如果是None,分类器会继续预测标签,直到没有新的pseudo-labels被添加,或者所有未标注的样本都被标注了。

verbose布尔,默认=假

启用详细输出。

属性

base_estimator_估计器对象

拟合的估计器。

classes_ndarray 或形状的 ndarray 列表 (n_classes,)

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

transduction_ndarray 形状 (n_samples,)

用于分类器最终拟合的标签,包括拟合期间添加的pseudo-labels。

labeled_iter_ndarray 形状 (n_samples,)

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

n_features_in_int

拟合期间看到的特征数。

feature_names_in_ndarray 形状(n_features_in_,)

拟合期间看到的特征名称。仅当 X 具有全为字符串的函数名称时才定义。

n_iter_int

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

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

停止拟合的原因。

  • 'max_iter'n_iter_ 达到 max_iter
  • 'no_change':没有预测到新标签。
  • 'all_labeled' :所有未标记的样本在达到max_iter 之前都已标记。

参考

大卫·雅洛夫斯基。 1995. 与监督方法相媲美的无监督词义消歧。在第 33 届计算语言学协会年会 (ACL ‘95) 的会议记录中。计算语言学协会,美国宾夕法尼亚州斯特劳兹堡,189-196。 DOI:https://doi.org/10.3115/981658.981684

例子

>>> 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(...)

相关用法


注:本文由纯净天空筛选整理自scikit-learn.org大神的英文原创作品 sklearn.semi_supervised.SelfTrainingClassifier。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。