【问题标题】:What subjects, topics does a computer science graduate need to learn to apply available machine learning frameworks, esp. SVMs计算机科学专业的毕业生需要学习哪些科目,主题才能应用可用的机器学习框架,尤其是。支持向量机
【发布时间】:2011-04-15 10:24:32
【问题描述】:

我想自学足够的机器学习知识,以便我能够首先了解足够的知识以使用可用的开源 ML 框架,这些框架将使我能够执行以下操作:

  1. 浏览页面的 HTML 源代码 从某个网站和“了解” 哪些部分构成内容, 哪些广告和哪些 形成元数据(既不是 内容,也不是广告 - 例如。 - TOC、作者简介等)

  2. 浏览页面的 HTML 源代码 来自不同的站点并“分类” 网站是否属于 预定义类别与否(列表 将提供类别 之前)1.

  3. ...类似的分类任务 文本和页面。

如您所见,我的直接要求是对不同数据源大量数据进行分类。

就我有限的理解而言,与使用 SVM 相比,采用神经网络方法需要大量的训练和维护?

我知道 SVM 非常适合像我这样的(二进制)分类任务,而像 libSVM 这样的开源框架已经相当成熟了?

在那种情况下,什么主题和主题 计算机科学专业的毕业生需要吗 立即学习,使上述 要求可以解决,把 这些框架要使用吗?

我想远离 Java,这是可能的,否则我没有语言偏好。我愿意学习并尽我所能。

我的意图不是从头开始编写代码,而是首先让各种框架可供使用(虽然我不知道要决定哪个),并且我应该能够解决问题出错了

您对学习统计和概率论特定部分的建议对我来说并不意外,所以如果需要,请说出来!

如果需要,我会根据您的所有建议和反馈修改此问题。

【问题讨论】:

标签: machine-learning classification


【解决方案1】:

使用最广泛的通用机器学习库(免费)可能是WEKA。他们有一本书介绍了一些 ML 概念并介绍了如何使用他们的软件。不幸的是,它完全是用 Java 编写的。

我并不是真正的 Python 人,但如果没有很多 tools 可供它使用,我会感到惊讶。

对于目前基于文本的分类,朴素贝叶斯、决策树(我认为尤其是 J48)和 SVM 方法提供了最好的结果。然而,它们各自更适合略有不同的应用。在我的脑海中,我不确定哪个最适合你。使用像 WEKA 这样的工具,您可以使用一些示例数据尝试所有三种方法,而无需编写一行代码并亲自查看。

我倾向于回避神经网络,因为它们很快就会变得非常复杂。再说一次,我没有和他们一起尝试过大型项目,主要是因为他们在学术界享有盛誉。

只有在使用概率算法(如朴素贝叶斯)时才需要概率和统计知识。 SVM 通常不以概率方式使用。

从它的声音来看,您可能想要投资一本实际的模式分类教科书或参加有关它的课程,以便准确找到您正在寻找的内容。对于自定义/非标准数据集,如果不对现有技术进行调查,就很难获得好的结果。

【讨论】:

  • WEKA 读起来就像一个工具,我可以用它来感受我可能需要使用什么?
【解决方案2】:

在我看来,您现在正在进入机器学习领域,所以我真的很想建议您看看 at this book:它不仅提供了关于最常见的机器学习方法和算法(及其变体),但它也提供了一组非常好的练习和科学论文链接。所有这些都包含在一种富有洞察力的语言中,并带有关于统计和概率的最小但有用的纲要

【讨论】:

    【解决方案3】:

    机器学习中的“理解”相当于拥有一个模型。该模型可以是例如支持向量的集合、神经网络的布局和权重、决策树等。这些方法中哪种方法效果最好实际上取决于您所学习的主题以及您的训练数据的质量。

    在您的情况下,从 HTML 网站的集合中学习,您希望首先对数据进行预处理,此步骤也称为“特征提取”。也就是说,您从正在查看的页面中提取信息。这是一个困难的步骤,因为它需要领域知识,并且您必须提取有用的信息,否则您的分类器将无法做出很好的区分。特征提取将为您提供一个数据集(每行包含特征的矩阵),您可以从中创建模型。

    通常在机器学习中,建议您还保留一个“测试集”,您不会使用它来训练您的模型,但您最终会使用它来决定什么是最佳方法。将测试集隐藏到建模步骤的最后一刻,这一点非常重要!测试数据基本上会提示您模型正在产生的“泛化错误”。任何具有足够复杂性和学习时间的模型都倾向于准确地学习您训练它所使用的信息。机器学习者说该模型“过度拟合”了训练数据。这种过拟合的模型看起来不错,但这只是记忆。

    虽然对预处理数据的软件支持非常稀少且高度依赖于领域,但正如亚当所说,Weka 是一个很好的免费工具,可以在您拥有数据集后应用不同的方法。我会推荐阅读几本书。 Vladimir Vapnik 着有《统计学习理论的本质》,他是支持向量机的发明者。你应该熟悉建模的过程,所以一本关于机器学习的书肯定是非常有用的。我也希望其中的一些术语可能对您有所帮助。

    【讨论】:

    • 一个写得很好的答案!谢谢!
    【解决方案4】:

    对我来说似乎是一项相当复杂的任务;第 2 步(分类)“简单”,但第 1 步似乎是一个结构学习任务。您可能希望将其简化为对部分 HTML 树进行分类,可能通过一些启发式方法预先选择。

    【讨论】:

    • 我会更进一步:重要的不是数据的数量或质量,而是您如何使用数据。 选择特征,选择算法,更重要的是选择PARAMETERS(正则化,F1错误率等)。拥有庞大的数据集但参数不佳,您不会走得太远。但是对于一个很小的数据集但非常好的参数,你可以走很长的路。我建议你参加在线课程Machine Learning on Coursera by Prof Andrew Ng,你会很快学会一个具体的机器学习工具集。
    猜你喜欢
    • 2021-05-07
    • 2013-06-14
    • 2016-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-17
    相关资源
    最近更新 更多