はじめに
この実験では、ロジスティック回帰分類器を使って、アヤメデータセットの最初の 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 ライブラリを使ってデータセットを読み込み、前処理し、ロジスティック回帰分類器のインスタンスを作成し、データに適合させました。最後に、散布図上に決定境界を表示しました。