Как дерево решений вычисляет атрибут расщепления? - PullRequest
5 голосов
/ 09 июня 2011

Когда мы используем любой алгоритм дерева решений и наш набор данных состоит из числовых значений.

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

Пример:
Результаты классификации

  1. attrib2 <= 3.761791861252009: группа A </li>
  2. attrib2> 3.761791861252009: группа B

где asв моем наборе данных нет никакого значения для attrib2 как 3.76179.Почему это так?

Ответы [ 3 ]

16 голосов
/ 14 июня 2011

Большинство алгоритмов построения дерева решений (J48, C4.5, CART, ID3) работают следующим образом:

  • Сортировка атрибутов, на которые можно разделить.
  • Найдите все «точки останова», где меняются метки классов, связанные с ними.
  • Рассмотрите точки разделения, где метки меняются.Выберите тот, который минимизирует меру чистоты.Однако получение информации зависит только от порядка, а не от стоимости.

После того, как вы нашли лучшую точку разделения, алгоритмы расходятся во мнениях относительно ее представления.Пример: скажем, у вас есть -4 (да), -3 (да), -3 (да), -2 (нет), -1 (нет).Любое значение от -3 до -2 будет иметь одинаковую чистоту.Некоторые алгоритмы (C4.5) скажут, что val <= -3.Другие, например Weka, выберут среднее значение и дадут значение <= -2,5.</p>

8 голосов
/ 09 июня 2011

Существует несколько способов выбора атрибута. И не все они выбирают значения в наборе данных.

Обычный (хотя и немного упрощенный) метод - взять среднее. Вполне возможно, что 3.76179 ... является средним значением всех атрибутов2 вашего набора данных.

Например, если ваш набор данных является одномерным и состоит из значения -10, -9, .. -2, -1, 1, 2, ..9, 10, тогда хорошим значением разбиения будет 0, даже если его нет в вашем наборе данных.

Другая возможность, особенно если вы имеете дело со случайными лесами (несколькими деревьями решений), заключается в том, что значение расщепления выбирается случайным образом, а распределение вероятностей сосредоточено вокруг медианного значения. Некоторые алгоритмы решают разделить в соответствии с гауссианой по центру среднего значения / медианы и с отклонением, равным стандартному отклонению набора данных.

1 голос
/ 10 июня 2011

Сначала вы можете проверить, как дискретизировать числовое значение. Эти алгоритмы разбивают диапазон числовых значений на несколько интервалов, каждый из которых имеет большое значение. Например, вы переходите к шагу 0.1 после каждого разделения, проверяете его информационную линию и выбираете наилучшую позицию, затем продолжаете с интервалами.

...