Jason Brownlee博士は、機械学習のスペシャリストであり、Machine Learning Masteryを創設した研究者でもあります。Brownlee博士によると、"特徴量エンジニアリングとは、背景にある問題を予測モデルに効果的に反映させることを目的に行う、生データから特徴量に変換するプロセスのことをいう。その結果、見たことのないデータに対するモデルの精度が向上する。"とのことです。予測モデル作成のポイントは、データを最大限活用することに尽きるとのことです。
別の言い方をすると、特徴量エンジニアリングとは、ドメイン知識を使って、モデルの精度を向上させるために、より良いもしくはより新しい情報を提供するように、生データを変換するプロセスです。このプロセスでは、モデルのパフォーマンスを向上させるために、データセットに変数(特徴量と呼ばれる)を作成、追加します。これは、重要な考え方です。なぜなら、入力データセットには機械学習アルゴリズムに必要な情報を含む必要があり、最終的には機械学習のプロセス全体を促進するのに役立つからです。
##特徴量エンジニアリングを分解する
機械学習のワークフローには、データの収集、データのクリーニング、特徴量エンジニアリング、モデルの定義、モデルの学習/テスト、予測結果の出力などのステップが含まれます。業界では「アート」とも呼ばれる特徴量エンジニアリングは、良いモデルとそうでないモデルの違いを生み出す要因となります。特徴量エンジニアリングは、機械学習のプロセスには不可欠ですが、万能ではなく、ビジネス上の問題、モデルの種類、業界などによって、必要なステップは異なります。しかし、特徴量エンジニアリングのステップには、以下のようなものがあります。
- 特徴量エンジニアリング前に実施する、データ準備と探索的データ分析
- 特徴量のブレインストーミング/テストと、作成する特徴量の選定
- 特徴量の作成
- 特徴量がモデルでどのように機能するかの確認(影響度合いのテスト)
- 必要に応じて特徴量を最適化し、効果的に機能するまで繰り返し
##特徴量エンジニアリングとDataiku
一般的に手動で行われる特徴量エンジニアリングのプロセスをサポートするために、Dataikuでは、数式、コード、ビジュアルレシピを使用して新しい特徴量を変換・生成できます。モデルを作る際、DataikuのAutoMLは、自動的に欠損値を補い、エンコーディング技術を使用して非数値データを数値に変換し、特徴量の前処理と処理を加速します。
さらに、特徴量生成機能では、モデルに追加でデータを提供するために特徴量の新しいペアワイズの組み合わせをプログラムで作成できますし、一般的な特徴量の削減手法を用いることもできます。それらを一旦実行すると、Dataikuは設定を文書化したり、スコアリングやモデルの再学習に再利用できるように、特徴量エンジニアリングのステップをレシピに保存したりします。
##特徴量エンジニアリングについてさらに知りたい方はこちら(英語)
次の記事では、ユーザーの知識を活用して意味のある特徴量を生成する自動特徴量エンジニアリングの枠組みを、Dataikuの研究者がどのように構築したかご紹介します。