アヤメデータセットにおけるロジスティック回帰分類器

Beginner

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

はじめに

この実験では、ロジスティック回帰分類器を使って、アヤメデータセットの最初の 2 つの特徴量をそのラベルに基づいて分類します。scikit-learn ライブラリを使ってデータセットを読み込み、前処理し、ロジスティック回帰分類器のインスタンスを作成し、データに適合させます。最後に、散布図上に決定境界を表示します。

VM のヒント

VM の起動が完了したら、左上隅をクリックしてノートブックタブに切り替え、Jupyter Notebook を使って練習しましょう。

時々、Jupyter Notebook が読み込み終わるまで数秒待つ必要があります。Jupyter Notebook の制限により、操作の検証は自動化できません。

学習中に問題がある場合は、Labby にお問い合わせください。セッション後にフィードバックを提供してください。すぐに問題を解決いたします。

データセットの読み込みと前処理

scikit-learn ライブラリを使ってアヤメデータセットを読み込みます。このデータセットは、それぞれ 50 個のインスタンスからなる 3 つのクラスが含まれており、各クラスはある種のアヤメ植物を指します。各インスタンスは 4 つの特徴量を持っています。がく片の長さ、がく片の幅、花びらの長さ、花びらの幅。

import matplotlib.pyplot as plt
from sklearn.linear_model import LogisticRegression
from sklearn import datasets
from sklearn.inspection import DecisionBoundaryDisplay

## アヤメデータセットを読み込む
iris = datasets.load_iris()
X = iris.data[:, :2]  ## 最初の 2 つの特徴量のみを取り出します。
Y = iris.target

ロジスティック回帰分類器のインスタンスを作成してデータに適合させる

ロジスティック回帰分類器のインスタンスを作成してデータに適合させます。

## ロジスティック回帰分類器のインスタンスを作成してデータに適合させる。
logreg = LogisticRegression(C=1e5)
logreg.fit(X, Y)

散布図上に決定境界を表示する

scikit-learn ライブラリの DecisionBoundaryDisplay を使って、散布図上に決定境界を表示します。

_, 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,
)

## 学習ポイントもプロットする
plt.scatter(X[:, 0], X[:, 1], c=Y, edgecolors="k", cmap=plt.cm.Paired)

plt.xticks(())
plt.yticks(())

plt.show()

まとめ

この実験では、ロジスティック回帰分類器を使って、アヤメデータセットの最初の 2 つの特徴量をそのラベルに基づいて分類しました。scikit-learn ライブラリを使ってデータセットを読み込み、前処理し、ロジスティック回帰分類器のインスタンスを作成し、データに適合させました。最後に、散布図上に決定境界を表示しました。