# 1.14. 半監督學習
校驗者:
[@STAN,廢柴0.1](https://github.com/apachecn/scikit-learn-doc-zh)
翻譯者:
[@那伊抹微笑](https://github.com/apachecn/scikit-learn-doc-zh)
[半監督學習](https://en.wikipedia.org/wiki/Semi-supervised_learning) 適用于在訓練數據上的一些樣本數據沒有貼上標簽的情況。 [`sklearn.semi_supervised`](classes.html#module-sklearn.semi_supervised "sklearn.semi_supervised") 中的半監督估計, 能夠利用這些附加的未標記數據來更好地捕獲底層數據分布的形狀,并將其更好地類推到新的樣本。 當我們有非常少量的已標簽化的點和大量的未標簽化的點時,這些算法表現均良好。
y 中含有未標記的數據
在使用 `fit` 方法訓練數據時, 將標識符與已標簽化的數據一起分配給未標簽化的點是尤其重要的. 實現該標記的方法是使用整數值 .
## 1.14.1. 標簽傳播
標簽傳播表示半監督圖推理算法的幾個變體。
該模型的一些特性如下:- 可用于分類和回歸任務
- Kernel methods to project data into alternate dimensional spaces
scikit-learn 提供了兩種標簽傳播模型: [`LabelPropagation`](generated/sklearn.semi_supervised.LabelPropagation.html#sklearn.semi_supervised.LabelPropagation "sklearn.semi_supervised.LabelPropagation") 和 [`LabelSpreading`](generated/sklearn.semi_supervised.LabelSpreading.html#sklearn.semi_supervised.LabelSpreading "sklearn.semi_supervised.LabelSpreading") 。 兩者都通過在輸入的 dataset(數據集)中的所有 items(項)上構建 similarity graph (相似圖)來進行工作。
[](../auto_examples/semi_supervised/plot_label_propagation_structure.html)**標簽傳播說明:** *未標簽化的觀察值結構與 class(類)結構一致, 因此可以將 class(類)標簽傳播到訓練集的未標簽化的觀察值*
[`LabelPropagation`](generated/sklearn.semi_supervised.LabelPropagation.html#sklearn.semi_supervised.LabelPropagation "sklearn.semi_supervised.LabelPropagation") 和 [`LabelSpreading`](generated/sklearn.semi_supervised.LabelSpreading.html#sklearn.semi_supervised.LabelSpreading "sklearn.semi_supervised.LabelSpreading") 在對圖形的相似性矩陣, 以及對標簽分布的 clamping effect(夾持效應)的修改方面不太一樣。 Clamping 允許算法在一定程度上改變真實標簽化數據的權重。 該 [`LabelPropagation`](generated/sklearn.semi_supervised.LabelPropagation.html#sklearn.semi_supervised.LabelPropagation "sklearn.semi_supervised.LabelPropagation") 算法執行輸入標簽的 hard clamping, 這意味著  。 這些 clamping factor 可以不是很嚴格的, 例如  , 這意味著我們將始終保留原始標簽分配的 80%, 但該算法可以將其分布的置信度改變在 20% 以內。
[`LabelPropagation`](generated/sklearn.semi_supervised.LabelPropagation.html#sklearn.semi_supervised.LabelPropagation "sklearn.semi_supervised.LabelPropagation") 使用原始相似性矩陣從未修改的數據來構建。 [`LabelSpreading`](generated/sklearn.semi_supervised.LabelSpreading.html#sklearn.semi_supervised.LabelSpreading "sklearn.semi_supervised.LabelSpreading") 最小化具有正則化屬性的損耗函數, 因此它通常更適用于噪聲數據。 該算法在原始圖形的修改版本上進行迭代, 并通過計算 normalized graph Laplacian matrix (歸一化圖拉普拉斯矩陣)來對邊緣的權重進行歸一化。 此過程也用于 [Spectral clustering](clustering.html#spectral-clustering) 。
標簽傳播模型有兩種內置的 kernel methods(核函數)。 kernel (核)的選擇會影響算法的可擴展性和性能。 以下是可用的:
> - rbf ().  通過關鍵字 gamma 來指定。
> - knn (![1[x' \in kNN(x)]](https://box.kancloud.cn/f041308bbf46f2764b865c5d8493da60_119x19.jpg)).  通過關鍵字 n\_neighbors 來指定。
RBF 核將產生一個完全連接的圖形, 它通過密集矩陣在內存中表示。 該矩陣可能非常大, 與算法的每次迭代執行全矩陣乘法計算的成本相結合可導致超長的運行時間。 在另一方面, KNN 核將產生更多的內存友好的稀疏矩陣, 這樣可以大幅度的減少運行時間。
例子
- [Decision boundary of label propagation versus SVM on the Iris dataset](../auto_examples/semi_supervised/plot_label_propagation_versus_svm_iris.html#sphx-glr-auto-examples-semi-supervised-plot-label-propagation-versus-svm-iris-py)
- [Label Propagation learning a complex structure](../auto_examples/semi_supervised/plot_label_propagation_structure.html#sphx-glr-auto-examples-semi-supervised-plot-label-propagation-structure-py)
- [Label Propagation digits active learning](../auto_examples/semi_supervised/plot_label_propagation_digits_active_learning.html#sphx-glr-auto-examples-semi-supervised-plot-label-propagation-digits-active-learning-py)
參考
\[1\] Yoshua Bengio, Olivier Delalleau, Nicolas Le Roux. In Semi-Supervised Learning (2006), pp. 193-216
\[2\] Olivier Delalleau, Yoshua Bengio, Nicolas Le Roux. Efficient Non-Parametric Function Induction in Semi-Supervised Learning. AISTAT 2005 [http://research.microsoft.com/en-us/people/nicolasl/efficient\_ssl.pdf](http://research.microsoft.com/en-us/people/nicolasl/efficient_ssl.pdf)
- scikit-learn 0.19 中文文檔
- 用戶指南
- 1. 監督學習
- 1.1. 廣義線性模型
- 1.2. 線性和二次判別分析
- 1.3. 內核嶺回歸
- 1.4. 支持向量機
- 1.5. 隨機梯度下降
- 1.6. 最近鄰
- 1.7. 高斯過程
- 1.8. 交叉分解
- 1.9. 樸素貝葉斯
- 1.10. 決策樹
- 1.11. 集成方法
- 1.12. 多類和多標簽算法
- 1.13. 特征選擇
- 1.14. 半監督學習
- 1.15. 等式回歸
- 1.16. 概率校準
- 1.17. 神經網絡模型(有監督)
- 2. 無監督學習
- 2.1. 高斯混合模型
- 2.2. 流形學習
- 2.3. 聚類
- 2.4. 雙聚類
- 2.5. 分解成分中的信號(矩陣分解問題)
- 2.6. 協方差估計
- 2.7. 經驗協方差
- 2.8. 收斂協方差
- 2.9. 稀疏逆協方差
- 2.10. Robust 協方差估計
- 2.11. 新奇和異常值檢測
- 2.12. 密度估計
- 2.13. 神經網絡模型(無監督)
- 3. 模型選擇和評估
- 3.1. 交叉驗證:評估估算器的表現
- 3.2. 調整估計器的超參數
- 3.3. 模型評估: 量化預測的質量
- 3.4. 模型持久化
- 3.5. 驗證曲線: 繪制分數以評估模型
- 4. 數據集轉換
- 4.1. Pipeline(管道)和 FeatureUnion(特征聯合): 合并的評估器
- 4.2. 特征提取
- 4.3. 預處理數據
- 4.4. 無監督降維
- 4.5. 隨機投影
- 4.6. 內核近似
- 4.7. 成對的矩陣, 類別和核函數
- 4.8. 預測目標 (y) 的轉換
- 5. 數據集加載工具
- 6. 大規模計算的策略: 更大量的數據
- 7. 計算性能
- 教程
- 使用 scikit-learn 介紹機器學習
- 關于科學數據處理的統計學習教程
- 機器學習: scikit-learn 中的設置以及預估對象
- 監督學習:從高維觀察預測輸出變量
- 模型選擇:選擇估計量及其參數
- 無監督學習: 尋求數據表示
- 把它們放在一起
- 尋求幫助
- 處理文本數據
- 選擇正確的評估器(estimator)
- 外部資源,視頻和談話