Машинное обучение Random Forest Regressor (RandomForestRegressor)

Python

Это 16-й день моего участия в августовском испытании обновлений.Подробности о событии:Испытание августовского обновления

Введение в случайную регрессию леса

class sklearn.ensemble.RandomForestRegressor (n_estimators = 'warn', критерий = 'mse', max_depth = None, min_samples_split = 2, min_samples_leaf = 1, min_weight_fraction_leaf = 0,0, max_features = 'auto', max_leaf_nodes = None, min_impurity_decrease = 0,0, min_impurity_split = Нет, bootstrap = True, oob_score = False, n_jobs = None, random_state = None, verbose = 0, warm_start = False)

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

Два важных параметра, свойства и интерфейсы

2.1 criterion

Дерево регрессии измеряет качество ветвей. Существует три поддерживаемых стандарта:

  • «mse» среднеквадратическая ошибка (MSE), разница в среднеквадратической ошибке между родительским и конечным узлами будет использоваться в качестве критерия для выбора признаков, этот метод минимизирует потери L2 за счет использования среднего значения листовых узлов.
  • "friedman_mse" Среднеквадратическая ошибка Фельдмана, использующая модифицированную среднеквадратичную ошибку Фридмана для проблем в потенциальных ответвлениях
  • "mae" MAE (средняя абсолютная ошибка), эта метрика использует медиану листовых узлов, чтобы минимизировать потери L1.

В дереве регрессии MSE является не только мерой качества ветвей, но и показателем регрессии дерева регрессии.При использовании перекрестной проверки в качестве нашей оценки часто выбирается среднеквадратическая ошибка (в дереве классификации этот показатель является точность прогноза, представленная скоростью оценки). Чем меньше MSE в регрессии, тем лучше. Оценка интерфейса дерева регрессии возвращает R-квадрат, а не MSE. Хотя среднеквадратическая ошибка всегда положительна, когда sklearn использует среднеквадратичную ошибку в качестве критерия, он вычисляет «отрицательную среднеквадратичную ошибку» (neg_mean_squared_error). Когда sklearn вычисляет индекс оценки модели, он будет учитывать характер самого индекса.Сама среднеквадратическая ошибка — это ошибка, которая делится на потерю, которая выражается отрицательным числом. Значение реальной среднеквадратичной ошибки MSE на самом деле представляет собой число neg_mean_squared_error за вычетом отрицательного знака. Регрессия случайного леса не имеет интерфейса predict_proba, потому что для регрессии нет вероятности того, что выборка будет отнесена к определенной категории, поэтому нет интерфейса predict_proba.

2.2 Реализация случайного леса

from sklearn.datasets import load_boston
from sklearn.model_selection import cross_val_score
from sklearn.ensemble import RandomForestRegressor

boston=load_boston()
regressor=RandomForestRegressor(n_estimators=120,random_state=200)
cross_val_score(regressor,boston.data,boston.target,cv=10,scoring='neg_mean_squared_error')

image.pngДругая важная роль случайного леса — заполнить пропущенные значения.

Три основные идеи настройки параметров

3.1 Ошибка обобщения

Расскажите о правильном способе настройки параметров. Настройка модели, первый шаг — определить цель: что мы будем делать? Вообще говоря, цель состоит в том, чтобы улучшить определенную метрику оценки модели.Например, для случайных лесов мы хотим повысить точность модели на неизвестных данных (измеряемых оценкой или oob_score_). После нахождения этой цели нам нужно подумать: какие факторы влияют на точность модели на неизвестных данных? В машинном обучении метрика, которую мы используем для измерения точности модели на неизвестных данных, называется ошибкой обобщения. Когда модель плохо работает с неизвестными данными (тестовый набор или данные из коробки), это означает, что степень обобщения модели недостаточна, ошибка обобщения велика, а эффект от модели плохой. На ошибку обобщения влияет структура (сложность) модели. Когда модель слишком сложна, модель будет переобучать, а способности к обобщению будет недостаточно, поэтому ошибка обобщения велика. Когда модель слишком проста, она будет неподходящей, а возможности подгонки будет недостаточной, поэтому ошибка будет большой. Только при правильной сложности модели можно достичь цели минимизации ошибки обобщения.

  • Если модель слишком сложна или слишком проста, ошибка обобщения будет высокой.То, что мы ищем, - это точка равновесия посередине.
  • Если модель слишком сложна, она будет соответствовать, а если модель слишком проста, она будет соответствовать недостаточно.
  • Для модели дерева и интегрированной модели дерева чем глубже дерево, тем больше ветвей и листьев и тем сложнее модель.
  • Целью модели дерева и интегрированной модели дерева является уменьшение сложности модели и перемещение модели влево от изображения.

n_estimators: повышение стационарности, n_estimators↑, не влияет на сложность отдельной модели. max_depth: увеличить или уменьшить, максимальная глубина по умолчанию, то есть наибольшая сложность, настроить параметр max_depth↓ в сторону уменьшения сложности, модель проще, и двигаться влево от изображения min_samples_leaf: есть увеличение или уменьшение, по умолчанию минимальный предел равен 1, то есть наивысшая сложность, настраивайте параметр min_samples_leaf↑ в сторону уменьшения сложности, модель упрощается, и перемещается влево от изображения min_samples_split: есть увеличение и уменьшение, по умолчанию минимальный лимит равен 2, то есть самая высокая сложность, настраивайте параметр min_samples_split↑ в сторону уменьшения сложности, модель упрощается, и перемещается влево от изображения max_features: увеличение или уменьшение, по умолчанию стоит auto, который представляет собой квадратный корень из общего количества признаков, расположенных в средней сложности, вы можете настроить параметр max_features↓ в сторону увеличения сложности или уменьшения сложности, модель проще , изображение сдвинуто влево max_features↑, модель сложнее, изображение сдвинуто вправо критерий: увеличение или уменьшение, обычно используется Джини

3.2 Дисперсия против смещения

Как показано на рисунке ниже, каждая точка представляет собой прогнозируемое значение, полученное базовой оценкой в ​​алгоритме ансамбля. Красная пунктирная линия представляет собой среднее значение этих прогнозируемых значений, а синяя линия показывает, как на самом деле выглядели данные.

  • Смещение: разница между предсказанным значением модели и истинным значением, то есть расстояние от каждой красной точки до синей линии. В ансамблевом алгоритме каждая базовая оценка будет иметь собственное смещение, а смещение ансамблевой оценки является средним значением смещений всех базовых оценок. Чем точнее модель, тем меньше систематическая ошибка. Дисперсия: отражает ошибку между каждым выходным результатом модели и средним уровнем прогнозируемого значения модели, то есть расстоянием от каждой красной точки до красной пунктирной линии, которая измеряет стабильность модели. Чем стабильнее модель, тем ниже дисперсия.

image.pngОтклонение измеряет, точно ли предсказывает модель. Чем меньше отклонение, тем точнее модель. Дисперсия измеряет, близки ли результаты каждого предсказания модели, то есть чем меньше отклонение, тем стабильнее модель. . Хорошая модель должна быть «точной» и «стабильной» для предсказания большинства неизвестных данных. Наша цель при настройке параметров — добиться идеального баланса дисперсии и смещения. Хотя дисперсию и смещение нельзя минимизировать одновременно, их ошибка обобщения может иметь минимум, и мы ищем этот минимум. Для моделей с высокой сложностью следует уменьшить дисперсию, а для относительно простых моделей — смещение. Все базовые оценки случайных лесов имеют низкую систематическую ошибку и высокую дисперсию.

Четыре бэгинга против бустинга

Оценщик:

  • Бэггинг: независимы друг от друга, работают одновременно
  • Метод повышения Повышение: взаимосвязанная, построенная по порядку модель, построенная позже, будет иметь больший вес для выборок, которые модель, построенная ранее, не может предсказать.
  • Набор данных выборки:
  • Бэггинг: Отбор проб с заменой
  • Метод повышения: существует замещающая выборка, но вес данных будет подтвержден, и каждая выборка будет придавать больший вес выборкам, которые склонны к сбою в прогнозировании.
  • Определить результат интегрирования:
  • Бэггинг: средний или меньшинство подчиняется принципу большинства
  • Повышение: средневзвешенное значение, модель, которая работает лучше на тренировочном наборе, будет иметь больший вес.
  • Цель:
  • Метод бэггинга: уменьшите дисперсию и улучшите общую стабильность модели.
  • Метод повышения: уменьшите смещение и улучшите общую точность модели.
  • Когда один оценщик имеет проблему переобучения:
  • Метод бэггинга Бэгинг: может в определенной степени решить проблему переобучения.
  • Метод бустинга Повышение: может усугубить проблемы с переоснащением
  • Когда один оценщик слаб:
  • Бэггинг: не очень полезно
  • Метод повышения Повышение: вероятно, это улучшит производительность модели.
  • Репрезентативный алгоритм:
  • Бэггинг: случайные леса
  • Boosting Boosting: дерево повышения градиента, Adaboost