gpt4 book ai didi

python - kmeans 簇数与 k 值不匹配

转载 作者:行者123 更新时间:2023-11-30 08:56:51 24 4
gpt4 key购买 nike

代码基于this article当我只定义 3 个集群时,可以按预期工作。但是当我更改簇数时,我没有得到相同数量的簇。

from matplotlib import image as img
from matplotlib import pyplot as plt
import pandas as pd

image = img.imread("my_logo1.jpg")
image.shape

r = []
g = []
b = []

for line in image:
for pixel in line:
temp_r, temp_g, temp_b = pixel
r.append(temp_r / 255)
g.append(temp_g / 255)
b.append(temp_b / 255)

df = pd.DataFrame({"red": r, "green": g, "blue": b})

from scipy.cluster.vq import kmeans
cluster_centers, distortion = kmeans(df[["red", "green", "blue"]], 7)

print(cluster_centers)

cluster centers returned are only 3, expected 7

我期望返回与 kmeans 函数中定义的颜色数量相同的颜色。

最佳答案

阅读 kmeans() 的源代码函数,可以注意一下支持函数的使用_kmeans() ,您可以在其中找到:

code_book = code_book[has_members]

has_members是一个 bool 数组,指示哪些集群有成员,由 _vq.update_cluster_means() 产生.

简而言之,当您指定簇数 k 时,算法会返回一组质心(最多 k),其中所见的最低失真。在 K-means 的更新步骤中,空簇会被简单地删除。

关于python - kmeans 簇数与 k 值不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56732276/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com