始める無料で始める

AUC曲線を作成する

前向き逐次変数選択では、予測子集合に変数を最適な順序で追加していきます。どこで変数の追加を打ち切るかを判断するために、学習用とテスト用のAUC曲線を作成できます。これらの曲線は、モデルに最初の1個、最初の2個、最初の3個…という順に変数を入れたときの学習AUCとテストAUCをプロットします。

この演習では、これらのAUC曲線をプロットする方法を学びます。AUCを計算するメソッド auc_train_test は用意済みで、次のように使えます。

auc_train, auc_test = auc_train_test(variables, target, train, test)

ここで、variables はロジスティック回帰モデルで使用する変数集合、target は目的変数名を含むリスト、traintest はそれぞれ学習用とテスト用のベーステーブルです。

前向き逐次法で並べた変数はリスト variables に入っています。コンソールで中身を確認できます。さらに、次の3つの空リストが用意されています。

  • auc_values_train: 各反復におけるモデルの学習AUC値を格納します
  • auc_values_test: 各反復におけるモデルのテストAUC値を格納します
  • variables_evaluate: 各反復で評価する変数を格納します

この演習はコースの一部です

Pythonで学ぶ予測分析入門

コースを見る

演習の手順

  • 変数を順に反復処理します。
  • 各反復で、variables の次の変数を variables_evaluate に追加します。
  • 各反復で、auc_train_test メソッドを使って学習AUCとテストAUCを計算します。DataFrame の traintest には、それぞれ学習データとテストデータが入っています。
  • 各反復で、計算した値を auc_values_trainauc_values_test に追加します

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

# Keep track of train and test AUC values
auc_values_train = []
auc_values_test = []
variables_evaluate = []

# Iterate over the variables in variables
for v in ____:
  
    # Add the variable
    variables_evaluate.append(____)
    
    # Calculate the train and test AUC of this set of variables
    auc_train, auc_test = ____(____, ["target"], ____, ____)
    
    # Append the values to the lists
    auc_values_train.append(____)
    auc_values_test.append(____)
    
# Make plot of the AUC values
import matplotlib.pyplot as plt
import numpy as np

x = np.array(range(0,len(auc_values_train)))
y_train = np.array(auc_values_train)
y_test = np.array(auc_values_test)
plt.xticks(x, variables, rotation = 90)
plt.plot(x,y_train)
plt.plot(x,y_test)
plt.ylim((0.6, 0.8))
plt.show()
コードを編集して実行