Matlab 加速SVM(模型训练)

Matlab 加速SVM(模型训练),matlab,machine-learning,svm,Matlab,Machine Learning,Svm,我对支持向量机比较陌生,我正在尝试使用matlab中的“fitcsvm”函数来训练一类支持向量机模型采用rbf′(~高斯核)核函数 我的数据大小约为150k。不幸的是,模型训练时间很慢(大约3分钟)。我使用matlab中的以下行来训练SVM模型 SVMModel=fitcsvm(X,y,'KernelScale','auto','standarding',true,'KernelFunction','rbf','Nu',1) X是n*m矩阵,其中数据点数(~150k),m是特征数(=2个特征)

我对支持向量机比较陌生,我正在尝试使用matlab中的“fitcsvm”函数来训练一类支持向量机模型采用rbf′(~高斯核)核函数

我的数据大小约为150k。不幸的是,模型训练时间很慢(大约3分钟)。我使用matlab中的以下行来训练SVM模型

SVMModel=fitcsvm(X,y,'KernelScale','auto','standarding',true,'KernelFunction','rbf','Nu',1)

X是n*m矩阵,其中数据点数(~150k),m是特征数(=2个特征)

Y是数据标签,其中我训练一个单类模型Y=one(n,1)

有任何加快模型培训步骤的建议吗?


谢谢

SVM存在可伸缩性和内存问题。我们对此无能为力,这就是算法的工作方式。有一些尝试使其并行计算,但这些是稀缺的,很多时候是基于(精确?)近似。如果您必须坚持此特定模型,中的工作将为此提供代码

另一个建议是尝试线性内核(对于您的数据集来说,它更轻,可能足够精确),该内核由创建LIBSVM的同一团队开发(sasha在之前的评论中提到),它可能是MATLAB中最完整和优化的SVM


祝你好运

这是非常广泛的!请记住,kernelSVM的复杂度介于O(n^2)和O(n^3)之间(n=n_个样本,取决于缓存)。我不确定这个实现是否在内部使用了libsvm(他们提到了其中一篇libsvm论文;但不是我期望的那篇),所以也许你会通过某种方式使用libsvm获得一些东西。根据我个人的经验,的matlab集成比内置的fitcsvm快得多。感谢Sascha和Vahe libsvm,它工作得很好;