Какой метод использует Rapidminer для расчета матрицы корреляции и почему я получаю отрицательные корреляции для двух категориальных/номинальных атрибутов?

Я надеюсь, что кто-то может ответить на это для меня, поскольку я застрял.

Какую методологию использует Rapidminer в своей корреляционной матрице? Для всех комбинаций данных было бы неплохо, но что наиболее важно для номинальных/категориальных наборов данных?

Я использую Rapidminer для построения корреляционной матрицы и тщательно обозначил все атрибуты как числа, биномиальные, полиномиальные и т. д. Я обнаружил, что моя матрица показывает отрицательную корреляцию для некоторых номинальных/номинальных комбинаций атрибутов, что не t сделать, так как на основе методов, которые, как я обычно думаю, будут выбраны (Phi, Cramer's V, коэффициент непредвиденных обстоятельств) для расчета этого. Я думал, что корреляция должна быть положительной для этих тестов, и не имеет смысла иметь «отрицательную» корреляцию между такими категориями, как пол и город, поскольку это предполагало бы порядок в данных.

Используется ли другой тест, фиктивное кодирование или что-то в этом роде? И если используется фиктивное кодирование, насколько надежно полученное значение?

Заранее благодарю всех, кто может мне помочь. Ненавижу признаваться, когда теряюсь, но здесь мне нужна карта :)


person schradera    schedule 14.07.2016    source источник


Ответы (1)


Я включил XML процесса, который вычисляет корреляционную матрицу для набора примеров, содержащих номинальные значения, и еще раз для того же набора примеров с номиналами, преобразованными в числа. Процесс создает ту же матрицу, когда номиналы преобразуются в простые числа, т. е. значение 1 становится равным 0, значение 2 становится равным 1 и так далее.

С помощью оператора Correlation Matrix каждое значение атрибута вычитается из среднего значения для этого атрибута. Эти различия перемножаются для пар атрибутов и суммируются для всех примеров. Затем это делится на произведение количества примеров - 1 и стандартных отклонений пар атрибутов. Мне удалось воссоздать расчет в электронной таблице, поэтому я знаю, что стандартное отклонение используется для выборки, а не для населения.

Вот процесс

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<process version="7.1.001">
  <context>
    <input/>
    <output/>
    <macros/>
  </context>
  <operator activated="true" class="process" compatibility="7.1.001" expanded="true" name="Process">
    <process expanded="true">
      <operator activated="true" class="generate_nominal_data" compatibility="7.1.001" expanded="true" height="68" name="Generate Nominal Data" width="90" x="45" y="85">
        <parameter key="number_examples" value="20"/>
        <parameter key="number_of_attributes" value="3"/>
        <parameter key="number_of_values" value="3"/>
      </operator>
      <operator activated="true" class="select_attributes" compatibility="7.1.001" expanded="true" height="82" name="Select Attributes" width="90" x="179" y="85">
        <parameter key="attribute_filter_type" value="subset"/>
        <parameter key="attributes" value="label"/>
        <parameter key="invert_selection" value="true"/>
        <parameter key="include_special_attributes" value="true"/>
      </operator>
      <operator activated="true" class="multiply" compatibility="7.1.001" expanded="true" height="103" name="Multiply" width="90" x="313" y="85"/>
      <operator activated="true" class="nominal_to_numerical" compatibility="7.1.001" expanded="true" height="103" name="Nominal to Numerical" width="90" x="447" y="289">
        <parameter key="coding_type" value="unique integers"/>
        <list key="comparison_groups"/>
      </operator>
      <operator activated="true" class="correlation_matrix" compatibility="7.1.001" expanded="true" height="103" name="Correlation Matrix" width="90" x="581" y="85"/>
      <operator activated="true" class="correlation_matrix" compatibility="7.1.001" expanded="true" height="103" name="Correlation Matrix (2)" width="90" x="581" y="289"/>
      <connect from_op="Generate Nominal Data" from_port="output" to_op="Select Attributes" to_port="example set input"/>
      <connect from_op="Select Attributes" from_port="example set output" to_op="Multiply" to_port="input"/>
      <connect from_op="Multiply" from_port="output 1" to_op="Correlation Matrix" to_port="example set"/>
      <connect from_op="Multiply" from_port="output 2" to_op="Nominal to Numerical" to_port="example set input"/>
      <connect from_op="Nominal to Numerical" from_port="example set output" to_op="Correlation Matrix (2)" to_port="example set"/>
      <connect from_op="Correlation Matrix" from_port="example set" to_port="result 1"/>
      <connect from_op="Correlation Matrix" from_port="matrix" to_port="result 2"/>
      <connect from_op="Correlation Matrix (2)" from_port="example set" to_port="result 3"/>
      <connect from_op="Correlation Matrix (2)" from_port="matrix" to_port="result 4"/>
      <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"/>
      <portSpacing port="sink_result 4" spacing="0"/>
      <portSpacing port="sink_result 5" spacing="0"/>
    </process>
  </operator>
</process>

Надеюсь, это поможет для начала.

person Andrew Chisholm    schedule 14.07.2016
comment
Спасибо, это отличное начало! Я подозревал, что они использовали кодирование, а не один из методов, упомянутых выше, но мне нужно было убедиться, прежде чем использовать вывод, поскольку он был не таким, как я ожидал. Возможность видеть XML — ловкий трюк. Как ты смог это сделать? - person schradera; 18.07.2016
comment
XML — это представление одного из пунктов меню RapidMiner Studio. Это позволяет вам делиться процессами с другими, потому что вы можете скопировать весь XML в представление, щелкнуть маленькую галочку, чтобы проверить его, а затем это просто процесс, который вы можете редактировать. - person Andrew Chisholm; 19.07.2016