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

Обучение дерева решений – полезное иллюстрированное руководство в Python

Этот учебник покажет вам все, что вам нужно, чтобы начать обучение ваших первых моделей, используя изучение дерева решений в Python. Чтобы помочь вам тщательно понять эту тему, я атаковал его с разных перспектив: текстовые, визуальные и аудиовизуальные. Итак, давайте начнем! Почему деревья решений? Глубокое обучение стало мегатродом в пределах искусственного интеллекта и … Учение дерева принятия решений – полезное иллюстрированное руководство по Python Подробнее »

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

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

Почему деревья решений?

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

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

Многие ML подразделений в крупных компаниях должны быть в состоянии Объясните рассуждения их алгоритмов ML Отказ Глубокие модели обучения не могут сделать это, но именно здесь принятие решений Excel!

Это одна из причин популярности деревьев решений. Деревья решений более удобные и интуитивно понятные. Вы точно знаете, как появились решения. И вы можете даже настроить модель ML, которую вы хотите.

Дерево решений состоит из разветвленных узлов и узлов листьев. Разветвленный узел – это переменная (также называемая Функция ), которая дана в качестве ввода вашей проблемы решений. Для каждого возможного значения этой функции есть Детский узел Отказ

А Листья узла Представляет прогнозируемый класс, учитывая значения функций вдоль пути к корню. Каждый узел листьев имеет связанную вероятность, то есть, как часто мы видели этот конкретный экземпляр (выбор значений объектов) в учебных данных. Кроме того, каждый узел листьев имеет связанный класс или выходное значение, которое является прогнозируемым классом входа, данного узлами ветвления.

Видео Решение деревьев

Я объясняю деревья решений в этом видео:

Если вам нужно обновить свои навыки Python, не стесняйтесь углублению понимания кода Python с веб-приложением Finxter.

Объяснение простого примера

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

Вот пример:

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

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

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

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

Код дерева решений в Python

Вот какой-то код о том, как вы можете запустить дерево решений в Python, используя Sklearn Библиотека для машинного обучения:

## 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) в трех областях математики, язык и творчество. Мы также знаем учебные предметы этих студентов. Например, первый студент высококвалифицирован в математике и изучает компьютерную науку. Второй ученик умеет намного больше, чем в двух других навыках и изучает литературу. Третий студент хорош в творчестве и изучении искусства.

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

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

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

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

Достаточно теории, давайте познакомимся!

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

Практические проекты – это то, как вы обостряете вашу пилу в кодировке!

Вы хотите стать мастером кода, сосредоточившись на практических кодовых проектах, которые фактически зарабатывают вам деньги и решают проблемы для людей?

Затем станьте питоном независимым разработчиком! Это лучший способ приближения к задаче улучшения ваших навыков Python – даже если вы являетесь полным новичком.

Присоединяйтесь к моему бесплатным вебинаре «Как создать свой навык высокого дохода Python» и посмотреть, как я вырос на моем кодированном бизнесе в Интернете и как вы можете, слишком от комфорта вашего собственного дома.

Присоединяйтесь к свободному вебинару сейчас!

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

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

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