Исследование ансамблевых методов с использованием Scikit-Learn

Beginner

This tutorial is from open-source community. Access the source code

Введение

В этом практическом занятии (лабораторной работе) мы рассмотрим ансамблевые методы с использованием библиотеки scikit-learn. Ансамблевые методы - это техники машинного обучения, которые объединяют несколько моделей для достижения лучшего результата, чем одна отдельная модель. Мы сосредоточимся на двух популярных ансамблевых методах: бэггинге (Bagging) и случайных лесах (Random Forests).

Советы по виртуальной машине (VM)

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

Иногда вам может потребоваться подождать несколько секунд, пока Jupyter Notebook загрузится. Проверка операций не может быть автоматизирована из-за ограничений Jupyter Notebook.

Если у вас возникнут проблемы во время обучения, не стесняйтесь обращаться к Labby. Оставьте отзыв после занятия, и мы оперативно решим проблему для вас.

Импорт зависимостей

Начнем с импорта необходимых зависимостей.

import numpy as np
from sklearn.ensemble import BaggingClassifier, RandomForestClassifier
from sklearn.tree import DecisionTreeClassifier
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split, cross_val_score

Загрузка данных

Далее мы загрузим набор данных ирисов (iris dataset) из библиотеки scikit-learn с использованием функции load_iris.

data = load_iris()
X, y = data.data, data.target

Разделение данных

Мы разделим данные на обучающую и тестовую выборки с использованием функции train_test_split из библиотеки scikit-learn.

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

Обучение бэггинг-классификатора (Bagging Classifier)

Теперь мы обучим бэггинг-классификатор на обучающих данных. Бэггинг-классификатор - это ансамблевый метод, который использует бутстрэп-выборки (bootstrap sampling) для создания нескольких базовых моделей (часто решающих деревьев) и агрегирует их предсказания с помощью голосования большинством.

bagging = BaggingClassifier(DecisionTreeClassifier(), n_estimators=10)
bagging.fit(X_train, y_train)

Оценка бэггинг-классификатора (Bagging Classifier)

Оценим бэггинг-классификатор, вычислив точность (accuracy score) на тестовых данных с использованием метода score.

accuracy = bagging.score(X_test, y_test)
print(f"Bagging Classifier Accuracy: {accuracy}")

Обучение классификатора случайного леса (Random Forest Classifier)

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

random_forest = RandomForestClassifier(n_estimators=10)
random_forest.fit(X_train, y_train)

Оценка классификатора случайного леса (Random Forest Classifier)

Оценим классификатор случайного леса, вычислив точность (accuracy score) на тестовых данных.

accuracy = random_forest.score(X_test, y_test)
print(f"Random Forest Classifier Accuracy: {accuracy}")

Резюме

В этом практическом занятии (лабораторной работе) мы изучили ансамблевые методы с использованием библиотеки scikit-learn. Мы обучили бэггинг-классификатор (Bagging Classifier) и классификатор случайного леса (Random Forest Classifier) на наборе данных ирисов (iris dataset) и оценили их производительность. Ансамблевые методы, такие как бэггинг и случайные леса, могут быть мощными инструментами для улучшения предсказательной способности моделей машинного обучения.