2013-03-26 2 views

ответ

3

Для непрерывных данных C4.5 использует пороговое значение, где в левом узле все меньше порога, а все, что превышает порог, находится в правом узле. Вопрос заключается в том, как создать это пороговое значение из данных, которые вы даете. Трюк заключается в сортировке ваших данных по непрерывной переменной в порядке возрастания. Затем перебирайте данные, выбирающие пороговое значение между элементами данных. Например, если ваши данные для атрибута x:

0.5, 1.2, 3.4, 5.4, 6.0 

Сначала вы выбираете порог между 0,5 и 1,2. В этом случае мы можем просто использовать среднее значение: 0,85. Теперь вычислить вашу примесь:

H(x < 0.85) = H(s) - l/N * H(x<0.85) - r/N * H(x>0.85). 

где л число выборок в левом узле, г число выборок в правом узле, и N представляет собой общее количество выборок в узле раскалывается. В нашем примере выше с х> 0,85 в качестве нашего расщепления, то l = 1, r = 4 и N = 5.

Помните расчетную разницу примесей и теперь вычисляйте ее для разделения между 2 и 3 (т. Е. X> 2.3). Повторите это для каждого раскола (т. Е. N-1). Затем выберите раскол, который максимально сведен к минимуму. Это означает, что ваш раскол должен быть более чистым, чем расщепление. Если вы не можете увеличить чистоту для результирующих узлов, тогда не разделяйте его. Вы также можете иметь минимальный размер узла, чтобы не попасть в левый или правый узлы, содержащие только один образец.

Смежные вопросы