Введение
В этом лабораторном занятии мы будем использовать Регурессор голосования для предсказания прогресса диабета у пациентов. Мы будем использовать три различных регрессора для предсказания данных: Регурессор градиентного бустинга, Случайный лес регрессор и Линейная регрессия. Затем вышеперечисленные 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()
Резюме
В этом практическом занятии мы использовали Регурессора голосования для предсказания прогрессирования диабета у пациентов. Для предсказания данных мы использовали три различных регрессора: Регурессор градиентного бустинга, Случайный лес регрессор и Линейную регрессию. Мы также визуализировали предсказания всех моделей для сравнения.