支持向量机参数优化

快车快车 成员职位:7因素二世
2019年6月编辑 帮助
我使用SVM的参数优化。
如果我是正确的优化步骤如下。
1.搜索参数
2.对模型应用最优参数
3.将最优模型应用于新数据

使用Xvalidation来应用最优参数有意义吗?
我是说在运算符"ParameterSetter"之后?(见附件代码)

为什么“最后的表演”没有出现在最后?只有二项分类性能(2)出现。

另一个问题:
是否有可能用AUC对参数进行优化?(曲线下面积)
我读过一些论文,有人做过这样的分析。这是可能的Rapidminer吗?


我的想法是在相同的数据上比较不同的模型(支持向量机,神经网络,逻辑回归)。

通常,不同的操作符有许多参数,并且不清楚哪些参数值最适合手头的学习任务。参数优化算子有助于为所使用的算子找到最优的参数集。内部交叉验证估计每个参数集的性能。在此过程中,对支持向量机的两个参数进行了调整。结果可以以3D(使用gnuplot)或彩色模式绘制。#ylt#/p#ygt# #ygt# p#ygt#尝试以下操作:#ylt#ul#ygt# #ylt#li#ygt#启动进程。结果得到了最佳的参数集以及在此参数集下所达到的性能。#ylt#/li#ygt# #ylt#li#ygt#编辑ParameterOptimization操作符的参数列表以查找另一个参数集。#ygt# /li#ygt# #ygt# /ul#ygt# #ygt# /p#ygt# "/>


< /操作符>


< /操作符>




< /操作符>

“参数”<列表键= >
<参数键= " Training.C”值= " 0.03125,0.044194173824159220275052772631553,0.0625,0.088388347648318440550105545263106,0.125,0.17677669529663688110021109052621,0.25,0.35355339059327376220042218105242,0.5,0.70710678118654752440084436210485,1,1.4142135623730950488016887242097,2103 .18914671611545020044386249798,4,5.6568542494923801952067548968388,8,11.313708498984760390413509793678,16日22.627416997969520780827019587355,32岁,45.25483399593904156165403917471,64,90.509667991878083123308078349421,128181 .0193359837561662466161561024年512724年69884年、256362年.03867196751233249323231339768 .07734393502466498646462679537,1448.1546878700493299729292535907,2896.3093757400986599458585071815,5792.6187514801973198917170143629,4096年2048年8192年,11585.237502960394639783434028726,16384,379625062.49700621155642356625329,32768 " / >
<参数键= "培训。伽马”价值= " 0.00000095367431640625,0.0000019073486328125,0.000003814697265625,0.00000762939453125,0.0000152587890625,0.000030517578125,0.00006103515625,0.0001220703125,0.000244140625,0.00048828125,0.0009765625,0.001953125,0.00390625,0.0078125,0.015625,0.03125,0.0625,0.125,0.25,0.5,1,2,4,8日,16日,32,64128256512,1024,2048,4096,8192,16384 " / >
< / >列表



<操作员名称="Training"类别="LibSVMLearner">




<列出关键= " class_weights " >
< / >列表
< /操作符>


<列出关键= " application_parameters " >
< / >列表
< /操作符>



< /操作符>
< /操作符>
< /操作符>


<列出关键= "日志" >



< / >列表
< /操作符>
< /操作符>




< /操作符>

<列出关键= " name_map " >

< / >列表
< /操作符>






<列出关键= " class_weights " >
< / >列表
< /操作符>



<列出关键= " application_parameters " >
< / >列表
< /操作符>



< /操作符>
< /操作符>
< /操作符>
< /操作符>




< /操作符>


< /操作符>

<列出关键= " application_parameters " >
< / >列表
< /操作符>

< / >列表

< /操作符>







< /操作符>
< /操作符>
< /操作符>
标记:

答案

  • 土地土地 RapidMiner认证分析师,RapidMiner认证专家,成员职位:2531年独角兽
    你好,
    这有点不同,你能理解它。你必须区分学习模型和模型本身。一个学习过的模型不能被参数改变。它只是学习过程的产物,由一些参数控制。所以当你优化参数时,你在优化参数学习者
    一旦您使用任何优化运算符在数据上为学习器找到了最优参数集,您就可以将这些参数应用于另一个学习器学习者。然后,它将在完整的训练数据上学习最优模型,这应该使它在新数据上的表现比在交叉验证期间学习的所有模型更好,因为它们只使用数据的子集来学习模型。
    然后,这个模型可以在第三步中应用于新数据。

    可以通过将AUC用作优化中的第一个性能度量来优化AUC。

    问候,
    塞巴斯蒂安。
  • 快车快车 成员职位:7因素二世
    你好,塞巴斯蒂安,

    谢谢你的回答。我只是把“学习者”和“模型”搞混了。现在我明白了。

    1.使用“网格参数优化”为学习者找到最佳参数
    2.使用“parameterSetter”对学习器应用最佳参数
    3.将具有最佳参数的优化模型应用于未知数据。

    因此,当我在学习器上应用最佳参数时,在步骤2中应用Xvalidation是没有意义的。

    关于AUC,当我从“网格参数优化”中的操作符“BinominalClassificationPerformance”中选择AUC时,我只会得到TRUE或FALSE。是否有其他方法可以优化C和关于AUC的伽马来得到这样的图?
    图像

    <描述文本= "
    " / >


    < /操作符>


    < /操作符>




    < /操作符>

    “参数”<列表键= >
    <参数键= " Training.C”值= " 0.03125,0.044194173824159220275052772631553,0.0625,0.088388347648318440550105545263106,0.125,0.17677669529663688110021109052621,0.25,0.35355339059327376220042218105242,0.5,0.70710678118654752440084436210485,1,1.4142135623730950488016887242097,2103 .18914671611545020044386249798,4,5.6568542494923801952067548968388,8,11.313708498984760390413509793678,16日22.627416997969520780827019587355,32岁,45.25483399593904156165403917471,64,90.509667991878083123308078349421,128181 .0193359837561662466161561024年512724年69884年、256362年.03867196751233249323231339768 .07734393502466498646462679537,1448.1546878700493299729292535907,2896.3093757400986599458585071815,5792.6187514801973198917170143629,4096年2048年8192年,11585.237502960394639783434028726,16384,379625062.49700621155642356625329,32768 " / >
    <参数键= "培训。伽马”价值= " 0.00000095367431640625,0.0000019073486328125,0.000003814697265625,0.00000762939453125,0.0000152587890625,0.000030517578125,0.00006103515625,0.0001220703125,0.000244140625,0.00048828125,0.0009765625,0.001953125,0.00390625,0.0078125,0.015625,0.03125,0.0625,0.125,0.25,0.5,1,2,4,8日,16日,32,64128256512,1024,2048,4096,8192,16384 " / >
    < / >列表



    <操作员名称="Training"类别="LibSVMLearner">




    <列出关键= " class_weights " >
    < / >列表
    < /操作符>


    <列出关键= " application_parameters " >
    < / >列表
    < /操作符>



    < /操作符>
    < /操作符>
    < /操作符>


    <列出关键= "日志" >



    < / >列表
    < /操作符>
    < /操作符>




    < /操作符>

    <列出关键= " name_map " >

    < / >列表
    < /操作符>




    <列出关键= " class_weights " >
    < / >列表
    < /操作符>


    <列出关键= " application_parameters " >
    < / >列表
    < /操作符>



    < /操作符>
    < /操作符>





    < /操作符>


    < /操作符>

    <列出关键= " application_parameters " >
    < / >列表
    < /操作符>

    < / >列表

    < /操作符>







    < /操作符>
    < /操作符>
    < /操作符>
    谢谢你的帮助!

    问候

    快车
  • 费舍尔费舍尔 成员职位:439Maven
    你好,

    这和网格参数优化得到的结果很像。只需在优化操作符中使用Process Log操作符来记录C、Gamma和AUC,然后绘制它。

    欢呼,
    西蒙
登录注册置评。