我只是使用与您的问题相同的组织来写我的答案(1、2、3)。
SVM是否可以做到这一点-即增量学习?多层感知器当然可以-因为后续的训练实例不会影响基本的网络架构,所以它们只会引起权重矩阵值的调整。但是SVM?在我看来,(理论上)一个额外的训练实例可以改变支持向量的选择。但是再次,我不知道。
我认为您可以通过一对多配置LIBSVM(即,作为一类分类器)来轻松解决此问题。 SVM 是一类分类器。 SVM在多类中的应用意味着它已被编码为执行多个,逐步的,反对多对多的分类,但是算法又一次被训练(和测试)了一个类。如果执行此操作,则针对测试集逐步执行之后剩下的是“未知的”-换句话说,根据定义,在执行多个连续的一类分类之后未分类的数据都是“未知的” '课。
为什么不让用户猜测一个功能(即仅仅是另一个因变量)?唯一的其他选择是使它成为类标签本身,而您不希望这样做。因此,例如,您需要在数据矩阵“用户类别猜测”中添加一列,并为其填充一些最有可能对那些不在“未知”类别中的数据点没有影响的值,因此对用户而言不会提供猜测-这个值可以是'0'或'1',但实际上取决于您对数据进行缩放和规范化的方式。
0
在一个特定的应用程序中,我需要机器学习(我知道我在本科课程中学习的东西)。我使用了支持向量机,并解决了问题。它的工作正常。
现在我需要改进系统。这里的问题是
我每周都会收到其他培训示例。现在,系统开始使用更新的示例(旧示例+新示例)进行全新的培训。我想使其逐渐学习。使用先前的知识(而不是先前的示例)和新示例来获取新模型(知识)
正确,我的培训示例有3节课。因此,每个训练示例都适合于这三个课程之一。我需要“未知”类的功能。任何不符合这3个类别的内容都必须标记为“未知”。但是我不能将“未知”视为新类,也不能提供示例。
假设实现了“未知”类。当类“未知”时,应用程序的用户输入他认为该类可能是的类。现在,我需要将用户输入纳入学习中。我也不知道该怎么做。如果用户输入一个新的班级(即培训集中尚没有的班级),会有所不同吗?
我需要选择一种新算法还是支持向量机可以做到这一点?
PS:我正在为SVM使用libsvm实现。