Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
40_алгоритмов_Python.pdf
Скачиваний:
8
Добавлен:
07.04.2024
Размер:
13.02 Mб
Скачать

230

Глава 7. Традиционные алгоритмы обучения с учителем

Среди алгоритмов регрессии победителем становится...

Теперь сравним производительность трех алгоритмов регрессии, использован­ ных для решения одной и той же задачи при одинаковых данных (табл. 7.6).

Таблица 7.6

Алгоритм

RMSE

 

 

Линейная регрессия

4.36214129677179

 

 

Дерево регрессии

5.2771702288377

 

 

Градиентный бустинг для регрессии

4.034836373089085

 

 

Из таблицы очевидно, что производительность градиентного бустинга является наилучшей, так как имеет самый низкий RMSE. За ним следует линейная регрес­ сия. Алгоритм дерева регрессии показал худшие результаты для данной задачи.

ПРАКТИЧЕСКИЙ ПРИМЕР — КАК ПРЕДСКАЗАТЬ ПОГОДУ

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

Данные для обучения этой модели находятся в файле CSV под названием weather.csv.

1. Прежде всего импортируем данные в виде DataFrame pandas:

import numpy as np import pandas as pd

df = pd.read_csv("weather.csv")

2.Рассмотрим столбцы DataFrame (рис. 7.33).

3.Далее изучим заголовки первых 13 столбцов данных weather.csv (рис. 7.34).

4.Рассмотрим оставшиеся 10 столбцов данных weather.csv (рис. 7.35).

5.Используем x для обозначения входных признаков. Удалим поле Date из списка признаков, так как оно бесполезно в контексте прогнозов. Также от­ кажемся от метки RainTomorrow:

x = df.drop(['Date','RainTomorrow'],axis=1)

Практический пример — как предсказать погоду

231

 

 

 

 

Рис. 7.33

Рис. 7.34

Рис. 7.35

6. Используем y для обозначения метки:

y = df['RainTomorrow']

7. Разделим данные на обучающие и контрольные с помощью train_test_split:

from sklearn.model_selection import train_test_split train_x , train_y ,test_x , test_y = train_test_split(x,y , test_size = 0.2,random_state = 2)

8.Поскольку метка является двоичной переменной, мы обучаем классификатор. Для нашей задачи лучше всего подходит логистическая регрессия. Создадим экземпляр модели логистической регрессии:

model = LogisticRegression()

232

Глава 7. Традиционные алгоритмы обучения с учителем

9. Применим train_x и test_x для обучения модели:

model.fit(train_x , test_x)

10. Как только модель обучена, ее можно использовать для прогнозирования:

predict = model.predict(train_y)

11. Определим долю правильных ответов для обученной модели (рис. 7.36).

Рис. 7.36

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

РЕЗЮМЕ

Эту главу мы начали с изучения основ машинного обучения с учителем. Затем более подробно рассмотрели различные алгоритмы классификации, методы оценки производительности классификаторов и познакомились с регрессион­ ными алгоритмами. Кроме того, научились оценивать производительность изученных­ алгоритмов.

В следующей главе мы обсудим нейронные сети и алгоритмы глубокого обуче­ ния. Мы рассмотрим методы, используемые для обучения нейронной сети, а также различные инструменты и платформы, доступные для ее оценки и раз­ вертывания.