プロセスの概要
機械学習プロジェクトのライフサイクルは6つのフェーズに分かれています。このプロセスは、ビジネス上の問題を定義し、機械学習の観点からビジネス上の問題を言い換えることから始まります。機械学習プロセスの最終目標は、ビジネス上の問題を解決するための正確な結果を生成することです。
ワークフロー
機械学習プロセスのワークフローの図は、CRISP-DM手法に基づいています。ワークフローの各ステージは、主要タスクを要約したポイントで示されています。CRISP‐DM手法は機械学習において最も一般的に使用される方法論です。
- ビジネス目標の定義
- データの理解
- データの準備
- モデルの開発
- 評価
- デプロイ
ビジネス目標の定義
機械学習プロセスの最初のフェーズは、ビジネス目標を定義することです。プロジェクトのこの初期フェーズでは、プロジェクトの目的および要件の理解に焦点を当てます。
ビジネスの観点から問題を特定した後は、それを機械学習の問題として形成し、暫定的な実装計画を開発できます。機械学習の結果が、定義されたビジネス目標を満たしているかどうかを判断するための成功基準を識別します。たとえば、ユーザーの抱えるビジネス上の課題が、「顧客に対する製品の販売数を増やすにはどうしたらよいか」であるとします。これは、どのような顧客が最もその製品を購入する傾向にあるかなどの機械学習問題にすることができます。どの顧客が最もその製品を購入する傾向にあるかを予測するモデルは、通常、過去にその製品を購入したことがある顧客を説明しているデータに基づいて作成されます。
要約すると、このフェーズでは次のことを行います。
- 目的の指定
- 機械学習目標の決定
- 成功基準の定義
- プロジェクト・プランの作成
データの理解
データ理解フェーズには、データのロードやビジネス上の問題のデータの分析など、データの収集と調査が含まれます。
- データは完全か。
- データに欠損値があるか。
- データにはどのようなタイプのエラーがあり、どのように修正できるか。
- データのアクセスおよび収集
- データの探索
- データ品質の評価
データの準備
準備フェーズでは、データをファイナライズし、モデルの作成に使用できる形式でデータを作成するために必要なタスクをすべて実行します。
データ準備のタスクは複数回にわたって繰り返し実行される可能性が高く、所定の順序には従いません。タスクには、列(属性)の選択および表内の行の選択を含めることができます。特にデータが様々なソースから収集される場合は、必要に応じてビューを作成してデータを結合したり、データをマテリアライズできます。データを整備するには、無効な値、他の表に存在しない外部キー値、欠落している値および外れ値を探します。データを改善するには、機械学習の問題に対処するために必要な集計、正規化、一般化、属性構築などの変換を適用できます。たとえば、DATE_OF_BIRTH
列をAGE
に変換できます。INCOME
列がnullの場合は、収入の中央値を挿入できます。データ内の外れ値を表す行を除外したり、欠損値や同一値が多すぎる列を除外できます。
さらに、データの表層に近い情報を得るために、新しく計算した属性を追加できます。このプロセスは、特徴エンジニアリングと呼ばれます。たとえば、購入金額を使用するかわりに、「12か月のうちで購入金額が500ドルを超えた回数」といった新しい属性を作成できます。大きい買い物を頻繁に行う顧客も、値引きに反応する顧客または反応しない顧客と関連がある場合があります。
ノート:
Oracle Machine Learningでは、データ準備プロセスを大幅に単純化する自動データ準備(ADP)がサポートされます。
- データの消去、結合および選択
- データの変換
- 新しい特徴のエンジニアリング
モデルの開発
このフェーズでは、様々なモデリング手法を選択して適用し、ハイパーパラメータと呼ばれるアルゴリズム・パラメータを目的の値に調整します。
アルゴリズムでデータの変換が必要な場合、前のフェーズに戻って、その変換を行う必要があります。たとえば、一部のアルゴリズムでは数値列のみが許可されているため、モデリングの前にワンホット・エンコーディングを使用して文字列の質的データを「展開」する必要があります。予備的なモデル構築では、完全なデータセットに数百万または数十億の行が含まれている可能性があるため、データのサンプルから始めるのが理にかなっていることがよくあります。特定のアルゴリズムがデータのサブセットに対してどのように実行されるかを把握することで、データ品質の問題とアルゴリズム設定の問題をプロセスの早い段階で特定し、初期結果までの時間と計算コストを削減できます。教師あり学習の問題の場合、通常、データは80-20%または60-40%の分布を使用して、トレーニング(構築)データセットとテスト・データセットに分割されます。データを分割した後、目的のモデル設定でモデルを構築します。デフォルト設定を使用するか、モデル設定値を変更してカスタマイズします。設定は、OMLのPL/SQL、RおよびPython APIを使用して指定できます。手法に適したメトリックを使用してモデルの品質を評価します。たとえば、分類モデルには混同マトリックス、精度およびリコール、回帰モデルにはRMSE、クラスタリング・モデルにはクラスタ類似度メトリックなどを使用します。
自動化された機械学習(AutoML)機能を使用して、アルゴリズムの選択、属性(特徴)の選択、モデルのチューニングと選択など、反復モデリング・プロセスを合理化することもできます。
- 様々なアルゴリズムの調査
- モデルの構築、評価およびチューニング
評価
プロジェクトのこの段階では、最初に示されたビジネス目標をモデルがどの程度満たしているか評価します。
このステージでは、モデルがビジネス目標および成功基準をどの程度満たしているかを判断します。製品を購入する可能性のある顧客をモデルで予測するはずだった場合、そのモデルは2つのクラス間を十分に区別していますか。リフトは十分に存在しますか。混同マトリックスに示されているトレードオフは許容できますか。テキスト・データを追加することによって、そのモデルの精度は向上できますか。購入品など、トランザクショナル・データ(マーケット・バスケット・データ)は含める必要がありますか。不適切なポジティブまたは不適切なネガティブに関連付けられるコストをモデルに組み込む必要がありますか。
プロセスの徹底的なレビューを実行し、重要なタスクとステップが見落とされていないかどうかを判断することは有用です。このステップは品質チェックとして機能し、プロジェクトのデプロイや追加の反復の開始などの次のステップを決定したり、制約が許せば本番前の環境でプロジェクトをテストできます。
- ビジネス目的の確認
- 成功基準に対する結果の評価
- 次のステップの決定
デプロイ
デプロイメントとは、ターゲット環境内で機械学習を使用することです。デプロイメント・フェーズでは、データ駆動型のインサイトと実用的な情報を導出できます。
デプロイメントには、スコアリング(新しいデータへのモデルの適用)、モデルの詳細(たとえば、デシジョン・ツリーのルール)の抽出、またはアプリケーション、データ・ウェアハウス・インフラストラクチャ、問合せツールやレポート・ツールへの機械学習モデルの統合が含まれます。
Oracle Machine LearningではOracle Database内で機械学習モデルが作成され適用されるため、その結果はすぐに利用できます。レポート・ツールおよびダッシュボードは、機械学習の結果を簡単に表示できます。さらに、機械学習は、動的スコアリング、バッチ・スコアリング、またはリアルタイム・スコアリングを使用して、一度に1つのケースまたはレコードのスコアリングをサポートします。単一のデータベース・トランザクションで、データをスコアリングして結果を返すことができます。たとえば、販売担当者は、不正の可能性を予測するモデルをオンライン販売のトランザクションのコンテキスト内で実行できます。
- エンタープライズ・デプロイメントの計画
- ビジネス・ニーズに応じたモデルとアプリケーションの統合
- モデルの監視、更新、廃止、アーカイブ
- モデルの有効性に関するレポート