在 Rapidminer 中过滤掉 'most recent' 示例记录
Filtering out 'most recent' example record in Rapidminer
我正在尝试过滤 rapidminer 中的一组示例商业属性。许多房产是重复的,因为 属性 交易历史包含在数据 table 中,并且许多房产在数据 table 期间被出售不止一次。我想要做的是为每个 属性 过滤掉除最近交易以外的所有交易。
我不知道如何过滤除具有最近交易日期的记录以外的所有记录。任何帮助,将不胜感激。
您应该 post 一个独立的可重现示例,其中包含的数据可以显示您目前所做的尝试。
没有这个,一般的建议可能是沿着这些思路。使用 Aggregate
运算符查找给定 属性 的最大日期,然后使用 Join
运算符将原始示例集与包含最大值的示例集进行内部连接。
这是一个使用 Iris 数据集的玩具示例,可能适用于您的情况。
<?xml version="1.0" encoding="UTF-8"?><process version="7.4.000">
<context>
<input/>
<output/>
<macros/>
</context>
<operator activated="true" class="process" compatibility="7.4.000" expanded="true" name="Process">
<process expanded="true">
<operator activated="true" class="retrieve" compatibility="7.4.000" expanded="true" height="68" name="Retrieve Iris" width="90" x="112" y="187">
<parameter key="repository_entry" value="//Samples/data/Iris"/>
</operator>
<operator activated="true" class="aggregate" compatibility="7.4.000" expanded="true" height="82" name="Aggregate" width="90" x="313" y="187">
<list key="aggregation_attributes">
<parameter key="a1" value="maximum"/>
</list>
<parameter key="group_by_attributes" value="label"/>
</operator>
<operator activated="true" class="join" compatibility="7.4.000" expanded="true" height="82" name="Join" width="90" x="514" y="187">
<parameter key="use_id_attribute_as_key" value="false"/>
<list key="key_attributes">
<parameter key="label" value="label"/>
<parameter key="a1" value="maximum(a1)"/>
</list>
</operator>
<connect from_op="Retrieve Iris" from_port="output" to_op="Aggregate" to_port="example set input"/>
<connect from_op="Aggregate" from_port="example set output" to_op="Join" to_port="right"/>
<connect from_op="Aggregate" from_port="original" to_op="Join" to_port="left"/>
<connect from_op="Join" from_port="join" to_port="result 1"/>
<portSpacing port="source_input 1" spacing="0"/>
<portSpacing port="sink_result 1" spacing="0"/>
<portSpacing port="sink_result 2" spacing="0"/>
</process>
</operator>
</process>
我正在尝试过滤 rapidminer 中的一组示例商业属性。许多房产是重复的,因为 属性 交易历史包含在数据 table 中,并且许多房产在数据 table 期间被出售不止一次。我想要做的是为每个 属性 过滤掉除最近交易以外的所有交易。
我不知道如何过滤除具有最近交易日期的记录以外的所有记录。任何帮助,将不胜感激。
您应该 post 一个独立的可重现示例,其中包含的数据可以显示您目前所做的尝试。
没有这个,一般的建议可能是沿着这些思路。使用 Aggregate
运算符查找给定 属性 的最大日期,然后使用 Join
运算符将原始示例集与包含最大值的示例集进行内部连接。
这是一个使用 Iris 数据集的玩具示例,可能适用于您的情况。
<?xml version="1.0" encoding="UTF-8"?><process version="7.4.000">
<context>
<input/>
<output/>
<macros/>
</context>
<operator activated="true" class="process" compatibility="7.4.000" expanded="true" name="Process">
<process expanded="true">
<operator activated="true" class="retrieve" compatibility="7.4.000" expanded="true" height="68" name="Retrieve Iris" width="90" x="112" y="187">
<parameter key="repository_entry" value="//Samples/data/Iris"/>
</operator>
<operator activated="true" class="aggregate" compatibility="7.4.000" expanded="true" height="82" name="Aggregate" width="90" x="313" y="187">
<list key="aggregation_attributes">
<parameter key="a1" value="maximum"/>
</list>
<parameter key="group_by_attributes" value="label"/>
</operator>
<operator activated="true" class="join" compatibility="7.4.000" expanded="true" height="82" name="Join" width="90" x="514" y="187">
<parameter key="use_id_attribute_as_key" value="false"/>
<list key="key_attributes">
<parameter key="label" value="label"/>
<parameter key="a1" value="maximum(a1)"/>
</list>
</operator>
<connect from_op="Retrieve Iris" from_port="output" to_op="Aggregate" to_port="example set input"/>
<connect from_op="Aggregate" from_port="example set output" to_op="Join" to_port="right"/>
<connect from_op="Aggregate" from_port="original" to_op="Join" to_port="left"/>
<connect from_op="Join" from_port="join" to_port="result 1"/>
<portSpacing port="source_input 1" spacing="0"/>
<portSpacing port="sink_result 1" spacing="0"/>
<portSpacing port="sink_result 2" spacing="0"/>
</process>
</operator>
</process>