【发布时间】:2019-11-06 00:10:15
【问题描述】:
当我只定义 3 个集群时,基于 this article 的代码按预期工作。但是当我改变集群的数量时,我并没有得到相同数量的集群。
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)
返回的集群中心只有 3 个,预计 7 个
我希望返回的颜色数量与 kmeans 函数中定义的颜色相同。
【问题讨论】:
-
你的python版本是多少?
-
# Python 3.7.1 # scipy 1.2.1
-
当我选择彩色图像时,它会按预期工作。但是当我选择只有 1 或 2 种颜色的简单图像(例如 google 徽标)时,kmeans 无法创建超过 3/4 的集群。听起来合乎逻辑,但需要确认。
标签: python python-3.x machine-learning scipy k-means