すべての変数を離散化する
連続変数を1つずつ離散化するのではなく、自動で離散化する方が簡単です。Python で全列名のリストを取得するには、次のようにします。
variables = basetable.columns
離散化すべきなのは連続変数だけです。ある変数を離散化するかどうかは、取りうる異なる値の数があらかじめ定めた閾値より多いかどうかで確認できます。
この演習はコースの一部です
Pythonで学ぶ予測分析入門
演習の手順
- ベーステーブルのすべての列名を含むリスト
variablesを作成します。 - リスト
variables内のすべての変数を確認するループを作成します。 - 5 を超える異なる値を持つ変数だけを離散化するように、
if文を完成させます。 qcutメソッドを使って、連続変数を 10 個のビンに分割します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Print the columns in the original basetable
print(basetable.columns)
# Get all the variable names except "target"
variables = list(____.____)
variables.remove("target")
# Loop through all the variables and discretize in 10 bins if there are more than 5 different values
for variable in ____:
if len(basetable.groupby(____))>____:
new_variable = "disc_" + variable
basetable[new_variable] = pd.qcut(basetable[____], ____)
# Print the columns in the new basetable
print(basetable.columns)