この章では、Oracle Data Miningの使用を開始する際に必要となる基本事項を紹介します。
この章では、次の項目について説明します。
Oracle Data Miningを導入すると、Oracle Database内に総合的な最新のデータ・マイニング機能が提供されます。
Oracle Data MiningはOracle Databaseカーネル内に実装され、マイニング・モデルは最初のクラスのデータベース・オブジェクトとなります。Oracle Data Miningのプロセスでは、Oracle Databaseの組込み機能を使用して、スケーラビリティを最大化し、システム・リソースを効率的に利用します。
Oracle Database内でデータ・マイニングを行うと、次のような多くの利点があります。
データの移動が不要。一部のデータ・マイニング製品では、データを企業のデータベースからエクスポートして、マイニング用に特別な形式へと変換する必要があります。Oracle Data Miningを使用すると、データを移動したり変換したりする必要がなくなります。このためマイニング・プロセスは簡略化され、作業時間が短縮されて、エラーの発生頻度も抑えられます。
セキュリティ機能。データはOracle Databaseの広範なセキュリティ・メカニズムで保護されます。さらに、データ・マイニングの様々なアクティビティには特定のデータベース権限が必要となります。適切な権限を持つユーザーのみがマイニング・モデルをスコアリング(適用)できます。
データの準備と管理。ほとんどのデータは、マイニング前に様々な方法での整備、フィルタリング、正規化、サンプリング、変換を必要とします。データ・マイニング・プロジェクトでの取組みのうち、その8割がデータの準備に費やされることもよくあります。Oracle Data Miningでは、データ準備プロセスの主要な手順が自動的に管理されます。また、Oracle Databaseでも、データ準備および管理用の豊富な管理ツール群が提供されています。
データ・リフレッシュの容易性。Oracle Database内におけるマイニング・プロセスでは、リフレッシュ済データへのアクセスが即座に実施されます。Oracle Data Miningでは現在のデータに基づくマイニング結果を容易に提示できるので、最もタイムリで妥当性の高い結果が得られます。
Oracle Databaseの分析機能。Oracle Databaseには、高度な分析やビジネス・インテリジェンス用の機能が多数用意されています。Oracle Data Miningは、統計的分析やOLAPなど、データベースの他の分析機能と簡単に統合できます。「Oracle Data MiningおよびOracle Databaseの分析機能」を参照してください。
オラクル・テクノロジの集積。オラクル社に集積されたテクノロジのあらゆる側面を利用して、ビジネス・インテリジェンスや科学調査といった、より大規模なフレームワーク内に、データ・マイニングを統合できます。
ドメイン環境。データ・マイニング・モデルは、適切なアプリケーション・ドメイン環境で作成、テスト、検証、管理および配置する必要があります。データ・マイニングの結果には、永続リポジトリまたはデータ・ウェアハウスへ格納する前に、ドメイン固有の計算(推定リスクや反応確率の計算など)の一部として後処理を必要とするものもあります。Oracle Data Miningを使用すると、マイニング・アクティビティの前処理および後処理をすべて同じ環境で実行できます。
アプリケーション・プログラム・インタフェース。Oracle Data Mining機能には、Oracle Database内でPL/SQL、Java APIおよびSQL言語の演算子を利用して、直接アクセスできます。
Oracle Data Miningの使用にあたっては、データ・マイニングの機能およびアルゴリズムに関する基礎的な理解が必要です。この項では、データ・マイニングの機能の概念を紹介します。アルゴリズムについては、「データ・マイニングのアルゴリズム」の項で紹介します。
データ・マイニングの各機能は、モデル化や解決の対象となり得る問題の種類を表しています。データ・マイニング機能は、一般に監視ありと監視なしの2つのカテゴリに分けられます。監視あり学習、監視なし学習という概念は、人工知能の1分野といわれる機械学習学に由来しています。
人工知能とは、自身の知能や動作を自主的に提示するシステムの実装や研究を指します。機械学習においては、デバイスが自身のパフォーマンスから学習して、自身の機能を変更できるようにする技術が扱われます。データ・マイニングでは機械学習の概念がデータに適用されます。
監視あり学習は、指示あり学習とも呼ばれます。この種の学習プロセスは、既知である従属属性またはターゲットからの指示を受けます。指示ありデータ・マイニングでは、ターゲットの動作を一連の独立属性や予測子の機能として説明するように試みられます。
監視あり学習は、通常、予測モデルに帰着します。パターン検出を目的とする監視なし学習とは、この点が異なります。
監視ありモデルの作成には、トレーニングというプロセスが伴います。これは、ターゲット値が既知である多数のケースをソフトウェアで分析するプロセスです。このトレーニング・プロセスにおいて、モデルは予測を作成するロジックを「学習」します。たとえば、販促に反応しやすい顧客の識別を目的とするモデルは、過去に販促に反応した、または反応しなかったと認識されている多数の顧客の特性を分析することによって、トレーニングされている必要があります。
予測モデルの作成(トレーニング)とテストには、別々のデータセットが必要です。作成データ(トレーニング・データ)とテスト・データは同じ列構造である必要があります。通常は、1つの大規模な表またはビューを2つのデータセットに分割し、1つをモデルの作成用、もう1つをモデルのテスト用とします。
テスト・データにモデルを適用するプロセスは、選択した1つのサンプルを基に作成されたモデルを他のデータに一般化できるかどうかの判断に役立ちます。これは特に、オーバー・フィットという現象を回避するために有用です。オーバー・フィットは、モデルのロジックが作成データに適合しすぎているため、ほとんど予測力を持たない場合に発生する可能性があります。
適用データはスコアリング・データとも呼ばれ、モデルの適用対象となる実際の母集団のことを指します。例として、特定の製品を頻繁に購入する顧客の特性を識別するモデルを作成する場合について考えてみます。特定の店舗で買い物をする顧客のうち関連製品を購入する可能性がある顧客の一覧を取得するために、このモデルを当該店舗の顧客データに適用するとします。この場合、店舗の顧客データがスコアリング・データとなります。
監視あり学習のほとんどは、対象とする母集団に適用できます。スコアリングは、分類モデルおよび回帰モデルの目的であり、主要な監視ありマイニング手法です。
Oracle Data Miningでは、もう1つの監視あり機能である属性評価のスコアリング操作はサポートしていません。このタイプのモデルは、対象とする母集団に基づいて作成され、その母集団に関する情報を取得するため、別個のデータには適用できません。属性評価モデルでは、ターゲット値の予測において最も重要な属性が戻され、ランク付けされます。
監視なし学習は、指示を受けません。この場合、独立属性と従属属性は区別されず、モデルの作成においてアルゴリズムを導く既知の結果は存在しません。
監視なし学習は、記述目的で使用できます。また、予測の作成にも使用できます。
監視なしデータ・マイニングはターゲットを指定しませんが、ほとんどの監視なし学習は対象とする母集団に適用できます。たとえば、クラスタリング・モデルは記述データ・マイニングの手法を使用しますが、クラスタの割当てに従ってケースを分類するために適用できます。異常検出は監視なしですが、通常は、あるデータ・ポイントが一連のケース内で典型的かどうかを予測するために使用されます。
Oracle Data Miningでは、クラスタリングおよび特徴抽出(いずれも監視なしマイニング機能)のスコアリング操作をサポートしていますが、もう1つの監視なし機能である相関ルールのスコアリング操作はサポートしていません。相関モデルは、特定の母集団に関する情報を取得するためにその母集団に基づいて作成されるため、別個のデータには適用できません。相関モデルでは、項目またはイベントが互いにどのように関連付けられるのかを説明するルールが戻されます。相関ルールは統計とともに戻され、この統計を使用して確率に従ってランク付けされます。
Oracle Data Miningでは、表2-1に示す監視ありデータ・マイニング機能がサポートされます。
表2-1 Oracle Data Miningの監視あり機能
機能 | 説明 | サンプル・プログラム |
---|---|---|
ターゲット属性の予測において最も重要な属性を識別する。 |
提携カード・プログラムに対する顧客の反応を指定し、最も重要な予測子を検出する。 |
|
個々のクラスに項目を割り当て、ある項目が属するクラスを予測する。 |
1群の顧客に関する人口統計データを指定し、提携カード・プログラムに対する顧客の反応を予測する。 |
|
連続する値を近似および予測する。 |
1群の顧客に関する人口統計データおよび購入データを指定し、顧客の年齢を予測する。 |
Oracle Data Miningでは、表2-2に示す監視なし機能がサポートされます。
表2-2 Oracle Data Miningの監視なし機能
機能 | 説明 | サンプル・プログラム |
---|---|---|
「通常の」データの特徴に合致しない項目(外れ値)を識別する。 |
1群の顧客に関する人口統計データを指定し、顧客の基準から大きく外れる購買行動を識別する。 |
|
データ内で同時発生する傾向にある項目を検出し、その同時発生の原則となるルールを特定する。 |
一緒に購入される傾向にある項目群を検出し、その関係性を特定する。 |
|
データ内で自然なグループを検出する。 |
人口統計データを複数のクラスタに分割し、ある個人が特定のクラスタに属する確率をランク付けする。 |
|
1群の顧客に関する人口統計データを指定し、顧客の一般的な特徴別に属性をグループ分けする。 |
アルゴリズムとは、特定の種類の問題を解決するための数学的手続きです。Oracle Data Miningでは、各データ・マイニング機能について少なくとも1つのアルゴリズムがサポートされています。一部の機能では、複数のアルゴリズムから選択することも可能です。たとえば、分類については4種類のアルゴリズムがサポートされています。
各データ・マイニング・モデルは、特定のアルゴリズムから生成されます。データ・マイニングの問題には、複数のアルゴリズムを使用すると最も適切に解決できるものもあります。この場合、複数のモデルの開発が必要になります。たとえば、初めに特徴抽出モデルを使用して1組の最適化された予測子を作成し、続いて分類モデルを使用してその結果に対する予測を作成するといった方法があります。
注意: データ・マイニングは、各アルゴリズムの内部機構を理解していなくても成功させることができますが、アルゴリズムの一般的な特徴や様々なアプリケーションへの適合性を理解することは重要です。 |
Oracle Data Miningでは、表2-3に示す監視ありデータ・マイニング・アルゴリズムがサポートされます。次に示すアルゴリズムの略称は、このマニュアル全体で使用されます。
表2-3 Oracle Data Miningの監視あり機能用アルゴリズム
Oracle Data Miningでは、表2-4に示す監視なしデータ・マイニング・アルゴリズムがサポートされます。次に示すアルゴリズムの略称は、このマニュアル全体で使用されます。
表2-4 Oracle Data Miningの監視なし機能用アルゴリズム
マイニング用のデータは単一の表またはビュー内に存在している必要があります。各ケース(レコード)の情報は、別個の行に格納されていなければなりません。
Oracle Data Mining独自の機能として、ネストした表の変換を介して、ディメンション化されたデータ(スター・スキーマなど)をサポートする点があげられます。また、Oracle Data Miningでは非構造化データをマイニングできます。
関連項目: データ・マイニング用の表またはビューの作成方法は、『Oracle Data Miningアプリケーション開発者ガイド』を参照してください。 |
適切なデータ準備は、どのようなデータ・マイニング・プロジェクトにおいても重要な要素です。データは、適切に整備して非一貫性を排除し、マイニング・アプリケーションのニーズを満たす必要があります。さらに、大部分のアルゴリズムではビニングや正規化など、なんらかの形式のデータ変換が必要とされます。
データ・マイニングの開発プロセスでは、複数のデータセットが必要となる場合があります。モデルの作成(トレーニング)に必要なデータセットの他に、スコアリング用として別のデータセットを使用することもあります。分類モデルの場合はテスト・データセットも必要です。これらのデータセットはそれぞれ、すべて同じ方法で準備する必要があります。
Oracle Data Miningでは自動のデータ変換および組込みのデータ変換がサポートされており、これらの機能によって、データ・マイニング・モデルの開発に必要な時間や負担が大幅に軽減できます。自動データ準備(ADP)モードでは、モデル自体がアルゴリズムの要件に従って作成データを変換します。変換の指示はそのモデルに組み込まれており、モデルが適用されるたびに再利用されます。
Oracle Data Miningで自動的に実行される変換にユーザー独自の変換を追加することもできます。独自の変換は自動変換指示とともに組み込まれ、モデルが適用されるたびに自動変換とともに再利用されます。この場合、独自の変換を指定するのは作成データに対しての1回のみです。モデル自体が適用される際にデータを適切に変換します。
マイニング・モデルは自身のデータを準備するための指示を格納しているため、スーパーモデルとも呼ばれます。
Oracle Data Miningは、Oracle DatabaseのEnterprise Edition向けオプションの1つで、SQL、PL/SQLおよびJava用のプログラム・インタフェースが含まれています。また、スプレッドシート・アドインもサポートしています。
Oracle Data Minerは、Oracle Data Mining用のグラフィカル・ユーザー・インタフェースです。Oracle Data Minerには、データ準備、データ・マイニング、モデルの評価およびモデルのスコアリングのプロセスを段階的に行うことができる、各種のウィザードが用意されています。Oracle Data Minerのコード生成機能を利用すれば、実行するマイニング・アクティビティ用のPL/SQLコードを自動的に生成できます。
Oracle Data MinerはOracle Technology Networkの次のページからダウンロードできます。
Oracle Data MiningのPL/SQL APIは、次のPL/SQLパッケージに実装されています。
DBMS_DATA_MINING_TRANSFORM
: モデルを作成または適用する前にデータセットを変換するためのルーチンが含まれます。ユーザーは、これらのルーチン、または変換を定義するためのその他のSQLベースの手法を自由に使用できます。DBMS_DATA_MINING_TRANSFORM
のルーチンは、便宜上提供されています。
ユーザー定義の変換は必要ない点に注意してください。特定のアルゴリズムで必要となる変換のほとんどは、Oracle Data Miningで自動的に実行可能です。
DBMS_PREDICTIVE_ANALYTICS
: PREDICT
、EXPLAIN
およびPROFILE
の各操作用の自動化されたデータ・マイニング・ルーチン群が含まれます。
次に示す例は、my_model
というSVM分類モデルを作成するPL/SQLルーチンです。アルゴリズムはmy_settings
という設定表に指定されています。アルゴリズムは設定として指定する必要があります。これは、(SVMではなく)Naive Bayesがデフォルトの分類機能であるためです。
CREATE TABLE my_settings( setting_name VARCHAR2(30), setting_value VARCHAR2(4000)); BEGIN INSERT INTO my_settings VALUES (dbms_data_mining.algo_name, dbms_data_mining.algo_support_vector_machines); COMMIT; END; / BEGIN DBMS_DATA_MINING.CREATE_MODEL( model_name => 'my_model', mining_function => dbms_data_mining.classification, data_table_name => 'mining_data_build', case_id_column_name => 'cust_id', target_column_name => 'affinity_card', settings_table_name => 'my_settings'); END; /
関連項目: 『Oracle Database PL/SQLパッケージ・プロシージャおよびタイプ・リファレンス』 |
一連のデータ・マイニング関数は、データ・マイニング・モデルを配置するためのSQL言語の演算子群です。こうした演算子群を使用することで、データ・マイニングをSQL問合せに、さらにはSQLベースのアプリケーションに簡単に組み込めるようになっています。
次の例では、データ・マイニングのPREDICTION_PROBABILITY
演算子を使用しています。この演算子は、分類モデルnb_sh_clas_sample
をデータセットmining_data_apply_v
に適用します。
SELECT cust_id, prob FROM (SELECT cust_id, PREDICTION_PROBABILITY (nb_sh_clas_sample, 1 USING *) prob FROM mining_data_apply_v WHERE cust_id < 100011) ORDER BY cust_id;
このSELECT
文からは10人分の顧客情報が戻されます。顧客情報は顧客ID順に一覧表示され、各顧客がある提携カードを受け入れる(1)可能性が併記されます。
CUST_ID PROB ---------- ---------- 100001 .025622714 100002 .090424232 100003 .028064789 100004 .048458859 100005 .989335775 100006 .000151844 100007 .05749942 100008 .108750373 100009 .538512886 100010 .186426058
関連項目: 『Oracle Database SQL言語リファレンス』 『Oracle Data Miningアプリケーション開発者ガイド』 |
Oracle Data MiningのJava APIは、データ・マイニング用のJDM標準Java API(JSR-73)のOracle実装です。このJava APIはPL/SQL API上に用意され、2つのAPI間には完全な相互運用性があります。
次に示すコードの抜粋では、顧客の提携カードに対する反応パターンをモデル化し、新しい顧客の提携カードに対する反応を予測するためにこのモデルを適用するディシジョン・ツリー・モデルを作成します。
//Step-1: Create connection to a database with the Data Mining option OraConnectionFactory m_dmeConnFactory = new OraConnectionFactory(); ConnectionSpec connSpec = m_dmeConnFactory.getConnectionSpec(); connSpec.setURI("jdbc:oracle:thin:@<hostName>:<port>:<sid>"); connSpec.setName("<user name>"); connSpec.setPassword("password"); m_dmeConn = m_dmeConnFactory.getConnection(connSpec); //Step-2: Create object factories PhysicalDataSetFactory m_pdsFactory = (PhysicalDataSetFactory)m_dmeConn.getFactory( "javax.datamining.data.PhysicalDataSet"); PhysicalAttributeFactory m_paFactory = (PhysicalAttributeFactory)m_dmeConn.getFactory( "javax.datamining.data.PhysicalAttribute"); TreeSettingsFactory m_treeFactory = (TreeSettingsFactory)m_dmeConn.getFactory( "javax.datamining.algorithm.tree.TreeSettings"); ClassificationSettingsFactory m_clasFactory = (ClassificationSettingsFactory)m_dmeConn.getFactory( "javax.datamining.supervised.classification.ClassificationSettings"); BuildTaskFactory m_buildFactory = (BuildTaskFactory)m_dmeConn.getFactory( "javax.datamining.task.BuildTask"); ClassificationApplySettingsFactory m_applySettingsFactory = (ClassificationApplySettingsFactory)m_dmeConn.getFactory( "javax.datamining.supervised.classification.ClassificationApplySettings"); DataSetApplyTaskFactory m_dsApplyFactory = (DataSetApplyTaskFactory)m_dmeConn.getFactory( "javax.datamining.task.apply.DataSetApplyTask"); ClassificationApplySettingsFactory m_applySettingsFactory = (ClassificationApplySettingsFactory)m_dmeConn.getFactory( "javax.datamining.supervised.classification.ClassificationApplySettings"); //Step-3: Create and save model build task input objects // (training data, build settings) //Create & save model input data specification (PhysicalDataSet) PhysicalDataSet buildData = m_pdsFactory.create("MINING_DATA_BUILD_V", false); PhysicalAttribute pa = m_paFactory.create("CUST_ID", AttributeDataType.integerType, PhysicalAttributeRole.caseId); buildData.addAttribute(pa); m_dmeConn.saveObject("treeBuildData_jdm", buildData, true); //Create & save Mining Function Settings ClassificationSettings buildSettings = m_clasFactory.create(); TreeSettings treeAlgo = m_treeFactory.create(); buildSettings.setAlgorithmSettings(treeAlgo); buildSettings.setTargetAttributeName("AFFINITY_CARD"); m_dmeConn.saveObject("treeBuildSettings_jdm", buildSettings, true); //Step-4: Create and save model build task BuildTask buildTask = m_buildFactory.create("treeBuildData_jdm", "treeBuildSettings_jdm", "treeModel_jdm"); m_dmeConn.saveObject("treeBuildTask_jdm", buildTask, true); //Step-5: Create and save model apply task input objects (apply settings) //Create & save PhysicalDataSpecification PhysicalDataSet applyData = m_pdsFactory.create("MINING_DATA_APPLY_V", false); PhysicalAttribute pa = m_paFactory.create("CUST_ID", AttributeDataType.integerType, PhysicalAttributeRole.caseId); applyData.addAttribute(pa); m_dmeConn.saveObject("treeApplyData_jdm", applyData, true); //Create & save ClassificationApplySettings ClassificationApplySettings clasAS = m_applySettingsFactory.create(); //Step-6: Create and save model apply task with build task as dependent DataSetApplyTask applyTask = m_dsApplyFactory.create("treeApplyData_jdm", "treeModel_jdm", "treeApplySettings_jdm", "TREE_APPLY_OUTPUT_JDM"); ((OraTask)applyTask).addDependency("treeBuildTask_jdm"); m_dmeConn.saveObject("treeApplyTask_jdm", applyTask, true); //Step-7: Execute build task which executes build task and then after // successful completion triggers the execution of its dependent // task(s). In this example, there is only one dependent task. m_dmeConn.execute("treeBuildTask_jdm");
関連項目: 『Oracle Data Mining Java API Reference』 『Oracle Data Miningアプリケーション開発者ガイド』 |
予測分析では、PREDICT
、EXPLAIN
およびPROFILE
用の各ルーチンでデータ・マイニング・プロセスが自動化されます。Oracle Spreadsheet Add-In for Predictive AnalyticsはこれらのルーチンをMicrosoft Excelに実装します。このSpreadsheet Add-Inを使用すると、Excelデータや、Oracleデータベース内のデータを分析できます。
このSpreadsheet Add-Inとreadmeファイルは、Oracle Technology Networkにある次のページからダウンロードできます。
http://www.oracle.com/technology/products/bi/odm/index.html
Oracle Data Miningのドキュメントは、Oracle Databaseドキュメント・ライブラリに含まれています。Oracle Data Mining用には4種類のマニュアルがあります。Oracle Data Miningに関するSQLおよびPL/SQLの構文については、データベースのマニュアルで説明されています。
参考までに、Oracle Data Miningおよび関連するOracle Databaseのマニュアルの一覧を表2-5に示します。
表2-5 Oracle Data Miningのドキュメント
ドキュメント | 説明 |
---|---|
『Oracle Data Mining概要』 |
Oracle Data Miningでサポートされる、マイニング機能、アルゴリズム、データ準備、予測分析およびその他の特別な機能の概要。 |
『Oracle Data Miningアプリケーション開発者ガイド』 |
データ・マイニングでのPL/SQL、Java APIおよびSQL演算子の使用方法。 |
『Oracle Data Mining管理者ガイド』 |
データ・マイニング用のデータベースのインストール方法と管理方法。デモ・プログラムのインストールおよび使用方法。 |
『Oracle Data Mining Java API Reference』 |
Oracle Data MiningのJava API構文(javadoc)の使用方法。 |
『Oracle Database PL/SQLパッケージ・プロシージャおよびタイプ・リファレンス』 |
Oracle Data MiningのPL/SQL構文の使用方法。 |
『Oracle Database SQL言語リファレンス』 |
SQLのデータ・マイニング・ファンクション(演算子)の構文の使用方法。 |
『Oracle Databaseリファレンス』 |
マイニング・モデル、マイニング・モデルの属性およびマイニング・モデルの設定に関する情報を取得するためのデータ・ディクショナリ・ビューの問合せ方法。 |
Oracle Technology Network(OTN)は簡単にアクセス可能で、有用な情報が提供されているサイトです。Oracle Data Miningのホーム・ページには、次のURLでアクセスできます。
http://www.oracle.com/technology/products/bi/odm/index.html
このサイトには、ダウンロード用のツールおよび教材の他、ニュースやディスカッション・フォーラムも用意されています。このサイトでは次の内容を参照できます。
ダウンロードしてお使いのパーソナル・コンピュータにインストールできるOracle Data Miner。
Oracle Data Minerの使い方を段階的に説明するOracle Data Minerチュートリアル。
Oracle Data Minerの使用方法を学習できるOracle By Example。
Oracle Data Miner用のオンライン・トレーニング。
ダウンロードしてExcelにインポート可能なOracle Spreadsheet Add-In for Predictive Analytics。
Oracle Data Miningに関してよく寄せられる質問(FAQ)。
Oracle Data Miningのディスカッション・フォーラム(http://forums.oracle.com/forums/forum.jspa?forumID=55
)。
Oracle Databaseでの分析、統計および科学技術コンピューティングに関するブログ(http://numoraclerecipes.blogspot.com/
)。
データ・マイニングおよび分析に関するブログ(http://oracledmt.blogspot.com/
)。特にOracle関連の情報に特化しています。
次の書籍で、Oracle Data Miningの概要が取り上げられています。どちらの書籍もOracle Data Mining 10.2に基づいています。
『Java Data Mining: Strategy, Standard, and Practice(The Morgan Kaufmann Series in Data Management Systems)』Mark F. Hornick、Erik Marcadé、Sunil Venkayala共著
『Oracle Data Mining: Mining Gold from Your Warehouse(Oracle In-Focus series)』Dr. Carolyn Hamm著
「データベース・カーネル内でのデータ・マイニング」で説明したように、データベース分析には多大な利点があります。データが格納されている場所に分析機能を実装すると、データを分析のために外部のサーバーにエクスポートする必要がありません。分析の結果もインポートする必要がなく、データベース内に存在するので、アクセス、更新および他のデータとの組合せも簡単です。
データ・マイニングや予測分析の他にも、Oracle Databaseでは幅広い分析機能がサポートされています。そうした機能はそれぞれが共通サーバーの一部であるため、効率的に組み合せることができます。分析処理の結果は、Oracle DiscoverやOracle PortalなどのOracle Business Intelligenceツールに統合可能です。これらを総合すると、こうした機能により、Oracle Databaseは分析用アプリケーションを開発するための強力なプラットフォームになっているといえます。
様々な分析は、ほとんど制限なく組み合せることができます。例2-1に、単一のSQL問合せ内におけるデータ・マイニングおよびテキストの処理を示します。この問合せでは、自然減する傾向が強く(確率が80%を超える)、有望な顧客であり(顧客価値率が90%を超える)、かつChecking Plusアカウントに関して最近カスタマ・サービスに問合せのあった顧客がすべて選択されます。自然減の傾向に関する情報は、tree_model
というデータ・マイニング・モデルを使用して計算されます。Checking Plusアカウントに関するコール・センターのメモを検索するために、Oracle TextのCONTAINS
演算子が使用されています。
例2-1 単一SQL問合せにおけるOracle Data MiningとOracle Textの組合せ
SELECT A.cust_name, A.contact_info FROM customers A WHERE PREDICTION_PROBABILITY(tree_model, 'attrite' USING A.*) > 0.8 AND A.cust_value > 90 AND A.cust_id IN (SELECT B.cust_id FROM call_center B WHERE B.call_date BETWEEN '01-Jan-2005' AND '30-Jun-2005' AND CONTAINS(B.notes, 'Checking Plus', 1) > 0);
Oracle Databaseでサポートされる分析の一部を表2-6で説明します。
表2-6 Oracle Databaseの分析の概要