機械学習プロセス
機械学習プロジェクトのライフサイクルは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)機能を使用して、アルゴリズムの選択、属性(特徴)の選択、モデルのチューニングと選択など、反復モデリング・プロセスを合理化することもできます。
- 様々なアルゴリズムの調査
- モデルの構築、評価およびチューニング
データの分割
予測モデルの作成(トレーニング)とテストには、別々のデータセットが必要です。通常は、1つの大規模な表またはビューを2つのデータセットに分割し、1つをモデルの作成用、もう1つをモデルのテスト用とします。
作成データ(トレーニング・データ)とテスト・データは同じ列構造である必要があります。テスト・データにモデルを適用するプロセスは、選択した1つのサンプルを基に作成されたモデルを他のデータに一般化できるかどうかの判断に役立ちます。
教師ありモデル(分類モデルと回帰モデルなど)を作成して検証するには、ケース表が2つ必要です。1つの行セットはモデルのトレーニング用、もう1つの行セットはモデルのテスト用に使用されます。作成データおよびテスト・データは多くの場合、同じデータ・セットから導出すると便利です。たとえば、モデルのトレーニング用に行の60%をランダムに選択し、残りの40%をモデルのテストに使用できます。教師なし機械学習手法を実装するモデル(属性評価、クラスタリング、相関または特徴抽出など)では、個別のテスト・データは使用しません。
評価
プロジェクトのこの段階では、最初に示されたビジネス目標をモデルがどの程度満たしているか評価します。
このステージでは、モデルがビジネス目標および成功基準をどの程度満たしているかを判断します。製品を購入する可能性のある顧客をモデルで予測するはずだった場合、そのモデルは2つのクラス間を十分に区別していますか。リフトは十分に存在しますか。混同マトリックスに示されているトレードオフは許容できますか。テキスト・データを追加することによって、そのモデルの精度は向上できますか。購入品など、トランザクショナル・データ(マーケット・バスケット・データ)は含める必要がありますか。不適切なポジティブまたは不適切なネガティブに関連付けられるコストをモデルに組み込む必要がありますか。
プロセスの徹底的なレビューを実行し、重要なタスクとステップが見落とされていないかどうかを判断することは有用です。このステップは品質チェックとして機能し、プロジェクトのデプロイや追加の反復の開始などの次のステップを決定したり、制約が許せば本番前の環境でプロジェクトをテストできます。
- ビジネス目的の確認
- 成功基準に対する結果の評価
- 次のステップの決定
デプロイ
デプロイメントとは、ターゲット環境内で機械学習を使用することです。デプロイメント・フェーズでは、データ駆動型のインサイトと実用的な情報を導出できます。
デプロイメントには、スコアリング(新しいデータへのモデルの適用)、モデルの詳細(たとえば、デシジョン・ツリーのルール)の抽出、またはアプリケーション、データ・ウェアハウス・インフラストラクチャ、問合せツールやレポート・ツールへの機械学習モデルの統合が含まれます。
Oracle Machine LearningではOracle Database内で機械学習モデルが作成され適用されるため、その結果はすぐに利用できます。レポート・ツールおよびダッシュボードは、機械学習の結果を簡単に表示できます。さらに、機械学習は、動的スコアリング、バッチ・スコアリング、またはリアルタイム・スコアリングを使用して、一度に1つのケースまたはレコードのスコアリングをサポートします。単一のデータベース・トランザクションで、データをスコアリングして結果を返すことができます。たとえば、販売担当者は、不正の可能性を予測するモデルをオンライン販売のトランザクションのコンテキスト内で実行できます。
- エンタープライズ・デプロイメントの計画
- ビジネス・ニーズに応じたモデルとアプリケーションの統合
- モデルの監視、更新、廃止、アーカイブ
- モデルの有効性に関するレポート
教師あり学習: スコアリング
教師あり学習におけるスコアリングについて学習します。
適用データはスコアリング・データとも呼ばれ、モデルの適用対象となる実際の母集団のことを指します。たとえば、特定の製品を頻繁に購入する顧客の特性を識別するモデルを作成する場合について考えてみます。特定の店舗で買い物をする顧客のうち関連製品を購入する可能性がある顧客の一覧を取得するために、このモデルを当該店舗の顧客データに適用するとします。この場合、店舗の顧客データがスコアリング・データとなります。
教師あり学習のほとんどは、対象とする母集団に適用できます。主要な教師あり機械学習の手法である分類と回帰は、どちらもスコアリングに使用できます。
Oracle Machine Learningでは、もう1つの教師あり手法である属性評価のスコアリング操作をサポートしていません。このタイプのモデルは、対象とする母集団に基づいて作成され、その母集団に関する情報を取得するため、別個のデータには適用できません。属性評価モデルでは、ターゲット値の予測において最も重要な属性が戻され、ランク付けされます。
教師なし学習: スコアリング
教師なし学習、サポートされているスコアリング操作および教師なし機械学習手法について概要を示します。
教師なし機械学習ではターゲットを指定しませんが、ほとんどの教師なし学習は、対象とする母集団に適用できます。たとえば、クラスタリング・モデルでは記述的な機械学習手法が使用されますが、それは、そのクラスタ割当てに従ってケースを分類するために適用できます。異常検出は、教師なしですが、通常は、あるデータ・ポイントが一連のケース内で典型的かどうかを予測するために使用されます。
Oracle Machine Learningでは、クラスタリングおよび特徴抽出のスコアリング操作がサポートされており、どちらも教師なしの機械学習手法です。Oracle Machine Learningでは、もう1つの教師なし機能である相関ルールについては、スコアリング操作はサポートされていません。相関モデルは、特定の母集団に関する情報を取得するためにその母集団に基づいて作成されるため、別個のデータには適用できません。相関モデルでは、項目またはイベントが互いにどのように関連付けられるのかを説明するルールが戻されます。相関ルールは統計とともに戻され、この統計を使用して確率に従ってランク付けされます。
OMLでは、次の表に示す教師なし手法をサポートしています。
表1-7 Oracle Machine Learningの教師なし手法
関数 | 説明 | 問題例 |
---|---|---|
「通常の」データの特徴に合致しない項目(外れ値)を識別する。 |
1群の顧客に関する人口統計データを指定し、顧客の基準から大きく外れる購買行動を識別する。 |
|
データ内で同時発生する傾向にある項目を検出し、その同時発生の原則となるルールを特定する。 |
一緒に購入される傾向にある項目群を検出し、その関係性を特定する。 |
|
データ内で自然なグループを検出する。 |
人口統計データを複数のクラスタに分割し、ある個人が特定のクラスタに属する確率をランク付けする |
|
1群の顧客に関する人口統計データを指定し、顧客の一般的な特徴別に属性をグループ分けする。 |
関連トピック