Предположим, что после некоторых расколов у вас осталось две записи с 3 признаками / атрибутами (последний столбец - метка истинности)
1 1 1 2
2 2 2 1
Теперь вы собираетесь выбрать следующую лучшую функцию для разделения, поэтому вы вызываете этот метод remainder(examples, attribute)
как часть выбора, который внутренне вызывает nk1, pk1 = pk_nk(1, examples, attribute)
.
Значение, возвращаемое pk_nk
для вышеупомянутых строк и объектов, будет 0, 0
, что приведет к исключению деления на ноль для e1 = b(pk1/(pk1 + nk1))
. Это действительный сценарий, основанный на том, как вы кодировали DT, и вы должны обрабатывать дело.