选择内部循环参数模块不工作
你好,
我正在尝试运行以下模拟
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
我正在尝试运行以下模拟
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
标记:
0
答案
如果下面的xml代码返回您期望的结果,请检查。
致以最亲切的问候
戈
感谢你为我所面临的问题所做的工作,也感谢你的回复。
我复制了你发给我的代码并运行了模拟程序。我得到了不止一个模型输出。在显示多个模型预测输出方面,似乎真正起到主要作用的模块是“乘法”,即“性能”模块在这方面似乎没有任何区别。
“乘法”模块似乎就像某种缓冲区,它产生的预测输出是参数组合数量的几倍。但是,如果仔细观察,交替模型预测的输出是相同的,即不同参数组合的预测输出是重复的。假设有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 " / >
< /操作符>
> < /过程
< /操作符>
> < /过程
< /操作符>
> < /过程
我现在有急事,但我过会儿会回来找你。
为了澄清问题,你能解释一下你想做什么以及你的问题到底在哪里吗?就我对你的理解而言:
戈