ロジスティック回帰モデル

Machine LearningMachine LearningBeginner
今すぐ練習

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

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

はじめに

この実験では、Pythonの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"]) ml(("Machine Learning")) -.-> ml/FrameworkandSoftwareGroup(["Framework and Software"]) sklearn/CoreModelsandAlgorithmsGroup -.-> sklearn/linear_model("Linear Models") ml/FrameworkandSoftwareGroup -.-> ml/sklearn("scikit-learn") subgraph Lab Skills sklearn/linear_model -.-> lab-49205{{"ロジスティック回帰モデル"}} ml/sklearn -.-> lab-49205{{"ロジスティック回帰モデル"}} end

必要なライブラリをインポートする

最初のステップは、この実験で使用する必要なライブラリをインポートすることです。numpymatplotlibscipy、および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]

分類器を適合させる

データセットを生成した後、scikit - learnのLogisticRegressionを使って分類器を適合させます。

## 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()

まとめ

この実験では、Pythonのscikit - learnライブラリを使ってロジスティック回帰モデルを作成する方法について段階的なガイドを提供しました。必要なライブラリをインポートし、単純なデータセットを生成し、分類器を適合させ、最後に結果をプロットするまでの手順を踏みました。