特徴量エンジニアリングの最終日です。
今日は
の確認を行います。
特徴量エンジニアリングにおいて、2日目にカテゴリー変数をdummy化したりしましたが、それらは目的変数がない場合でした。今回は目的となる変数がある場合にカテゴリ変数をあつかうtarget encodingについてです。
基本的に原文に従うと引っ掛かりどころは少ない印象です。途中に出てくるCode
autos.groupby("make")["price"].transform("mean")
は、groupby→transformとつながっています。はじめてみると少し戸惑いますが、groupbyの使用で一般的な形でなので、そのまま覚えてしまって問題ありません。ここではmake-priceの平均を出し、"make_encoded"ラベルの列をつくっています。(平均エンコーディング)これにより、カテゴリ変数だったものを上手にデータとして使えます。
smoothingについては英語を機械翻訳などでしっかりと確認すると特につまづきはないかと思います。
そのあと、MEstimateEncoderがでてきますが、これは上で学んだことを理解したうえで使うscikit-learnの公式実装です。
によると、Target Encoderをよりシンプルにしたもの(ハイパーパラメータがすくない)です
。 mの値が大きいと、smoothingが急激に変化します。