我可以使用自动编码器进行聚类吗?

2024-05-02

在下面的代码中,他们使用自动编码器作为监督聚类或分类,因为它们具有数据标签。http://amunategui.github.io/anomaly-detection-h2o/ http://amunategui.github.io/anomaly-detection-h2o/但是,如果我没有标签,我可以使用自动编码器来聚类数据吗? 问候


深度学习自动编码器始终是无监督学习。您链接到的文章的“监督”部分是评估它的表现。

以下示例(取自我的书《Practical Machine Learning with H2O》的第 7 章,其中我在同一数据集上尝试了所有 H2O 无监督算法 - 请原谅插件)采用 563 个特征,并尝试将它们编码为两个隐藏节点。

m <- h2o.deeplearning(
  2:564, training_frame = tfidf,
  hidden = c(2), auto-encoder = T, activation = "Tanh"
  )
f <- h2o.deepfeatures(m, tfidf, layer = 1)

第二个命令提取隐藏节点权重。f是一个数据框,有两个数字列,每行一行tfidf源数据。我只选择了两个隐藏节点,以便可以绘制集群:

每次运行的结果都会改变。您(也许)可以使用堆叠自动编码器或使用更多隐藏节点获得更好的结果(但随后您无法绘制它们)。在这里我觉得结果受到数据的限制。

顺便说一句,我用这段代码制作了上面的图:

d <- as.matrix(f[1:30,]) #Just first 30, to avoid over-cluttering
labels <- as.vector(tfidf[1:30, 1])
plot(d, pch = 17) #Triangle
text(d, labels, pos = 3) #pos=3 means above

(P.S.原始数据来自Brandon Rose 关于使用 NLTK 的优秀文章 http://brandonrose.org/clustering. )

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我可以使用自动编码器进行聚类吗? 的相关文章

随机推荐