次に入れる最適な変数を選ぶ
前向き逐次(forward stepwise)変数選択は、空の変数集合から始め、各ステップで次に最適な変数を追加していく方法です。この手順を実装するために、便利な関数を2つ用意しました。
auc 関数は、与えられた変数集合 variables を説明変数とするモデルの AUC を計算します。next_best 関数は、次のステップで変数リストに追加すべき変数を計算します。
この演習では、これらの関数の目的をより深く理解するために実験します。与えられた変数集合の AUC を計算し、次に追加すべき変数を求め、それが実際に最適な AUC につながることを確認します。
この演習はコースの一部です
Pythonで学ぶ予測分析入門
演習の手順
auc関数はすでに実装済みです。"max_gift"、"mean_gift"、"min_gift"を説明変数とするモデルの AUC を計算してください。これらの変数をリストにして、auc関数の最初の引数として渡します。next_best関数はすでに実装済みです。現在"max_gift"、"mean_gift"、"min_gift"がモデルに含まれており、候補となる次の説明変数が"age"と"gender_F"のとき、次に追加すべき変数を計算してください。next_best関数の最初の引数は現在の変数のリスト、2番目の引数は候補となる説明変数のリストです。"max_gift"、"mean_gift"、"min_gift"、"age"を説明変数とするモデルの AUC を計算してください。"max_gift"、"mean_gift"、"min_gift"、"gender_F"を説明変数とするモデルの AUC を計算してください。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Calculate the AUC of a model that uses "max_gift", "mean_gift" and "min_gift" as predictors
auc_current = ____([____, ____, ____], ["target"], basetable)
print(round(auc_current,4))
# Calculate which variable among "age" and "gender_F" should be added to the variables "max_gift", "mean_gift" and "min_gift"
next_variable = ____([____, ____, ____], [____, ____], ["target"], basetable)
print(next_variable)
# Calculate the AUC of a model that uses "max_gift", "mean_gift", "min_gift" and "age" as predictors
auc_current_age = ____([____, ____, ____, ____], ["target"], basetable)
print(round(auc_current_age,4))
# Calculate the AUC of a model that uses "max_gift", "mean_gift", "min_gift" and "gender_F" as predictors
auc_current_gender_F = ____([____], ["target"], basetable)
print(round(auc_current_gender_F,4))