问题标签 [classification]

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 投票
9 回答
687 浏览

tdd - TDD 和贝叶斯垃圾邮件过滤器问题

众所周知,贝叶斯分类器是过滤垃圾邮件的有效方法。这些可以相当简洁(我们的只有几百个 LoC),但是在获得任何结果之前,所有核心代码都需要预先编写。

但是,TDD 方法要求只能编写通过测试的最少代码量,因此给出以下方法签名:

下面的文本字符串,显然是垃圾邮件:

我能写的最少代码是:

现在也许我添加另一个测试消息,例如

我可以将代码更改为:

...等等等等。直到某个时候,代码变成了一堆字符串检查、正则表达式等,因为我们已经进化了它,而不是从一开始就考虑它并以不同的方式编写它。

那么,TDD 应该如何处理这种从最简单的代码演变为通过测试的代码不是正确的方法的情况呢?(特别是如果事先知道最好的实现不能简单地进化)。

0 投票
4 回答
11735 浏览

machine-learning - 用于电子邮件垃圾邮件检测的神经网络

假设您可以访问一个电子邮件帐户,该帐户将过去几年收到的电子邮件(约 10k 封电子邮件)的历史分为 2 组

  • 真正的电子邮件
  • 垃圾邮件

您将如何处理创建可用于垃圾邮件检测的神经网络解决方案的任务 - 基本上将任何电子邮件分类为垃圾邮件或非垃圾邮件?

让我们假设电子邮件提取已经到位,我们只需要关注分类部分。

我希望得到回答的要点是:

  1. 选择哪些参数作为 NN 的输入,为什么?
  2. NN 的哪种结构最有可能最适合此类任务?

此外,任何资源建议或现有实现(最好在 C# 中)都非常受欢迎

谢谢

编辑

  • 我开始使用神经网络作为项目的主要方面是测试 NN 方法如何用于垃圾邮件检测
  • 仅仅探索神经网络和垃圾邮件的主题也是一个“玩具问题”
0 投票
21 回答
6023 浏览

algorithm - 对单词和类别值进行分类

我们今天在课堂上设置了一个算法问题,作为“如果你想出一个解决方案,你就不必做这门课”。所以当然,我们都认为我们会试一试。

基本上,我们得到了一个包含 100 个单词和 10 个类别的数据库。单词或类别之间不匹配。所以它基本上是一个 100 个单词和 10 个类别的列表。

我们必须将单词“放置”到正确的类别中——也就是说,我们必须“弄清楚”如何将单词放入正确的类别中。因此,我们必须“理解”这个词,然后在算法上把它放在最合适的类别中。

即其中一个词是“钓鱼”类别“运动”-> 所以这将进入这一类别。单词和类别之间存在一些重叠,因此某些单词可能属于多个类别。

如果我们弄清楚了,我们必须增加样本量,并且具有“最佳”匹配百分比的人获胜。

有谁知道如何开始这样的事情?或者任何资源?最好在 C# 中?

即使是关键字数据库或其他东西可能会有所帮助?有谁知道免费的吗?

0 投票
3 回答
420 浏览

cluster-analysis - 寻找基于对象属性对对象进行分类的方法

我有一组 ~10K 对象,每个对象都有大约 150 个不同的属性,其中大约四分之一是多值的和/或与其他属性相关的。

我有一组大约 120 个类别,我想将这些对象分类到其中,每个类别都被定义为一个“模板”对象。如果一个实例与模板完全匹配,则该对象显然属于该类别……但是,实际上只有大约 10% 的对象具有完全匹配的模板。因此,我希望能够根据对象与类别的相似性对对象进行评分,并将它们分类为最佳匹配。我还想识别非常相似的对象集群,表明新/改进类别的潜力。

这似乎是 Weka、RapidMiner 或其他机器学习/集群/分类系统的工作。但是,我很难找到该领域的良好介绍材料,因此无法说明在这种情况下使用这些工具需要付出多少努力。鉴于这可能是一个持续的需求,我想使用一些可以让我轻松更改分析方法、权重等的东西。

想法?

0 投票
3 回答
473 浏览

arrays - 大规模数据集的核方法

由于两个实例之间的内积计算,基于内核的分类器通常需要 O(n^3) 的训练时间。为了加快训练速度,可以预先计算内积值并将其存储在二维数组中。然而当没有。的实例非常大,例如超过 100,000,将没有足够的内存来执行此操作。

那么有什么更好的主意吗?

0 投票
1 回答
4522 浏览

matlab - 在庞大的数据集上学习决策树

我正在尝试使用 MATLAB 从巨大的(即不能存储在内存中的)数据集构建二元分类决策树。本质上,我正在做的是:

  1. 收集所有数据
  2. 在数据上尝试n 个决策函数
  3. 选择最佳决策函数来分离数据中的类
  4. 将原始数据集拆分为 2
  5. 在拆分上递归

数据有k个属性和一个分类,所以它被存储为一个包含大量行和k+1列的矩阵。决策函数是布尔值,作用于将每一行分配给左子树或右子树的属性。

现在我正在考虑将文件中的数据存储在可以保存在内存中的块中,并为每一行分配一个 ID,以便通过顺序读取所有文件来决定拆分,并且未来的拆分由 ID 号标识。

有谁知道如何以更好的方式做到这一点?

编辑:行数 m 约为 5e8 而 k 约为 500

0 投票
1 回答
111 浏览

text - 检测主题文本?

我想筛选文本(特别是 Twitter 消息)以查看它们是否与特定主题相关。你走过那条路吗?如果是这样,我很想听听你会使用什么方法。

就我而言,仅搜索主题关键字就可以在大约 7% 的情况下获得有用的文本;关键字有多种含义,其中一些不是主题。对于我的使用,自动过滤不需要完美;如果提取的消息在 80% 的时间与主题相关,我会很高兴。我也愿意失去 10-30% 的主题信息。

手动进行第一次传递,有一些特征使消息很可能是好的,比如某些英语短语。其他特征很可能会被拒绝,例如 URL、多个哈希标签和其他短语。其他的更难评估。

我可以手动制作一堆正则表达式和相关的权重,然后手动调整,直到得到我喜欢的输出。这很可能奏效。但我可以列举其他几种可能的方法,我想知道 Stack Overflow 的读者有哪些运气好。

谢谢!

0 投票
1 回答
169 浏览

artificial-intelligence - 如何过滤/排序/排序对象模型节点?

我有某种对象模型,我需要为某种属性过滤和排序它的节点。存在哪些类型的自动化系统来生成和选择与我想要的对象模型相关的属性?(我故意抽象和不具体)

我正在考虑一个类似于垃圾邮件过滤器或监督分类系统的系统,在给定示例数据集的情况下,它可以识别找到感兴趣节点的规则。但是,我正在寻找一个更通用的系统,因为它不需要任何有关对象模型的设计时信息。它应该作为电子邮件中的垃圾邮件过滤器、代码库中的错误查找器、新闻组中的兴趣过滤器或社交网站上的机器人帐户查找器中的平等工作。只要它可以通过反射探索对象模型并被赋予一组“有趣”的节点,它应该能够找到能够找到更多类似它们的节点的规则。

0 投票
1 回答
172 浏览

java - 开箱即用的垃圾邮件过滤?

我在社交媒体监控系统上工作。我们不会自己爬网,我们会从 Spinn3r 等聚合器获取信息。在大多数情况下,“博客”只不过是色情网站的链接页面,但我们希望在内部进行一些训练,而不是等待上游提供商做出更改。

我查看了 Spamassassin,如果我们处理电子邮件,它将非常适合我们的目的。是否有任何图书馆可以只获取一段文本,并根据工作频率、链接数量、隐藏的背景文本等因素对其进行质量评分?

理想情况下,我正在寻找 Java 中的东西,但如果那里什么都没有,我可以使用客户端服务器或嵌入 jruby 或 jython 库。

我想我最终将不得不自己构建它,但它总是值得一试。

0 投票
1 回答
346 浏览

database - 搜索实体名称数据库(大学、城市、人物、国家...)

对于我和另一个人正在开展的企业应用研究项目,我们希望从页面中删除某些内容以保持发布的消息的通用性(意味着不冒犯性并且本质上是匿名的)。现在我们想要获取用户在留言板上发布的消息,并删除任何类型的名称、学院或机构的名称以及亵渎(如果以后可能的话,我们希望删除企业名称)。

是否有一些我们可以连接到的数据库,我们可以运行清理我们的消息以检查数据库中的值以识别这些?