我正在尝试在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工作(使用默认值并在网格搜索中)?
答案 0 :(得分:1)
您是否预先处理了您的训练数据?这对RBF内核非常重要。您可以尝试将功能标准化为[-1,1]并再次尝试RBF内核。
答案 1 :(得分:1)
这对我有用:
XExpression = pow(BASE,I)
,XMin = -5
,XMax = 5
,XStep = 1
和XBase = 10
(Y相同)。DistributionBasedBalance
过滤器并将p
设置为某个值。numExecutionSlots
设置为4(我的计算机中的核心数)。