问题标签 [unsupervised-learning]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
8 回答
33968 浏览

java - K-均值算法

我正在尝试用 Java 编写一个 k-means 算法。我计算了许多数组,每个数组都包含许多系数。我需要使用 k-means 算法来对所有这些数据进行分组。你知道这个算法的任何实现吗?

谢谢

0 投票
28 回答
172118 浏览

machine-learning - 监督学习和无监督学习有什么区别?

在人工智能和机器学习方面,有监督学习和无监督学习有什么区别?你能用一个例子提供一个基本的、简单的解释吗?

0 投票
3 回答
3805 浏览

r - R中的无监督学习?分类矩阵 - 什么是正确的包?

最近看了很多斯坦福搞笑的公开课视频讲座。特别是关于无监督机器学习的部分引起了我的注意。不幸的是,如果它可能变得更有趣,它就会停止。

基本上,我希望通过无监督算法对离散矩阵进行分类。这些矩阵只包含相同范围的离散值。假设我有 1000 个 20x15 矩阵,其值范围为 1-3。我刚开始阅读文献,我觉得图像分类要复杂得多(颜色直方图),而且我的案例只是对那里所做的事情的简化。

我还查看了机器学习集群Cran 任务视图,但不知道从哪里开始使用实际示例。

所以我的问题是:哪个包/算法是开始在 R 中解决问题的好选择?

编辑:我意识到我可能不精确:我的矩阵包含离散选择数据——所以意味着聚类可能(!)不是正确的想法。我确实理解你所说的关于向量和观察的内容,但我希望有一些函数可以接受矩阵或 data.frames,因为随着时间的推移我有几个观察结果。

EDIT2:我意识到专注于分类数据的无监督分类的包/功能介绍是现在对我最有帮助的。

0 投票
4 回答
4110 浏览

machine-learning - 选择适当的相似性度量并评估 k-means 聚类模型的有效性

我已经实现了 k-means 聚类来确定 300 个对象中的聚类。我的每个对象都有大约 30 个维度。距离是使用欧几里得度量计算的。

我需要知道

  1. 我如何确定我的算法是否正常工作?我不能有一个图表来说明我的算法的正确性。
  2. 欧几里得距离是计算距离的正确方法吗?如果我有 100 维而不是 30 怎么办?
0 投票
1 回答
448 浏览

nlp - 调试 Baum Welch 算法的实现(用于 POS 标记)

我正在做一个项目,其中一部分是开发一个用于 POS 标记的无监督 HMM 训练器,我现在想测试它是否存在可能的错误。

我正在使用 Baum-Welch 算法来训练模型。输入是序列词(从语料库中提取),输出是来自一组状态的隐藏状态序列(s1, s2, ... sn)。我现在完成了编码,但我不确定它是否没有错误。

谁能建议我一些调试想法?正如我应该在输出中检查什么?如何检查我的算法的准确性?

0 投票
2 回答
1838 浏览

artificial-intelligence - 如何评估聚类?

我还在研究评估使用聚类(无监督学习)形成的聚类吗?

我试过谷歌搜索,但我得到的措施太理论化了。如果人们可以分享他们用来评估所形成集群的机制,那就太好了。假设我有一个 Java 集群,它将包含 Java EE、Java ME、RMI、JVM 等,另一个集群说 NoSQL,它将有 Neo4j、OrientDB、CouchDB 等。这是完美的,我的集群算法给了我最多准确的集群。

然而,在训练和测试之后,我可能会在 NoSQL 集群下说 MySQL、Oracle,所以我只是做一个手动/视觉解释,然后重新训练我的算法或调整它,以便我获得更好的集群。

现在我想自动化这个手动可视化集群的过程,并拥有一个系统,可以让我获得形成的集群的准确性。我正在寻找与搜索中使用的 Precision、Recall、NDCG、Map 等类似的东西。我的集群长度不同,并且可以形成 n 个不同的集群,因此精度/召回率不是正确的。

0 投票
2 回答
791 浏览

algorithm - 无监督分类——获得特征向量

我需要对商业产品进行分类。您知道价格比较引擎的作用。

我们已经获得了特征向量。它们不是最好的,但还不错。我的最后一步是在不知道有多少簇的情况下对它们进行分类。因此,像 k-means 这样的算法将不起作用,因为它们需要有多少类。

所以这里是一组特征向量的例子。它们在这里是有序的(例如),但我需要一个不依赖于任何顺序的算法。

当人类看起来时,只需使用这些特征向量就可以很容易地对产品进行分类。但我需要通过算法来实现它。而且我还需要使用不需要任何先验信息的算法来实现它,只需使用特征向量即可。

从上述特征向量集中,47-54 是一个簇,55-60 是另一个簇,61-69 是另一个簇(每个簇表示现实生活中的商业产品)。因此,算法需要仅使用这些特征向量对它们进行正确分类。

该算法不能依赖于特征向量的线序或有多少类。我们什么都不知道,我们只有特征向量。

等待您对此分类问题的建议。谢谢你。

0 投票
1 回答
515 浏览

haskell - 使用 Haskell 进行无监督聚类

我正在尝试开发一种算法,该算法可以报告数据集之间出现类似模式的频率和接近度。

简单的例子:

这些集合中的每一个都有一个 1、2 和 3,但这些数字在 set2 和 set3 中更接近。

我怀疑我可以通过列表推导来完成这项任务。我可以将数据绘制到变量 x 和 y 中,并将每个匹配项编入一个列表列表,其中一个嵌入式列表中的第一个元素是找到的匹配字符串,第二个和第三个元素是它们的位置。我可以通过另一个函数运行这个列表,该函数计算这些匹配发生的频率和接近程度,并报告一个百分比。

或者也许有更优雅的方式来做到这一点?

我仍然是一个 Haskell 新手。任何意见,将不胜感激。

0 投票
1 回答
213 浏览

node.js - Nodejs 模板系统文档

我想为 node.js 创建自己的模板系统(仅用于教育目的),但我找不到任何有用的信息。有什么好的教程可以帮助我吗?谢谢!

0 投票
1 回答
1819 浏览

r - 为无监督学习生成合成数据

我想为随机森林的无监督学习准备数据。程序如下:

  • 获取数据并将值为 1 的属性“类”添加到所有示例
  • 从原始数据生成合成数据:
    • 虽然您没有与原始数据构建示例相同数量的示例:
      • 从原始数据中该属性的所有值中采样新的属性值
      • 对所有属性执行此操作并将它们组合到新示例中
  • 分配给合成数据值 2 的属性“类”
  • 将两个数据绑定在一起

最后它看起来像这样:

我的 R 代码如下所示:

很明显,我对 R 真的很陌生,但它确实有效——只有一个问题:合成数据中的属性类型与原始数据中的不同。如果原来它们是 nums,那么现在它们变成了因数。如何在生成合成数据时保留相同的类型?

谢谢!

Data1(数字成为因素):

结构(列表(V2 = c(1.51793, 1.51711, 1.51645, 1.51916, 1.51131), V3 = c(13.21, 12.89, 13.44, 14.15, 13.69), V4 = c(3.48, 3.62, 3.61, 0, 3.2), V5 = c(1.41, 1.57, 1.54, 2.09, 1.81), V6 = c(72.64, 72.96, 72.39, 72.74, 72.81), V7 = c(0.59, 0.61, 0.66, 0, 1.76), V8 = c(8.43, 8.11, 8.03, 10.88, 5.43), V9 = c(0, 0, 0, 0, 1.19), V10 = c(0, 0, 0, 0, 0), realClass = structure(c(1L, 2L, 2L) , 5L, 6L), .Label = c("1", "2", "3", "5", "6", "7"), class = "factor")), .Names = c(" V2”、“V3”、“V4”、“V5”、“V6”、“V7”、“V8”、“V9”、“V10”、“realClass”),row.names = c(27L, 138L, 77L, 183L, 186L), 类 = "data.frame")

Data2(因子变为 chrs):

结构(列表(realClass =结构(c(2L,2L,2L,1L,2L),.Label = c(“e”,“p”),类=“因子”),V2 =结构(c(6L, 3L, 4L, 6L, 6L), .Label = c("b", "c", "f", "k", "s", "x"), class = "factor"), V3 = structure( c(4L, 4L, 3L, 1L, 1L), .Label = c("f", "g", "s", "y"), class = "factor"), V4 = structure(c(5L, 5L, 5L, 3L, 4L), .Label = c("b", "c", "e", "g", "n", "p", "r", "u", "w", "y"), class = "factor"), V5 = structure(c(1L, 1L, 1L, 2L, 1L), .Label = c("f", "t"), class = "factor"), V6 = 结构(c(3L, 9L, 3L, 6L, 3L), .标签 = c("a", "c", "f", "l", "m", "n", "p", "s", "y"), class = "factor"), V7 =结构(c(2L, 2L, 2L, 2L, 2L), .Label = c("a", "f"), class = "factor"), V8 = structure(c(1L, 1L, 1L, 1L, 1L), .Label = c("c", "w"), class = "factor"), V9 = structure(c(2L, 2L, 2L, 1L, 1L), .Label = c("b", "n"), class = "factor"), V10 = structure(c(1L, 1L, 1L, 10L, 4L), .Label = c("b", "e", "g", "h", “k”,“n”,“o”,“p”,“r”,“u”,“w”,“y”),类 =“因子”),V11 = 结构(c(2L,2L, 2L, 2L, 1L), .标签 = c("e", "t"), class = "factor"), V12 = structure(c(NA, NA, NA, 1L, 1L), .Label = c("b", "c", "e", "r"), class = "factor"), V13 = structure(c(3L, 2L, 3L, 3L, 2L), .Label = c("f", "k", "s", "y"), class = "factor"), V14 = structure(c(3L, 3L, 2L, 3L, 2L), .Label = c("f", "k", "s", "y") , class = "factor"), V15 = structure(c(7L, 8L, 7L, 4L, 7L), .Label = c("b", "c", "e", "g", "n", “o”、“p”、“w”、“y”)、类 =“因子”)、V16 = 结构(c(7L、7L、8L、4L、1L),.Label = c(“b”, “c”、“e”、“g”、“n”、“o”、“p”、“w”、“y”),类 = “因子”),V17 = 结构(c(1L,1L,1L,1L,1L),.标签 = “p”,类 = “因子”),V18 = 结构(c(3L,3L,3L,3L,3L),.Label = c(“n”,“o”,“w”,“y” ), 类 = "因子"), V19 = 结构 (c(2L, 2L, 2L, 2L, 2L), .Label = c("n", "o", "t"), 类 = "因子") , V20 = 结构(c(1L, 1L, 1L, 5L, 3L), .Label = c("e", "f", "l", "n", "p"), class = "factor") , V21 = 结构(c(8L, 8L, 8L, 4L, 2L), .Label = c("b", "h", "k", "n", "o", "r", "u" , "w","y"), class = "factor"), V22 = structure(c(5L, 5L, 5L, 5L, 6L), .Label = c("a", "c", "n", "s", "v", "y"), class = "factor"), V23 = structure(c(3L, 3L, 5L, 1L, 2L), .Label = c("d", "g", "l", “m”、“p”、“u”、“w”)、class =“因子”))、.Names = c(“realClass”、“V2”、“V3”、“V4”、“V5”、 “V6”、“V7”、“V8”、“V9”、“V10”、“V11”、“V12”、“V13”、“V14”、“V15”、“V16”、“V17”、“V18” ", "V19", "V20", "V21", "V22", "V23"), row.names = c(4105L, 6207L,6696L, 2736L, 3756L), 类 = "data.frame")