Привет! Мы все готовы узнать что-нибудь о методах ансамбля ?!
Ха-ха-ха! Мы уверены! Что ж, я предполагаю, что вы, ребята, имеете некоторый фон или предварительные знания в области базовой классификации интеллектуального анализа данных, алгоритмов кластеризации и регрессии, таких как наивный байесовский метод, деревья решений, KNN, K-средние и т. Д.

Итак, без лишних слов, приступим к делу.

Методы ансамбля говорят об объединении прогнозов из нескольких «базовых оценок». Теперь этот базовый предсказатель может быть классификатором ближайшего соседа, деревом решений или, я полагаю, практически чем угодно, находящимся под солнцем! (Шучу! Разве это не будет здорово ?!)

Существует 2 широких типа ансамблевых методов:

  1. Методы усреднения. Да, вы уже догадались! Они строят оценщики независимо, а затем вычисляют средний балл по этим оценщикам и предсказывают это! Например: случайные леса
  2. Методы повышения. Здесь мы последовательно строим оценки и пытаемся уменьшить смещение комбинированной оценки. Мы пытаемся объединить несколько слабых моделей для создания мощного ансамбля. Например: AdaBoost, Gradient Tree Boosting.

СЛУЧАЙНЫЕ ЛЕСА

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

Вы можете спросить, почему они называются случайными? Потому что при разделении узла во время построения Дерева выбранное разделение больше не является лучшим среди ВСЕХ функций. Вместо этого выбранное разбиение является лучшим разбиением среди СЛУЧАЙНОГО подмножества функций.

Что нужно иметь в виду о RF: -

  1. Уклон леса увеличивается
  2. Но за счет усреднения его дисперсия уменьшается.

В целом за счет уменьшения дисперсии мы получаем лучшую модель.

Чтобы запустить случайный лес, убедитесь, что у вас есть научный комплект, который работает вместе с numpy. Вы можете протестировать следующий код, чтобы увидеть, как RF встроен в python всего за 6 строк кода !!

from sklearn.model_selection import cross_val_score
from sklearn.ensemble import RandomForestClassifier
classifier = RandomForestClassifier (n_estimators = 10, max_depth = None, min_samples_split = 2, random_state = 0)
scores = cross_val_scores (cross_val_score) X, y)
scores.mean ()

Здесь n_estimators - количество деревьев решений, которые будут использоваться (# деревьев в лесу). Чем больше, тем веселее: P LOL Шучу! Чем больше, тем больше временная сложность, лучше дисперсия. Хотя очевидно, что после критического количества деревьев результаты перестанут улучшаться.

Сдаю экзамены в конце семестра с понедельника, 11 декабря 17, так что пора (хотя это было весело! :)). Скоро напишу пост на AdaBoost и GradientTreeBoosting!

Пожалуйста, поставьте лайк и поделитесь, если вам это понравилось! : D