特徴量エンジニアリングについて6つ|前処理と性能を高める手法

特徴量エンジニアリングについて6つ|前処理と性能を高める手法のアイキャッチイメージ

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

特徴量エンジニアリングとは、機械学習を用いた人工知能の開発に不可欠な「人為的にAIの予測精度を上げるため用いる技術」の1つをいいます。

同じ目的で開発したAIでも、予測精度が低ければ利用価値はありません。より利用価値の高いAIを作るためには、人が意識的にAIの精度を上げることができる特徴量エンジニアリングが不可欠です。

データとソフトだけではダメ

集積したデータを統計や機械学習で有用なデータに変換する特徴量エンジニアリングにおいては、データとソフトウェアを揃えただけでは機能しないことがあります。

集積した生のデータには不良値や欠損値が含まれている場合、そのまま扱えない文字や画像データの場合、一見整理された数値データでもそのまま使えない場合などがあります。

成果を出せる技術に変換する手法

特徴量エンジニアリングは、生データのままでは機械学習できない文字・画像・音声などについて、表形式に纏まったパターン認識に変換する技術や研究手法として用いられています。

表形式のデータを用いた特徴量エンジニアリングにおいて、経験的には専門領域のドメイン知識を利用した特徴量が極めて効果的といわれています。

特徴量エンジニアリングについて6つ

精度の高い機械学習モデルを構築するためには、集まったデータを適切な特徴量に変換するための特徴量エンジニアリングが必要になります。

集まったデータの中には音声や画像などの生データがあるため、機械学習ライブラリに引き継ぐ前には測定値などの連続値特徴量やカテゴリなどの離散値特徴量として数値データに変換する必要があります。

特徴量エンジニアリングについて1:表形式のデータを作るための特徴量エンジニアリング

音声・画像・文章などに共通するパターン認識の技術は、表形式を作るための特徴量エンジニアリングがなければ特徴量データとして扱うことができません。

表形式に纏まっている数値データでもそのまま使えるとは限りません。特に音声・画像・文章などの生データに関する特徴量エンジニアリングは、人工知能の開発に欠かすことができない重要な技術です。

特徴量エンジニアリングについて2:表形式のデータからの特徴量エンジニアリング

表形式に纏められたデータでそのまま使える特徴量もありますが、中には特徴量エンジニアリングによって新たな組み合わせの表形式の特徴量に変換しなければ利用できない場合もあります。

汎用的な特徴量として知られている短時間フーリエ変換は例外として、いくら表形式に纏まったデータでも特徴量エンジニアリングが必要な場合があります。

特徴量エンジニアリングについて3:新しい変数を作る特徴量

新しい変数を作る特徴量は、既存のデータ表に新たに列を付加する形で作成されますが、大きく2つの方法によって行なわれます。

新しい変数を作る特徴量の1つは、対数・2乗・標準化・ロジット変数・差分など1つの変数のみから作られるもの、もう1つは積・差・和・比・主成分・距離など2つ以上の変数を使って作るものがあります。

特徴量エンジニアリングについて4:複数のサンプルから作る特徴量

複数のサンプルから作る特徴量は、データのグループごとに平均値や標準偏差を計算することが代表的な例として挙げられます。

複数のサンプルから作る特徴量は、ExcelのピボットテーブルやBIのソフトウェアの主要機能にもなっていますが、区間ごとやグループ変数で集計するためデータ行数が大幅に減少する特徴があります。

特徴量エンジニアリングについて5:深い層での特徴量

特徴量エンジニアリングを使った機械学習は人工知能の一部であり、音声・画像・言語認識などを対象とした深層学習は機械学習の一部といえます。

特徴量エンジニアリングを使った機械学習の問題点は、人の介在なしに自らが「注目点」を判断できない点にあります。深層学習のメリットは、自動的に「何をすべきか」を判断できる点にあります。

特徴量エンジニアリングについて6:究極の機械学習

従来の特徴量エンジニアリングは一定程度の自動化は進んでいますが、根本部分で扱う既知のデータに関する特徴量エンジニアリングは未だ自動化が道半ばです。

特徴量エンジニアリングの自動化が進むと、未知データであっても必要なデータの有無に関わらず、人の介在なしで勝手に人工知能が何かを成し遂げてしまう時代が到来します。

特徴量エンジニアリングの重要性について2つ

機械学習モデルを構築する際の中核的な存在はデータであり、取り扱うデータによって特徴量エンジニアリングのやり方にさまざまな工夫が必要となります。

特徴量エンジニアリングは別に特徴量選択・変数選択・属性選択などとも呼ばれますが、機械学習における予測精度の優劣は、特徴量選択のテクニックによるところが大きいとわれています。

特徴量エンジニアリングの重要性について1:データに対する理解が深まる

特徴量エンジニアリングは、きわめて価値の高いデータサイエンスのテクニックの1つですが、新しい特徴量を作り出すことができればデータに対する理解が深まり、先行きの展望が広がります。

特徴量エンジニアリングは攻めのデータ加工と位置付けられていますが、「いかに量を増やすか」と「いかに質を高めるか」が重要なポイントです。

特徴量エンジニアリングの重要性について2:正しく実行すれば非常に価値が高い

特徴量エンジニアリングの核心的な目的は予測精度の向上にありますが、それ以外にも機械学習時間の短縮・理解の容易化・過学習の防止などの目的があります。

機械学習が正しく実行できなければ、データ内のノイズによって精度向上が図れないばかりか精度を落とすこともあるため、正しく実行してノイズを除去することが重要です。

特徴量エンジニアリングの前処理

特徴量エンジニアリングを行なう場合は、あらかじめ複数のデータベースから必要なデータを抽出し、データを収集するためのプログラムを準備することによって、データのエラー・ノイズ・欠損値などを除去するための前処理が不可欠です。

特徴量エンジニアリングの前処理を怠ると、精度が上がらないばかりでなく間違ったモデルができあがるなどの問題が発生する恐れがあります。

カテゴリ変数を連続値に変換

特徴量エンジニアリングで取り扱うデータはさまざまな種類がありますが、機械学習ライブラリに入力されるデータは数値データしか受け入れられないため、カテゴリ変数を連続値データに変換する必要があります。

特徴量データの種類には、測定値を表わす連続値と区分を表わすカテゴリ値があるため、あらかじめカテゴリ変数を連続値に変換しておく必要があります。

ワンホットエンコーディング

カテゴリ変数を連続値に変換するため、それぞれの特徴量に「0」と「1」の組み合わせて区分するワンホットエンコーディングと呼ばれる方法を採用するのが一般的です。

集められたデータの中には、カテゴリ変数が単なる「整数」で表現しているデータが混在しているため、正しく識別するためにワンホットエンコーディングが必要です。

特徴量エンジニアリングの性能を高める

機械学習を行なう際に連続値データが不足している場合は、特徴量の範囲を幾つかに分割しセクションごとに学習をさせることによって、特徴量エンジニアリングの性能を高めることがあります。

線型モデルにおいて連続値データの特徴量が不足している場合、元のデータをさらに強調表現できるようにビニングを採用することがあります。

ビニングについて

連続値データが不足している線型モデルの特徴量エンジニアリングの精度を高めるためには、入力範囲を幾つかの等間隔に区分して元の特徴量を離散化(ビニング)する方法が有効です。

連続値をとる目的変数を予測するために使用される回帰モデルにおいては、企業などの将来的な売上高トレンドや天気予報の気温予測などに適しています。

特徴量エンジニアリングはエンジニアの奥義!

精度の高い人工知能を実現するためには、いかに優れたデータを集め上手に加工するかが特徴量エンジニアにとって腕の見せどころです。

優秀な機械学習エンジニアにとってデータは命であり、品質の高いデータと有益な情報量で人工知能の性能が決まります。特徴量エンジニアリングの奥義を究めるため、日々の研鑽に励みましょう。

インフラエンジニア専門の転職サイト「FEnetインフラ」

FEnetインフラはサービス開始から10年以上『エンジニアの生涯価値の向上』をミッションに掲げ、多くのエンジニアの就業を支援してきました。

転職をお考えの方は気軽にご登録・ご相談ください。