特徴量エンジニアリング

特徴量エンジニアリングとは

注: 特徴量エンジニアリングを学習する前に、特徴量について理解しておいてください。

「特徴量エンジニアリングはデータサイエンスの芸術的な部分である」– Sergey Yurgenson 氏(Kaggle のデータサイエンティスト世界競技ランキング元 1 位)

特徴量エンジニアリングは、機械学習モデルのパフォーマンスを向上させるために、特徴量とも呼ばれる追加の予測因子を構築してデータセットに追加することです。自動機械学習では、決まったデータセットでの予測モデルの向上の可能性はほぼ実現されています。つまり、モデルの予測精度を高めるための次の最前線は、データセット自体を改善することです。ここで登場するのが、制約のない創造的な特徴量エンジニアリングのプロセスです。最も効果的な特徴量エンジニアリングは、予測モデルの構築の目的であるビジネス上の問題と入手可能なデータソースに関する深く十分な知識に基づきます。これは、問題の意味とデータの意味に向き合う行為なのです。たとえば、債務不履行を予測する場合、地域の失業率や住宅価格の傾向など、債務不履行率の差異に関連すると思われるデータの適切な外部ソースを見つけられれば、予測に使用する予測分析モデルを改善できる可能性があります。

特徴量エンジニアリングが重要である理由

新しい特徴量を作成すると、データをより深く理解できるようになるため、未加工データの場合よりも多くのインサイトを予測モデルから得ることができます。特徴量エンジニアリングは適切に実行すれば非常に価値の高いデータサイエンスのテクニックですが、最も困難なものの 1 つでもあります。

「特徴量を考え出すのは難しく、時間がかかり、専門的な知識が必要です」— Andrew Ng 氏(Baidu 社チーフサイエンティスト、Coursera 社共同会長兼共同創立者、スタンフォード大学非常勤教授)

特徴量エンジニアリングは機械学習の中で最も理解が難しいベストプラクティスの 1 つですので、次に例を示します。今年の感謝祭で売れる七面鳥の数を予測したいとします。米国では感謝祭が七面鳥の消費に主に関係する主要な祝日です。しかし、多くの機械学習アルゴリズムでは、日付は多くの無関係な数値にすぎず、特に意味を持ちません。この解釈上の制限のため、アルゴリズムでは特定の日付に発生するイベントを予測できません。ただし、どの日付が水曜日で、各祝日の前日が何曜日かをアルゴリズムに教える特徴量エンジニアリングを行うと、11 月の第 4 水曜日、つまり感謝祭の前日に当たる頻度が高いイベントをアルゴリズムで正確に予測できるようになります。特徴量エンジニアリングでは、このような「一般常識」の情報を明らかにして、データから得られる実践的なインサイトの数と引き出せる価値を増やします。

特徴量エンジニアリング + DataRobot

DataRobot の自動機械学習プラットフォームでは、基本的なものから高度なものまで、さまざまな特徴量エンジニアリングのテクニックが、数値、カテゴリ、日付の範囲、フリーテキストなどのすべてのタイプのデータに自動的に適用されます。たとえば、数値の予想因子の差または比率を取得したり、カテゴリの予測因子を出現頻度別にエンコードしたり、テキストから個々の単語を抽出して隣接する単語とペアにしたり、日付フィールドから曜日と日付を選択したりできます。手動で行えばわかりにくく困難な大量の作業になりますが、その必要がなくなるため、より的確で高精度な予測が得られます – ただし、このプラットフォームでは必要に応じて手動での特徴量エンジニアリングも可能です。