多くの企業が膨大な量のデータに圧倒されており、こうしたデータは手つかずのまま、何の価値も
生み出していないという現状があります。特徴量エンジニアリングを用いることで、データをより良く理解し、有益な情報に変えることが
可能になります。
特徴量エンジニアリングは、データを理解・解釈しやすいように変換する特徴量を生成することで、データへの
ドメイン知識(業務知識)を活かせるようにするプロセスを指し、通常は、データ収集やデータクレンジングプロセスの後、
もしくは機械学習モデルのトレーニング前に行われます。
特徴量エンジニアリングは、一般的に以下のようなML(機械学習)の問題解決のワークフローに含まれます。
- データの収集
- データのクレンジング
- 特徴量エンジニアリングの実行
- モデルの定義
- モデルのトレーニング
- テストの実行
- 結果の予測
人工知能(AI)で使用される情報のほとんどは、データのテーブル(表)に含まれ、各行が観察で、列が特徴量となります。
残念ながら、こうしたデータは複雑な上に関連性がなく、欠落や重複も頻繁に見受けられます。
特徴量エンジニアリングは、問題の本質をより良く表現できるようにデータを変換するプロセスを
提供します。そのために、データをカテゴリに分類して有限の結果をよりよく反映させたり、欠損値を適切な推定値に
置き換えたりすることで、データをより利用しやすくします。
特徴量エンジニアリングによってデータを変換するプロセスは、科学的なだけでなくクリエイティブな側面も含まれます。たとえば、
ある企業が不正行為の発生を予測したいと考えているとします。タイムスタンプ付きの生の取引データをAIのソフトウェアに入力することも
できますが、その結果は意味がなく、実用的でない可能性があります。しかし、ビジネスや業務に関する専門知識が少しあれば、データサイエンティストの役に立ちます。例えば、
小売業に関する多少の知識があれば、小売業の活動が週末に活発になることを考慮して、平日と週末を区別する新しい機能を
作成することができますこのように人間の手でコンテキストを加えることで、
モデルによる異常の検出が容易になり、擬陽性も減少させることが可能になります。これが特徴量エンジニアリングのクリエイティブな一面です。
適切な特徴量エンジニアリングは、機械学習のアルゴリズムの予測能力を向上させます。これは、
生データから特徴量を抽出して機械学習に提供し、機械学習のプロセスを促進させることで実現します。しかし、こうしたステップは、
適切なデータモデルと不適切なデータモデルの分かれ目にもなり得ます。
特徴量エンジニアリングは、次のようなステップから構成されます。
- モデルの新しい特徴量について意見を出し合う
- 特徴量を作成する
- これらの特徴量がモデルでどの程度効率的に機能するかをテストする
- 必要に応じて特徴量を調整、反復し、場合によっては振り出しに戻す
- 特徴量をモデルとシームレスに連携させる
特徴量エンジニアリングは、1回限りで完結するステップではなく、データサイエンスプロセス全体で、データをクリーンにしたり、
既存の結果を強化するために使用されます。特徴量エンジニアリングは、データが機械学習モデルで使用できる形になり、
そのモデルよって実用的な結果を出力できるようになるまで、データの選択、モデルの評価、再評価の各ステップにおいて
利用できる相互反復的なプロセスだと言えます。
機械学習における特徴量エンジニアリングの活用例
機械学習のアルゴリズムは、提供されたサンプルデータを基に、特定の問題に対するソリューションを学習します。特徴量エンジニアリングは、
モデルが特定の問題に対する解決策を学習できるように、サンプルデータを最適に表現できるように整理するのに
役立ちます。
特徴量エンジニアリングにおいては、データの表現や関係が重要であり、一般的なエンジニアリング戦略としては次の4つがあります。
– 不均衡なデータのリサンプリング
– 新しい特徴量の作成
– 欠損値の管理
– 外れ値の検出
バランスのとれていないデータの再サンプリング
生のデータは、アンバランスになりがちですが、こうした問題のほとんどは検証テクノロジーで簡単に解決できます。
バランスがあまりにも悪く、結果に影響が生じることもありますが、特徴量エンジニアリングでは、少数グループのサンプルを
人工的に生成することで、そのような問題を解決できます。こうしたサンプルを用いることで、データのばらつきや不確実性に対処できるように
なります。
新しい特徴量を作成
質問の内容に合わせてデータを別の形式で記述し直すことで、新しい特徴量を簡単に作成できます。例えば、
ある会社が設定した電車の出発時刻と到着時刻を、合計所要時間に変更することができます。タイムスタンプを1つの
新たな特徴量に組み合わせることで、ビジネスニーズに合わせてアルゴリズムを調整し、より実用的な結果を得られるようになります。
ユーザーは、2つの適度に便利な特徴量や、単独では有用ではない2つの特徴量を組み合わせることで、機械の学習効率の向上に役立つ1つの
特徴量を作り出すことができます。たとえば医療現場では、さまざまな危険因子が存在しますが、
それら単独で医療事故の可能性を示すことはできません。つまり、年齢、高血圧、喫煙者であることは、
それぞれ単独では脳卒中の発症を予測できませんが、これら3つの要因を組み合わせることで予測が可能になります。
特徴量の選択時に、依存する特徴量に最も関連性の高い適切な独立した特徴量を選び、
これらを組み合わせることで、最適な予測モデルを実現できます。ヒートマップ、単一変数の選択、
ExtraTreesClassifier手法は、適切な関係性をもつ特徴量を識別するために良く利用されています。
また、バケットを作成する際にも、特徴量エンジニアリングにより、関連するデータを適切なバケットに正確にマッピングする
ことができます。その際に不要な特徴量やノイズを取り除き、モデルがよりスムーズに機能するようにすることも
できます。
欠落値の管理
データの欠落値は頻繁に起こる問題ですが、データクレンジングプロセス中に適切に解決する手法が
多数あります。
また、既存のデータを利用して欠落値を正確に再現し、データセットを完成させることで、モデルがデータをより有効に
活用できるようにする高度なエンジニアリング技術もあります。
その一つの手法に、データの削除があります。この手法では、特徴量エンジニアリングにおいて、欠落値を含むサンプルを削除します。少数の
サンプルのみが不完全である場合に最も効果的な手法ですが、データセットに含まれる欠損値の数が増えるほどに、重大な問題を
引き起こす可能性が高まります。
もう一つの手法として、欠落しているデータを平均値または中央値などの変数に置き換える方法があります。このアプローチでは、
欠落データの問題を解決できるものの、結果の精度を低下させる恐れがあります。もしデータがガウス分布であれば、欠落している結果(モデル内のモデル)は
正規分布に一致するように入力される可能性があります。
欠落値を管理するための手法は他にもありますが、一般的なアプローチは、上記のデータの削除、あるいは推定値の入力のいずれかと
なります。
外れ値の検出
外れ値の検出は、データのクレンジングやエンジニアリングにおける問題を解消するもう1つのプロセスです。データクレンジングのステップにおいて、AIが
シンプルに外れ値を取り除き、それがエラーやデータに関係のないサンプルであることを示すことがありますが、こうした手順において、
重要な情報までが失われてしまう可能性があります。
データサイエンスにおいて、モデルのパフォーマンスに影響を与える主な要因は、データの取り扱いとデータ処理です。適切な
データ処理が行われていないモデルの精度は約70%となりますが、同じモデルに特徴量エンジニアリングを適用することで、
パフォーマンスを大きく向上させられるようになります。
しかし、特徴量エンジニアリングにおいても、データサイエンティストが、データが論理的であるように閾値を特定するためには、
データをしっかりと理解することが不可欠です。例えばお客様が100歳である可能性はありますが、1000歳のお客様は絶対に
存在しません。機械はこうした違いを見落とすかもしれませんが、データサイエンティストであれば、入力ミスが
原因で余分なゼロが含まれた可能性があると判断できます。
機械学習における特徴量エンジニアリングは、データサイエンティストのスキルや専門知識に左右され、時間がかかり、
ストレスフルな作業にになりかねません。このため、機械学習における特徴量エンジニアリングは「芸術の域に達している」と考える人もいるほどです。
特徴量エンジニアリングの利点
AIモデルやMLモデルの質は、データによって大きく左右されます。モデリングのプロセスに特徴量エンジニアリングを
含めることで、モデルが受け取るデータの品質や関連性を向上させ、実世界の問題解決により良く役立てることができます。ただし、
その際には、以下の2点に注意を払う必要があります。
- 問題を正しくとらえる:結果の精度を見積もるために正しい客観的手段を用いることが重要です。
- モデル内の依存関係:自社のデータ特有の、基礎的な構造に注意しましょう。優れた構造のデータからは、常に優れた結果を得ることができます。
特徴量を選択・設計する際にこれらの点を考慮することで、特徴量エンジニアリングを通じて以下のようなメリットが得られるようになります。
- モデルの柔軟性を高め、複雑さを軽減
- 処理を高速化
- 明確で理解しやすいモデル
- よりシンプルなモデルで管理が容易
- 問題の本質をより深く理解
- 利用可能なすべてのデータをより的確に表現し、根底にある問題の特徴を把握
特徴量エンジニアリングの課題
多くの場合においてデータは構造化されておらず、外れ値、冗長性、欠損値などを含んでいます。データは複数のソースから取得されるため、
冗長性や重複が生じることは日常茶飯事です。データは機械学習の出発点となるため、
特徴量エンジニアリングにおいては次のような課題が発生します。
- 複数のソースからの膨大な量のデータを、クレンジング、集計、分析しなければならない
- データを、モデルやツールが認識・利用できる構造に整理する必要がある
- データのパターンを識別し、分析を促進するために、ビジネスの詳細やプロセスを理解する必要がある
- 組織にとって適切で実用的な洞察を取得する必要がある
- データは、ダッシュボードやグラフなど、誰もが理解しやすい形で提示する必要がある
- 適時性の問題。結果が出るまでに時間がかかりすぎて、有用でなくなってしまうことがある
- プロセスに手間がかかり、データサイエンティストが介入しなければならないことが多い
特徴量エンジニアリングの今後
最新のテクノロジーにより、特徴量エンジニアリングのパフォーマンスはますます向上しています。機械学習のサブセットとしてのディープラーニングには
新たなアプローチが登場しており、オートエンコーダや制約付きボルツマンマシンは、抽象的な特徴量表現を自動的に学習することから
有望視されています。
コンピューターが人間と同じように「考える」ようになればなるほど、特徴量エンジニアリングの有用性は高まります。データサイエンティストが
手作業で行っていた作業を機械に任せることができるようになれば、コストや時間上の制約から解放されるようになります。つまり、画像、
動画、オブジェクト、音声など、表に頼った従来のAIでは容易に理解できないデータ形態が、近いうちに機械によって正確に
解釈されるようになるかもしれません。
新しい機械学習モデルは、人間に近い思考プロセス、より優れた特徴分析、より高いモデル精度を提供するように
なってきています。
しかし、今のところ、これらの分野ではまだデータサイエンティストに頼らざるを得ません。より良いデータの解釈には、データサイエンスの
知識だけでなく、業界やビジネスの知識も必要であり、それがこのAIのサブセットの特異性を高めています。データの解釈は、
正確な予測を望む組織にとって不可欠であり、有効な結果を得るための最良の方法となるのです。
より正確な予測を行いませんか?
Alteryx Machine Learningパッケージでは、
Deep Feature Synthesisを提供しており、データ内の関係を理解し、質の高い特徴量を検出することで、より精度の高いモデルを作成することが
できます。
これらのアルゴリズムは、正確なモデルや予測を必要とする組織を次のレベルに引き上げ、より的確な説明、意思決定、
将来の計画を可能にします。
次の用語
AutoML関連リソース
お客様事例
Protected: Saving Over 75 Hours Day with Automated Forecasting
- データ準備と分析
- データサイエンスと機械学習
- プロセスの自動化
お客様事例
Protected: AAA National Helps Clubs Provide Better Service with Alteryx
- データ準備と分析
- データサイエンスと機械学習
- アナリティクスリーダー