K-Means 算法 - Amazon SageMaker

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

K-Means 算法

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

Amazon SageMaker 使用网络规模 k 均值聚类算法的修改版本。与算法的原始版本相比,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 训练应限制为单 GPU 实例(例如 ml.g4dn.xlarge),因为每个实例只使用一个 GPU。k-means 算法支持使用 P2、P3、G4dn 和 G5 实例进行训练和推理。

K-Means 示例笔记本

有关使用 SageMaker K-means 算法按使用主成分分析确定的属性对美国各县人口进行细分的示例笔记本,请参阅使用 Amazon SageMaker 分析美国人口普查数据以进行人口细分。有关如何创建和访问可用于在中运行示例的 Jupyter 笔记本实例的说明 SageMaker,请参阅。Amazon SageMaker 笔记本实例创建并打开笔记本实例后,选择 “SageMaker示例” 选项卡以查看所有 SageMaker 示例的列表。要打开笔记本,请单击使用 选项卡,然后选择创建副本