我之前使用Matlab函数svmtrain
实现了SVM分类器,并使用svmclassify
对一组测试数据进行了分类。我使用以下代码来训练分类器:
SVMStruct = svmtrain(features, labels, 'options', options, 'boxconstraint', 10, 'kernel_function', 'rbf', 'rbf_sigma', 27, 'showplot', 'false')
我已将options
参数设置如下:
options = statset('MaxIter', Inf)
由于Matlab停止了对svmtrain
的支持,我试图转移到fitcsvm
,正如它所建议的那样。我使用了以下代码:
SVMModel = fitcsvm(features, labels, 'IterationLimit', Inf,'boxconstraint', 10, 'KernelFunction', 'rbf', 'KernelScale', 27)
后者的问题是它收敛速度如此之快,消息Exiting Active Set upon convergence due to DeltaGradient.
,当我使用predict
函数对一组测试数据进行分类时,它不会导致我过去从svmtrain
和svmclassify
获得的效果相同。
可能是什么导致了这个问题?我正确使用fitcsvm
功能吗?