Введение
В этом практическом занятии мы будем использовать логистическую регрессию для классификации первых двух признаков датасета Iris на основе их меток. Мы будем использовать библиотеку scikit-learn для загрузки и предобработки датасета, создания экземпляра логистической регрессии и подгонки данных. Наконец, мы покажем границы решения на диаграмме рассеяния.
Советы по использованию ВМ
После запуска виртуальной машины кликните в левом верхнем углу, чтобы переключиться на вкладку Ноутбук и приступить к практике в Jupyter Notebook.
Иногда вам может потребоваться подождать несколько секунд, пока Jupyter Notebook полностью загрузится. Проверка операций не может быть автоматизирована из-за ограничений Jupyter Notebook.
Если вы столкнетесь с проблемами во время обучения, не стесняйтесь обращаться к Labby. Оставьте отзыв после занятия, и мы оперативно решим проблему для вас.
Загрузка датасета и предобработка
Мы будем использовать библиотеку scikit-learn для загрузки датасета Iris. Датасет содержит 3 класса по 50 экземпляров каждый, где каждый класс относится к определенному типу ириса. Каждый экземпляр имеет 4 признака: длину и ширину чашелистика, длину и ширину лепестка.
import matplotlib.pyplot as plt
from sklearn.linear_model import LogisticRegression
from sklearn import datasets
from sklearn.inspection import DecisionBoundaryDisplay
## load the Iris dataset
iris = datasets.load_iris()
X = iris.data[:, :2] ## we only take the first two features.
Y = iris.target
Создание экземпляра логистической регрессии и подгонка данных
Мы создадим экземпляр логистической регрессии и подгоним данные.
## Create an instance of Logistic Regression Classifier and fit the data.
logreg = LogisticRegression(C=1e5)
logreg.fit(X, Y)
Отображение границ решения на диаграмме рассеяния
Мы будем отображать границы решения на диаграмме рассеяния с использованием DecisionBoundaryDisplay из библиотеки scikit-learn.
_, ax = plt.subplots(figsize=(4, 3))
DecisionBoundaryDisplay.from_estimator(
logreg,
X,
cmap=plt.cm.Paired,
ax=ax,
response_method="predict",
plot_method="pcolormesh",
shading="auto",
xlabel="Sepal length",
ylabel="Sepal width",
eps=0.5,
)
## Plot also the training points
plt.scatter(X[:, 0], X[:, 1], c=Y, edgecolors="k", cmap=plt.cm.Paired)
plt.xticks(())
plt.yticks(())
plt.show()
Резюме
В этом практическом занятии мы использовали логистическую регрессию для классификации первых двух признаков датасета Iris на основе их меток. Мы загрузили и предобработали датасет с использованием библиотеки scikit-learn, создали экземпляр логистической регрессии и подобрали данные. Наконец, мы отобразили границы решения на диаграмме рассеяния.