標籤傳播#
- class sklearn.semi_supervised.LabelPropagation(kernel='rbf', *, gamma=20, n_neighbors=7, max_iter=1000, tol=0.001, n_jobs=None)[原始碼]#
標籤傳播分類器。
更多資訊請參閱使用者指南。
- 參數:
- kernel{‘knn’, ‘rbf’} 或可呼叫物件, 預設值=’rbf’
要使用的核函數的字串識別符或核函數本身。只有 ‘rbf’ 和 ‘knn’ 字串是有效輸入。傳入的函數應接受兩個輸入,每個輸入的形狀為 (n_samples, n_features),並返回形狀為 (n_samples, n_samples) 的權重矩陣。
- gamma浮點數, 預設值=20
rbf 核函數的參數。
- n_neighbors整數, 預設值=7
knn 核函數的參數,必須為嚴格正數。
- max_iter整數, 預設值=1000
允許的最大迭代次數。
- tol浮點數, 1e-3
收斂容忍度:將系統視為處於穩態的閾值。
- n_jobs整數, 預設值=None
要執行的平行任務數量。
None
表示 1,除非在joblib.parallel_backend
環境中。-1
表示使用所有處理器。請參閱詞彙表以取得更多詳細資訊。
- 屬性:
- X_{類陣列, 稀疏矩陣},形狀為 (n_samples, n_features)
輸入陣列。
- classes_ndarray,形狀為 (n_classes,)
用於分類實例的獨特標籤。
- label_distributions_ndarray,形狀為 (n_samples, n_classes)
每個項目的類別分佈。
- transduction_ndarray,形狀為 (n_samples)
在 fit 期間指派給每個項目的標籤。
- n_features_in_整數
在 fit 期間看到的特徵數量。
在版本 0.24 中新增。
- feature_names_in_ndarray,形狀為 (
n_features_in_
,) 在 fit 期間看到的特徵名稱。只有當
X
的特徵名稱都是字串時才定義。在版本 1.0 中新增。
- n_iter_整數
執行的迭代次數。
另請參閱
標籤擴散 (LabelSpreading)
對雜訊更具穩健性的替代標籤傳播策略。
參考文獻
Xiaojin Zhu 和 Zoubin Ghahramani。 使用標籤傳播從標記和未標記的資料中學習。卡內基梅隆大學技術報告 CMU-CALD-02-107, 2002 http://pages.cs.wisc.edu/~jerryzhu/pub/CMU-CALD-02-107.pdf
範例
>>> import numpy as np >>> from sklearn import datasets >>> from sklearn.semi_supervised import LabelPropagation >>> label_prop_model = LabelPropagation() >>> iris = datasets.load_iris() >>> rng = np.random.RandomState(42) >>> random_unlabeled_points = rng.rand(len(iris.target)) < 0.3 >>> labels = np.copy(iris.target) >>> labels[random_unlabeled_points] = -1 >>> label_prop_model.fit(iris.data, labels) LabelPropagation(...)
- fit(X, y)[原始碼]#
將半監督標籤傳播模型擬合到 X。
- 參數:
- X{類陣列, 稀疏矩陣},形狀為 (n_samples, n_features)
訓練資料,其中
n_samples
是樣本數,n_features
是特徵數。- y類陣列,形狀為 (n_samples,)
目標類別值,未標記的點標記為 -1。所有未標記的樣本將在內部傳導式地指派標籤,這些標籤儲存在
transduction_
中。
- 返回:
- self物件
返回實例本身。
- get_metadata_routing()[原始碼]#
取得此物件的中繼資料路由。
請查看使用者指南,了解路由機制如何運作。
- 返回:
- routingMetadataRequest
一個封裝路由資訊的
MetadataRequest
。
- get_params(deep=True)[原始碼]#
取得此估算器的參數。
- 參數:
- deep布林值, 預設值=True
如果為 True,將返回此估算器和包含的子物件(估算器)的參數。
- 返回:
- paramsdict
參數名稱對應到它們的值。
- predict(X)[原始碼]#
對模型執行歸納推論。
- 參數:
- X類陣列,形狀為 (n_samples, n_features)
資料矩陣。
- 返回:
- yndarray,形狀為 (n_samples,)
輸入資料的預測值。
- predict_proba(X)[原始碼]#
預測每個可能結果的機率。
計算 X 中每個單個樣本和訓練期間看到的每個可能結果(類別分佈)的機率估計值。
- 參數:
- X類陣列,形狀為 (n_samples, n_features)
資料矩陣。
- 返回:
- probabilitiesndarray,形狀為 (n_samples, n_classes)
跨類別標籤的正規化機率分佈。
- score(X, y, sample_weight=None)[原始碼]#
返回給定測試資料和標籤的平均準確度。
在多標籤分類中,這是子集準確度,這是一個嚴苛的指標,因為您需要每個樣本的每個標籤集都被正確預測。
- 參數:
- X類陣列,形狀為 (n_samples, n_features)
測試樣本。
- y類陣列,形狀為 (n_samples,) 或 (n_samples, n_outputs)
X
的真實標籤。- sample_weight類陣列,形狀為 (n_samples,),預設值=None
樣本權重。
- 返回:
- score浮點數
相對於
y
,self.predict(X)
的平均準確度。
- set_params(**params)[原始碼]#
設定此估算器的參數。
此方法適用於簡單的估算器以及巢狀物件(例如
Pipeline
)。後者具有<component>__<parameter>
形式的參數,因此可以更新巢狀物件的每個組件。- 參數:
- **paramsdict
估算器參數。
- 返回:
- self估算器實例
估算器實例。
- set_score_request(*, sample_weight: bool | None | str = '$UNCHANGED$') LabelPropagation [原始碼]#
請求傳遞到
score
方法的中繼資料。請注意,只有在
enable_metadata_routing=True
時,此方法才相關(請參閱sklearn.set_config
)。請參閱關於路由機制如何運作的使用者指南。每個參數的選項為
True
:請求中繼資料,並在提供時將其傳遞給score
。如果未提供中繼資料,則會忽略請求。False
:不請求中繼資料,且元估算器不會將其傳遞給score
。None
:不請求中繼資料,如果使用者提供,元估算器將會引發錯誤。str
:中繼資料應以給定的別名而不是原始名稱傳遞給元估算器。
預設值(
sklearn.utils.metadata_routing.UNCHANGED
)會保留現有的請求。這可讓您變更某些參數的請求,而其他參數則不變。在 1.3 版本中新增。
注意
只有在此估算器用作元估算器的子估算器時,例如在
Pipeline
內部使用時,此方法才相關。否則它沒有任何作用。- 參數:
- sample_weightstr、True、False 或 None,預設值為 sklearn.utils.metadata_routing.UNCHANGED
score
中sample_weight
參數的中繼資料路由。
- 返回:
- self物件
更新後的物件。