расчет производительности для дерева ID3 - PullRequest
0 голосов
/ 29 мая 2018

Для задания я должен рассчитать производительность дерева ID3 с данными, данными с данными обучения, объяснить, почему это плохо делать с данными обучения, и найти способ рассчитать производительность без данных обучения.

процесс на quickminer

при этом я получаю производительность 100%, что я считаю неправильным.Даже если это не так, я понятия не имею, куда идти отсюда.Любая помощь?

1 Ответ

0 голосов
/ 06 июня 2018

Ваша проблема в том, что вы используете одни и те же данные для обучения и тестирования.
То, что вы хотите, - это разбить данные на обучающие и тестовые данные.Затем вы тренируете дерево идентификаторов в наборе поездов и применяете это дерево к тестовому набору и рассчитываете производительность для этого результата.

Самый простой способ сделать это - оператор Split Data где вы можете установить коэффициент разделения (обычно что-то вроде 0,7 для обучения и 0,3 для тестирования).Более надежный подход для проверки производительности модели заключается в использовании перекрестной проверки .

enter image description here

Здесь также описан процессXML-файл, просто скопируйте и вставьте его в представление процесса RapidMiner:

<?xml version="1.0" encoding="UTF-8"?><process version="8.2.000">
<context>
<input/>
<output/>
<macros/>
</context>
<operator activated="true" class="process" compatibility="8.2.000" expanded="true" name="Process">
<process expanded="true">
  <operator activated="true" class="retrieve" compatibility="8.2.000" expanded="true" height="68" name="Retrieve Sonar" width="90" x="45" y="85">
    <parameter key="repository_entry" value="//Samples/data/Sonar"/>
  </operator>
  <operator activated="true" class="numerical_to_polynominal" compatibility="8.2.000" expanded="true" height="82" name="Numerical to Polynominal" width="90" x="179" y="85">
    <parameter key="include_special_attributes" value="true"/>
  </operator>
  <operator activated="true" class="split_data" compatibility="8.2.000" expanded="true" height="103" name="Split Data" width="90" x="380" y="85">
    <enumeration key="partitions">
      <parameter key="ratio" value="0.7"/>
      <parameter key="ratio" value="0.3"/>
    </enumeration>
    <parameter key="sampling_type" value="shuffled sampling"/>
  </operator>
  <operator activated="true" class="id3" compatibility="8.2.000" expanded="true" height="82" name="ID3" width="90" x="581" y="85"/>
  <operator activated="true" class="apply_model" compatibility="8.2.000" expanded="true" height="82" name="Apply Model" width="90" x="648" y="238">
    <list key="application_parameters"/>
  </operator>
  <operator activated="true" class="performance_classification" compatibility="8.2.000" expanded="true" height="82" name="Performance" width="90" x="782" y="238">
    <list key="class_weights"/>
  </operator>
  <connect from_op="Retrieve Sonar" from_port="output" to_op="Numerical to Polynominal" to_port="example set input"/>
  <connect from_op="Numerical to Polynominal" from_port="example set output" to_op="Split Data" to_port="example set"/>
  <connect from_op="Split Data" from_port="partition 1" to_op="ID3" to_port="training set"/>
  <connect from_op="Split Data" from_port="partition 2" to_op="Apply Model" to_port="unlabelled data"/>
  <connect from_op="ID3" from_port="model" to_op="Apply Model" to_port="model"/>
  <connect from_op="Apply Model" from_port="labelled data" to_op="Performance" to_port="labelled data"/>
  <connect from_op="Performance" from_port="performance" 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>
...