gpt4 book ai didi

matlab - matlab 中的 svmtrain - 约束不够严格。

转载 作者:太空宇宙 更新时间:2023-11-03 20:08:58 24 4
gpt4 key购买 nike

我在带有 MLP 内核 的 matlab 中使用 svmtrain,如下所示:

mlp=svmtrain(train_data,train_label,'Kernel_Function','mlp','showplot',true);

但是我得到这个错误:

??? Error using ==> svmtrain at 470
Unable to solve the optimization problem:
Exiting: the solution is unbounded and at infinity;
the constraints are not restrictive enough.

这是什么原因?我尝试了其他内核,没有任何错误。即使我尝试了 svmtrain - unable to solve the optimization problem 的答案如下:

options = optimset('maxiter',1000);
svmtrain(train_data,train_label,'Kernel_Function','mlp','Method','QP',...
'quadprog_opts',options);

但是我又遇到了同样的错误。我的训练集是 2 类数据点的简单 45*2 数据集。

最佳答案

here 中的解决方案并没有真正解释任何事情。问题是二次规划方法无法收敛于优化问题。正常的做法是增加迭代次数,但我已经在相同大小的数据上进行了测试,迭代了 1,000,000 次,仍然无法收敛。

options = optimset('maxIter',1000000);

mlp = svmtrain(data,labels,'Kernel_Function','mlp','Method','QP',...
'quadprog_opts',options);

??? Error using ==> svmtrain at 576
Unable to solve the optimization problem:
Exiting: the solution is unbounded and at infinity;
the constraints are not restrictive enough.

我的问题是:您是否有任何理由在 SMO 上使用二次规划来进行优化?使用 SMO 做完全相同的事情效果很好:

mlp = svmtrain(data,labels,'Kernel_Function','mlp','Method','SMO');

mlp =

SupportVectors: [40x2 double]
Alpha: [40x1 double]
Bias: 0.0404
KernelFunction: @mlp_kernel
KernelFunctionArgs: {}
GroupNames: [45x1 double]
SupportVectorIndices: [40x1 double]
ScaleData: [1x1 struct]
FigureHandles: []

关于matlab - matlab 中的 svmtrain - 约束不够严格。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14105799/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com