据说,我需要构建具有高精度和低召回率的分类器。我应该在RapidMiner中使用哪个运算符?例如,ApplyModel运算符不支持阈值的任何干预?它还不清楚相同的ApplyModel运算符如何与不同建模的模型一起工作:NeuralNetworks,SVN等。
答案 0 :(得分:1)
您可以使用Select Recall
运算符。这将找到获得所选召回所需的阈值。
此运算符的输入是包含置信度的标记示例集,输出是使用Apply Threshold
运算符应用于标记数据的阈值。
Apply Model
运算符需要一个示例集和一个模型作为输入。
我做了一个简单的例子,说明了所有这些。
<?xml version="1.0" encoding="UTF-8"?><process version="7.2.003">
<context>
<input/>
<output/>
<macros/>
</context>
<operator activated="true" class="process" compatibility="7.2.003" expanded="true" name="Process">
<process expanded="true">
<operator activated="true" class="retrieve" compatibility="7.2.003" expanded="true" height="68" name="Retrieve Sonar" width="90" x="45" y="34">
<parameter key="repository_entry" value="//Samples/data/Sonar"/>
</operator>
<operator activated="true" class="naive_bayes" compatibility="7.2.003" expanded="true" height="82" name="Naive Bayes" width="90" x="45" y="289"/>
<operator activated="true" class="apply_model" compatibility="7.2.003" expanded="true" height="82" name="Apply Model" width="90" x="179" y="289">
<list key="application_parameters"/>
</operator>
<operator activated="true" class="multiply" compatibility="7.2.003" expanded="true" height="103" name="Multiply" width="90" x="246" y="136"/>
<operator activated="true" class="materialize_data" compatibility="7.2.003" expanded="true" height="82" name="Materialize Data" width="90" x="380" y="136"/>
<operator activated="true" class="select_recall" compatibility="7.2.003" expanded="true" height="82" name="Select Recall" width="90" x="313" y="34">
<parameter key="min_recall" value="0.1"/>
</operator>
<operator activated="true" class="apply_threshold" compatibility="7.2.003" expanded="true" height="82" name="Apply Threshold" width="90" x="447" y="34"/>
<operator activated="true" class="performance_binominal_classification" compatibility="7.2.003" expanded="true" height="82" name="Performance" width="90" x="581" y="34"/>
<operator activated="true" class="performance_binominal_classification" compatibility="7.2.003" expanded="true" height="82" name="Performance (2)" width="90" x="581" y="136"/>
<connect from_op="Retrieve Sonar" from_port="output" to_op="Naive Bayes" to_port="training set"/>
<connect from_op="Naive Bayes" from_port="model" to_op="Apply Model" to_port="model"/>
<connect from_op="Naive Bayes" from_port="exampleSet" to_op="Apply Model" to_port="unlabelled data"/>
<connect from_op="Apply Model" from_port="labelled data" to_op="Multiply" to_port="input"/>
<connect from_op="Multiply" from_port="output 1" to_op="Select Recall" to_port="example set"/>
<connect from_op="Multiply" from_port="output 2" to_op="Materialize Data" to_port="example set input"/>
<connect from_op="Materialize Data" from_port="example set output" to_op="Performance (2)" to_port="labelled data"/>
<connect from_op="Select Recall" from_port="example set" to_op="Apply Threshold" to_port="example set"/>
<connect from_op="Select Recall" from_port="threshold" to_op="Apply Threshold" to_port="threshold"/>
<connect from_op="Apply Threshold" from_port="example set" to_op="Performance" to_port="labelled data"/>
<connect from_op="Performance" from_port="performance" to_port="result 1"/>
<connect from_op="Performance (2)" from_port="performance" to_port="result 2"/>
<portSpacing port="source_input 1" spacing="0"/>
<portSpacing port="sink_result 1" spacing="0"/>
<portSpacing port="sink_result 2" spacing="0"/>
<portSpacing port="sink_result 3" spacing="0"/>
</process>
</operator>
</process>
希望这有助于开始。