本文简要介绍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:估计器对象
实现
fit
和predict_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_iter:int 或无,默认=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(...)
相关用法
- Python sklearn SelectFromModel用法及代码示例
- Python sklearn SelectFpr用法及代码示例
- Python sklearn SelectKBest用法及代码示例
- Python sklearn SelectPercentile用法及代码示例
- Python sklearn SelectFdr用法及代码示例
- Python sklearn SelectFwe用法及代码示例
- Python sklearn SequentialFeatureSelector用法及代码示例
- Python sklearn ShrunkCovariance用法及代码示例
- Python sklearn SparsePCA用法及代码示例
- Python sklearn SpectralEmbedding用法及代码示例
- Python sklearn ShuffleSplit用法及代码示例
- Python sklearn StratifiedGroupKFold用法及代码示例
- Python sklearn SpectralClustering用法及代码示例
- Python sklearn Sum用法及代码示例
- Python sklearn SpectralBiclustering用法及代码示例
- Python sklearn SVR用法及代码示例
- Python sklearn SimpleImputer用法及代码示例
- Python sklearn SGDOneClassSVM用法及代码示例
- Python sklearn StratifiedShuffleSplit用法及代码示例
- Python sklearn SVC用法及代码示例
- Python sklearn SGDRegressor用法及代码示例
- Python sklearn SplineTransformer用法及代码示例
- Python sklearn SkewedChi2Sampler用法及代码示例
- Python sklearn SparseCoder用法及代码示例
- Python sklearn SGDClassifier用法及代码示例
注:本文由纯净天空筛选整理自scikit-learn.org大神的英文原创作品 sklearn.semi_supervised.SelfTrainingClassifier。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。