我最近在学习机器学习，想了解一下K-means算法的工作原理。请简要说明K-means算法的基本流程，并以json形式列出3个K-means的核心要点。请注意，您的回答中不应包含任何其他算法的说明。
user
K-means算法是一种无监督的聚类算法，其基本流程如下：首先，随机选取K个中心点作为初始聚类中心；接着，对于每个数据点，计算其与各个中心点的距离，并将其分配给最近的中心点所属的类别；然后，重新计算每个类别的中心点；此过程不断迭代，直至中心点位置不再显著变化或达到预设的迭代次数。K-means算法的核心在于通过不断优化类别中心，使得同一类别内的数据点尽可能接近，而不同类别间的数据点尽可能远离，最终实现聚类效果。

{
  "core_points": [
    "选择K个初始中心点",
    "将每个数据点分配给最近的中心点",
    "重新计算每个类别的中心点"
  ]
}
assistant