Линейные модели в Scikit - Learn

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

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

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

Введение

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

Мы рассмотрим следующие темы:

  • Ordinary Least Squares
  • Ridge Regression
  • Lasso
  • Logistic Regression
  • Stochastic Gradient Descent
  • Perceptron

Начните с Supervised Learning: Regression, если у вас нет опыта в машинном обучении.

Советы по использованию ВМ

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

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

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


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL sklearn(("Sklearn")) -.-> sklearn/CoreModelsandAlgorithmsGroup(["Core Models and Algorithms"]) ml(("Machine Learning")) -.-> ml/FrameworkandSoftwareGroup(["Framework and Software"]) sklearn/CoreModelsandAlgorithmsGroup -.-> sklearn/linear_model("Linear Models") ml/FrameworkandSoftwareGroup -.-> ml/sklearn("scikit-learn") subgraph Lab Skills sklearn/linear_model -.-> lab-71093{{"Линейные модели в Scikit - Learn"}} ml/sklearn -.-> lab-71093{{"Линейные модели в Scikit - Learn"}} end

Ordinary Least Squares

Начните с Supervised Learning: Regression, если у вас нет опыта в машинном обучении.

Ordinary Least Squares (OLS) - это метод линейной регрессии, который минимизирует сумму квадратов разностей между наблюдаемыми целевыми переменными и предсказанными целевыми переменными. Математически, он решает задачу вида:

\min_{w} || X w - y||_2^2

Попробуем обучить модель линейной регрессии с использованием OLS.

from sklearn import linear_model

reg = linear_model.LinearRegression()
X = [[0, 0], [1, 1], [2, 2]]
y = [0, 1, 2]
reg.fit(X, y)

print(reg.coef_)
  • Мы импортируем модуль linear_model из scikit-learn.
  • Создаем экземпляр LinearRegression.
  • Используем метод fit, чтобы обучить модель на тренировочных данных.
  • Выводим коэффициенты линейной модели.

Ridge Regression

Ridge regression - это метод линейной регрессии, который добавляет штрафной член к функционалу целевой функции Ordinary Least Squares. Этот штрафной член помогает уменьшить переобучение, сужая коэффициенты к нулю. Сложность модели может быть контролирована параметром регуляризации.

Построим модель Ridge regression.

reg = linear_model.Ridge(alpha=0.5)
reg.fit([[0, 0], [0, 0], [1, 1]], [0, 0.1, 1])

print(reg.coef_)
  • Создаем экземпляр Ridge с параметром регуляризации alpha, равным 0,5.
  • Используем метод fit, чтобы обучить модель на тренировочных данных.
  • Выводим коэффициенты модели Ridge regression.

Lasso

Lasso - это метод линейной регрессии, который добавляет штрафной член к функционалу целевой функции Ordinary Least Squares. Штрафной член имеет эффект того, что некоторые коэффициенты становятся равными точно нулю, тем самым выполняется отбор признаков. Lasso может быть использован для оценки разреженных моделей.

Построим модель Lasso.

reg = linear_model.Lasso(alpha=0.1)
reg.fit([[0, 0], [1, 1]], [0, 1])

print(reg.coef_)
  • Создаем экземпляр Lasso с параметром регуляризации alpha, равным 0,1.
  • Используем метод fit, чтобы обучить модель на тренировочных данных.
  • Выводим коэффициенты модели Lasso.

Logistic Regression

Logistic regression - это метод классификации, который оценивает вероятности возможных исходов с использованием логистической функции. Он обычно используется для задач бинарной классификации. Logistic regression также может быть расширена для обработки задач многоклассовой классификации.

Построим модель логистической регрессии.

clf = linear_model.LogisticRegression(random_state=0).fit(X, y)
print(clf.coef_)
  • Создаем экземпляр LogisticRegression с параметром random_state, равным 0.
  • Используем метод fit, чтобы обучить модель на тренировочных данных.
  • Выводим коэффициенты модели логистической регрессии.

Stochastic Gradient Descent (SGD)

Stochastic Gradient Descent (SGD) - это простой, но эффективный подход к обучению линейных моделей. Особенно полезен, когда количество примеров и признаков очень велико. SGD обновляет параметры модели с использованием небольшой подмножества тренировочных данных на каждой итерации, что делает его подходящим для онлайн-обучения и обучения за пределами ядра.

Построим модель логистической регрессии с использованием SGD.

clf = linear_model.SGDClassifier(loss="log_loss", max_iter=1000)
clf.fit(X, y)

print(clf.coef_)
  • Создаем экземпляр SGDClassifier с параметром loss, установленным на "log_loss", для выполнения логистической регрессии.
  • Используем метод fit, чтобы обучить модель на тренировочных данных.
  • Выводим коэффициенты модели логистической регрессии, полученной с использованием SGD.

Perceptron

Perceptron - это простой алгоритм линейной классификации, подходящий для大规模ного обучения. Он обновляет свою модель только при ошибках, что делает его более быстрым для обучения, чем стохастический градиентный спуск (SGD) с функцией потерь hinge. Результатные модели также более разреженные.

Построим модель Perceptron.

clf = linear_model.Perceptron(alpha=0.1)
clf.fit(X, y)

print(clf.coef_)
  • Создаем экземпляр Perceptron с параметром регуляризации alpha, равным 0,1.
  • Используем метод fit, чтобы обучить модель на тренировочных данных.
  • Выводим коэффициенты модели Perceptron.

Summary

В этом практическом занятии мы изучили линейные модели в scikit - learn. Мы узнали о методе Ordinary Least Squares, регрессии с гребневым штрафом (ridge regression), Lasso, логистической регрессии, стохастическом градиентном спуске (stochastic gradient descent) и перцептроне (perceptron). Эти модели могут быть использованы как для задач регрессии, так и для задач классификации. Мы также увидели, как обучить эти модели с использованием различных алгоритмов и техник, таких как онлайн - обучение и отбор признаков.