首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >支持向量机(SVC)的Grid_search (RandomizedSearchCV)非常慢

支持向量机(SVC)的Grid_search (RandomizedSearchCV)非常慢
EN

Data Science用户
提问于 2022-12-08 19:18:26
回答 1查看 528关注 0票数 1

我正在测试支持向量机的超参数,但是,当我求助于Gridsearch或RandomizedSearchCV时,我无法获得分辨率,因为处理时间超过了几个小时。

我的数据集相对较小: 4303行和67个属性,有四个类(分类问题)。

以下是经过测试的参数:

代码语言:javascript
运行
复制
params =[{'C': [0.1,1, 10, 100], 
         'kernel': ['poly','sigmoid','linear','rbf'],
         'gamma': [1,0.1,0.01,0.001]}
]
代码语言:javascript
运行
复制
sv = SVC()

clf = RandomizedSearchCV(estimator=sv,
                   cv = 3, 
                   param_distributions=params,
                   scoring='accuracy', 
                   n_jobs = -1,
                   verbose=1)
clf.fit(X, y)
print("Best parameters:", clf.best_params_)
print("better accuracy: ", (clf.best_score_)**(1/2.0))

我已经减少了参数的数量和cvs的数量,但是我仍然无法得到一个不需要几个小时处理的结果。

是否有可能优化这一过程?我对网格搜索或支持向量机是否犯了错误?

EN

回答 1

Data Science用户

回答已采纳

发布于 2022-12-09 04:25:39

看起来,当前的方法需要很长时间,因为您试图搜索大量的超参数。提高超参数搜索效率的一种方法是为每个超参数使用较少的值,因为这将减少需要尝试的组合的总数。

有几种方法可以优化支持向量机的超参数调整过程,包括:

  1. 使用较小的数据集示例进行超参数调优,因为处理时间将与数据集的大小成正比。
  2. 使用一种更有效的超参数整定算法,如贝叶斯优化算法或遗传算法,可以更有效地找到最优的超参数。
  3. 使用更有效的支持向量机算法实现,如LibSVM库,这可以比默认的支持向量机实现更快-学习。
  4. 手动尝试不同的超级参数组合,而不是使用网格搜索或随机搜索,这可以是计算密集型的。
  5. 使用更有效的核,例如线性核,它比多项式或RBF核等更复杂的核训练速度更快。
  6. 使用较小数量的超参数,因为处理时间将与正在调整的超参数数量成正比。
  7. 使用更粗的网格进行超参数优化,例如增加超参数值的步长,因为这可以减少要测试的组合的数量。

总之,为了提高支持向量机的性能,减少处理时间,对支持向量机的超参数进行选择和优化是非常重要的。

另外,check - SVC分类器训练时间过长

票数 2
EN
页面原文内容由Data Science提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://datascience.stackexchange.com/questions/116888

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档