Введение
В этом практическом занятии будет представлен пошаговый гайд по созданию модели логистической регрессии с использованием библиотеки scikit-learn для Python.
Советы по работе с ВМ
После запуска виртуальной машины щелкните в верхнем левом углу, чтобы переключиться на вкладку Ноутбук, чтобы получить доступ к Jupyter Notebook для практики.
Иногда вам может потребоваться подождать несколько секунд, пока Jupyter Notebook не загрузится полностью. Валидация операций не может быть автоматизирована из-за ограничений в Jupyter Notebook.
Если вы сталкиваетесь с проблемами во время обучения, не стесняйтесь обращаться к Labby. Оставьте отзыв после занятия, и мы оперативно решим проблему для вас.
Импортировать необходимые библиотеки
Первым шагом является импорт необходимых библиотек, которые будут использоваться в этом практическом занятии. Мы будем использовать numpy, matplotlib, scipy и sklearn.
import matplotlib.pyplot as plt
import numpy as np
from scipy.special import expit
from sklearn.linear_model import LinearRegression, LogisticRegression
Сгенерировать игрушечный датасет
Следующим шагом является генерация игрушечного датасета, который представляет собой прямую линию с некоторым гауссовским шумом. Мы будем использовать numpy для генерации этого датасета.
## Generate a toy dataset, it's just a straight line with some Gaussian noise:
xmin, xmax = -5, 5
n_samples = 100
np.random.seed(0)
X = np.random.normal(size=n_samples)
y = (X > 0).astype(float)
X[X > 0] *= 4
X += 0.3 * np.random.normal(size=n_samples)
X = X[:, np.newaxis]
Настроить классификатор
После генерации датасета мы настроим классификатор с использованием LogisticRegression из scikit-learn.
## Fit the classifier
clf = LogisticRegression(C=1e5)
clf.fit(X, y)
Построить результаты
Последним шагом является построение результатов. Мы будем использовать matplotlib для создания точечного графика с примерами данных и построения модели логистической регрессии и линейной регрессии.
## and plot the result
plt.figure(1, figsize=(4, 3))
plt.clf()
plt.scatter(X.ravel(), y, label="example data", color="black", zorder=20)
X_test = np.linspace(-5, 10, 300)
loss = expit(X_test * clf.coef_ + clf.intercept_).ravel()
plt.plot(X_test, loss, label="Logistic Regression Model", color="red", linewidth=3)
ols = LinearRegression()
ols.fit(X, y)
plt.plot(
X_test,
ols.coef_ * X_test + ols.intercept_,
label="Linear Regression Model",
linewidth=1,
)
plt.axhline(0.5, color=".5")
plt.ylabel("y")
plt.xlabel("X")
plt.xticks(range(-5, 10))
plt.yticks([0, 0.5, 1])
plt.ylim(-0.25, 1.25)
plt.xlim(-4, 10)
plt.legend(
loc="lower right",
fontsize="small",
)
plt.tight_layout()
plt.show()
Резюме
В этом практическом занятии был представлен пошаговый гайд по созданию модели логистической регрессии с использованием библиотеки scikit-learn для Python. Мы начали с импорта необходимых библиотек, генерации игрушечного датасета, настройки классификатора и, наконец, построения результатов.