首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >聚类后的TSNE图

聚类后的TSNE图
EN

Stack Overflow用户
提问于 2021-04-13 16:59:38
回答 1查看 119关注 0票数 0

我对数据应用了K_Mean集群,并在应用TSNE之后绘制了数据。我有4个维度和4个组。问题是我的K_mean是正确的,但为什么在tsne中,相同的组不是全部在一起?

代码语言:javascript
复制
the code : 

XX = df [["agent_os_new","agent_category_new","referer_new","agent_name_new"]]

y = df['referer_new']
y
cols = XX.columns

from sklearn.preprocessing import MinMaxScaler

ms = MinMaxScaler()

X = ms.fit_transform(XX)

X = pd.DataFrame(X, columns=[cols])
X[:4]


from sklearn.cluster import KMeans

kmeans = KMeans(n_clusters=4, random_state=0) 

ymeans = kmeans.fit(X)

ymeans


labels = kmeans.labels_

df_new = XX.assign(Cluster =labels)
df_new



from sklearn.manifold import TSNE
import seaborn as sns

X_embedded = TSNE(n_components=2).fit_transform(df_new)

df_subset = pd.DataFrame()
df_subset['tsne1'] = X_embedded[:,0]
df_subset['tsne2'] = X_embedded[:,1]

plt.figure(figsize=(16,10))
sns.scatterplot(
    x="tsne1", y="tsne2",
    hue=df.label,
    palette="Set1",
    data=df_subset,
    style=df_new["Cluster"],
    legend="full",
    s=120
)

我想要的:

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-04-13 17:33:16

代码语言:javascript
复制
from sklearn.manifold import TSNE
import seaborn as sns

X_embedded = TSNE(n_components=2,random_state=42).fit_transform(X)
centers = np.array(kmeans.cluster_centers_)
model = KMeans(n_clusters = 4, init = "k-means++")
label = model.fit_predict(X_embedded)


plt.figure(figsize=(10,10))
uniq = np.unique(label)
for i in uniq:
   plt.scatter(data[label == i , 0] , data[label == i , 1] , label = i)
plt.scatter(centers[:,0], centers[:,1], marker="x", color='k')
#This is done to find the centroid for each clusters.
plt.legend()
plt.show()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67071758

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档