Random Forest (случайный лес) — это популярный алгоритм машинного обучения, используемый для задач классификации и регрессии. Он основывается на методе ансамбля, который объединяет несколько деревьев решений для улучшения точности и предотвращения переобучения.
Создание подвыборок: Исходные данные многократно случайно выбираются с возвращением (бутстрэппинг), формируя множество подвыборок.
Обучение деревьев: На каждой подвыборке обучается отдельное дерево решений.
При каждом разбиении в дереве случайно выбирается подмножество признаков, что снижает корреляцию между деревьями и увеличивает разнообразие.
Для классификации итоговое предсказание производится путём голосования (большинство голосов) среди всех деревьев. Для регрессии берётся среднее значение предсказаний всех деревьев.
Рассмотрим пример использования Random Forest для задачи классификации с использованием библиотеки
scikit-learn
:from sklearn.ensemble import RandomForestClassifier
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
# Загрузка данных
iris = load_iris()
X, y = iris.data, iris.target
# Разделение данных на обучающую и тестовую выборки
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
# Создание и обучение модели случайного леса
model = RandomForestClassifier(n_estimators=100, random_state=42)
model.fit(X_train, y_train)
# Предсказание на тестовой выборке
y_pred = model.predict(X_test)
# Оценка точности
accuracy = accuracy_score(y_test, y_pred)
print(f"Точность: {accuracy}")
# Оценка важности признаков
importances = model.feature_importances_
print(f"Важность признаков: {importances}")
RandomForestClassifier
для создания модели случайного леса, load_iris
для загрузки данных Iris, train_test_split
для разделения данных и accuracy_score
для оценки точности.Загрузка набора данных Iris и разделение на признаки (X) и целевые значения (y).
Разделение данных на обучающую и тестовую выборки.
Создание модели случайного леса с 100 деревьями и обучение её на обучающей выборке.
Получение предсказаний на тестовой выборке.
Вычисление точности модели на тестовой выборке.
Вычисление важности каждого признака для модели.
Ставь 👍 и забирай 📚 Базу знаний