最初に断っておくと、この手法はリークを起こすため使ってはいけない。データ全体で計算したカテゴリ変数ごとの目的変数の平均値がそのまま特徴量になる。以下のようにカテゴリごとに集計した平均値となる。1.000000元のデータに特徴量を追加する場合、次のようになる。基本的に、同じカテゴリは同じ特徴量になる。特徴量を付与するデータ自体も集計対象としている。そのため、本来は使えない目的変数の情報が説明変数に漏れてしまっている。性能を高く見積もってしまうことになる。一見すると上手くいきそうだけど、このやり方もリークが生じるため使ってはいけない。基本的な考え方は、特徴量を付与する対象となるデータをピンポイントで除いて集計するというもの。計算方法にはいくつかやり方があるけど、ここではあらかじめ集計した値から付与対象のデータを取り除く方法を取る。カテゴリ変数ごとの目的変数の合計とカウントを計算しておく。'count']})上記の集計から、付与する対象のデータだけを除外して計算した平均値を計算する関数を定義する。上記の関数を各行に適用して得られる結果が次の通り。先ほどの結果と違って同じカテゴリの中でも特徴量の値が異なっていることがわかる。float64このやり方のまずさは元の説明変数と結合してみるとわかる。カテゴリの結果は目的変数を反転させた結果となっていることがわかる。これは極端なパターンだけど、これでは目的変数をそのまま説明変数に埋め込んでいるのと変わりがない。しようにも、同じカテゴリのデータがないために生じている。以下では分かりやすさのために足して引いてしている。