我需要在笔记本电脑上训练带有数十万个数据点和约一万个功能的线性分类器。我有什么选择?这种问题的最新状态是什么?
似乎随机梯度下降是有前途的方向,我的感觉是这是最新技术:
“ Pegasos:SVM的原始估计次GrAdient求解器”,Shai Shalev-Shwartz,Yoram Singer,Nathan Srebro,Andrew Cotter。“数学编程,系列B,127(1):3-30,年份:2007。”。
这是共识吗?我应该朝其他方向看吗?
我需要在笔记本电脑上训练带有数十万个数据点和约一万个功能的线性分类器。我有什么选择?这种问题的最新状态是什么?
似乎随机梯度下降是有前途的方向,我的感觉是这是最新技术:
“ Pegasos:SVM的原始估计次GrAdient求解器”,Shai Shalev-Shwartz,Yoram Singer,Nathan Srebro,Andrew Cotter。“数学编程,系列B,127(1):3-30,年份:2007。”。
这是共识吗?我应该朝其他方向看吗?
Answers:
首先,我想问你如何知道线性分类器是最佳选择?直观地讲,对于这么大的空间(R ^ 10000),可能有其他一些非线性分类器是更好的选择。
我建议您尝试几个不同的分类器并观察预测误差(我会尝试几个正则化分类模型)。
如果内存不足,请使用PCA减小尺寸
您还可以使用PCA来缩小尺寸,而无需计算协方差矩阵-通过使用PCA的神经纽特克等效项。
这是一篇描述它的论文(但我建议您自己搜索):http : //users.ics.tkk.fi/oja/Oja1982.pdf,这是一些可能在matlab实现中起作用的链接:http ://www.cs.purdue.edu/homes/dgleich/projects/pca_neural_nets_website/index.html。
正如jb所建议的,我认为最好使用“降维”方法。主成分分析(PCA)是一种流行的选择。您也可以尝试无监督的特征学习技术。有关无监督功能学习的更多信息,请参见http://ufldl.stanford.edu/wiki/index.php/UFLDL_Tutorial