Введение
В этом практическом занятии (лабораторной работе) мы рассмотрим ансамблевые методы с использованием библиотеки 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) и оценили их производительность. Ансамблевые методы, такие как бэггинг и случайные леса, могут быть мощными инструментами для улучшения предсказательной способности моделей машинного обучения.