始める無料で始める

すべての変数を離散化する

連続変数を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)
コードを編集して実行