1.14. 半監督式學習#
半監督式學習是指在您的訓練資料中,部分樣本沒有標籤的情況。sklearn.semi_supervised
中的半監督式估計器能夠利用這些額外的未標籤資料,以更好地捕捉底層資料分佈的形狀,並更好地泛化到新的樣本。當我們有非常少量的標籤點和大量的未標籤點時,這些演算法可以表現良好。
注意
半監督式演算法需要對資料集的分佈做出假設,才能實現效能提升。請參閱 此處 以了解更多詳細資訊。
1.14.1. 自我訓練#
此自我訓練實作基於 Yarowsky 的 [1] 演算法。使用此演算法,給定的監督式分類器可以充當半監督式分類器,使其可以從未標籤的資料中學習。
SelfTrainingClassifier
可以使用任何實作 predict_proba
的分類器來呼叫,並將其作為參數 base_classifier
傳遞。在每個迭代中,base_classifier
會預測未標籤樣本的標籤,並將這些標籤的子集新增至已標籤的資料集。
此子集的選擇由選擇標準決定。可以使用預測機率的 threshold
來完成此選擇,或根據預測機率選擇 k_best
個樣本。
用於最終擬合的標籤以及每個樣本被標記的迭代次數可作為屬性使用。可選的 max_iter
參數指定迴圈最多執行多少次。
max_iter
參數可以設定為 None
,導致演算法迭代直到所有樣本都有標籤,或該次迭代中沒有選擇新的樣本。
注意
當使用自我訓練分類器時,分類器的校準很重要。
範例
參考文獻
1.14.2. 標籤傳播#
標籤傳播表示半監督式圖形推論演算法的一些變體。
- 此模型中可用的幾個功能
用於分類任務
將資料投影到替代維度空間的核方法
scikit-learn
提供兩個標籤傳播模型:LabelPropagation
和 LabelSpreading
。兩者都透過在輸入資料集中的所有項目上建構相似性圖形來工作。

標籤傳播的說明:未標籤觀察的結構與類別結構一致,因此類別標籤可以傳播到訓練集的未標籤觀察。#
LabelPropagation
和 LabelSpreading
在對圖形相似性矩陣的修改和對標籤分佈的鉗位效應方面有所不同。鉗位允許演算法在某種程度上改變真實地面標籤資料的權重。LabelPropagation
演算法執行輸入標籤的硬鉗位,這表示 \(\alpha=0\)。可以放寬此鉗位因素,例如 \(\alpha=0.2\),這表示我們將始終保留 80% 的原始標籤分佈,但演算法可以將其分佈的信賴度更改在 20% 以內。
LabelPropagation
使用從資料建構的原始相似性矩陣,不做任何修改。相反地,LabelSpreading
最小化具有正規化屬性的損失函數,因此它通常對雜訊更具穩健性。演算法會在原始圖形的修改版本上迭代,並透過計算正規化的圖形拉普拉斯矩陣來正規化邊緣權重。此程序也用於譜聚類。
標籤傳播模型有兩種內建的核方法。核的選擇會影響演算法的可擴展性和效能。以下可用
rbf (\(\exp(-\gamma |x-y|^2), \gamma > 0\))。\(\gamma\) 由關鍵字 gamma 指定。
knn (\(1[x' \in kNN(x)]\))。\(k\) 由關鍵字 n_neighbors 指定。
RBF 核將產生完全連通的圖形,該圖形在記憶體中由密集矩陣表示。此矩陣可能非常大,並且結合對演算法的每次迭代執行完整矩陣乘法計算的成本,可能會導致運行時間過長。另一方面,KNN 核將產生記憶體友善得多的稀疏矩陣,這可以大幅縮短執行時間。
範例
參考文獻
[2] Yoshua Bengio, Olivier Delalleau, Nicolas Le Roux。半監督式學習(2006),第 193-216 頁
[3] Olivier Delalleau, Yoshua Bengio, Nicolas Le Roux。半監督式學習中高效的非參數函數誘導。AISTAT 2005 https://www.gatsby.ucl.ac.uk/aistats/fullpapers/204.pdf