代码之家  ›  专栏  ›  技术社区  ›  BCS

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

  •  1
  • BCS  · 技术社区  · 15 年前

    我有一种对象模型,我需要对它的节点进行筛选和排序以获得某种属性。有哪些自动化系统可以生成和选择与我所需相关的对象模型的属性?(我故意抽象和不具体)

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

    1 回复  |  直到 14 年前
        1
  •  1
  •   Joel Hoff    14 年前

    不太可能有一个单独的自动分类系统来完成你要求的所有工作。此外,我相信bug finder应用程序不在这样一个系统的范围内,因为在该领域中成功使用的方法主要围绕语法分析、数据流分析和其他算法方法,这些方法针对软件问题进行了高度定制。错误。尽管机器学习的研究正在那里进行,但这个领域的分类系统主要是用来扩充而不是取代分析方法(据我所知)。

    对于大多数非平凡的分类问题,为了通过机器学习获得有用和有效的结果,通常需要对问题表示进行仔细的选择和细化。简单地使用现有的“原始”数据对象模型,而不进行状态空间的某种定制转换,往往会导致输入数据值分布的不完全覆盖和/或学习的分类器的泛化不良。此外,特定于所使用的机器学习方法的其他参数可能需要反复调整,以获得给定问题的良好结果。不是所有的方法都有这样的参数,但是很多方法都有,比如神经网络、遗传算法、贝叶斯推理方法等。

    你所要求的是一种几乎通用的机器学习方法,而不是目前存在的那种方法。我能看到的最可行的替代方案是(1)找到不同问题的子集,这不是所需的能力/复杂程度,或者(2)创建一个系统,该系统不仅使用一种分类技术,而且具有一个工具箱,其中包含不同的方法根据给定的问题自动测试,然后使用在监督学习机制下生成最佳分类结果的问题。然而,要有效地实现后者仍然是一个相当大的挑战,而且它并不能消除如何表示/转换数据模型的状态空间的问题。