Введение
В этом практическом занятии мы будем использовать метод Stacking для комбинирования нескольких оценщиков для получения предсказаний. В этой стратегии некоторые оценщики отдельно настраиваются на части обучающих данных, а конечный оценщик обучается с использованием накопленных предсказаний этих базовых оценщиков. Мы будем использовать набор данных по недвижимости в Амесе для предсказания конечной логарифмической цены домов. Мы будем использовать 3 модели обучения, линейные и нелинейные, и использовать регрессию с риджем для комбинирования их выходных данных. Мы также сравним производительность каждого отдельного прогнозирующего алгоритма, а также производительность комбинации регрессоров.
Советы по использованию ВМ
После запуска ВМ перейдите в левый верхний угол и переключитесь на вкладку Notebook, чтобы приступить к практике в Jupyter Notebook.
Иногда вам может потребоваться подождать несколько секунд, пока Jupyter Notebook не загрузится полностью. Проверка операций не может быть автоматизирована из-за ограничений в Jupyter Notebook.
Если вы столкнетесь с проблемами при обучении, не стесняйтесь обращаться к Labby. Оставьте отзыв после занятия, и мы оперативно решим проблему для вас.
Загрузка набора данных
Мы будем использовать набор данных по недвижимости в Амесе, который был впервые собран Деаном Де Кок и стал более известным после использования в соревновании на Kaggle. Это набор из 1460 жилых домов в Амесе, Айова, каждый из которых описывается 80 характеристиками. Мы будем использовать его для предсказания конечной логарифмической цены домов. В этом примере мы будем использовать только 20 самых интересных характеристик, выбранных с использованием GradientBoostingRegressor(), и ограничить количество записей.
Создание конвейера для предобработки данных
Прежде чем мы сможем использовать набор данных по Амесу, нам по-прежнему нужно выполнить некоторую предобработку. Во - первых, мы выберем категориальные и числовые столбцы набора данных, чтобы построить первый этап конвейера. Затем нам нужно разработать конвейеры предобработки, которые зависят от конечного регрессора. Если конечный регрессор - это линейная модель, нужно выполнить one - hot кодирование категорий. Если конечный регрессор - это модель на основе деревьев, достаточно будет использовать порядковый кодировщик. Кроме того, числовые значения нужно стандартизировать для линейной модели, в то время как исходные числовые данные могут быть обработаны в исходном виде моделью на основе деревьев. Однако обе модели нуждаются в заполнителе для обработки пропущенных значений.
Стекирование предсказателей на одном наборе данных
Теперь мы можем использовать набор данных по недвижимости в Амесе для получения предсказаний. Мы проверяем производительность каждого отдельного предсказателя, а также производительность стека регрессоров. Мы комбинируем 3 модели обучения (линейные и нелинейные) и используем регрессию с риджем для комбинирования их выходных данных. Стекированный регрессор будет комбинировать сильные стороны различных регрессоров. Однако мы также видим, что обучение стекированного регрессора требует гораздо больших вычислительных ресурсов.
Измерение и построение графиков результатов
Мы будем измерять и строить графики результатов стекированного регрессора по сравнению с отдельными предсказателями.
Резюме
В этом практическом занятии мы изучили метод Stacking для комбинирования нескольких оценщиков для получения предсказаний. Мы использовали набор данных по недвижимости в Амесе для предсказания конечной логарифмической цены домов. Мы также узнали, как проектировать конвейеры предобработки, которые зависят от конечного регрессора, и как измерять производительность каждого отдельного предсказателя, а также производительность стека регрессоров.