データ マイニングの概念
適用対象:SQL Server 2019 以前の Analysis Services Azure Analysis Services Fabric/Power BI Premium
重要
データ マイニングは SQL Server 2017 Analysis Services で非推奨となり、SQL Server 2022 Analysis Services で停止されました。 非推奨および停止された機能については、ドキュメントの更新は行われません。 詳細については、「Analysis Services 下位互換性」を参照してください。
データ マイニングとは、大規模なデータ セットから実用的な情報を検出するプロセスです。 データ マイニングでは、数学的分析を使用して、データに内在するパターンおよび傾向を抽出します。 通常、これらのパターンは、従来のデータ探索では検出できません。これは、リレーションシップが非常に複雑であるか、またはデータ量が多すぎるためです。
これらのパターンと傾向を合わせて収集し、 データ マイニング モデルとして定義できます。 マイニング モデルは、次のような特定のシナリオに適用できます。
予測: 販売予測、サーバー負荷またはサーバーのダウンタイムの予測
リスクおよび確率: 対象を絞ったダイレクト メールに最適な顧客の選定、リスク シナリオでの確率の高い損益分岐点の判定、診断や他の結果への確率の割り当て
推奨設定: 一緒に販売できる可能性の高い製品の判定、推奨設定の作成
シーケンスの発見: ショッピング カート内の顧客の選択の分析、次に発生する可能性の高いイベントの予測
グループ化: 顧客やイベントを関連する項目のクラスターに分離、親和性の分析と予測
マイニング モデルの作成は、データに関する質問の提示およびそれらの質問に回答するモデルの作成から、作業環境へのモデルの配置までのすべてを含む大きなプロセスの一部です。 このプロセスは、次の 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) キューブまたはリレーショナル データベースに格納されている必要はないという点に注意する必要があります。ただし、これらは両方ともデータ ソースとして使用できます。 データ マイニングは、SQL Server Analysis Services データ ソースとして定義されている任意のデータ ソースを使用して実行できます。 これには、テキスト ファイル、Excel ブック、他の外部プロバイダーからのデータなどが含まれます。 詳細については、「 サポートされているデータ ソース (SSAS - 多次元)」を参照してください。
データの探索
次の図で強調されているように、データ マイニング プロセスの 3 番目の手順では、準備されたデータを探索します。
マイニング モデルの作成時に適切な決定を行うために、データを理解する必要があります。 調査方法には、最小値および最大値の計算、平均偏差および標準偏差の計算、およびデータの分布の確認が含まれます。 たとえば、最大値、最小値、および平均値を調べることで、データが顧客またはビジネス プロセスを表していないことが判明し、その結果、よりバランスの取れたデータを取得するか、予測の基礎となっている前提条件を見直す必要があることが明らかになる場合があります。 標準偏差などの分布値には、結果の安定性および正確性に関する有用な情報が含まれていることがあります。 標準偏差が大きい場合、データを追加することでモデルを改善できる可能性があります。 標準分布から大きく逸脱したデータは、実際の問題を反映していない可能性があります。また、実際の問題を正確に表している可能性もありますが、このようなデータにモデルを適合させるのは困難です。
ビジネス上の問題に関する自分自身の理解に照らしてデータを探索することで、欠陥のあるデータがデータセットに含まれているかどうかを判断し、問題を解決するための戦略を構築したり、ビジネスの典型的な動きについての理解を深めたりできます。
使用可能なデータ ソースをキャンバスにマスター データ サービスなどのツールを使用して、データ マイニングの可用性を判断できます。 SQL Server Data Quality Services や Integration Services のデータ プロファイラーなどのツールを使用して、データの分布を分析し、間違ったデータや不足しているデータなどの問題を修復できます。
ソースを定義したら、SQL Server Data Toolsの [データ ソース ビュー] Designerを使用して、それらをデータ ソース ビューで結合します。 詳細については、 「多次元モデルのデータ ソース ビュー」を参照してください。 このデザイナーには、データを調べたり、データがモデルの作成に役立つことを確認したりするための複数のツールが含まれています。 詳細については、「 データ ソース ビュー (Analysis Services) でのデータの探索」を参照してください。
モデルを作成すると、SQL Server Analysis Servicesはモデルに含まれるデータの統計概要を自動的に作成し、レポートや詳細な分析で使用するためにクエリを実行できることに注意してください。 詳細については、「 データ マイニング クエリ」をご覧ください。
モデルのビルド
次の図で強調されているように、データ マイニング プロセスの 4 番目の手順では、マイニング モデルまたはモデルを作成します。 「 データの探索 」の手順から得た知識を使用すると、モデルの定義および作成に役立ちます。
マイニング構造を作成して、使用するデータ列を定義します。 マイニング構造では、データ ソースがリンクされますが、処理が完了するまで実際のデータは格納されません。 マイニング構造を処理すると、分析に使用できる集計やその他の統計情報が生成SQL Server Analysis Services。 この情報は、マイニング構造に基づくすべてのマイニング モデルで使用できます。 マイニング構造とマイニング モデルの関係の詳細については、「 論理アーキテクチャ (Analysis Services - データ マイニング)」を参照してください。
構造とモデルを処理する前のデータ マイニング モデルもまた、入力用の列、予測対象の属性、およびデータの処理アルゴリズムを示すパラメーターを指定するコンテナーにすぎません。 モデルの処理は、通常、 トレーニングと呼ばれます。 トレーニングとは、パターンを抽出するために、マイニング構造のデータに特定の数学的アルゴリズムを適用するプロセスのことです。 トレーニング処理で検出されるパターンは、トレーニング データの選択、使用するアルゴリズム、およびアルゴリズムの構成方法に応じて異なります。 SQL Server 2017 にはさまざまなアルゴリズムが含まれており、それぞれが異なる種類のタスクに適しており、それぞれ異なる種類のモデルを作成しています。 SQL Server 2017 で提供されるアルゴリズムの一覧については、「データ マイニング アルゴリズム (Analysis Services - データ マイニング)」を参照してください。
また、パラメーターを使用して各アルゴリズムを調整したり、トレーニング データにフィルターを適用してデータのサブセットを使用したりすることで、さまざまな結果を生成できます。 モデルにデータを渡すと、クエリを実行したり予測に使用したりできるサマリおよびパターンがマイニング モデル オブジェクトに格納されます。
新しいモデルを定義するには、SQL Server Data Toolsのデータ マイニング ウィザードを使用するか、データ マイニング拡張機能 (DMX) 言語を使用します。 データ マイニング ウィザードの使用方法の詳細については、「 データ マイニング ウィザード (Analysis Services - データ マイニング)」を参照してください。 DMX の使用方法の詳細については、「 データ マイニング拡張機能 (DMX) リファレンス」を参照してください。
データが変更されるたびに、マイニング構造とマイニング モデルの両方を更新する必要があることに注意してください。 マイニング構造を再処理して更新すると、SQL Server Analysis Servicesソースからデータが取得され、ソースが動的に更新された場合は新しいデータも含めて、マイニング構造が再設定されます。 マイニング構造に基づくモデルが存在する場合は、そのモデルを更新するか (新しいデータに基づいて再トレーニングされます)、または更新せずにそのままにしておくかを選択できます。 詳細については、「 処理の要件と考慮事項 (データ マイニング)」を参照してください。
モデルの調査と検証
次の図で強調されているように、データ マイニング プロセスの 5 番目の手順では、作成したマイニング モデルを調査して、その効果をテストします。
モデルを運用環境に配置する前に、モデルのパフォーマンスをテストする必要があります。 また、モデルを作成する場合、通常は構成が異なる複数のモデルを作成し、どのモデルが問題およびデータに最も適した結果をもたらすかを調べるためにすべてのモデルをテストします。
SQL Server Analysis Servicesには、データをトレーニング データセットとテスト データセットに分割するのに役立つツールが用意されているため、同じデータ上のすべてのモデルのパフォーマンスを正確に評価できます。 トレーニング データセットを使用してモデルを作成し、テスト データセットを使用して予測クエリを作成することによってモデルの精度をテストします。 このパーティション分割は、マイニング モデルの構築中に自動的に行うことができます。 詳細については、「 テストと検証 (データ マイニング)」を参照してください。
アルゴリズムが検出する傾向とパターンを調べるには、SQL Server Data Toolsのデータ マイニング Designerのビューアーを使用します。 詳細については、「 データ マイニング モデル ビューアー」を参照してください。 また、リフト チャートや分類マトリックスなどのデザイナーのツールを使用して、モデルがどの程度予測を作成できるかをテストすることもできます。 モデルがデータに固有のものであるか、一般的な母集団の推定に使用できるものであるかを確認する場合は、 クロス検証 と呼ばれる統計手法を使用できます。この手法を使用すると、データのサブセットが自動的に作成され、各サブセットに対してモデルがテストされます。 詳細については、「 テストと検証 (データ マイニング)」を参照してください。
「 モデルの作成 」の手順で作成したモデルのパフォーマンスがいずれもよくない場合は、プロセスの前の手順に戻り、問題を再定義するか、元のデータセットのデータを再調査する必要が生じることもあります。
モデルの配置と更新
次の図で強調されているように、データ マイニング プロセスの最後の手順では、最適なパフォーマンスを示したモデルを運用環境に配置します。
マイニング モデルを運用環境に配置すると、必要に応じて多くのタスクを実行できます。 次のようなタスクを実行できます。
モデルを使用して予測を作成します。これは、業務上の意思決定に使用できます。 SQL Serverには、予測クエリの作成に使用できる DMX 言語と、クエリの作成に役立つ予測クエリ ビルダーが用意されています。 詳細については、「データ マイニング拡張機能 (DMX) リファレンス」を参照してください。
モデルから統計情報、ルール、または数式を取得するコンテンツ クエリを作成します。 詳細については、「 データ マイニング クエリ」をご覧ください。
データ マイニング機能をアプリケーションに直接埋め込みます。 マイニング構造とマイニング モデルを作成、変更、処理、および削除するためにアプリケーションで使用できる一連のオブジェクトを含んでいる分析管理オブジェクト (AMO) を含めることができます。 または、XML for Analysis (XMLA) メッセージを SQL Server Analysis Services のインスタンスに直接送信することもできます。 詳細については、「 開発 (Analysis Services - データ マイニング)」を参照してください。
Integration Services を使用して、マイニング モデルを使用して受信データを複数のテーブルにインテリジェントに分離するパッケージを作成します。 たとえば、データベースが潜在的な顧客と継続的に更新される場合は、Integration Services と共にマイニング モデルを使用して、受信データを製品を購入する可能性が高い顧客と、製品を購入しない可能性がある顧客に分割できます。 詳細については、「 Integration Services の典型的な使用方法」を参照してください。
ユーザーが既存のマイニング モデルに対して直接クエリを実行できるレポートを作成します。 詳細については、「SQL Server データ ツールの Reporting Services (SSDT)」を参照してください。
レビューおよび分析を行った後、モデルを更新します。 モデルを更新する場合、モデルの再処理が必要になります。 詳しくは、「 Processing Data Mining Objects」をご覧ください。
組織が新しいデータを入手したときに、モデルを動的に更新します。ソリューションの有効性を向上させるための継続的な変更は、配置戦略の一環として実行する必要があります。 詳細については、「データ マイニング ソリューションとオブジェクトの管理」を参照してください。