Machine learning Accord-net多类支持向量机训练&x2B;交叉验证非常慢

Machine learning Accord-net多类支持向量机训练&x2B;交叉验证非常慢,machine-learning,svm,deep-learning,libsvm,accord.net,Machine Learning,Svm,Deep Learning,Libsvm,Accord.net,我正在与accord.net合作一段时间,顺便说一句,这是一个很棒的api, 我使用带rbf核和SMO的多类svm作为学习算法, 我的数据集由53个标签组成,每个标签包含5k个样本, 每个样本由400个使用z分数缩放的特征组成 我正在尝试运行带有交叉验证的网格搜索,以优化超参数(C和gamma), 但是性能不是很好,。。 当我使用一个部分数据集时,每个标签包含200个样本,一次2倍的CV运行大约需要30分钟, 因此,使用5x5网格进行完整网格搜索大约需要12.5小时。。 现在,如果是在我的完整数

我正在与accord.net合作一段时间,顺便说一句,这是一个很棒的api, 我使用带rbf核和SMO的多类svm作为学习算法, 我的数据集由53个标签组成,每个标签包含5k个样本, 每个样本由400个使用z分数缩放的特征组成 我正在尝试运行带有交叉验证的网格搜索,以优化超参数(C和gamma), 但是性能不是很好,。。 当我使用一个部分数据集时,每个标签包含200个样本,一次2倍的CV运行大约需要30分钟, 因此,使用5x5网格进行完整网格搜索大约需要12.5小时。。 现在,如果是在我的完整数据集上,我会对这个结果感到高兴,但它在10个数据集上℅ 关于它,。。 我甚至没有尝试使用我所有的数据集

我想探索的复杂度范围是10^-5….10^5,伽马范围是10^-9….10^3, 上述每一项的5个值,
我能做些什么来加速这个过程吗?

你可能做不了多少。我想到两件事:多类应该是OneVsAll(或者一些自然的多类SVM,如果支持的话,但我怀疑它),而不是OneVsOne。您可以尝试增加内核缓存大小(这决定了复杂度是更接近样本^2还是样本^3)。但请记住,运行时也依赖于参数。如果将C设置为小调节,运行时将增加很多。这可能在CV中的参数扫描期间发生。核支持向量机训练相当复杂!如果我正确阅读了文档,OneVsOne是默认值,但是可以使用OneVsRest(也称为OneVsAll)。先试试这个。我怎样才能将默认的Behaver更改为onevsall?请阅读API。您需要更改传递OneVsRest对象的构造函数。您可能做不了多少。我想到两件事:多类应该是OneVsAll(或者一些自然的多类SVM,如果支持的话,但我怀疑它),而不是OneVsOne。您可以尝试增加内核缓存大小(这决定了复杂度是更接近样本^2还是样本^3)。但请记住,运行时也依赖于参数。如果将C设置为小调节,运行时将增加很多。这可能在CV中的参数扫描期间发生。核支持向量机训练相当复杂!如果我正确阅读了文档,OneVsOne是默认值,但是可以使用OneVsRest(也称为OneVsAll)。先试试这个。我怎样才能将默认的Behaver更改为onevsall?请阅读API。您需要更改传递OneVsRest对象的构造函数。