次の方法で共有


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)
継承

注釈

このトレーナーを作成するには、 KMeans または Kmeans(Options)を使用します

入力列と出力列

入力フィーチャの列データは次の値である Single必要があります。 ラベル列は必要ありません。 このトレーナーからは、以下の列が出力されます。

出力列の名前 列の型 説明
Score Single のベクター 指定されたデータ ポイントからすべてのクラスターの重心までの距離。
PredictedLabel キー モデルによって予測された最も近いクラスターのインデックス。

トレーナーの特性

機械学習タスク クラスタリング
正規化は必要ですか? はい
キャッシュは必要ですか? はい
Microsoft.ML に加えて必要な NuGet なし
ONNX にエクスポート可能 はい

トレーニング アルゴリズムの詳細

K 平均 は、一般的なクラスタリング アルゴリズムです。 K 平均では、クラスター内の平方距離の合計を最小限に抑えるために、データは指定された数のクラスターにクラスター化されます。 この実装は 、Yinyang K-means メソッドに従います。 初期クラスターのセンターロイドを選択するには、次の 3 つのオプションのいずれかを使用できます。

  • ランダムな初期化。 これにより、最適なクラスタリングの近似値が不適切になる可能性があります。
  • K-means++ メソッド。 これは、Ding らによってここで導入された改良された初期化アルゴリズムであり、最適な K 平均ソリューションと競合する$O(log K)$ のソリューションを見つけることを保証します。
  • K 平均||メソッド。 このメソッドは Bahmani らによって ここで 導入され、適切な初期化を取得するために必要なパスの数を大幅に減らす並列メソッドを使用します。

K 平均||は既定の初期化メソッドです。 KMeansTrainer(Options)を使用してトレーナーを作成する場合、その他のメソッドはオプションで指定できます。

スコアリング関数

出力スコア列には、各クラスターの重心に対する指定された入力ベクトル $\textbf{x}\in \mathbb{R}^n$ の $L_2$-norm 距離 (つまり、 ユークリッド距離) の 2 乗が含まれます。 $c$-th クラスターの中心が $\textbf{m}_c \mathbb{R}^n$ であると仮定します。 Score 列の$c$番目の値は、$d_c = ||\textbf{x} - \textbf{m}_c ||_2^2$。 予測ラベルは、$K$ 次元ベクトル $[d_{0}、\dots、d_{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>)

エスティメーターを指定すると、デリゲートを 1 回 Fit(IDataView) 呼び出すラップ オブジェクトが呼び出されます。 多くの場合、エスティメーターが適合した内容に関する情報を返すことが重要です。そのため Fit(IDataView) 、メソッドは一般的 ITransformerなオブジェクトではなく、具体的に型指定されたオブジェクトを返します。 ただし、同時に、 IEstimator<TTransformer> 多くのオブジェクトを含むパイプラインに形成されることが多いため、トランスフォーマーを取得するエスティメーターがこのチェーンのどこかに埋もれる場所を介して EstimatorChain<TLastTransformer> 、推定器のチェーンを構築する必要がある場合があります。 このシナリオでは、このメソッドを使用して、fit が呼び出されると呼び出されるデリゲートをアタッチできます。

適用対象

こちらもご覧ください