K-Means 算法 - Amazon SageMaker
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

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

K-Means 算法

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

Amazon SageMaker 使用修改版网络规模 k-means 聚类算法。与该算法的原始版本相比,Amazon SageMaker 使用的版本更加准确。与原始算法类似,它可扩展到大规模数据集并在训练时间方面加以改进。为此,Amazon SageMaker 使用的版本对小批量 (小型随机子集) 训练数据进行流式处理。有关小批量 k-means 的更多信息,请参阅网络规模 k-means 聚类.

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

K-Means 算法的输入/输出接口

对于训练,k-means 算法预计在训练通道中提供数据(推荐 S3DataDistributionType=ShardedByS3Key),并使用可选的测试通道(推荐 S3DataDistributionType=FullyReplicated)对数据进行评分。recordIO-wrapped-protobufCSV 格式均支持用于训练。您可以使用文件模式或管道模式,针对格式为 recordIO-wrapped-protobufCSV. 的数据训练模型。

对于推理,支持 text/csvapplication/jsonapplication/x-recordio-protobuf。k-means 会为每个观察返回 closest_cluster 标签以及 distance_to_cluster

有关输入和输出文件格式的更多信息,请参阅K-Means 响应格式(对于推理)和K-Means 示例笔记本. k-means 算法不支持多实例学习,在这种学习中,训练集由标记的“包”组成,每个包就是一个未标记实例的集合。

K-Means 算法的 EC2 实例建议

建议在 CPU 实例上训练 k-means。您可以在 GPU 实例上进行训练,但 GPU 训练应仅限 p*.xlarge 实例,因为每个实例只使用一个 GPU。

K-Means 示例笔记本

有关使用 SageMaker K-means 算法通过使用主要组件分析确定的属性来细分美国各县人口的示例笔记本,请参阅使用 Amazon SageMaker分析美国人口分布数据。有关如何创建和访问可用于在 SageMaker 中运行示例的 Jupyter 笔记本实例的说明,请参阅使用 Amazon SageMaker 笔记本实例. 创建笔记本实例并将其打开后,选择 SageMaker Examples (示例) 选项卡以查看所有SageMaker示例的列表。要打开笔记本,请单击其 Use (使用) 选项卡,然后选择 Create copy (创建副本).