Python 当我们对数据进行聚类时,如何检查TSNE结果是否真实?
我正在申请TSNE进行降维。我有几个功能,我减少到2个功能。之后,我使用Kmeans对数据进行集群。最后,我使用seaborn绘制聚类结果 要导入TSNE,我使用:Python 当我们对数据进行聚类时,如何检查TSNE结果是否真实?,python,cluster-analysis,pca,tsne,Python,Cluster Analysis,Pca,Tsne,我正在申请TSNE进行降维。我有几个功能,我减少到2个功能。之后,我使用Kmeans对数据进行集群。最后,我使用seaborn绘制聚类结果 要导入TSNE,我使用: from sklearn.manifold import TSNE 要应用TSNE,我使用: features_tsne_32= TSNE(2).fit_transform(standarized_data) 之后,我使用Kmeans: kmeans = KMeans(n_clusters=6, **kmeans_kwargs)
from sklearn.manifold import TSNE
要应用TSNE,我使用:
features_tsne_32= TSNE(2).fit_transform(standarized_data)
之后,我使用Kmeans:
kmeans = KMeans(n_clusters=6, **kmeans_kwargs)
kmeans.fit(features_tsne_32)
km_tsne_32 = kmeans.predict(features_tsne_32)
最后,我使用以下方法绘制了图:
import seaborn as sns
#plot data with seaborn
facet = sns.lmplot(data=df, x='km_tsne_32_c1', y='km_tsne_32_c2', hue='km_tsne_32',
fit_reg=False, legend=True, legend_out=True)
我有这样一个情节:
这张图看起来太完美了,而且是球状的。我画这张图的过程有点不对劲
这些数据?在上面描述的代码中
我遵循的程序有问题吗
对
使用TSNE将数据投影到另一个您无法实际控制的空间。
这样做是为了让近点靠近,远点远离 然后在投影空间上使用KNN确定组。
此部分会丢失您以前拥有的任何分组信息[需要引用,需要查看数据之前是什么] 根据一些先前标记的数据,而不是根据KNN,对组进行着色更有意义
-或-
在原始空间上使用KNN进行分组,然后根据该分组为投影空间着色 你所做的事实上是毫无意义的,因为它失去了所有先前的信息-标签和空间
总结如下:
使用TSNE将数据投影到另一个您无法实际控制的空间。
这样做是为了让近点靠近,远点远离 然后在投影空间上使用KNN确定组。
此部分会丢失您以前拥有的任何分组信息[需要引用,需要查看数据之前是什么] 根据一些先前标记的数据,而不是根据KNN,对组进行着色更有意义
-或-
在原始空间上使用KNN进行分组,然后根据该分组为投影空间着色 你所做的事实上是毫无意义的,因为它失去了所有先前的信息-标签和空间
总结如下:
您的问题不是针对t-SNE,而是针对任何无监督学习算法。你如何评价它的结果 我想说的是,唯一正确的方法是,如果你有一些关于数据的先验知识或专家知识。比如标签、其他元数据,甚至用户反馈
也就是说,关于你的具体情节:
因此,k-Means很好,但您可能需要调整t-SNE的参数。您的问题并不特定于t-SNE,而是任何无监督学习算法。你如何评价它的结果 我想说的是,唯一正确的方法是,如果你有一些关于数据的先验知识或专家知识。比如标签、其他元数据,甚至用户反馈
也就是说,关于你的具体情节:
所以k-Means很好,但是您可能需要调整t-SNE的参数。检查t-SNE算法的复杂性。当困惑太小时,t-SNE通常会产生盘状斑点。此外,使用DBSCAN聚类算法进行测试,该算法通常比k-Means算法更有效。检查t-SNE算法的复杂性。当困惑太小时,t-SNE通常会产生盘状斑点。此外,使用DBSCAN聚类算法进行测试,该算法通常比k-Means算法更有效。当您说过度正则化模型时,表示该模型处于过度拟合状态?。事实上,TSNE的输入是一个CAE(卷积自动编码器)模型的输出。如果可能的话,你能详细说明一下这一点吗?通常,过度正则化会导致欠拟合,而不是过度拟合。所有/几乎所有正则化方法都在概念上对输出空间的外观施加“先验假设”。例如,在具有高斯潜变量的VAE中,过度正则化模型总是会产生(高维