我需要在大量训练样本上训练一个回归模型,可能包含任意特征。我应该考虑什么样的 学习算法?为什么?我应该考虑哪些学习算法来训练对数线性回归模型?
问题的快速摘要:
- 约500万个训练例子
- 在2-4万元,每年的速度增加训练例子
- 训练实例当前包含每10个功能
- 大约400k的人口特征(出自更大的总特征空间)
- 随时间增加的附加功能
- 再培训或调整模型(至少)每天把新实例
- 优化标准:最小平方误差百分比
- 输出:单实值的数
我有一些经验的培训对数线性模型在类似大小的分类问题上(使用SVM,Averaged和Voted Perceptrons等)添加任意特征的能力很重要,但在这种情况下,训练时间也很有价值。例如,到目前为止,我对SVMLight的一个实验花了几个星期的时间来聚合这些数据的一个子集。我们可以跨多核机器或(可能)集群进行并行处理,但是我们需要在几分钟内对模型进行训练。在线培训会更好。
我成功(并迅速)训练了一个平均感知器模型。但是,据我所知,AP通常不适用于回归。美联社是否为回归模型提供任何收敛保证?有没有其他正式的理由不适用?或者是我的要求合理匹配?
我应该研究哪些其他选项? SVM可能会提供更高的准确性,但二次训练时间不可接受。如果线性时间SVM算法是可访问的,那可以很好地工作。
潜在的长处:
- 在线培训
- 开放源代码实现提供(最好在Java中)。如有必要,我们可以推出我们自己的实现,但如果可能的话,我会尽量避免。
感谢您的输入。
对于分类,我已经在随机梯度下降SVM(http://leon.bottou.org/projects/sgd#)方面取得了很大的成功 - 您可能需要考虑使其适应回归。 – etarion 2012-04-25 00:56:18