1

[我作为机器学习的局外人来处理这个问题。这似乎是一个分类问题,我应该能够使用 Machine Larning 以相当好的精度解决。]

训练数据集:
我有数百万个 URL,每个 URL 都标有特定类别。类别数量有限(50-100)。

现在给定一个新的 URL,我想将其归类为这些类别之一。可以使用传统方法从 URL 确定类别,但需要大量难以管理的模式匹配。

所以我想建立一个盒子,输入是URL,输出是Category。我如何构建这个由 ML 驱动的盒子?

尽管我很想了解这在数学上如何解决的基本原理,但现在更多地专注于完成它,所以对所涉及的系统和流程的概念性理解是我想要得到的。我想机器学习正处于你可以以这种方式处理相当直接的问题的地步。
如果你觉得我错了,我需要深入了解基础才能从 ML 中获得价值,请告诉我。

我正在 AWS 生态系统中构建它,因此如果它能让事情变得更快、更简单,我愿意使用 Amazon ML。

4

2 回答 2

1

如果你觉得我错了,我需要深入了解基础才能从 ML 中获得价值,请告诉我。

好吧,我会咬的。

目前确实有两种与预测相关的思想流派:“机器学习者”与统计学家。前一组几乎完全专注于实际和应用预测,使用k折交叉验证、装袋等技术,而后一组更侧重于统计理论和研究方法。你似乎落入了机器学习阵营,这很好,但你这样说:

尽管我很想了解这在数学上如何解决的基本原理,但现在更专注于完成它,所以对所涉及的系统和过程的概念性理解是我想要得到的。

虽然“对所涉及的系统和流程的概念性理解”是进行高级分析的先决条件,但如果您是进行分析的人,这还不够(对于不熟悉建模的经理来说就足够了) )。

只要对正在发生的事情有一个大致的了解,例如,在逻辑回归模型中,您可能会将所有统计假设(这些假设很重要)抛诸脑后。您是否知道某些特征或组是否不应该包括在内,因为该组中没有足够的观察值使测试统计有效?当您拥有高方差膨胀因子时,您的预测和假设会发生什么变化?

在进行统计时,这些都是重要的考虑因素,而且人们经常看到这样做from sklearn.svm import SVC或类似的事情是多么容易,然后狂奔。这就是你的脚踝被裤子缠住的原因。

我如何构建这个由 ML 驱动的盒子?

您似乎对如何处理机器/统计学习问题甚至没有基本的了解。我强烈建议您参加“​​统计学习简介”或“回归建模简介”类型的课程,以考虑如何将您拥有的 URL 转换为对 URL 类具有显着预测能力的有意义的特征。想一想如何将 URL 分解为单独的部分,这些部分可能会提供一些关于某个 URL 属于哪个类的信息。如果您按运动对域进行分类,那么解析出espn.com非常重要,您不觉得吗?nbahttp://www.espn.com/nba/team/roster/_/name/cle

祝你的项目好运。

编辑:

不过,为了推动您前进:每个 ML 问题都归结为一些函数映射输入到输出。您的输出是 URL 类。您的输入是 URL。然而,机器只能理解数字,对吧?URL 不是数字(AFAIK)。因此,您需要找到一种方法将 URL 中包含的信息转换为我们所说的“功能”或“变量”。一个开始的地方是对每个 URL 的不同部分进行一次热编码。想想我为什么提到上面的 ESPN 示例,以及为什么我nba从 URL 中提取信息。我这样做是因为,如果我试图预测给定 URL 与哪项运动相关,nba那将是一个致命的赠品(即它很可能对运动具有高度预测性)。

于 2017-05-01T16:02:58.583 回答
1

我想机器学习正处于你可以以这种方式处理相当直接的问题的地步。

它不是。构建有效的 ML 解决方案需要了解问题范围/约束(在您的情况下,随着时间的推移新类别?运行时要求?执行频率?延迟要求?错误成本?等等!)。然后,这些约束将影响您可能查看的特征工程/处理类型以及您将查看的模型类型。您的特定问题也可能与非 IID 数据有关,这是大多数 ML 方法的假设。这将影响您评估模型准确性的方式。

如果你想学习足够多的机器学习来解决这个问题,你可能想开始研究在恶意 URL 分类中所做的工作。一个例子可以在这里找到。虽然您可以在不了解更多 ML 的情况下“破解”您的方式,但我个人不会相信以这种方式构建的任何解决方案。

于 2017-05-01T15:41:45.747 回答