Рубрики
Без рубрики

Дерево решений учится в одной линии Python

[ Простое учебное пособие] Как тренировать дерево решений в одной строке кода Python.

Автор оригинала: Chris.

Деревья решений являются мощными и интуитивно понятными инструментами в вашем приспособлении машины. Большое преимущество деревьев решений состоит в том, что они являются читаемыми человеком – в отличие от большинства других методов обучения машины. Вы можете легко обучить дерево решений и показать его своим руководителям, которым не нужно ничего знать о машинном обучении, чтобы понять, что делает ваша модель. Это особенно отлично для ученых данных, которые часто должны защищать и представлять их результаты для управления. В этой статье я покажу вам, как использовать деревья решений в одной строке кода Python. Кроме того, вы также можете посмотреть следующее видео:

Основы

Вы уже хорошо знаете деревья решений от собственного опыта. Они представляют структурированный способ принятия решений – каждое решение открытие новых филиалов. Отвечая на кучу вопросов, вы, наконец, приземлитесь на рекомендованный результат. Вот пример:

Деревья решений используются для классификационных проблем, таких как «какой субъект должен учиться, учитывая мои интересы?». Вы начинаете сверху. Теперь вы неоднократно отвечаете на вопросы (выберите выбор, который описывает ваши функции Best). Наконец, вы достигаете листового узла дерева. Это рекомендуемый класс на основе вашего выбора функций.

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

Следовательно, порядок узлов решений поддается оптимизации производительности: поместите функции на вершине, которые оказывают высокое влияние на окончательную классификацию. В изучении дерева принятия решений, затем совокупные вопросы, которые не имеют высокого влияния на окончательную классификацию, как показано в следующем графике:

Предположим, что полное дерево решений выглядит как дерево слева. Для любой комбинации функций существует отдельная классификация результата (листья дерева). Однако некоторые функции могут не дать вам никакой дополнительной информации в отношении задачи классификации (например, первый «язык» узел решения в примере). Обучение дерева решений эффективно избавится от этих узлов для причин эффективности. Это называется «обрезание».

Код

## Dependencies
import numpy as np
from sklearn import tree


## Data: student scores in (math, language, creativity) --> study field
X = np.array([[9, 5, 6, "computer science"],
              [1, 8, 1, "literature"],
              [5, 7, 9, "art"]])


## One-liner
Tree = tree.DecisionTreeClassifier().fit(X[:,:-1], X[:,-1])

## Result & puzzle
student_0 = Tree.predict([[8, 6, 5]])
print(student_0)

student_1 = Tree.predict([[3, 7, 9]])
print(student_1)

Угадай вывод этого кода-фрагмента!

Результаты, достижения

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

One-LiLER создает новый объект дерева решений и поезда модель с использованием функции FIT на спущенных данных тренировки (последний столбец – это метка). Внутри он создает три узла, один для каждой особенности математики, языка и творчества.

При прогнозировании класса Student_0,), дерево решений возвращает «информатику». Он узнал, что эта модель функций (высокая, средняя, средняя) является индикатором для первого класса. С другой стороны, когда просили (3, 7, 9), дерево решений предсказывает «искусство», потому что он узнал, что оценка (низкая, средняя, высокая) намекает на третий класс.

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

Куда пойти отсюда?

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

Вы можете тренировать свое собственное дерево решений в одной строке кода. Даже если вы кровавый новичок в Python, вы можете начать сейчас и выяснить детали позже.

Если вы действительно хотите получить опыт в вашем базовом понимании Python Code, присоединитесь к моим бесплатным курсу Python Cheat Lists, где вы вышлем вам еженедельный чит-лист о различных темах в информатике и Python.

Работая в качестве исследователя в распределенных системах, доктор Кристиан Майер нашел свою любовь к учению студентов компьютерных наук.

Чтобы помочь студентам достичь более высоких уровней успеха Python, он основал сайт программирования образования Finxter.com Отказ Он автор популярной книги программирования Python одноклассники (Nostarch 2020), Coauthor of Кофе-брейк Python Серия самооставленных книг, энтузиаста компьютерных наук, Фрилансера и владелец одного из лучших 10 крупнейших Питон блоги по всему миру.

Его страсти пишут, чтение и кодирование. Но его величайшая страсть состоит в том, чтобы служить стремлению кодер через Finxter и помогать им повысить свои навыки. Вы можете присоединиться к его бесплатной академии электронной почты здесь.

Оригинал: “https://blog.finxter.com/decision-tree-learning-in-one-line-python/”