“快速挖矿的嵌套交叉验证”

旧的用户旧的用户 成员职位:0新手
2019年5月编辑 帮助
你好,

我试图使用RapidMiner完成我的LibSVM任务之一,但似乎我以某种方式理解/以错误的方式使用操作符。
我想对我的数据进行交叉验证(data = train + test),以测量简单SVM模型的性能,但也进行交叉验证(train = paramTrain + paramTest),以找到我的SVM(=在当前cv训练集上训练的SVM)的最佳参数(例如,C和gamma),从而导致嵌套交叉验证。

因此,我创建了一个包含1的外部XValidation。参数优化(训练)和2。在参数优化中有第二个XValidation,包含Learner (paramTrain)和Evaluator (paramTest)。
然而,我在将内部交叉验证优化的模型传递给外部评估时遇到了问题。如果我通过将参数设置为true在内部XVal中创建最终模型,则不会将其传递给外部XVal。如果我在内部XVal之后添加一个额外的SVM学习器,这个学习器会抱怨缺少exampleeset。
我希望这不是太混乱-这是根据代码。如果有人能告诉我我做错了什么,那就太好了……


通常,不同的操作符有许多参数,并且不清楚哪些参数值最适合手头的学习任务。参数优化算子有助于为所使用的算子找到最优的参数集。内部交叉验证估计每个参数集的性能。在此过程中,对支持向量机的两个参数进行了调整。结果可以以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# "/>




< /操作符>




“参数”<列表键= >

<参数键= " trainWithLocalParams。γ“价值= "[0.0;无穷;10;线性]" / >
< / >列表






< /操作符>


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


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

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


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

非常感谢
笨蛋
标记:

答案

  • 土地土地 RapidMiner认证分析师,RapidMiner认证专家,成员职位:2531年独角兽
    嗨,笨蛋,
    只差几件事就完成了你的过程。看下图:

    通常,不同的操作符有许多参数,并且不清楚哪些参数值最适合手头的学习任务。参数优化算子有助于为所使用的算子找到最优的参数集。内部交叉验证估计每个参数集的性能。在此过程中,对支持向量机的两个参数进行了调整。结果可以以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# "/>


    < /操作符>




    “参数”<列表键= >

    <参数键= " trainWithLocalParams。γ“价值= "[0.0;1000.0;2;线性]" / >
    < / >列表








    < /操作符>


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


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

    <列出关键= " name_map " >

    < / >列表
    < /操作符>



    < /操作符>


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


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



    < /操作符>
    < /操作符>
    < /操作符>
    < /操作符>
    我必须插入parameterSetter,以便为最终svm的参数设置最佳值。下一件事是IOConsumer删除性能向量。由于所有性能运算符都取平均值,因此如果内部传递了额外的性能向量,则会混淆外部交叉验证。
    最后,我必须在外部交叉验证中添加一个性能度量。

    但我承认,这很令人困惑:)

    问候,
    塞巴斯蒂安。
登录注册置评。