Pythonのsklearnメソッド calibration

scikit-learn(sklearn)のcalibrationモジュールは、分類モデルの確率予測のキャリブレーション(調整)に関連するクラスと関数を提供します。モデルの確率予測をキャリブレーションすることは、モデルの出力確率が実際の事象の確率に対して適切に調整されるようにするプロセスです。これは、特に二項分類モデルで有用で、モデルの出力確率を信頼性の高い確率として使用する場合に役立ちます。

sklearn.calibrationモジュールにはいくつかの重要なクラスが含まれています。以下にいくつか例を示します:

  1. CalibratedClassifierCV: このクラスは、任意の分類モデルを受け取り、確率予測をキャリブレーションするためのクラスです。通常、ロジスティック回帰やプラットスケーリングを用いて確率をキャリブレーションします。

  2. CalibrationDisplay: モデルの確率予測を可視化するためのクラスです。plot_calibration_curve関数などで使用されます。

  3. calibration_curve: モデルの確率予測と真のクラスラベルとの間のキャリブレーションカーブを計算するための関数です。これにより、モデルのキャリブレーションの品質を評価できます。

  4. IsotonicRegression: イソトニック回帰を実行し、モデルの確率予測を調整するためのクラスです。非線形なキャリブレーション方法です。

以下は、CalibratedClassifierCVを使用して分類モデルの確率予測をキャリブレーションする基本的な例です:

python
from sklearn.calibration import CalibratedClassifierCV from sklearn.model_selection import train_test_split from sklearn.datasets import load_iris from sklearn.svm import SVC # データをロード data = load_iris() X = data.data y = (data.target == 0).astype(int) # 3つのクラスのうち、クラス0を対象とする # データをトレーニングセットとテストセットに分割 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) # ベースモデルを作成 base_model = SVC(probability=True) # CalibratedClassifierCVを使用してキャリブレーションを実行 calibrated_model = CalibratedClassifierCV(base_model, method='sigmoid', cv='prefit') calibrated_model.fit(X_train, y_train) # テストデータで確率予測を取得 probabilities = calibrated_model.predict_proba(X_test) # キャリブレーション後の確率を使用して予測を行う predicted_classes = calibrated_model.predict(X_test)

この例では、SVC(Support Vector Classifier)をベースモデルとして使用し、CalibratedClassifierCVを介して確率予測をキャリブレーションしています。キャリブレーションにはmethodパラメータを使用して異なる方法を選択できます(’sigmoid’や’isotonic’など)。

キャリブレーションは、モデルの確率予測を実際の事象の確率に近づけ、信頼性を向上させるのに役立ちます。キャリブレーションは、特に確率予測を信頼性の高い決定に使用する場合に重要です。

未分類

Posted by ぼっち