我正在使用 kmeans 对一些具有 2 个特征的数据进行聚类。不确定我理解为什么 kmeans 会产生我看到的集群:
为什么 kmeans 不能以与我们在视觉上查看数据时所期望的方式相匹配的方式对这些点进行聚类?为什么视觉集群中间看似随机的点会被放入第二个集群中?
我正在运行的代码:
cols = ['col1', 'col2']
features = map(lambda x: df[x], cols)
input = np.matrix(list(zip(*features)))
scaler = StandardScaler()
scaler.fit(input)
input_scaled = scaler.transform(input)
algo = KMeans(n_clusters=2)
algo.fit(input_scaled)
df['cluster'] = pd.Series(algo.labels_)
sns.lmplot(x=cols[0],y=cols[1],data=df, fit_reg=False, hue='cluster')

