當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。