在 Weka 中使用 RBFKernel(C 和 gamma)优化 SMO

发布于 2024-12-19 04:25:31 字数 812 浏览 0 评论 0原文

我正在尝试使用 Weka 中的 RBFKernel 和 SMO 分类器来训练一组约 30,000 个实例。我使用网格搜索来查找参数 C 和 gamma 的最佳值。这是我的配置:

weka.classifiers.meta.GridSearch -E ACC -y-property classifier.kernel.gamma -y-min -10.0 -y-max 5.0 -y-step 1.0 -y-base 10.0 -y-expression pow(BASE,I) -filter weka.filters.AllFilter -x-property classifier.c -x-min 5.0 -x-max 20.0 -x-step 1.0 -x-base 10.0 -x-expression I -sample-size 100.0 -traversal COLUMN-WISE -num-slots 1 -S 1 -W weka.classifiers.functions.SMO -- -C 1.0 -L 0.0010 -P 1.0E-12 -N 0 -V -1 -W 1 -K "weka.classifiers.functions.supportVector.RBFKernel -C 250007 -G 0.01"

我让它运行 > 9 个小时没有结果,Weka 的状态消息仍然是“正在训练数据上构建模型...”。起初我认为网格搜索是问题所在,但是当我尝试使用 C 和 gamma 的默认值进行训练而不执行网格搜索时,我得到了相同的结果。我尝试使用 PolyKernel,分类器在几秒钟内就完成了训练(但不是在网格搜索中)。

如何让 RBFKernel 工作(使用默认值并在网格搜索中)?

I'm trying to train a set of ~30,000 instances using an SMO classifier with an RBFKernel in Weka. I'm using grid search to find the optimal values for the parameters C and gamma. Here is my configuration:

weka.classifiers.meta.GridSearch -E ACC -y-property classifier.kernel.gamma -y-min -10.0 -y-max 5.0 -y-step 1.0 -y-base 10.0 -y-expression pow(BASE,I) -filter weka.filters.AllFilter -x-property classifier.c -x-min 5.0 -x-max 20.0 -x-step 1.0 -x-base 10.0 -x-expression I -sample-size 100.0 -traversal COLUMN-WISE -num-slots 1 -S 1 -W weka.classifiers.functions.SMO -- -C 1.0 -L 0.0010 -P 1.0E-12 -N 0 -V -1 -W 1 -K "weka.classifiers.functions.supportVector.RBFKernel -C 250007 -G 0.01"

I let it run for > 9 hours with no result, Weka's status message remains as "Building model on training data...". At first I thought grid search was the problem, but when I tried to train using the default values for C and gamma without performing a grid search I got the same result. I tried using a PolyKernel instead and the classifier was trained in a couple of seconds (but not in grid search).

How can I get the RBFKernel to work (using the default values and in grid search)?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

南风几经秋 2024-12-26 04:25:31

您对训练数据进行预处理吗?这对于RBF核来说非常重要。您可以尝试将特征标准化为 [-1,1],然后再次尝试 RBF 内核。

Do you preprocess your training data? It is very important for the RBF kernel. You could try to normalize the features to [-1,1] and try the RBF kernel again.

再见回来 2024-12-26 04:25:31

这对我有用:

  • 使用对数步长 XExpression = pow(BASE,I), XMin = -5, XMax = 5XStep = 1XBase = 10(Y 相同)。
  • 使用过滤器 出于我的目的,我使用了 DistributionBasedBalance 过滤器,并将 p 设置为某个值。
  • 增加执行槽数量 我将 numExecutionSlots 设置为 4(我的机器中的核心数量)。

This is what worked for me:

  • Using logarithmic steps XExpression = pow(BASE,I), XMin = -5, XMax = 5, XStep = 1 and XBase = 10 (same for Y).
  • Using a filter For my purposes I used a DistributionBasedBalance filter with p set to some value.
  • Increasing the number of execution slots I set numExecutionSlots to 4 (the number of cores in my machine).
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文