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

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

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 End的示例选项卡以查看所有 SageMaker 示例的列表。要打开笔记本,请单击其 Use (使用) 选项卡,然后选择 Create copy (创建副本)