【发布时间】:2017-11-29 09:20:32
【问题描述】:
我对 SVM 比较陌生,我正在尝试在 matlab 中使用“fitcsvm”函数来训练一类 SVM 模型。 'rbf' (~ gaussian kernel) 使用内核函数。
我的数据大小约为 150k。不幸的是,模型训练时间很慢(大约 3 分钟)。我在 matlab 中使用以下行来训练 SVM 模型
SVMModel = fitcsvm(X,y,'KernelScale','auto','Standardize',true,'KernelFunction','rbf','Nu',1);
X 是 n*m 矩阵,其中数据点数(~150k),m 是特征数(= 2 个特征)
Y 是数据标签,我在其中训练一个类模型 y= one(n,1);
对加快模型训练步骤有何建议/建议?
谢谢
【问题讨论】:
-
这个范围很广!请记住,kernelSVM 在复杂性方面介于 O(n^2) 和 O(n^3) 之间(n=n_samples,取决于缓存)。我不确定这个实现是否在内部使用了 libsvm(他们提到了其中一篇 libsvm 论文;但不是我所期望的),所以也许你会通过某种方式使用 libsvm 获得一些东西。
-
以我个人的经验,LibSVM的matlab集成比内置fitcsvm快很多。
-
感谢 Sascha 和 Vahe LibSVM 运行良好问候;
标签: matlab machine-learning svm