はじめに

機械学習はデータを数理モデルに適合させることでパターンの発見や未知の予測を行う技術です。機械学習に使われるこれらのモデルでは、入力として特徴量を用います。特徴量(feature)とは、データの際立った側面を数値で表現したものです。機械学習プロジェクトの一般的な流れでは、まずデータから特徴量を抽出し、その特徴量を使ってモデリングを行います。したがって、特徴量はデータとモデルをつなぐ重要な役割を担います。与えられた課題を機械学習モデルを通じて解決するためには、そのモデルに適した特徴量が必要になります。生データから機械学習モデルに適した特徴量を抽出する作業は特徴量エンジニアリング(feature engineering)と呼ばれます。データから適切な特徴量が抽出できれば、モデリングの難しさが緩和され、品質の高い結果を得られるようになります。そのため、特徴量エンジニアリングは機械学習を行う上で重要なステップです。機械学習プロジェクトでは、その作業時間の大部分が、データクリーニングと特徴量エンジニアリングに費やされると言われます。これは実際に機械学習を行なっている人の多くが同意するでしょう。しかし、その重要性にもかかわらず、特徴量エンジニアリングについていまだ十分な議論がなされているとは言えません。その理由はおそらく、優れた特徴量の定義には、データとモデルの両方を考慮しなければならないためです。機械学習プロジェクトで扱われるデータとモデルは非常に多様であるため、どんなプロジェクトでも通用するように特徴量エンジニアリングを一般化することは困難なのです。

しかし、特徴量エンジニアリングは場当たり的に行って良い作業ではありません。そこには機械学習プロジェクトの現場でベストプラクティスとして用いられる原則が存在します。本書では、データから優れた特徴量をどうやって作るかという問題について、各章で1つずつ説明していきます。例えば、テキストデータや画像データを数値特徴量として表現する方法、データから自動的に大量の特徴量が生成される場合に適切な数に削減する方法、正規化をいつどのように行うかなどについて説明します。それぞれの章は、特徴量エンジニアリング技術の各トピックに対する入門編となっています。各章で扱うテーマはバラバラですが、そこには共通する原則を見つけることができます。したがって、本書は1冊の長編小説ではなく、互いに関連しあう短編小説の集まりと考えると良いでしょう。 ...

Get 機械学習のための特徴量エンジニアリング ―その原理とPythonによる実践 now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.