# 特徴量についてのあれこれ ###### tags: `データ分析 機械学習` ### 特徴量とは * 分析すべきデータや対象物の特徴・特性を、定量的に表した数値 * 分析コンペでモデル精度を上げるために最も重要な要素である ### 欠損値の扱い * 欠損値になっている理由 * 値が存在しない * 何らかの意図がある * 値を取得するのに失敗した * GBDTでは欠損値をそのまま取り扱うことができる * しかし、補完した方が精度が上がるケースもある * なので、欠損値のまま扱う場合と、埋める場合の両方を試してみる必要がある ### 欠損値を代表値で埋める * 欠損値を埋めるシンプルな方法は、その変数の代表値で埋めること * 平均値 * 中央値など * 平均の取り方も、単純に全データの平均ではなく、別のカテゴリの変数の値でグループ分けし、そのグループごとの平均を代入する方法も考えられる * カテゴリ変数の場合は、欠損値を1つのカテゴリとみなして、欠損を表すカテゴリを新たに作り置き換える方法や、最も多いカテゴリを代表値として置き換える方法がある ### 欠損値を他の変数から予測する * 欠損している変数が他の変数と関連を持っている場合には、それらの変数から本来の値を予測できる可能性 * 欠損している変数が重要な変数である場合、予測により精緻な補完ができれば精度の工場が見込める 1. 欠損を補完したい変数を目的変数とみなし、その他の変数を特徴量とした補完のためのモデルを作成し、学習を行う 2. 補完したい変数が欠損していないレコードを学習データとし、欠損しているデータを予測対象のデータとする 3. 補完のためのモデルで予測を行なった値で欠損値を埋める * 上記の際に、補完のためのモデルの特徴量に、本来の目的変数を含めない * なぜなら、テストデータの補完ができなくなるから(テストデータには目的変数ないしね、予測対象だから) ### 欠損値から新たな特徴量を作成する * 欠損の発生が完全にランダムに起こることはあまりなく、何らかの理由がある場合が多い * その場合、欠損していること自体に情報があるため、欠損値から特徴量を作ることが有効 * シンプルな方法として、欠損かどうかを表す二値変数