

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# K-Means 算法
<a name="k-means"></a>

K-means 是一种自主学习算法。它尝试在数据中寻找离散组，其中一个组的成员尽可能彼此相似，而与其他组的成员尽可能互不相同。您定义想要该算法用来确定相似性的属性。

Amazon SageMaker AI 使用网络规模 k 均值聚类算法的修改版本。与该算法的原始版本相比，Amazon A SageMaker I 使用的版本更为准确。与原始算法类似，它可扩展到大规模数据集并在训练时间方面加以改进。为此，Amazon A SageMaker I 使用的版本会流式传输训练数据的小批量（小批量、随机子集）。有关小批量 k-means 的更多信息，请参阅[网络规模 k-means 聚类](https://dl.acm.org/doi/10.1145/1772690.1772862)。

k-means 算法预计生成表格数据，其中的行代表您要聚类的观察结果，而列代表观察结果的属性。每行中的 *n* 属性表示 *n* 维空间的一个点。这些点之间的欧几里得距离表示相应观察结果的相似度。该算法将具有类似属性值的观察结果分为一组 (与这些观察结果对应的点彼此离得更近)。有关 k-means 在 Amazon A SageMaker I 中的工作原理的更多信息，请参阅[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>

建议在 CPU 实例上训练 k-means。您可以在 GPU 实例上进行训练，但 GPU 训练应限制为单 GPU 实例（例如 ml.g4dn.xlarge），因为每个实例只使用一个 GPU。k-means 算法支持使用 P2、P3、G4dn 和 G5 实例进行训练和推理。

## K-Means 示例笔记本
<a name="kmeans-sample-notebooks"></a>

有关使用 SageMaker AI K-means 算法按使用主成分分析确定的属性对美国各县人口进行细分的示例笔记本，请参阅[使用 Amazon A SageMaker I 分析美国人口普查数据以进行人口细分](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 示例的列表。要打开笔记本，请单击**使用** 选项卡，然后选择**创建副本**。