选择内部循环参数模块不工作

AjAj 成员职位:23Maven
2019年7月编辑 帮助
你好,

我正在尝试运行以下模拟
1)执行不同参数组合的模型(SVM或任何其他模型)。
2)得到每个参数集的模型作为给定训练数据的输出。
3)得到每个模型对应一个参数集组合的测试数据的预测结果。

我使用了“Loop Parameters”模块,并在其中使用了SVM模块。当设置像这样时,正如预期的那样,我将为每个参数集组合获得一个模型输出。(这对应于附带的XML代码中的“循环参数”模块)

当我应用SVM生成的模型时,使用“Apply model”对测试数据,在“循环参数(2)”模块内,我只得到一个模型的测试数据输出,而不是每个模型。(此设置对应于所附XML代码中的“循环参数(2)”)

我尝试了一种不同的方法来获得每个模型的输出,对应于参数集的组合,通过传递模型“集合”作为输入到“循环参数”,使用“选择”选择它们中的每一个,然后将特定的模型传递到“应用模型”。我仍然只得到一个模型作为输出,没有循环数那么多。(此设置对应于所附XML代码的“循环参数(3)”模块)。

我注意到,预测输出数据的“循环参数”模块的单个输出对应于“选择”默认提到的型号。这意味着“选择”。在dex" is not being changed. Accepting that the output coming out of the "Loop parameters" is going to be only one in number, inside the "Loop parameters" module, I tried writing to file, database etc. But, it does not work, i.e only one output get written, and not for each model that is generated.

可以从“循环参数”模块访问多参数测试数据的唯一方法似乎是“iooobjectcollection”。但是,我找不到将“iooobjectcollection”转换为“ExampleSet”的方法。有人知道这种转换的方法吗?

有人可以指出我做错了什么,或任何建议尝试或解决问题的任何替代方法?

谢谢,
Ajay

我的XML代码如下
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<过程version = " 5.1.006 " >
> <上下文
<输入/ >
<输出/ >
<宏/ >
> < /上下文






<列出关键= "注释" >

< / >列表
<列出关键= " data_set_meta_data_information " >








< / >列表
< /操作符>


“参数”<列表键= >
<参数键= " SVM。kernel_type“价值= "径向,多项式" / >

< / >列表




< /操作符>







> < /过程
< /操作符>





<列出关键= "注释" >

< / >列表
<列出关键= " data_set_meta_data_information " >








< / >列表
< /操作符>



“参数”<列表键= >
<参数键= " SVM。kernel_type“价值= "径向,多项式" / >

< / >列表



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










> < /过程
< /操作符>

“参数”<列表键= >
<参数键= "选择。在dex" value="[1.0;4;4;linear]"/>
< / >列表



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










> < /过程
< /操作符>
















> < /过程
< /操作符>
> < /过程

训练数据如下

我把a标为b, c和e
1 0 0.25 0.85 0.65 0.45 0.95 0.12
2 1 0.75 0.85 0.35 0.55 0.95 0.86
3 1 0.75 0.85 0.65 0.55 0.95 0.12
1 0.75 0.85 0.65 0.55 0.685 0.12
5 1 0.75 0.85 0.65 0.45 0.95 0.12
6 0 0.75 0.85 0.65 0.55 0.95 0.86
7 1 0.75 0.15 0.65 0.45 0.95 0.12
1 0.25 0.85 0.35 0.45 0.685 0.86
9 0 0.75 0.85 0.65 0.45 0.685 0.12
10 1 0.75 0.85 0.65 0.55 0.95 0.86
11 0.75 0.85 0.65 0.55 0.95 0.86
12 1 0.75 0.85 0.65 0.55 0.685 0.12
13 0 0.75 0.85 0.35 0.55 0.95 0.12
14 1 0.75 0.85 0.65 0.45 0.95 0.12
15 0 0.75 0.85 0.65 0.45 0.95 0.86
16 1 0.75 0.85 0.65 0.45 0.95 0.86
17 0 0.75 0.85 0.65 0.45 0.95 0.12
18 1 0.25 0.15 0.35 0.45 0.95 0.12
19 1 0.75 0.85 0.65 0.55 0.685 0.86
1 0.25 0.85 0.65 0.45 0.95 0.12

测试数据如下

我把a标为b, c和e
1 1 0.25 0.15 0.35 0.45 0.95 0.12
标记:

答案

  • SkirzynskiSkirzynski 成员职位:164Maven
    你好,

    如果下面的xml代码返回您期望的结果,请检查。

    致以最亲切的问候

    <?xml version="1.0" encoding="UTF-8" standalone="no"?>
    <过程version = " 5.1.008 " >
    > <上下文
    <输入/ >
    <输出/ >
    <宏/ >
    > < /上下文






    <列出关键= "注释" >

    < / >列表
    <列出关键= " data_set_meta_data_information " >








    < / >列表
    < /操作符>




    <列出关键= "注释" >

    < / >列表
    <列出关键= " data_set_meta_data_information " >








    < / >列表
    < /操作符>

    “参数”<列表键= >
    <参数键= " SVM。kernel_type“价值= "径向,多项式" / >

    < / >列表




    < /操作符>

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















    > < /过程
    < /操作符>






    > < /过程
    < /操作符>
    > < /过程

  • AjAj 成员职位:23Maven
    你好戈,

    感谢你为我所面临的问题所做的工作,也感谢你的回复。

    我复制了你发给我的代码并运行了模拟程序。我得到了不止一个模型输出。在显示多个模型预测输出方面,似乎真正起到主要作用的模块是“乘法”,即“性能”模块在这方面似乎没有任何区别。

    “乘法”模块似乎就像某种缓冲区,它产生的预测输出是参数组合数量的几倍。但是,如果仔细观察,交替模型预测的输出是相同的,即不同参数组合的预测输出是重复的。假设有8个不同的参数组合模型,在这8个模型中只有两个不同的预测结果值。

    为了找出预测的输出是否真的是这样,我生成了一个具有更多示例数量的数据集,并且输出(标签)是一个更复杂的函数。我修改了模拟,以便在“循环参数”内使用“应用模型”预测数据集的输出。我还在“循环参数”之外传递了这个生成的模型,并使用“循环收集”运行循环。此外,为了注意任何微妙之处,我将参数组合的数量增加到8。

    经过如上修改的仿真设置,在8个不同的模型中,“Loop Parameters”预测输出的不同值的数量仅为2个。但是对于“Loop Collection”来说,8个不同的模型中总共有6个不同的值,这似乎更像是不同模型产生的权重。

    “循环收集”模块似乎是“循环参数”不工作的所有内部模块的工作,即循环似乎只工作在第一个内部模块。请注意,“循环参数并行”即使在第一个内部模块上也不起作用。

    请让我知道,如果我做错了什么,或者如果你有任何建议,我的工作,以解决这个问题。

    谢谢,
    Ajay

    我的模拟的输出如下

    循环回收
    0.996
    -9.082
    0.964
    -26.026
    0.996
    74.939
    0.964
    116.079

    学习不同参数的模型
    0.964
    116.079
    0.964
    116.079
    0.964
    116.079
    0.964
    116.079

    我模拟使用的列车数据如下
    我把a标为b, c和e
    1 0 0.75 0.85 0.65 0.45 0.95 0.12
    2 1 0.75 0.85 0.65 0.55 0.685 0.86
    3 1 0.75 0.85 0.65 0.45 0.95 0.12
    1 0.75 0.85 0.65 0.55 0.95 0.12
    5 1 0.75 0.85 0.65 0.45 0.95 0.12
    6 0 0.75 0.15 0.65 0.55 0.685 0.12
    7 1 0.75 0.85 0.35 0.45 0.685 0.12
    8 0 0.25 0.15 0.35 0.45 0.95 0.12
    9 1 0.75 0.85 0.35 0.45 0.685 0.12
    10 1 0.25 0.15 0.35 0.55 0.95 0.12
    11 0.25 0.85 0.35 0.45 0.685 0.12
    12 0 0.75 0.85 0.65 0.45 0.685 0.12
    13 1 0.75 0.15 0.65 0.55 0.685 0.12
    14 1 0.75 0.85 0.35 0.55 0.95 0.12
    15 0 0.75 0.85 0.35 0.45 0.95 0.12
    16 0 0.75 0.15 0.65 0.45 0.95 0.12
    17 1 0.25 0.85 0.65 0.45 0.95 0.12
    18 1 0.25 0.85 0.35 0.45 0.95 0.12
    19 1 0.75 0.85 0.65 0.55 0.95 0.86
    20 0 0.75 0.85 0.65 0.45 0.685 0.86
    21 0 0.75 0.85 0.65 0.45 0.685 0.86
    22 1 0.75 0.85 0.65 0.45 0.685 0.86
    23 0 0.75 0.85 0.65 0.45 0.685 0.86
    24 0 0.75 0.85 0.65 0.45 0.685 0.86
    25 0 0.75 0.85 0.65 0.45 0.685 0.86
    26 1 0.75 0.85 0.65 0.45 0.685 0.86
    27 0 0.75 0.85 0.65 0.45 0.685 0.86
    28 1 0.75 0.85 0.65 0.45 0.685 0.86
    29 0 0.75 0.85 0.65 0.45 0.685 0.86
    1 0.75 0.85 0.65 0.45 0.685 0.86
    1 0.75 0.85 0.65 0.45 0.685 0.86
    32 1 0.75 0.85 0.65 0.45 0.685 0.86
    33 1 0.75 0.85 0.65 0.45 0.685 0.86
    34 0 0.75 0.85 0.65 0.45 0.685 0.86
    35 0 0.75 0.85 0.65 0.45 0.685 0.86
    36 0 0.75 0.85 0.65 0.45 0.685 0.86
    37 0 0.75 0.85 0.65 0.45 0.685 0.86
    38 1 0.75 0.85 0.65 0.45 0.685 0.86
    39 1 0.75 0.85 0.65 0.45 0.685 0.86
    1 0.75 0.85 0.65 0.45 0.685 0.86
    41 0 0.75 0.85 0.65 0.45 0.685 0.86
    42 1 0.75 0.85 0.65 0.45 0.685 0.86
    43 1 0.75 0.85 0.65 0.45 0.685 0.86
    44 1 0.75 0.85 0.65 0.45 0.685 0.86
    45 1 0.75 0.85 0.65 0.45 0.685 0.86
    46 0 0.75 0.85 0.65 0.45 0.685 0.86
    47 1 0.75 0.85 0.65 0.45 0.685 0.86
    48 1 0.75 0.85 0.65 0.45 0.685 0.86
    49 1 0.75 0.85 0.65 0.45 0.685 0.86
    50 1 0.75 0.85 0.65 0.45 0.685 0.86

    测试数据如下
    我把a标为b, c和e
    1 0 0.12 0.95 1 0.75 2 0.3

    Rapid Miner为我的模拟生成的XML如下所示

    <?xml version="1.0" encoding="UTF-8" standalone="no"?>
    <过程version = " 5.1.006 " >
    > <上下文
    <输入/ >
    <输出/ >
    <宏/ >
    > < /上下文






    <列出关键= "注释" >

    < / >列表
    <列出关键= " data_set_meta_data_information " >








    < / >列表
    < /操作符>




    <列出关键= "注释" >

    < / >列表
    <列出关键= " data_set_meta_data_information " >








    < / >列表
    < /操作符>

    “参数”<列表键= >
    <参数键= " SVM。kernel_type“价值= "径向,多项式" / >

    <参数键= " SVM。kernel_degree“价值= " 3、4 " / >
    <参数键= " SVM。convergence_epsilon“价值= " 0.001 " / >
    < / >列表





    < /操作符>

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

















    > < /过程
    < /操作符>







    <列出关键= "注释" >

    < / >列表
    <列出关键= " data_set_meta_data_information " >








    < / >列表
    < /操作符>

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






    > < /过程
    < /操作符>












    > < /过程
    < /操作符>
    > < /过程
  • SkirzynskiSkirzynski 成员职位:164Maven
    嘿,Aj,

    我现在有急事,但我过会儿会回来找你。

    为了澄清问题,你能解释一下你想做什么以及你的问题到底在哪里吗?就我对你的理解而言:
    • 用X个不同的参数集学习X个不同的模型(使用SVM进行回归)
    • 将每个X模型应用于测试数据
    谢谢
登录注册置评。