Я построил дерево решений, которое принимает каждый образец, взвешенный поровну. Теперь построим дерево решений, которое дает разные веса различным образцам. Единственное изменение, которое мне нужно сделать, это найти ожидаемую энтропию, прежде чем вычислять прирост информации. Я немного запутался, как продолжить, PLZ объяснить ....Взвешивание образцов в дереве решений
Например: Рассмотрим узел, содержащий p положительных узлов и n отрицательных узлов. Таким образом, энтропия узлов будет -p/(p+n)log(p/(p+n)) -n/(p+n)log(n/(p+n))
. Теперь, если раскол найден каким-то образом, разделив родительский узел на два дочерних узла. Предположим, что у ребенка 1 есть p 'позитивы и n' негативы (так что child 2 содержит pp 'и n-n'). Теперь для child 1 мы вычислим энтропию как рассчитано для родителя, и вероятность его достижения равна (p'+n')/(p+n)
. Ожидается, что ожидаемое снижение энтропии составит entropy(parent)-(prob of reaching child1*entropy(child1)+prob of reaching child2*entropy(child2))
. И будет выбран раскол с максимальным усилением информации.
Теперь необходимо выполнить эту же процедуру, когда у нас есть веса для каждого образца. Какие изменения необходимо сделать? Какие изменения необходимо сделать специально для adaboost (только с использованием пней)?
Это просто. Предполагается, что вам нужно вычислить энтропию p_i - части событий в листе. Вычислить их с использованием весов: p_1 = сумма весов событий класса 1/сумма весов всех событий (обратите внимание, когда все веса равны, они совпадают с простыми ожидаемыми вероятностями). – Alleo
@Alleo Означает ли это, как тяжелая работа, например, проблема образца. Так что, если у нас есть m примеров, вначале каждый образец имел бы вес 1/m, поэтому энтропия узлов будет (p/m) log (p/m) + ((mp)/m) log ((mp)/m), где p - число положительных выборок в узле. Не могли бы вы рассказать о полной методике. –
@Alleo Итак, взвешивание приходит в вычислении энтропии текущего узла также или только ожидаемой энтропии .... –