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

Machine LearningMachine LearningBeginner
今すぐ練習

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

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

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

VMのヒント

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

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

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


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL sklearn(("Sklearn")) -.-> sklearn/CoreModelsandAlgorithmsGroup(["Core Models and Algorithms"]) sklearn(("Sklearn")) -.-> sklearn/ModelSelectionandEvaluationGroup(["Model Selection and Evaluation"]) ml(("Machine Learning")) -.-> ml/FrameworkandSoftwareGroup(["Framework and Software"]) sklearn/CoreModelsandAlgorithmsGroup -.-> sklearn/linear_model("Linear Models") sklearn/ModelSelectionandEvaluationGroup -.-> sklearn/inspection("Inspection") ml/FrameworkandSoftwareGroup -.-> ml/sklearn("scikit-learn") subgraph Lab Skills sklearn/linear_model -.-> lab-49169{{"アヤメデータセットにおけるロジスティック回帰分類器"}} sklearn/inspection -.-> lab-49169{{"アヤメデータセットにおけるロジスティック回帰分類器"}} ml/sklearn -.-> lab-49169{{"アヤメデータセットにおけるロジスティック回帰分類器"}} end

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

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