gpt4 book ai didi

matlab - 如何让 fminsearch 只搜索整数?

转载 作者:行者123 更新时间:2023-12-03 22:11:36 40 4
gpt4 key购买 nike

我正在使用fminsearch Matlab最小化函数的方法:

c = cvpartition(200,'KFold',10);
minfn = @(z)kfoldLoss(fitcsvm(cdata,grp,'CVPartition',c,...
'KernelFunction','rbf','BoxConstraint',exp(z(2)),...
'KernelScale',exp(z(1))));
opts = optimset('TolX',5e-4,'TolFun',5e-4);
[searchmin fval] = fminsearch(minfn,randn(2,1),opts)

最小化超过两个参数。

现在我想最小化第三个参数,但是这个参数只能取正整数值,即1,2,3,...

如何告诉 fminsearch 只考虑正整数?

第二,如果我的第三个参数初始化为 10,但实际最佳值为 100,在这种情况下 fminsearch 收敛得快吗?

最佳答案

你不能告诉fminsearch只考虑整数。它使用的算法不适合离散优化,一般来说离散优化比连续优化困难得多。

如果您的整数参数只有相对较少的合理值,您可以循环遍历所有这些值,但这可能太昂贵了。或者,您可以编写自己的一维离散优化函数,并让它针对它尝试的整数参数的每个值调用fminsearch。 (例如,您可以模仿一些标准的一维连续优化算法,并在找到比其邻居更好的参数值后返回。)您很可能能够使该函数适应特定问题您正在尝试解决问题。

关于matlab - 如何让 fminsearch 只搜索整数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36903101/

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