for*_*ver 5 autoencoder deep-learning h2o
在下面的代码中,他们使用自动编码器作为监督聚类或分类,因为它们具有数据标签. http://amunategui.github.io/anomaly-detection-h2o/ 但是,如果我没有标签,我可以使用自动编码器对数据进行聚类吗?问候
深度学习自动编码器总是无监督学习.您链接到的文章的"监督"部分是评估它的效果.
下面的例子(摘自我的书,实用机器学习与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)
Run Code Online (Sandbox Code Playgroud)
第二个命令提取隐藏的节点权重.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
Run Code Online (Sandbox Code Playgroud)
(PS原始数据来自Brandon Rose关于使用NLTK的优秀文章.)
归档时间: |
|
查看次数: |
10211 次 |
最近记录: |