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