データ マイニングは、大規模なデータ セットから実用的な情報を検出するプロセスです。 データ マイニングでは、数学分析を使用して、データに存在するパターンと傾向を導き出します。 通常、これらのパターンは、リレーションシップが複雑すぎるか、データが多すぎるため、従来のデータ探索では検出できません。
これらのパターンと傾向は、 データ マイニング モデルとして収集および定義できます。 マイニング モデルは、次のような特定のシナリオに適用できます。
予測: 売上の見積もり、サーバーの負荷またはサーバーのダウンタイムの予測
リスクと確率: 対象のメーリングに最適な顧客を選択し、リスク シナリオの可能性のある損益分岐点を決定し、診断またはその他の結果に確率を割り当てる
推奨事項: 一緒に販売される可能性が高い製品を決定し、推奨事項を生成する
シーケンスの検索: ショッピング カート内の顧客の選択を分析し、次の可能性の高いイベントを予測する
グループ化: 顧客またはイベントを関連項目のクラスターに分割し、アフィニティを分析して予測する
マイニング モデルの構築は、データに関する質問や、それらの質問に答えるモデルの作成から、モデルを作業環境にデプロイすることまで、すべてを含む大規模なプロセスの一部です。 このプロセスは、次の 6 つの基本的な手順を使用して定義できます。
次の図は、プロセス内の各ステップと、各手順を完了するために使用できる Microsoft SQL Server のテクノロジ間の関係を示しています。
図に示されているプロセスは循環的であり、つまり、データ マイニング モデルの作成は動的で反復的なプロセスです。 データを探索した後、データが適切なマイニング モデルを作成するには不十分であり、そのためさらに多くのデータを検索する必要がある場合があります。 または、複数のモデルを構築してから、定義した問題にモデルが適切に答えないため、問題を再定義する必要があることを認識することもできます。 より多くのデータが使用可能になったため、デプロイ後にモデルを更新する必要がある場合があります。 適切なモデルを作成するには、プロセスの各ステップを何度も繰り返す必要がある場合があります。
Microsoft SQL Server データ マイニングは、データ マイニング モデルを作成して操作するための統合環境を提供します。 この環境には、さまざまなプロジェクトの包括的なソリューションを簡単に構築できるデータ マイニング アルゴリズムとクエリ ツールが含まれる SQL Server Development Studio と、モデルの参照とデータ マイニング オブジェクトの管理用のツールが含まれる SQL Server Management Studio が含まれています。 詳細については、「 SQL Server Data Tools (SSDT) を使用した多次元モデルの作成」を参照してください。
SQL Server ツールをビジネス シナリオに適用する方法の例については、 基本的なデータ マイニング チュートリアルを参照してください。
問題の定義
次の図に示すように、データ マイニング プロセスの最初の手順は、問題を明確に定義し、データを利用して問題に対する回答を提供する方法を検討することです。
この手順には、ビジネス要件の分析、問題の範囲の定義、モデルの評価に使用するメトリックの定義、データ マイニング プロジェクトの特定の目標の定義が含まれます。 これらのタスクは、次のような質問に変換されます。
何を探しているんですか。 どのような種類のリレーションシップを見つけようとしていますか?
解決しようとしている問題は、ビジネスのポリシーまたはプロセスを反映していますか?
データ マイニング モデルから予測を行うか、または興味深いパターンと関連付けを探しますか?
予測を試みる結果または属性はどれですか?
各列にはどのような種類のデータがあり、どのような情報がありますか? 複数のテーブルがある場合、テーブルはどのように関連していますか? データを使用できるようにするには、クレンジング、集計、または処理を実行する必要がありますか?
データはどのように分散されますか? データは季節的ですか? データはビジネスのプロセスを正確に表していますか?
これらの質問に回答するには、使用可能なデータに関するビジネス ユーザーのニーズを調査するために、データ可用性調査を行う必要がある場合があります。 データがユーザーのニーズをサポートしていない場合は、プロジェクトを再定義する必要があります。
また、ビジネスの進捗状況を測定するために使用される主要業績評価指標 (KPI) にモデルの結果を組み込む方法も考慮する必要があります。
データの準備
次の図で強調表示されているように、データ マイニング プロセスの 2 番目の手順は、[問題の定義] ステップで特定されたデータ を統合して クリーンアップすることです。
データは会社全体に分散され、異なる形式で格納されたり、不適切なエントリや欠落したエントリなどの不整合が含まれている可能性があります。 たとえば、このデータは、製品が市場で提供される前に顧客が製品を購入したことや、顧客が自宅から 2,000 マイル離れた場所にある店舗で定期的に店舗を購入していることを示している場合があります。
データのクリーニングは、不適切なデータの削除や欠損値の補間だけでなく、データ内の隠れた相関関係の検出、最も正確なデータのソースの識別、分析で使用するのに最も適した列の特定に関する作業です。 たとえば、出荷日または注文日を使用する必要がありますか? 最高の販売インフルエンサーは、数量、合計価格、または割引価格ですか? 不完全なデータ、間違ったデータ、個別に表示されるが、実際には強く相関する入力はすべて、予期しない方法でモデルの結果に影響を与える可能性があります。
そのため、マイニング モデルの構築を開始する前に、これらの問題を特定し、それらを修正する方法を決定する必要があります。 通常、データ マイニングでは非常に大きなデータセットを使用しており、すべてのトランザクションでデータ品質を調べることはできません。そのため、Integration Services、Microsoft SQL Server 2012 マスター データ サービス、SQL Server Data Quality Services で提供されているツールなど、何らかの形式のデータ プロファイルと自動データ クレンジングおよびフィルター処理ツールを使用して、データを探索し、不整合を見つける必要がある場合があります。 詳細については、次のリソースを参照してください。
データ マイニングに使用するデータは、オンライン分析処理 (OLAP) キューブまたはリレーショナル データベースに格納する必要はありませんが、これらはどちらもデータ ソースとして使用できます。 Analysis Services データ ソースとして定義されている任意のデータ ソースを使用して、データ マイニングを実行できます。 これには、テキスト ファイル、Excel ブック、または他の外部プロバイダーのデータを含めることができます。 詳細については、「 サポートされるデータ ソース (SSAS 多次元)」を参照してください。
データの探索
次の図で強調表示されているように、データ マイニング プロセスの 3 番目の手順は、準備されたデータを探索することです。
マイニング モデルを作成するときに適切な決定を行うには、データを理解する必要があります。 探索手法には、最小値と最大値の計算、平均と標準偏差の計算、データの分布の確認などがあります。 たとえば、データが顧客やビジネス プロセスを代表するものではありません。そのため、よりバランスの取れたデータを取得するか、期待の基礎となる前提条件を確認する必要があることを、最大値、最小値、平均値を確認して判断できます。 標準偏差やその他の分布値は、結果の安定性と精度に関する有用な情報を提供できます。 標準偏差が大きいと、データを追加するとモデルの改善に役立つ可能性があることを示すことができます。 標準分布から強く逸脱したデータは、歪んでいるか、実際の問題の正確な画像を表している可能性がありますが、モデルをデータに適合させるのが困難になる可能性があります。
ビジネス上の問題に関する独自の理解に照らしてデータを調べて、データセットに欠陥のあるデータが含まれているかどうかを判断し、問題を修正するための戦略を立てたり、ビジネスに典型的な動作をより深く理解したりできます。
マスター データ サービスなどのツールを使用して、使用可能なデータ ソースをキャンバス化し、データ マイニングの可用性を判断できます。 SQL Server Data Quality Services や Integration Services のデータ プロファイラーなどのツールを使用して、データの分布を分析し、間違ったデータや不足しているデータなどの問題を修復できます。
ソースを定義したら、SQL Server Data Tools のデータ ソース ビュー デザイナーを使用して、それらをデータ ソース ビューで結合します。 詳細については、「 多次元モデルのデータ ソース ビュー」を参照してください。 このデザイナーには、データを探索し、モデルの作成に使用できることを確認するために使用できるいくつかのツールも含まれています。 詳細については、「 データ ソース ビューでのデータの探索 (Analysis Services)」を参照してください。
モデルを作成すると、Analysis Services によってモデルに含まれるデータの統計の概要が自動的に作成されます。このデータは、レポートや詳細な分析で使用するためにクエリを実行できます。 詳細については、「 データ マイニング クエリ」を参照してください。
モデルの構築
次の図で強調表示されているように、データ マイニング プロセスの 4 番目の手順は、マイニング モデルまたはマイニング モデルを構築することです。 [データの探索] ステップで得た知識 を 使用して、モデルの定義と作成に役立ちます。
マイニング構造を作成して、使用するデータの列を定義します。 マイニング構造はデータのソースにリンクされていますが、実際にはデータを処理しない限りデータを含みません。 マイニング構造を処理すると、分析に使用できる集計やその他の統計情報が Analysis Services によって生成されます。 この情報は、構造に基づく任意のマイニング モデルで使用できます。 マイニング構造とマイニング モデルの関係の詳細については、「 論理アーキテクチャ (Analysis Services - データ マイニング)」を参照してください。
構造とモデルを処理する前に、データ マイニング モデルも、入力に使用される列、予測する属性、およびデータの処理方法をアルゴリズムに指示するパラメーターを指定するコンテナーにすぎません。 モデルの処理は、多くの場合、 トレーニングと呼ばれます。 トレーニングとは、パターンを抽出するために、構造内のデータに特定の数学的アルゴリズムを適用するプロセスを指します。 トレーニング プロセスで見つかるパターンは、トレーニング データの選択、選択したアルゴリズム、およびアルゴリズムの構成方法によって異なります。 SQL Server 2014 には、それぞれ異なる種類のタスクに適し、それぞれ異なる種類のモデルを作成するさまざまなアルゴリズムが含まれています。 SQL Server 2014 で提供されるアルゴリズムの一覧については、「 データ マイニング アルゴリズム (Analysis Services - データ マイニング)」を参照してください。
パラメーターを使用して各アルゴリズムを調整することもできます。また、トレーニング データにフィルターを適用してデータのサブセットのみを使用し、異なる結果を作成することもできます。 モデルを通じてデータを渡すと、マイニング モデル オブジェクトには、クエリまたは予測に使用できる概要とパターンが含まれます。
新しいモデルは、SQL Server データ ツールのデータ マイニング ウィザードを使用するか、データ マイニング拡張機能 (DMX) 言語を使用して定義できます。 データ マイニング ウィザードの使用方法の詳細については、「データ マイニング ウィザード (Analysis Services - データ マイニング)」を参照してください。 DMX の使用方法の詳細については、「 データ マイニング拡張機能 (DMX) リファレンス」を参照してください。
データが変更されるたびに、マイニング構造とマイニング モデルの両方を更新する必要があります。 マイニング構造を再処理して更新すると、Analysis Services はソースからデータ (ソースが動的に更新された場合は新しいデータを含む) を取得し、マイニング構造を再作成します。 構造に基づくモデルがある場合は、構造に基づくモデルを更新することを選択できます。つまり、新しいデータで再トレーニングされるか、モデルをそのまま残すことができます。 詳細については、「 処理要件と考慮事項 (データ マイニング)」を参照してください。
モデルの探索と検証
次の図に示すように、データ マイニング プロセスの 5 番目の手順は、構築したマイニング モデルを調べて、その有効性をテストすることです。
運用環境にモデルをデプロイする前に、モデルのパフォーマンスをテストする必要があります。 また、モデルを構築するときは、通常、構成が異なる複数のモデルを作成し、すべてのモデルをテストして、問題とデータに最適な結果が得られるかどうかを確認します。
Analysis Services には、データをトレーニング データセットとテスト データセットに分割するのに役立つツールが用意されているため、同じデータ上のすべてのモデルのパフォーマンスを正確に評価できます。 トレーニング データセットを使用してモデルを構築し、予測クエリを作成してモデルの精度をテストするテスト データセットを使用します。 SQL Server 2014 Analysis Services (SSAS) では、マイニング モデルの構築中にこのパーティション分割を自動的に行うことができます。 詳細については、「 テストと検証 (データ マイニング)」を参照してください。
SQL Server Data Tools のデータ マイニング デザイナーのビューアーを使用して、アルゴリズムが検出する傾向とパターンを調べることができます。 詳細については、「 データ マイニング モデル ビューアー」を参照してください。 また、リフト チャートや分類マトリックスなどのデザイナーのツールを使用して、モデルが予測を作成する方法をテストすることもできます。 モデルがデータに固有かどうか、または一般的な母集団の推論に使用される可能性があるかどうかを確認するには、 クロス検証 と呼ばれる統計的手法を使用して、データのサブセットを自動的に作成し、各サブセットに対してモデルをテストできます。 詳細については、「 テストと検証 (データ マイニング)」を参照してください。
[モデルの構築] ステップで作成したモデルがどれも適切に動作しない場合は、プロセスの前の手順に戻り、問題を再定義するか、元のデータセットのデータを再取り込みする必要があります。
モデルのデプロイと更新
次の図で強調されているように、データ マイニング プロセスの最後の手順は、運用環境に最適に実行されたモデルをデプロイすることです。
マイニング モデルが運用環境に存在した後は、ニーズに応じて多くのタスクを実行できます。 実行できるタスクの一部を次に示します。
モデルを使用して予測を作成し、それを使用してビジネス上の意思決定を行うことができます。 SQL Server には、予測クエリの作成に使用できる DMX 言語と、クエリの作成に役立つ予測クエリ ビルダーが用意されています。 詳細については、「データ マイニング拡張機能 (DMX) リファレンス」を参照してください。
モデルから統計、ルール、または数式を取得するコンテンツ クエリを作成します。 詳細については、「 データ マイニング クエリ」を参照してください。
データ マイニング機能をアプリケーションに直接埋め込みます。 分析管理オブジェクト (AMO) を含めることができます。このオブジェクトには、マイニング構造とマイニング モデルの作成、変更、処理、および削除にアプリケーションで使用できるオブジェクトのセットが含まれます。 または、XML for Analysis (XMLA) メッセージを Analysis Services のインスタンスに直接送信することもできます。
Integration Services を使用して、マイニング モデルを使用して受信データを複数のテーブルにインテリジェントに分離するパッケージを作成します。 たとえば、データベースが潜在的な顧客と継続的に更新される場合は、Integration Services と共にマイニング モデルを使用して、受信データを、製品を購入する可能性が高い顧客と製品を購入しない可能性がある顧客に分割できます。
ユーザーが既存のマイニング モデルに対して直接クエリを実行できるレポートを作成します。 詳細については、「SQL Server データ ツールの Reporting Services (SSDT)」を参照してください。
レビューと分析後にモデルを更新します。 すべての更新では、モデルを再処理する必要があります。 詳細については、「 データ マイニング オブジェクトの処理」を参照してください。
より多くのデータが組織に入ってくるので、モデルを動的に更新し、ソリューションの有効性を向上させるために絶えず変更を加えるのがデプロイ戦略の一部である必要があります。 詳細については、「データ マイニング ソリューションとオブジェクトの管理」を参照してください。