Предсказание диабета с использованием Регурессора голосования

Beginner

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

Введение

В этом лабораторном занятии мы будем использовать Регурессор голосования для предсказания прогресса диабета у пациентов. Мы будем использовать три различных регрессора для предсказания данных: Регурессор градиентного бустинга, Случайный лес регрессор и Линейная регрессия. Затем вышеперечисленные 3 регрессора будут использоваться для Регурессора голосования. Наконец, мы построим графики предсказаний, сделанных всеми моделями, для сравнения.

Мы будем работать с датасетом по диабету, который состоит из 10 признаков, собранных из группы пациентов с диабетом. Цель - количественная мера прогресса заболевания через год после базовой отметки.

Советы по работе с ВМ

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

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

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

Импортируем библиотеки

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

import matplotlib.pyplot as plt
from sklearn.datasets import load_diabetes
from sklearn.ensemble import GradientBoostingRegressor
from sklearn.ensemble import RandomForestRegressor
from sklearn.linear_model import LinearRegression
from sklearn.ensemble import VotingRegressor

Загружаем датасет по диабету

Далее мы загрузим датасет по диабету в нашу программу с использованием функции load_diabetes(), предоставляемой scikit - learn. Эта функция возвращает датасет в виде кортежа из двух массивов - одного, содержащего признаковые данные, и другого, содержащего целевые данные. Мы присвоим эти массивы соответственно X и y.

## Load the diabetes dataset
X, y = load_diabetes(return_X_y=True)

Обучение регрессоров

Теперь инициализируем Регурессор градиентного бустинга, Случайный лес регрессор и Линейную регрессию. Затем будем использовать эти 3 регрессора для построения Регурессора голосования.

## Train classifiers
reg1 = GradientBoostingRegressor(random_state=1)
reg2 = RandomForestRegressor(random_state=1)
reg3 = LinearRegression()

reg1.fit(X, y)
reg2.fit(X, y)
reg3.fit(X, y)

ereg = VotingRegressor([("gb", reg1), ("rf", reg2), ("lr", reg3)])
ereg.fit(X, y)

Предсказание

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

## Make predictions
xt = X[:20]

pred1 = reg1.predict(xt)
pred2 = reg2.predict(xt)
pred3 = reg3.predict(xt)
pred4 = ereg.predict(xt)

Построим графики результатов

Наконец, мы визуализируем 20 предсказаний. Красные звёзды показывают среднее предсказание, сделанное Регурессором голосования.

## Plot the results
plt.figure()
plt.plot(pred1, "gd", label="GradientBoostingRegressor")
plt.plot(pred2, "b^", label="RandomForestRegressor")
plt.plot(pred3, "ys", label="LinearRegression")
plt.plot(pred4, "r*", ms=10, label="VotingRegressor")

plt.tick_params(axis="x", which="both", bottom=False, top=False, labelbottom=False)
plt.ylabel("предсказанное")
plt.xlabel("тренировочные образцы")
plt.legend(loc="best")
plt.title("Предсказания регрессоров и их среднее")

plt.show()

Резюме

В этом практическом занятии мы использовали Регурессора голосования для предсказания прогрессирования диабета у пациентов. Для предсказания данных мы использовали три различных регрессора: Регурессор градиентного бустинга, Случайный лес регрессор и Линейную регрессию. Мы также визуализировали предсказания всех моделей для сравнения.