はじめに
この実験では、scikit-learn を使って等張回帰を探索します。等張回帰は、1 次元のデータに非減少関数をフィットさせる手法です。回帰モデルにおいて線形性の仮定を満たさないデータがある場合に役立ちます。
VM のヒント
VM の起動が完了したら、左上隅をクリックしてノートブックタブに切り替え、Jupyter Notebook を使って練習しましょう。
Jupyter Notebook の読み込みには数秒かかる場合があります。Jupyter Notebook の制限により、操作の検証を自動化することはできません。
学習中に問題がある場合は、Labby にお問い合わせください。セッション後にフィードバックを提供してください。すぐに問題を解決いたします。
必要なライブラリをインポートする
まず、sklearn.isotonicモジュールからIsotonicRegressionクラスをインポートしましょう。
from sklearn.isotonic import IsotonicRegression
サンプルデータを作成する
次に、等張回帰モデルにフィットさせるためのサンプルデータを作成する必要があります。この例では、入力データとターゲット値をそれぞれ表す 2 つの配列Xとyを生成します。
import numpy as np
## Generate random input data
np.random.seed(0)
X = np.random.rand(100)
y = 4 * X + np.random.randn(100)
等張回帰モデルをフィットさせる
これで、等張回帰モデルをデータにフィットさせることができます。IsotonicRegressionクラスのインスタンスを作成し、入力データとターゲット値を使ってfitメソッドを呼び出します。
## Fit isotonic regression model
ir = IsotonicRegression()
ir.fit(X, y)
モデルを使って予測する
モデルをフィットさせた後、新しいデータに対する予測を行うことができます。新しい配列X_newを作成し、対応するターゲット値を予測しましょう。
## Create new data for prediction
X_new = np.linspace(0, 1, 100)
y_pred = ir.predict(X_new)
結果を可視化する
最後に、等張回帰モデルの結果を可視化しましょう。元のデータポイントを散布図として、予測値を線としてプロットすることができます。
import matplotlib.pyplot as plt
## Plot the original data and predicted values
plt.scatter(X, y, c='b', label='Original Data')
plt.plot(X_new, y_pred, c='r', label='Isotonic Regression')
plt.xlabel('X')
plt.ylabel('y')
plt.legend()
plt.show()
まとめ
等張回帰は、線形回帰モデルの仮定を満たさない非線形データがある場合に便利な手法です。データに非減少関数をフィットさせることで、等張回帰はデータの潜在的な傾向を捉える逐次線形近似を提供します。この実験では、scikit - learn のIsotonicRegressionクラスを使って等張回帰モデルをフィットさせ、予測を行い、結果を可視化する方法を学びました。