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

Случайный лесной классификатор сделал простой

[Учебник Python] Срок сроки подходов? Случайные леса – это быстрый и грязный метод, чтобы повысить точность вашего прогнозирования в последнюю минуту …

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

Этот учебник вводит вас в интересную технику обучения машины: ансамбль обучения Отказ

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

Это видео дает вам краткое представление в ансамбль в изучении случайных лесов:

Основы

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

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

Как это работает? Вы создаете мета-классификатор, состоящий из нескольких типов или экземпляров основных алгоритмов обучения машины. Другими словами, вы тренируете несколько моделей. Чтобы классифицировать одно наблюдение, вы просите всех моделей классифицировать вход независимо. Теперь вы возвращаете класс, который был возвращен чаще всего, учитывая ваш вклад как «мета-прогноз». Это окончательный выход алгоритма обучения ансамбля.

Случайные леса – это особый тип алгоритмов обучения ансамбля. Они сосредоточены на изучении дерева решений. Лес состоит из многих деревьев. Точно так же случайный лес состоит из многих деревьев решений.

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

Вот как работает прогноз для обученного случайного леса:

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

Код

Давайте придерживаться этого примера классификации поля исследования на основе уровня квалификации студента в трех разных областях (математика, язык, творчество). Вы можете подумать, что реализация метода обучения ансамбля осложняется в Python. Но это не – благодаря всеобъемлющему Scikit-Learn Библиотека :

## Dependencies
import numpy as np
from sklearn.ensemble import RandomForestClassifier



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


## One-liner
Forest = RandomForestClassifier(n_estimators=10).fit(X[:,:-1], X[:,-1])

## Result & puzzle
students = Forest.predict([[8, 6, 5],
                         [3, 7, 9],
                         [2, 2, 1]])
print(students)

Возьмите предположение: какая вывод этого кода фрагмент?

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

После инициализации меченых данных обучения код создает случайное лес с использованием конструктора на классе RandomForestClassifier с одним параметром N_EStimators, который определяет количество деревьев в лесу.

Далее мы заполняем модель, которая приводит к предыдущей инициализации (пустой лес), вызывая функцию FIT (). С этой целью данные входных тренировок состоят из всех, кроме последнего столбца массива X, в то время как этикетки данных тренировки определены в последнем столбце. Как и в предыдущих примерах, мы используем нарезку для извлечения соответствующих колонн из массива данных X.

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

Вот результат головоломки кода:

## Result & puzzle
students = Forest.predict([[8, 6, 5],
                         [3, 7, 9],
                         [2, 2, 1]])
print(students)
# ['computer science' 'art' 'art']

Обратите внимание, что результат по-прежнему не детерминирован (что означает, что результат может быть отличным для разных выполнений кода), поскольку случайный алгоритм леса опирается на генератор случайных чисел, который возвращает разные номера в разные точки во времени. Вы можете сделать этот вызов детерминированным, используя аргумент Random_State.

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

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

Если вы чувствуете, что вам нужно обновить свои навыки Python, загрузите свои читы Python Cheat (и получите регулярно новые чит-листы), подписываясь на мой список адресов электронной почты.

Наконец, выравнивайте свои навыки с моей новой системой обучения Python на основе решения номинальных головоломок Python Code. Вы ничего не делаете, кроме как решение Python Pazzles и соблюдайте, как улучшается ваш рейтинг Python.

Проверьте свои навыки кодирования, решая пазлы Python сейчас!

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

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

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