Нет. Все деревья решений не являются двоичными деревьями. Но, если вам действительно нужно двоичное дерево, вы также можете это сделать. На самом деле количество ветвей зависит от характера данных, которые вы собираетесь классифицировать.
Существует два типа данных.
1. Дискретные данные
2. Непрерывные данные
Предположим, A
будет атрибутом разделения, а A
имеет различные значения {a_1, a_2, ... , a_v}
, основанные на данных обучения. Тогда есть 3 случая.
CASE 1: A
имеет дискретное значение - ветвь создается для каждого известного значения a_j
в A
. Например, если age
является атрибутом с дискретным значением, он может быть разветвлен до young
, medium
или old
.
CASE 2: A
имеет непрерывное значение - тестовый узел имеет два возможных результата, соответствующих условиям A <= split_point
и A > split_point
соответственно. Например, если age
является атрибутом с непрерывным значением, его можно разветвить по условиям age <= 55
и age > 55
.
CASE 3 - A
- это дискретное значение, и необходимо создать двоичное дерево - тест в узле, если он имеет вид is A in splitting_subset ?
, где splitting_subset
- набор значений приемлемо в определенном решении из двух решений. Например, если age
является атрибутом с дискретным значением, его можно разветвить с помощью теста is age in {young, medium}?
.