K 表示集群更新分配
K Means Cluster Update Assignment
我是 运行 python 3 并且正在实施 K 均值聚类文件。我已经为欧几里得距离和分配数据编写了函数。现在我想更新分配并编写一个函数,该函数 returns 一个新字典,其值为质心键名称和值属于质心的点列表。
def update_assignment(data, centroids):
我知道我需要重用我之前创建的 assign_data 函数。我想在不使用 numpy 的情况下执行此操作,但我完全被卡住了。寻找建议。我是否需要再次遍历数据并使用 if
语句来比较之前的距离?似乎我不需要调用之前的距离,因为我已经为它创建了一个函数。任何帮助将不胜感激。
是的,您需要遍历数据。初始化一个字典,其中每个质心都映射到一个空列表。然后对于每个数据点 x
您可以使用列表推导来查找到每个质心的距离,例如:
[euclidean_distance(x, c) for c in centroids]
此列表中最小元素的索引标识了新的质心。然后您可以将 x
附加到该字典中的相应列表。
我是 运行 python 3 并且正在实施 K 均值聚类文件。我已经为欧几里得距离和分配数据编写了函数。现在我想更新分配并编写一个函数,该函数 returns 一个新字典,其值为质心键名称和值属于质心的点列表。
def update_assignment(data, centroids):
我知道我需要重用我之前创建的 assign_data 函数。我想在不使用 numpy 的情况下执行此操作,但我完全被卡住了。寻找建议。我是否需要再次遍历数据并使用 if
语句来比较之前的距离?似乎我不需要调用之前的距离,因为我已经为它创建了一个函数。任何帮助将不胜感激。
是的,您需要遍历数据。初始化一个字典,其中每个质心都映射到一个空列表。然后对于每个数据点 x
您可以使用列表推导来查找到每个质心的距离,例如:
[euclidean_distance(x, c) for c in centroids]
此列表中最小元素的索引标识了新的质心。然后您可以将 x
附加到该字典中的相应列表。