120 практических задач. Джейд Картер
Чтение книги онлайн.

Читать онлайн книгу 120 практических задач - Джейд Картер страница 15

Название: 120 практических задач

Автор: Джейд Картер

Издательство: Автор

Жанр:

Серия:

isbn:

isbn:

СКАЧАТЬ методы объединяют несколько моделей для улучшения точности предсказаний по сравнению с использованием одной модели. В этом примере мы рассмотрим два популярных ансамблевых метода: Bagging и Boosting.

      Ансамблевые методы

      1. Bagging (Bootstrap Aggregating):

      – Использует несколько копий одного и того же алгоритма обучения, обученных на различных подвыборках данных.

      – Пример: Random Forest, который состоит из множества решающих деревьев.

      2. Boosting:

      – Построение серии моделей, каждая из которых исправляет ошибки предыдущей.

      – Пример: AdaBoost, Gradient Boosting.

      Применение ансамблевых методов

      1. Bagging: Random Forest

      Random Forest состоит из множества решающих деревьев, обученных на различных подвыборках данных. Каждое дерево дает свой прогноз, а итоговый прогноз определяется путем голосования (классификация) или усреднения (регрессия).

      ```python

      from sklearn.datasets import load_iris

      from sklearn.model_selection import train_test_split

      from sklearn.ensemble import RandomForestClassifier

      from sklearn.metrics import accuracy_score

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

      data = load_iris()

      X = data.data

      y = data.target

      # Разделение на обучающую и тестовую выборки

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

      # Обучение модели Random Forest

      rf_model = RandomForestClassifier(n_estimators=100, random_state=42)

      rf_model.fit(X_train, y_train)

      # Прогнозирование и оценка точности

      y_pred = rf_model.predict(X_test)

      accuracy = accuracy_score(y_test, y_pred)

      print(f'Точность модели Random Forest: {accuracy:.4f}')

      ```

      2. Boosting: Gradient Boosting

      Gradient Boosting строит серию деревьев, где каждая последующая модель пытается исправить ошибки предыдущих моделей.

      ```python

      from sklearn.ensemble import GradientBoostingClassifier

      # Обучение модели Gradient Boosting

      gb_model = GradientBoostingClassifier(n_estimators=100, random_state=42)

      gb_model.fit(X_train, y_train)

      # Прогнозирование и оценка точности

      y_pred = gb_model.predict(X_test)

      accuracy = accuracy_score(y_test, y_pred)

      print(f'Точность модели Gradient Boosting: {accuracy:.4f}')

      ```

      Ансамблевые методы в комбинации: Voting Classifier

      Voting Classifier объединяет предсказания нескольких моделей и принимает решение на основе голосования.

      ```python

      from sklearn.ensemble import VotingClassifier

      # Создание ансамбля из нескольких моделей

      voting_model = VotingClassifier(

      estimators=[

      ('rf', rf_model),

      ('gb', gb_model)

      ],

      voting='soft' # 'hard' для мажоритарного голосования

      )

      # Обучение ансамблевой модели

      voting_model.fit(X_train, y_train)

      # Прогнозирование и оценка точности

      y_pred = voting_model.predict(X_test)

      accuracy = accuracy_score(y_test, y_pred)

      print(f'Точность ансамблевой модели Voting Classifier: {accuracy:.4f}')

      ```

      Пример с использованием Keras и TensorFlow

      Подготовка данных

      ```python

      import tensorflow as tf

      from tensorflow.keras.datasets import mnist

СКАЧАТЬ