问题标签 [machine-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 投票
5 回答
703 浏览

algorithm - 算法根据其他用户的喜好来寻找用户喜欢的东西

我正在考虑编写一个应用程序来根据家庭成员的喜好对 HTPC 中的电影进行分类。

我不知道统计或人工智能,但这里的东西看起来很有趣。我不知道从哪里开始做。

这是我想要完成的事情:

  1. 根据每个用户的喜好组成一组样本,分别对每个样本属性进行评分。例如,也许一个用户非常喜欢西方电影,所以西方类型对该用户来说会带来更多的权重(对于其他属性,如演员、导演等)。

  2. 用户可以根据其他用户的喜好获得建议。例如,如果用户 A 和 B 都喜欢 Spielberg(用户之间的联系),并且用户 B 喜欢 Batman Begins,但用户 A 讨厌 Katie Holmes,则相应地为用户 A 权衡电影(同样,每个属性单独,例如,也许用户 A 不太喜欢动作片,所以稍微降低评分,因为凯蒂·霍姆斯不是主要明星,所以不要像其他属性一样考虑这一点)。

基本上,将用户 A 的集合与用户 B 的集合进行比较,然后得出用户 A 的评分。

我对如何实现这个有一个粗略的想法,但我敢肯定一些聪明的人已经想到了一个更好的解决方案,所以......有什么建议吗?

实际上,经过快速研究,贝叶斯过滤器似乎可以工作。如果是这样,这会是更好的方法吗?会不会像“规范化”电影数据、为每个用户训练分类器、然后对每部电影进行分类一样简单?

如果您的建议包括一些令人费解的概念(我在这些主题方面没有经验,特别是在 AI 方面),如果您还包括一些基础知识列表供我在深入研究肉类之前进行研究,我将不胜感激。

谢谢!

0 投票
3 回答
308 浏览

machine-learning - 如何测试概率估计器的质量?

我创建了一个启发式(ANN,但这并不重要)来估计事件的概率(体育比赛的结果,但这也不重要)。给定一些输入,这个启发式告诉我事件的概率是多少。类似于:鉴于这些输入,B 队有 65% 的机会获胜。

我有大量输入数据,现在我得到了结果(以前玩过的游戏)。我可以使用哪个公式/指标来限定我的估算器的准确性。

我看到的问题是,如果估计者说事件有 20% 的概率并且事件确实发生了。我无法判断我的估算器是对还是错。也许这是错误的,事件的可能性更大。也许它是正确的,事件发生的几率大约为 20%,并且确实发生了。也许是错的,事件发生的机会非常低,比如说千分之一,但这次恰好发生了。

幸运的是,我有很多这些实际测试数据,所以可能有一种方法可以使用它们来限定我的启发式方法。

有人有想法吗?

0 投票
6 回答
56483 浏览

c# - C# 中的机器学习库

C# 中是否有任何机器学习库?我追求类似WEKA的东西。谢谢你。

0 投票
5 回答
3133 浏览

algorithm - 求解最近邻的最佳性能关键算法

我们有一个 x,y 对的列表。每对代表二维空间上的一个点。我想从这个列表中找到离特定点 xq,yq 最近的点。这个问题的最佳性能关键算法是什么?Lisp of points 不会改变;这意味着我不需要执行插入和删除。我只想找到这个集合中目标 xq,yq 点的最近邻居。

编辑1:谢谢大家!正如 Stephan202 猜对的那样,我想反复这样做;像一个函数。列表不一定是排序的(实际上我不明白它是如何排序的?就像一个具有 2 列 a 和 y 的主键的表?如果这有帮助,那么我会对其进行排序)。

我会根据列表构造一次数据结构,然后我会在函数中使用这个生成的数据结构(如果这个过程本身是相关的)。

谢谢雅各布;KD-Tree 数据结构似乎是一个很好的答案候选者(我觉得确实如此。当我得到一些相关结果时,我会更新)。

编辑2:我发现,这个问题被命名为“最近的邻居”!

编辑 3:第一个标题是“In Search of an Algorithm (for Spatial-Querying and Spatial-Indexing) (Nearest Neighbor)”;我选择了一个新标题:“解决最近邻的最佳性能关键算法”。由于我不想对我的初始数据执行插入和删除操作,而我只想要离它们最近的一个到一个新点(不会被插入),我选择(当前)在 KD-Trees 上工作。谢谢大家!

0 投票
1 回答
6443 浏览

matlab - 如何在 Matlab newff 方法中设置输出大小

摘要: 我正在尝试根据身体部位之间的角度对一些图像进行分类。

我假设人体由 10 个部分组成(作为矩形)并找到每个部分的中心并通过参考躯干计算每个部分的角度。我有三个动作类别:手波-步行-跑步。我的目标是找出哪些测试图像属于哪个动作类别。

事实: TrainSet:1057x10 特征集,1057 代表图像数量。测试集:821x10

我希望我的输出是 3x1 矩阵,每行显示动作类别的分类百分比。第 1 行:手挥 第 2 行:步行 第 3 行:跑步

代码:

问题: 我正在使用 Matlab newff 方法。但我的输出始终是 Nx10 矩阵而不是 3x1。我的输入集应分为 3 个类,但它们分为 10 个类。

谢谢

0 投票
1 回答
432 浏览

algorithm - 在社交网络中对朋友进行分类

我面临以下问题:
假设是一个社交网络用户,因此有一个朋友列表F(u)分区是函数F->G,其中G是一组组,例如高中、大学、工作等。
我需要想出算法来划分F

  • 输入是F以及F中每个fF (f)(每个u的朋友的朋友列表)。
  • 在运行期间,允许算法向u提问(例如,“对于某些特定用户v的最佳组是什么?”)。
  • 问题的数量应保持在最低限度(什么是最低限度并不是一个明确的数字,但我会说 5% 的朋友数量似乎是正确的)。

显然,生成的分区不会是最佳的,但它应该可以作为以后改进的起点。

任何想法将不胜感激

编辑:不,这不是家庭作业。我相信家庭作业会有更明确的要求和目标功能。无论如何,不​​,这实际上是我面临的现实世界问题。

我也可能已经简化了一点,但实际上用户可能是许多组的一部分(所以它更像是F->P(G),其中P(G)是权力组,如果G),所以更好的算法将能够做到这一点。

0 投票
1 回答
15238 浏览

matlab - MATLAB:自组织图 (SOM) 聚类

我正在尝试根据身体部位之间的角度对一些图像进行聚类。

从每张图像中提取的特征是:

因此输入数据是一个大小为 1057x10 的矩阵,其中 1057 代表图像数量,10 代表身体部位与躯干的角度。类似地,测试集是 821x10 矩阵。

我希望输入数据中的所有行都用 88 个集群进行聚类。那我就用这些集群来查找TestData属于哪些集群呢?

在之前的工作中,我使用了非常简单的 K-Means 聚类。我们只是要求 K-Means 将数据聚类到 88 个聚类中。并实现另一种方法,计算测试数据中每一行与每个集群中心之间的距离,然后选择最小值。这是相应输入数据行的集群。

我有两个问题:

  1. 是否可以在 MATLAB 中使用SOM来做到这一点?AFAIK SOM 用于视觉聚类。但是我需要知道每个集群的实际类,以便以后可以通过计算它属于哪个集群来标记我的测试数据。

  2. 你有更好的解决方案吗?

0 投票
5 回答
1676 浏览

statistics - 如何根据少量证据有效地估计概率?

几个月来我一直试图找到这个问题的答案(用于机器学习应用程序),这似乎不是一个非常困难的问题,但我是一名软件工程师,数学从来都不是我的强项之一。

这是场景:

我有一个(可能)重量不均匀的硬币,我想弄清楚它出现正面的概率。我知道来自同一个盒子的硬币的平均概率为p,我也知道这些概率的标准差(称之为s)。

(如果除均值和标准差之外的其他硬币概率的其他摘要属性有用,我可能也可以得到它们。)

我掷硬币n次,结果正面h次。

天真的方法是概率只是h/n - 但如果 n 很小,这不太可能是准确的。

是否有一种计算有效的方法(即不涉及非常大或非常小的数字)来考虑ps以得出更准确的概率估计,即使n很小?

如果任何答案可以使用伪代码而不是数学符号,我将不胜感激,因为我发现大多数数学符号都是难以理解的;-)


其他答案: SO 上还有其他一些类似的答案,但提供的答案并不令人满意。例如,这在计算上效率不高,因为它很快涉及到比双精度浮点数更小的数字。而这个结果是不正确的。

0 投票
4 回答
26501 浏览

c - 感知器学习算法不收敛到 0

这是我在 ANSI C 中的感知器实现:

我正在使用的训练集:数据集

我已经删除了所有不相关的代码。基本上它现在所做的就是读取test1.txt文件并将值从其中加载到三个数组中:x, y, outputs.

然后有一个感知器学习算法,由于某种原因,它没有收敛到 0(globalError应该收敛到 0),因此我得到了一个无限的 do while 循环。

当我使用较小的训练集(如 5 分)时,效果很好。任何想法可能是问题所在?

我写的这个算法与这个C# Perceptron 算法非常相似:


编辑:

这是一个较小训练集的示例:

0 投票
6 回答
22687 浏览

c++ - 知道任何好的 c++ 支持向量机 (SVM) 库吗?

你知道那里有什么好的 c++ svm 库吗

我也听说过SVMLightTinySVM。你试过了吗?有新玩家吗?

谢谢 !