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

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 训练应限制为单 GPU 实例(例如 ml.g4dn.xlarge),因为每个实例只使用一个 GPU。k-means 算法支持使用 P2、P3、G4dn 和 G5 实例进行训练和推理。

K-Means 示例笔记本

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