【发布时间】:2018-05-09 19:22:38
【问题描述】:
我目前正忙于学校练习。练习如下。
我们将考虑部分描述的狂野面孔数据 伯格2005 [1]。使用 loadmat 加载 wildfaces 数据、Data/wildfaces 功能。每个数据对象是一个 40*40*3=4800 维度 矢量,对应于 3 色 40*40 像素的图像。计算一个 k-means 对具有 K=10 个簇的数据进行聚类。随机绘制一些 来自数据集的图像及其对应的集群 质心,看看它们是如何表示的。
[1] Tamara L Berg、Alexander C Berg、Jaety Edwards 和 DA Forsyth。图片里是谁。神经信息处理系统的进展,17:137-144,2005。
现在我的问题是,如何计算一张图像的质心?我目前能够显示面部并计算数据集的质心。我不明白的是,我怎么知道哪些质心对应于图像 4(在我的代码示例中使用)?我必须计算整个数据集 X 的质心还是只计算 X[4]?我现在需要采取哪些步骤来“绘制相应的集群质心以查看它们是如何表示的”?
import scipy.io as spio
import sklearn.cluster as cl
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.pyplot import imshow
faces = spio.loadmat('Data/wildfaces.mat',squeeze_me=True)
X = faces['X']
Y = cl.k_means(X,10)
centroids = Y[0]
clusters = Y[1]
imshow(np.reshape(X[4,:],(3,40,40)).T)
plt.show()
【问题讨论】:
标签: python cluster-analysis data-mining k-means centroid