

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# K-Means アルゴリズム
<a name="k-means"></a>

K-means は、教師なしの学習アルゴリズムです。これは、1 つのグループのメンバーができるだけ類似し、他のグループのメンバーとできるだけ異なる離散グループをデータ内に見つけようとします。類似度を決定するためにアルゴリズムで使用する属性を定義します。

Amazon SageMaker AI は、変更されたバージョンのウェブスケール k-means クラスタリングアルゴリズムを使用します。オリジナルバージョンのアルゴリズムに比べると、Amazon SageMaker AI で使用しているバージョンの方が高い精度です。オリジナルのアルゴリズムと同様に、大規模なデータセットにスケールでき、トレーニング時間を改善します。これを行うために、Amazon SageMaker AI で使用されるバージョンは、トレーニングデータのミニバッチ (小さいランダムなサブセット) をストリーミングします。ミニバッチ k-means の詳細については、[Web-scale k-means Clustering (ウェブスケールの k-means クラスタリング)](https://dl.acm.org/doi/10.1145/1772690.1772862) を参照してください。

k-means アルゴリズムは表形式のデータを想定します。表の行はクラスタリングする観測値を表し、列は観測値の属性を表します。各行の *n* 属性は *n* 次元空間のポイントを表します。これらのポイント間のユークリッド距離は、対応する観測値の類似度を表します。アルゴリズムは、類似する属性値で観測値をグループ化します (これらの観測値に対応するポイントが近づきます)。Amazon SageMaker AI での k-means の仕組みの詳細については、「[K-Means クラスタリングの仕組み](algo-kmeans-tech-notes.md)」を参照してください。

**Topics**
+ [k-means アルゴリズムの入出力インターフェイス](#km-inputoutput)
+ [k-means アルゴリズムの EC2 インスタンスに関する推奨事項](#km-instances)
+ [k-means サンプルノートブック](#kmeans-sample-notebooks)
+ [K-Means クラスタリングの仕組み](algo-kmeans-tech-notes.md)
+ [K-Means ハイパーパラメータ](k-means-api-config.md)
+ [k-means モデルを調整する](k-means-tuning.md)
+ [k-means のレスポンス形式](km-in-formats.md)

## k-means アルゴリズムの入出力インターフェイス
<a name="km-inputoutput"></a>

トレーニングの場合、k-means アルゴリズムは、データが*トレーニング*チャネル (`S3DataDistributionType=ShardedByS3Key` を推奨) と、データをスコアリングするオプションの*テスト*チャネル (`S3DataDistributionType=FullyReplicated` を推奨) で提供されることを想定します。トレーニングでは `recordIO-wrapped-protobuf` と `CSV` の両方の形式がサポートされます。ファイルモードまたはパイプモードを使用すると、`recordIO-wrapped-protobuf` または `CSV` の形式のデータについてモデルをトレーニングできます。

推論の場合は、`text/csv`、`application/json`、および `application/x-recordio-protobuf` がサポートされます。k-means は、観測値ごとに `closest_cluster` ラベルと `distance_to_cluster` を返します。

入出力ファイル形式の詳細については、[k-means のレスポンス形式](km-in-formats.md) (推論の場合) および[k-means サンプルノートブック](#kmeans-sample-notebooks)を参照してください。k-means アルゴリズムは、トレーニングセットがラベル付きの「バッグ」で構成されている複数インスタンスの学習をサポートしていません。各バッグはラベルなしのインスタンスの集合です。

## k-means アルゴリズムの EC2 インスタンスに関する推奨事項
<a name="km-instances"></a>

k-means は CPU インスタンスでトレーニングすることをお勧めします。GPU インスタンスでトレーニングできますが、インスタンスあたり 1 つの GPU しか使用されないため、GPU トレーニングを単一 GPU インスタンス (ml.g4dn.xlarge など) に制限する必要があります。k-means アルゴリズムは、トレーニングと推論用の P2、P3、G4dn、G5 インスタンスをサポートします。

## k-means サンプルノートブック
<a name="kmeans-sample-notebooks"></a>

SageMaker AI K-means アルゴリズムを使用して、主成分分析で識別された属性を基準に米国の郡の人口をセグメント化するサンプルノートブックの詳細については、「[Analyze US census data for population segmentation using Amazon SageMaker AI](https://sagemaker-examples.readthedocs.io/en/latest/introduction_to_applying_machine_learning/US-census_population_segmentation_PCA_Kmeans/sagemaker-countycensusclustering.html)」を参照してください。SageMaker AI でサンプルを実行するために使用できる Jupyter ノートブックインスタンスを作成してアクセスする方法の詳細については、「[Amazon SageMaker ノートブックインスタンス](nbi.md)」を参照してください。ノートブックインスタンスを作成して開いたら、**[SageMaker AI サンプル]** タブを選択して、すべての SageMaker AI サンプルのリストを表示します。ノートブックを開くには、その [**Use (使用)**] タブをクリックして [**Create copy (コピーを作成)**] を選択します。