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