KMeansTrainer 類別

定義

IEstimator<TTransformer>用於訓練 KMeans 叢集器的

public class KMeansTrainer : Microsoft.ML.Trainers.TrainerEstimatorBase<Microsoft.ML.Data.ClusteringPredictionTransformer<Microsoft.ML.Trainers.KMeansModelParameters>,Microsoft.ML.Trainers.KMeansModelParameters>
type KMeansTrainer = class
    inherit TrainerEstimatorBase<ClusteringPredictionTransformer<KMeansModelParameters>, KMeansModelParameters>
Public Class KMeansTrainer
Inherits TrainerEstimatorBase(Of ClusteringPredictionTransformer(Of KMeansModelParameters), KMeansModelParameters)
繼承

備註

若要建立此定型器,請使用 KMeansKmeans (Options)

輸入和輸出資料行

輸入特徵資料行資料必須是 Single 。 不需要標籤資料行。 此定型器會輸出下列資料行:

輸出資料行名稱 資料行類型 描述
Score Single 的向量 指定資料點與所有叢集距心的距離。
PredictedLabel 索引鍵 類型 由模型所預測最接近的叢集索引。

定型器特性

機器學習工作 叢集
是否需要正規化?
是否需要快取?
除了 Microsoft.ML 之外,還需要 NuGet
可匯出至 ONNX

定型演算法詳細資料

K-means 是熱門的群集演算法。 使用 K-means 時,資料會叢集到指定的叢集數目,以便將平方距離的叢集內總和降到最低。 這個實作會遵循 一個使用一個的一種方法。 若要選擇初始叢集中心質,可以使用下列三個選項之一:

  • 隨機初始化。 這可能會導致最佳叢集可能不良的近似值。
  • K-means++ 方法。 這是 Ding et al.引進改良初始化演算法,可保證尋找$O (記錄 K) $ 競爭最佳 K-means 解決方案的解決方案。
  • The K-means||方法。 這個 方法是由 Bahmani et al.引進,並使用平行方法大幅減少取得良好初始化所需的傳遞數目。

K-means||是預設的初始化方法。 使用KMeansTrainer (Options) 建立定型器時,可以在Options中指定其他方法。

評分函式

輸出 [分數] 資料行包含 $L指定輸入向量 $\textbf{x}\in \mathbb{R}^n$ 中指定輸入向量 $\textbf{x}\in \mathbb{R}^n$ () 的 方塊。 假設$c$-th 叢集的 centriod 是 $\textbf{m}_c \in \mathbb{R}^n$。 score 資料行的 $c$-th 值會是 $d_c = ||\textbf{x} - \textbf{m}_c ||_2^2$。 預測標籤是$K$ 維度向量 $[d_, \dots, d_ {0} {K-1}]$ 中具有最小值的索引,其中 $K$ 是叢集數目。

如需 K-means 和 K-means++ 的詳細資訊,請參閱: K-meansK-means++

如需使用範例的連結,請參閱另請參閱一節。

欄位

FeatureColumn

定型器預期的功能資料行。

(繼承來源 TrainerEstimatorBase<TTransformer,TModel>)
LabelColumn

定型器預期的標籤資料行。 可以是 null ,表示標籤不會用於定型。

(繼承來源 TrainerEstimatorBase<TTransformer,TModel>)
WeightColumn

定型器預期的加權資料行。 可以是 null ,表示不會使用權數來定型。

(繼承來源 TrainerEstimatorBase<TTransformer,TModel>)

屬性

Info

IEstimator<TTransformer>用於訓練 KMeans 叢集器的

方法

Fit(IDataView)

定型並傳 ITransformer 回 。

(繼承來源 TrainerEstimatorBase<TTransformer,TModel>)
GetOutputSchema(SchemaShape)

IEstimator<TTransformer>用於訓練 KMeans 叢集器的

(繼承來源 TrainerEstimatorBase<TTransformer,TModel>)

擴充方法

AppendCacheCheckpoint<TTrans>(IEstimator<TTrans>, IHostEnvironment)

將「快取檢查點」附加至估算器鏈結。 這可確保下游估算器會針對快取的資料定型。 在接受多個資料通過的定型器之前,擁有快取檢查點會很有説明。

WithOnFitDelegate<TTransformer>(IEstimator<TTransformer>, Action<TTransformer>)

假設有估算器,則會傳回包裝物件,一旦 Fit(IDataView) 呼叫委派即可。 估算器通常必須傳回符合專案的相關資訊,這就是方法 Fit(IDataView) 傳回特定型別物件的原因,而不是只傳回一般 ITransformer 。 不過,同時 IEstimator<TTransformer> ,通常會形成具有許多物件的管線,因此我們可能需要透過 EstimatorChain<TLastTransformer> 建置估算器的鏈結,而我們想要取得轉換器的估算器會在此鏈結的某處被隱藏。 在該案例中,我們可以透過此方法附加呼叫一次將會呼叫的委派。

適用於

另請參閱