標籤傳播#

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浮點數

相對於 yself.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

scoresample_weight 參數的中繼資料路由。

返回:
self物件

更新後的物件。