Нелинейная регрессия с использованием изотонной регрессии

Machine LearningMachine LearningBeginner
Практиковаться сейчас

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

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этом лабе мы будем изучать изотонную регрессию с использованием scikit-learn. Изотонная регрессия - это техника, которая подгоняет неубывающую функцию к одномерным данным. Она полезна, когда у вас есть данные, которые не удовлетворяют предположению линейности в модели регрессии.

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

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

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

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

Импортируем необходимые библиотеки

Начнем с импорта класса IsotonicRegression из модуля sklearn.isotonic.

from sklearn.isotonic import IsotonicRegression

Создаем примерные данные

Далее нам нужно создать некоторые примерные данные для подгонки нашей модели изотонной регрессии. В этом примере мы сгенерируем два массива, X и y, представляющие входные данные и целевое значение соответственно.

import numpy as np

## Generate random input data
np.random.seed(0)
X = np.random.rand(100)
y = 4 * X + np.random.randn(100)

Настраиваем модель изотонной регрессии

Теперь мы можем настроить модель изотонной регрессии на наших данных. Мы создаем экземпляр класса IsotonicRegression и вызываем метод fit с нашими входными данными и целевыми значениями.

## Fit isotonic regression model
ir = IsotonicRegression()
ir.fit(X, y)

Предсказываем с использованием модели

После настройки модели мы можем использовать ее для предсказания на новых данных. Создадим новый массив X_new и предскажем соответствующие целевые значения.

## Create new data for prediction
X_new = np.linspace(0, 1, 100)
y_pred = ir.predict(X_new)

Визуализируем результаты

Наконец, давайте визуализируем результаты нашей модели изотонной регрессии. Мы можем построить исходные точки данных в виде рассеянных точек, а предсказанные значения в виде линии.

import matplotlib.pyplot as plt

## Plot the original data and predicted values
plt.scatter(X, y, c='b', label='Original Data')
plt.plot(X_new, y_pred, c='r', label='Isotonic Regression')
plt.xlabel('X')
plt.ylabel('y')
plt.legend()
plt.show()

Обзор

Изотонная регрессия - это полезный метод, когда у вас есть нелинейные данные, которые не соответствуют предпосылкам модели линейной регрессии. Настроив неубывающую функцию на данные, изотонная регрессия предоставляет кусочно-линейную аппроксимацию, которая охватывает скрытый тренд в данных. В этом практическом занятии мы узнали, как использовать класс IsotonicRegression из scikit - learn для настройки модели изотонной регрессии, предсказания и визуализации результатов.