在一个特定的应用程序中,我需要机器学习(我知道我在本科学习的内容)。我使用支持向量机并解决了问题。它的工作正常。支持向量机(SVM)的一些实现细节
现在我需要改进系统。这里存在的问题有:
我每周都会得到额外的培训示例。现在系统开始使用更新的示例(旧示例+新示例)进行新鲜训练。我想让它渐进式学习。使用以前的知识(而不是以前的例子)用新的例子来获得新模型(知识)
对我的训练例子有3个类。所以,每个训练样例都适用于这三个类中的一个。我想要“未知”类的功能。任何不适合这三类的东西都必须标记为“未知”。但我不能把“未知”当成一个新班级,并提供这方面的例子。
假设实现了“未知”类。当类是“未知”时,应用程序的用户输入他认为该类可能是什么。现在,我需要将用户输入纳入学习。我也不知道如何做到这一点。如果用户输入一个新的类别(即,一个不在训练集合中的类别),它会有什么不同?
我需要选择一种新的算法还是支持向量机可以做到这一点? PS:我使用libsvm实现SVM。
我不太确定增量算法。尽管我相信增量算法存在,但它们之间并不多见,因此寻找实现可能很困难。 – Cerin 2010-08-10 12:16:10
@Chris S是的,我同意。这可能是因为批量培训通常是一个更简单,更实用的解决方案。 – Stompchicken 2010-08-10 14:18:45
围绕libsvm进行游戏时,看起来分配给所有类的概率总和总是等于1,所以你永远不会有一个“未知”样本对所有类都有低概率的情况。我甚至无法找到如何“欺骗”它给予所有班级相同的概率。 – Cerin 2010-08-11 17:33:58