Реализация алгоритма дерева решений Id3 в Python с нуля - PullRequest
0 голосов
/ 15 декабря 2018

Я только начал изучать машинное обучение. Я изучаю проблемы принятия решений, и я пытался реализовать его на python с нуля.На самом деле, я использовал этот сайт, где был объяснен код Python.(https://www.python -course.eu / Decision_Trees.php )

Но я не могу понять, что означает деталь

        tree = {best_feature:{}}

.Это словарь или часть библиотеки панды?А также, было бы очень полезно, если бы кто-то объяснил эту часть

     parent_node_class = np.unique(data[target_attribute_name])[np.argmax(np.unique(data[target_attribute_name],return_counts=True)[1])]

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

Также, пожалуйста, предложите несколько сайтов, которые имеют более простую реализацию алгоритма.

1 Ответ

0 голосов
/ 04 января 2019

Мой ответ не будет зависеть от языка программирования, который вы используете.

Во-первых, у нас должен быть набор данных, в котором каждое имя столбца представляет атрибут, и, как правило, последний столбец или атрибут является решением.или результат этой строки.

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

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

Ниже будет показано, как каждый атрибут имеет параметры, например: Небо (Солнечно, Дождливо, Облачно)то, что он будет делать, это вычислить информационный выигрыш каждого параметра атрибута, добавляя к другим атрибутам.Чтобы сделать это более понятным, он просматривает набор данных для всех записей, которые, например, имеют: Sunny + все температуры, Sunny + все Rainy.Однако если энтропия этого параметра равна 0, вам не нужно будет задавать больше вопросов.

И на вопрос, который вы задали, ответ заключается в том, что этот атрибут соответствует наилучшей функции.Другими словами, функция с наибольшим выигрышем информации, поэтому та, которая приносит мне наибольшую пользу, спрашивая ее в первую очередь.

...