Дисперсия обычного наименьших квадратов и Ridge - регрессии

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

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

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

Введение

В этом лабораторном занятии мы будем использовать библиотеку Python scikit - learn для исследования различий между Ordinary Least Squares (OLS) и Ridge Regression. Мы изучим, как эти два метода линейной регрессии справляются с шумом в данных и в чем они различаются в своих прогнозах.

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

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

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

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


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL ml(("Machine Learning")) -.-> ml/FrameworkandSoftwareGroup(["Framework and Software"]) ml/FrameworkandSoftwareGroup -.-> ml/sklearn("scikit-learn") subgraph Lab Skills ml/sklearn -.-> lab-49230{{"Дисперсия обычного наименьших квадратов и Ridge - регрессии"}} end

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

В этом шаге мы импортируем необходимые библиотеки Python.

import numpy as np
import matplotlib.pyplot as plt
from sklearn import linear_model

Создание данных

В этом шаге мы создадим данные, которые будем использовать для анализа.

X_train = np.c_[0.5, 1].T
y_train = [0.5, 1]
X_test = np.c_[0, 2].T

Определение классификаторов

В этом шаге мы определим классификаторы OLS и Ridge Regression.

classifiers = dict(
    ols=linear_model.LinearRegression(), ridge=linear_model.Ridge(alpha=0.1)
)

Визуализация результатов

В этом шаге мы визуализируем результаты нашего анализа.

for name, clf in classifiers.items():
    fig, ax = plt.subplots(figsize=(4, 3))

    for _ in range(6):
        this_X = 0.1 * np.random.normal(size=(2, 1)) + X_train
        clf.fit(this_X, y_train)

        ax.plot(X_test, clf.predict(X_test), color="gray")
        ax.scatter(this_X, y_train, s=3, c="gray", marker="o", zorder=10)

    clf.fit(X_train, y_train)
    ax.plot(X_test, clf.predict(X_test), linewidth=2, color="blue")
    ax.scatter(X_train, y_train, s=30, c="red", marker="+", zorder=10)

    ax.set_title(name)
    ax.set_xlim(0, 2)
    ax.set_ylim((0, 1.6))
    ax.set_xlabel("X")
    ax.set_ylabel("y")

    fig.tight_layout()

plt.show()

Резюме

В этом практическом занятии мы узнали, как использовать библиотеку Python scikit - learn для исследования различий между Ordinary Least Squares (OLS) и Ridge Regression. Мы увидели, как эти два метода линейной регрессии справляются с шумом в данных и как они различаются в своих прогнозах. Мы также визуализировали результаты нашего анализа.