Python 基于无标记数据集的MLP聚类

Python 基于无标记数据集的MLP聚类,python,machine-learning,cluster-analysis,k-means,mlp,Python,Machine Learning,Cluster Analysis,K Means,Mlp,如何使用多层感知器在非标记数据集上进行K-均值聚类。 我已经用标签列出了MNIST数据集,但我想用MLP执行聚类算法。 有什么想法吗?编辑:如果问题局限于仅使用MLP,我认为您正在寻找聚类的可微目标。(K-均值目标是不可微的,因为找到了质心部分)。我认为这不是聚类的“主流”方法,但显然,似乎有一些工作可以使用深度网络来优化聚类(可区分)目标: :“我们利用了最佳传输和k-均值之间的联系,并依靠熵正则化来 导出一个完全可微的聚类损失 用于(P)中,并直接使用SGD进行优化”。因此,您可以将SGD应

如何使用多层感知器在非标记数据集上进行K-均值聚类。 我已经用标签列出了MNIST数据集,但我想用MLP执行聚类算法。
有什么想法吗?

编辑:如果问题局限于仅使用MLP,我认为您正在寻找聚类的可微目标。(K-均值目标是不可微的,因为找到了质心部分)。我认为这不是聚类的“主流”方法,但显然,似乎有一些工作可以使用深度网络来优化聚类(可区分)目标:

  • :“我们利用了最佳传输和k-均值之间的联系,并依靠熵正则化来 导出一个完全可微的聚类损失 用于(P)中,并直接使用SGD进行优化”。因此,您可以将SGD应用于MLP,MLP是使用此损失的最佳架构吗?取决于你的数据
  • 我可以想到的另一种使用ANN的方法是。这取决于您对MLP的定义有多宽松,您当然可以在输入层和输出特征映射之间添加一组层

    您可以潜在地使用MLP将数据嵌入到向量空间中,您可以使用该向量空间在KMeans期间计算某些度量(例如欧几里德距离),这可能有意义,也可能没有意义,这取决于您如何计算嵌入和数据集。 您可以在没有标签的情况下使用自动编码器实现这一点,尽管这比简单的MLP要复杂一些:

    这可能是一种过度的杀伤力,这取决于问题的严重程度。首先考虑在数据上做KMID(没有MLP)。如果问题足够复杂,将数据移动到潜在空间可能会奏效,这基本上就是word2vec所做的,人们使用它进行聚类和各种事情(请参阅)

    聚类通常是无监督的,MLP通常是有监督的。你到底有什么问题?你能定义一个距离度量吗?你希望MLP定义这样的数据集吗?@PeterLang我想用类似于MLP的K-Means对无标签数据集(无监督)进行聚类。所谓MLP,你是指堆叠的线性层还是任何神经网络?感觉这里重要的是目标(kmeans’是不可微的),而不是架构。我认为不可能将多层感知器(“香草”神经网络)应用于未标记的数据,因为神经网络通常只处理标记的数据。在未标记的数据上训练神经网络似乎没有意义。(那么训练会是什么样子呢?)神经网络是有监督的模型(需要正确解决方案的例子,因此需要标签),但聚类通常是无监督的(不需要标签)。这不一定是真的,网络训练前不需要标签。是关于如何定义目标任务和损失函数的。Autoencoder不能帮助我们对未标记的数据集(如k-means)执行聚类。我想通过改变MLP来进行集群。你需要改变(或定义)的是学习问题,而不是架构本身。我没有使用K-means编辑答案,但仍然需要在MLP之外进行一些更改(具体取决于您所说的a-change)