支持向量机优化在大矩阵时失败

4次浏览(最近30天)
马科斯ignacio fabietti
马科斯ignacio fabietti 2020年1月5日
评论道: epic 2020年1月10日
我试图优化一个二进制SVM,但当我使用所有的数据(大约10 Gb),优化数字显示,但没有发生(在几天的过程中)。计算机有足够的内存(它显示了25%的使用率)和CPU(它显示了20%的使用率),所以它不是资源耗尽的问题。我相信它可能进入了某种内部循环,因为当我只使用1%的信息时,它工作得很好。我是不是漏掉了什么步骤?谢谢你的时间。
本量利= cvpartition(反应,“坚持”, 0.2);
trainingPredictors =预测(cvp)。培训:);
trainingResponse =响应(cvp)。培训:);
validationPredictors =预测(cvp)。测试:);
validationResponse =响应(cvp)。测试:);
%的火车模型
rng默认的
MdlT = fitcsvm (trainingPredictors,...
trainingResponse,...
“KernelFunction”“rbf”...
“OptimizeHyperparameters”“汽车”...
“HyperparameterOptimizationOptions”...
结构(“AcquisitionFunctionName”“expected-improvement-plus”))

答案(1)

epic
epic 2020年1月10日
我的猜测是,它试图使用它尝试过的第一组超参数来匹配SVm,这花费了很长时间。试着把'Verbose',2放在结构体中,它会显示下一个将要尝试的超参数。然后您可以尝试显式传递这些值,看看使用这些值是否需要很长时间。
例如:
> >加载电离层
> > rng (0);
> > fitcsvm (X, Y,“OptimizeHyperparameters”“汽车”“HyperparameterOptimizationOptions”结构(“详细”2,“坚持”, 2))
输出:
执行点上的函数求值:64.836 |0.0015729 |
时间选择下一个点:0.09863
时间拟合模型:0.05019
|=====================================================================================================|
| Iter | Eval | Objective | Objective | BestSoFar | BestSoFar | BoxConstraint| KernelScale |
| | result | | runtime | (observed) | (estim.) | | |
|=====================================================================================================|
| 1 | Best | 0.38571 | 3.539 | 0.38571 | 0.38571 | 64.836 | 0.0015729 |
执行点上的函数求值:0.036335 |5.5755 |
时间选择下一个点:0.096786
时间拟合模型:0.034137
| 2 |最佳| 0.35714 | 0.034081 | 0.35714 | 0.35892 | 0.036335 | 5.5755 |
执行点上的函数求值:0.0022147 |0.0023957 |
注意,由于使用了超参数值,第一次迭代花费的时间是第二次的100倍。然后你可以手动运行这些值来检查运行时本身:
> >抽搐;fitcsvm (X, Y,“BoxConstraint”, 64.836,“KernelScale”.0015729,“坚持”, 2);toc
运行时间是3.365133秒。
1评论
epic
epic 2020年1月10日
如果这是一个问题,解决方案是限制超参数的范围。不允许KernelScale的很小值和BoxConstraint的很大值。这有点复杂,但你可以这样做。您需要查看案例的“params”,因为它们的默认范围取决于对数据的分析。
>> params =超参数“fitcsvm”, X, Y);
> >参数(1)。范围=[。001 10];
> >参数(2)。范围=[。1 100年);
> > rng (0);fitcsvm (X, Y,“OptimizeHyperparameters”参数,“HyperparameterOptimizationOptions”结构(“详细”2,“坚持”, 2))
执行点上的函数求值:1.6139 |0.12541 |
时间选择下一个点:0.095223
时间拟合模型:0.047184
|=====================================================================================================|
| Iter | Eval | Objective | Objective | BestSoFar | BestSoFar | BoxConstraint| KernelScale |
| | result | | runtime | (observed) | (estim.) | | |
|=====================================================================================================|
| 1 | Best | 0.1 | 0.24221 | 0.1 | 0.1 | 1.6139 | 0.12541 |
执行点上的函数求值:0.01097 |7.4669 |
时间选择下一个点:0.21631
时间拟合模型:0.036374
| 2 |接受| 0.35714 | 0.036359 | 0.1 | 0.11601 | 0.01097 | 7.4669 |
执行点上的函数求值:0.0016991 |0.15478 |

登录评论。

s manbetx 845


释放

R2019a

社区寻宝

在MATLAB中心找到宝藏,并发现社区如何可以帮助你!

开始狩猎!