k-means 是一种聚类算法,用于将数据分成 k 个不同的簇。
假设你有一个数据集,包含了 n 个数据点,每个数据点有 m 个特征。首先,你需要随机初始化 k 个质心,每个质心表示一个簇。然后,你需要执行以下步骤,直到质心不再改变或者达到最大迭代次数:
计算每个数据点到每个质心的欧几里得距离,并将每个数据点分配到距离它最近的质心所在的簇中。
重新计算每个簇的质心。
下面是 k-means 的 python 代码实现:
```python from typing import List, Tuple import numpy as np
def kmeans(X: List[List[float]], k: int, max_iter: int) -> Tuple[List[int], List[List[float]]]: """ Perform k-means clustering on the data.
Parameters
----------
X : list of list of float
The data to cluster, where each element is a data point with m features.
k : int
The number of clusters.
max_iter : int