我发现簇的数量更好,并且我的簇用于eacch数据。
现在我可以根据中心和群集绘制散点图以查看数据吗?
这是我的数据集。
这是我使用的代码。
from datetime import datetime
# Get first of the month
currentmonth = datetime.now.strftime('%Y-%m-01')
# separate the month, and increment
split = currentmonth.split("-")
split[1] = str(int(split[1])-1)
lastmonth = '-'.join(split)
但是情节对我来说真是个混混。
能否请给我一些指导,以说明如何根据中心和聚类分布来修复脚本,以使我的正确分类更为成功?
答案 0 :(得分:1)
使用iris
数据集的示例:
import numpy as np
import matplotlib.pyplot as plt
from sklearn.cluster import KMeans
from sklearn import datasets
iris = datasets.load_iris()
X = iris.data[:,0:2]
y = iris.target
kmeans = KMeans(n_clusters=4)
kmeans.fit(X)
assignments = kmeans.labels_ # this is the CLUSTERS column in your case
plt.figure(figsize=(12,8))
classes = np.unique(assignments)
colors= ['r','b','k','y'] # 4 CLUSTERS SO 4 COLORS HERE
for s,l in enumerate(classes):
xs = X[:,0]
ys = X[:,1]
plt.scatter(xs[assignments==s], ys[assignments==s], c = colors[s]) # color based on group
plt.plot(kmeans.cluster_centers_[0][0], kmeans.cluster_centers_[0][1], 'ro',markersize=16, alpha = 0.5, label='')
plt.plot(kmeans.cluster_centers_[1][0], kmeans.cluster_centers_[1][1], 'bo',markersize=16, alpha = 0.5)
plt.plot(kmeans.cluster_centers_[2][0], kmeans.cluster_centers_[2][1], 'ko',markersize=16, alpha = 0.5)
plt.plot(kmeans.cluster_centers_[3][0], kmeans.cluster_centers_[3][1], 'yo',markersize=16, alpha = 0.5)
plt.grid()
答案 1 :(得分:1)
因为
Classe==0
还是1
中。 1)clusters
只是一个整数,它告诉您有多少簇具有这些特征,而不是每个簇都位于Classe==0
或1
中。
Cluster = df_diabetes_normalizado['clusters']
...
scatter = ax.scatter(x,y,c=Cluster, ...)
您的绘图错误地使用颜色显示c=Cluster
,即簇数,您并未在任何地方绘制Classe
。改为绘制Classe
。 (您可能会选择使用size=Clusters
,因此较大的簇会更大)
2)“生成[两个变量]的正确散点图”的定义不明确;显然,您有8个变量(“ Numero Gravida”,“ Glicose”,“ Pressao”,...,“ Idade”),并且您的因变量(“ Classe”)是所有8个变量的函数,而不仅仅是您随意选择的两个图:x ='Glicose'和y ='Massa Corporal'。
如果您为数据集发布MCVE,并且告诉我们您真正想要哪种绘图,则可以发布代码。