特徴量変換
あなたは銀行のマネージャーとクレジットデータセットについて議論しています。彼女は、最も安全なローン申請は中程度の金額を希望する傾向があり、金額が極端に低すぎたり高すぎたりすると高リスクを示すことが多いと指摘します。つまり、この変数とクラスの間には非線形な関係があるかもしれません。あなたはこの仮説を検証したいと考えています。そこで、この特徴量の非線形変換を作成します。その後、SelectKBest() と事前に読み込まれている chi2() 指標を使って、どちらの特徴量がクラスの予測により適しているかを評価します。
データは credit という pandas の DataFrame として利用可能で、クラスは列 class に含まれています。pandas は pd、numpy は np としてすでに読み込まれています。
この演習はコースの一部です
Python で設計する Machine Learning ワークフロー
演習の手順
- ベクトル内の各値と、そのベクトルの平均値との差の絶対値をとるような数値ベクトルの変換関数を定義してください。
- この変換をデータセットの
credit_amount列に適用し、新しい列diffに保存してください。 chi2()指標を用いて、credit_amountとdiffの2列から1列を選ぶSelectKBest()の特徴量選択器を作成してください。- 結果を確認してください。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Function computing absolute difference from column mean
def abs_diff(x):
return ____(x-____)
# Apply it to the credit amount and store to new column
credit['diff'] = ____
# Create a feature selector with chi2 that picks one feature
sk = ____(chi2, ____)
# Use the selector to pick between credit_amount and diff
sk.fit(____, credit['class'])
# Inspect the results
sk.____()