Атрибуты не совпадают в quickminer - PullRequest
0 голосов
/ 20 мая 2018

Я успешно применил оператор нейронной сети в rapidminer к набору данных, в котором у меня есть 3 столбца, а 4-й столбец помечен как

column1|column2|column3|column4(labelled)
data   |data   |data   |data  

, теперь у меня есть данные тестирования в порядке для прогнозирования значения помеченного столбца на основе данных тестирования column1, column2, column3, выглядит следующим образом:

column1|column2|column3
data   |data   |data   

Вопрос: верно ли это?

Используя этот подход, я создал модель, чтобы процесс мог прогнозировать значение столбца без метки :

With out splitting data

Затем, используя решение из приведенной ниже ссылки:

Решение для разделения данных

Я снова создал модель, используя данные разделения, для этого я объединил свой набор данныхдля обучения и тестирования ( теперь объединенные данные имеют некоторые значения для помеченного столбца, а некоторые не имеют этого значения столбца, так как это часть данных тестирования ).

With Splitting data

Но все равно я получаю эту ошибку.

1 Ответ

0 голосов
/ 22 мая 2018

Из того, что я вижу, проблема в том, что вы не применяете оператор Номинальный к числовому к своему тестовому набору.В настройках по умолчанию этот оператор создает фиктивную кодировку для каждого номинального значения, найденного в указанном атрибуте.В вашем случае у вас будет столбец / атрибут с именем «Course1 = A» с записью 1 для каждого примера, где исходный столбец был «A» и т. Д.

Что вам нужно сделать, это применитьта же кодировка для ваших тестовых данных, что и для ваших тренировочных данных.Как видите, оператор от номинала до числа имеет дополнительный порт вывода, называемый pre (сокращение от модели предварительной обработки).Это можно использовать, применяя одни и те же этапы предварительной обработки (например, нормализацию или кодирование) к нескольким наборам данных.

Для убедительности вы также можете сгруппировать несколько моделей в одну, используя Групповая модель operator.

См. пример 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 Golf" width="90" x="45" y="34">
    <parameter key="repository_entry" value="//Samples/data/Golf"/>
  </operator>
  <operator activated="true" class="nominal_to_numerical" compatibility="8.2.000" expanded="true" height="103" name="Nominal to Numerical" width="90" x="179" y="34">
    <list key="comparison_groups"/>
    <description align="center" color="purple" colored="true" width="126">Transform the nominal attributes into a dummy encoding with 0/1 for each expression.&lt;br&gt;This encoding is then also delivered via &amp;quot;pre&amp;quot; output port.</description>
  </operator>
  <operator activated="true" class="neural_net" compatibility="8.2.000" expanded="true" height="82" name="Neural Net" width="90" x="447" y="34">
    <list key="hidden_layers"/>
  </operator>
  <operator activated="true" class="retrieve" compatibility="8.2.000" expanded="true" height="68" name="Retrieve Golf-Testset" width="90" x="45" y="340">
    <parameter key="repository_entry" value="//Samples/data/Golf-Testset"/>
  </operator>
  <operator activated="true" class="apply_model" compatibility="8.2.000" expanded="true" height="82" name="Apply Model (2)" width="90" x="447" y="340">
    <list key="application_parameters"/>
  </operator>
  <operator activated="true" class="apply_model" compatibility="8.2.000" expanded="true" height="82" name="Apply Model" width="90" x="648" y="340">
    <list key="application_parameters"/>
  </operator>
  <connect from_op="Retrieve Golf" from_port="output" to_op="Nominal to Numerical" to_port="example set input"/>
  <connect from_op="Nominal to Numerical" from_port="example set output" to_op="Neural Net" to_port="training set"/>
  <connect from_op="Nominal to Numerical" from_port="preprocessing model" to_op="Apply Model (2)" to_port="model"/>
  <connect from_op="Neural Net" from_port="model" to_op="Apply Model" to_port="model"/>
  <connect from_op="Retrieve Golf-Testset" from_port="output" to_op="Apply Model (2)" to_port="unlabelled data"/>
  <connect from_op="Apply Model (2)" from_port="labelled data" to_op="Apply Model" to_port="unlabelled data"/>
  <connect from_op="Apply Model" from_port="labelled data" 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"/>
  <description align="center" color="green" colored="true" height="103" resized="true" width="315" x="433" y="433">First apply the &amp;quot;preprocessing&amp;quot; model so the test data have the same structure&lt;br/&gt;&lt;br/&gt;Then apply the trained neural net</description>
</process>
</operator>
</process>

enter image description here

Кроме того, не стесняйтесь задавать дополнительные вопросы или публиковать их на форуме сообщества RapidMiner .

...