KMeansTrainer 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
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)
- 繼承
備註
若要建立此定型器,請使用 KMeans 或 Kmeans (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 |
定型器預期的標籤資料行。 可以是 |
WeightColumn |
定型器預期的加權資料行。 可以是 |
屬性
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> 建置估算器的鏈結,而我們想要取得轉換器的估算器會在此鏈結的某處被隱藏。 在該案例中,我們可以透過此方法附加呼叫一次將會呼叫的委派。 |