Oracle® Data Mining 概要

11gリリース2(11.2)

E48231-01(原本部品番号:E16808-07)

目次

例一覧

図一覧

表一覧

タイトルおよび著作権情報

はじめに

- 対象読者

- ドキュメントのアクセシビリティについて

- 関連ドキュメント

- 表記規則

Oracle Data Miningの新機能

- Oracle Database 11gリリース 2 (11.2.0.3) Oracle Data Mining

- Oracle Database 11gリリース 2 (11.2.0.2) Oracle Data Mining

- Oracle Database 11gリリース 1 (11.1) Oracle Data Mining

第I部 概要

1 データ・マイニングとは

- データ・マイニングとは

- 自動検出

- 予測

- グループ化

- 実用的な情報

- データ・マイニングと統計

- データ・マイニングとOLAP

- データ・マイニングとデータ・ウェアハウス

- データ・マイニングで可能なこと、不可能なこと

- 適切な問題の設定

- データの理解

- データ・マイニングのプロセス

- 問題の定義

- データの収集と準備

- モデルの作成と評価

- 知識の配置

2 Oracle Data Miningの紹介

- データベース・カーネル内でのデータ・マイニング

- Oracle Exadataでのデータ・マイニング

- データ・マイニング機能

- 監視ありデータ・マイニング

- 監視あり学習: テスト

- 監視あり学習: スコアリング

- 監視なしデータ・マイニング

- 監視なし学習: スコアリング

- Oracle Data Miningの機能

- データ・マイニングのアルゴリズム

- Oracle Data Miningの監視ありアルゴリズム

- Oracle Data Miningの監視なしアルゴリズム

- データ準備

- 自動データ準備

- モデルの透明性

- Oracle Data Miningの使用方法

- Oracle Data Miner

- PL/SQLパッケージ

- SQLスコアリング関数

- R-ODM

- PMMLのインポート

- Oracle Spreadsheet Add-In for Predictive Analytics

- Java API

- Oracle Data Miningに関する情報源

- Oracle Technology Network上のOracle Data Miningリソース

- Oracle Data MiningおよびOracle Databaseの分析機能

3 Oracle Predictive Analyticsの紹介

- 予測分析とは

- 予測分析とデータ・マイニング

- 仕組み

- 予測分析の操作

- Oracle Spreadsheet Add-In for Predictive Analytics

- DBMS_PREDICTIVE_ANALYTICS

- 例: PREDICT

- 背景情報

- EXPLAIN

- PREDICT

- 精度

- PROFILE

第II部 マイニング機能

4 回帰

- 回帰とは

- 回帰の仕組み

- 線形回帰

- 多変量線形回帰

- 回帰係数

- 非線形回帰

- 多変量非線形回帰

- 信頼限界

- 回帰モデルのテスト

- 回帰統計量

- 2乗平均平方根誤差

- 平均絶対誤差

- 回帰のアルゴリズム

5 分類

- 分類とは

- 分類モデルのテスト

- 混同マトリックス

- リフト

- リフト統計量

- 受信者操作特性(ROC)

- ROC曲線

- ROC曲線下面積

- ROCとモデルのバイアス

- ROC統計量

- 分類モデルのバイアス

- コスト

- コストと精度

- ポジティブ・クラスとネガティブ・クラス

- コストと利益の割当て

- 事前確率

- 分類のアルゴリズム

6 異常検出

- 異常検出とは

- 1クラス分類

- 1クラス・データの異常検出

- 外れ値検出用の異常検出

- 異常検出アルゴリズム

7 クラスタリング

- クラスタリングとは

- クラスタの計算方法

- 新しいデータのスコアリング

- 階層クラスタリング

- ルール

- 支持度と信頼度

- クラスタリング・モデルの評価

- クラスタリングのアルゴリズム

8 相関

- 相関とは

- 相関ルール

- マーケット・バスケット分析

- 相関ルールとE-Commerce

- トランザクショナル・データ

- 相関のアルゴリズム

9 特徴の選択と抽出

- 最適な属性の検出

- 特徴選択および属性評価とは

- 属性評価およびスコアリング

- 特徴抽出とは

- 特徴抽出とスコアリング

- 属性評価および特徴抽出のアルゴリズム

第III部 アルゴリズム

10 Apriori

- Aprioriとは

- 相関ルールと高頻度項目セット

- 前件と後件

- 信頼度

- Apriori用のデータ準備

- ネイティブ・トランザクショナル・データとスター・スキーマ

- 項目と集合

- スパース・データ

- 相関ルールの計算

- 項目セット

- 高頻度項目セット

- 例: 高頻度項目セットからのルールの計算

- 相関ルールの評価

- 支持度

- 信頼度

- リフト

11 ディシジョン・ツリー

- ディシジョン・ツリーとは

- ディシジョン・ツリーのルール

- 信頼度と支持度

- ディシジョン・ツリーの利点

- ディシジョン・ツリー・モデルのXML

- ディシジョン・ツリーの拡大

- 分岐

- コスト・マトリックス

- オーバーフィットの回避

- ディシジョン・ツリー・アルゴリズムのチューニング

- ディシジョン・ツリー用のデータ準備

12 一般化線形モデル

- 一般化線形モデルとは

- Oracle Data MiningのGLM

- 解釈性と透明性

- ワイド・データ

- 信頼限界

- リッジ回帰

- リッジ回帰用の構築設定

- リッジと信頼限界

- リッジと分散拡大係数(線形回帰用)

- リッジとデータ準備

- GLM用のチューニングと診断

- 構築設定

- 診断

- 係数統計情報

- グローバルなモデルの統計情報

- 行の診断情報

- GLM用のデータ準備

- 線形回帰用のデータ準備

- ロジスティック回帰用のデータ準備

- 欠損値

- 線形回帰

- 線形回帰の係数統計情報

- 線形回帰のグローバルなモデルの統計情報

- 線形回帰の行の診断情報

- ロジスティック回帰

- 参照クラス

- クラスの重み

- ロジスティック回帰の係数統計情報

- ロジスティック回帰のグローバルなモデルの統計情報

- ロジスティック回帰の行の診断情報

13 k-Means

- k-Meansとは

- Oracle Data Miningの拡張k-Means

- 重心

- スコアリング

- k-Meansアルゴリズムのチューニング

- k-Means用のデータ準備

14 最小記述長

- MDLとは

- 圧縮とエントロピ

- 確率変数の値: 統計的分布

- 確率変数の値: 重要な予測子

- 合計エントロピ

- モデル・サイズ

- モデル選択

- MDLメトリック

- MDL用のデータ準備

15 Naive Bayes

- Naive Bayesとは

- Naive Bayesの利点

- Naive Bayesモデルのチューニング

- Naive Bayes用のデータ準備

16 Non-Negative Matrix Factorization

- NMFとは

- 行列因数分解

- NMFでのスコアリング

- NMFでのテキスト・マイニング

- NMFアルゴリズムのチューニング

- NMF用のデータ準備

17 O-Cluster

- O-Clusterとは

- パーティショニング方針

- 量的属性のパーティショニング

- 質的属性のパーティショニング

- アクティブなサンプリング

- プロセス・フロー

- スコアリング

- O-Clusterアルゴリズムのチューニング

- O-Cluster用のデータ準備

- O-Cluster用のユーザー定義のデータ準備

18 サポート・ベクター・マシン

- サポート・ベクター・マシンとは

- SVMの利点

- Oracle Data MiningのSVMの利点

- 利用性

- スケーラビリティ

- カーネルベースの学習

- 能動学習

- SVMモデルのチューニング

- SVM用のデータ準備

- 正規化

- SVMと自動データ準備

- SVM分類

- クラスの重み

- 1クラスSVM

- SVM回帰

第IV部 データ準備

19 自動データ準備と組込みのデータ準備

- 概要

- ケース表

- データ型の変換

- 日付データ

- テキスト変換

- ビジネスおよび領域に関する変換

- 自動データ準備

- ビニング

- 正規化

- 外れ値の処理

- 自動データ準備での変換

- 組込みのデータ準備

- 変換リストおよび自動データ準備

- Oracle Data Miningの変換ルーチン

- ビニング・ルーチン

- 正規化ルーチン

- 外れ値の処理のルーチン

- 透明性

- 内部変換

第V部 非構造化データのマイニング

20 テキスト・マイニング

- 非構造化データとは

- Oracle Data Miningでの非構造化データのサポート方法

- 混合データ

- テキスト・データ型

- テキスト・マイニング・アルゴリズム

- テキスト分類

- 多クラスのドキュメント分類

- 多ターゲットのドキュメント分類

- ドキュメント分類のアルゴリズム

- テキスト・クラスタリング

- テキストの特徴抽出

- テキストの相関

- テキストの属性評価

- マイニング用のテキストの準備

- Oracle Data MiningとOracle Text

用語集

索引

例一覧

- 2-1 単一SQL問合せにおけるOracle Data MiningとOracle Textの組合せ

- 3-1 提携カードで消費を増やす可能性が最も高い顧客の予測

- 10-1 サンプル・トランザクショナル・データ

- 15-1 Bayesの定理を使用した消費の増加予測

図一覧

- 1-1 データ・マイニングのプロセス

- 3-1 Oracle Spreadsheet Add-In for Predictive AnalyticsのEXPLAIN

- 3-2 Oracle Spreadsheet Add-In for Predictive AnalyticsのPREDICT

- 3-3 Oracle Spreadsheet Add-In for Predictive AnalyticsのPROFILE

- 4-1 予測子が1つの線形回帰

- 4-2 予測子が1つの非線形回帰

- 5-1 2項分類モデルの混同マトリックス

- 5-2 ポジティブ予測とネガティブ予測

- 5-3 コスト・マトリックス

- 8-1 トランザクショナル・データ

- 11-1 ディシジョン・ツリー・ルールの例

- 11-2 ディシジョン・ツリーの例

- 15-1 Bayesの定理の条件付き確率

表一覧

- 2-1 Oracle Data Miningの監視あり機能

- 2-2 Oracle Data Miningの監視なし機能

- 2-3 Oracle Data Miningの監視あり機能用アルゴリズム

- 2-4 Oracle Data Miningの監視なし機能用アルゴリズム

- 2-5 Oracle Data Miningのドキュメント

- 2-6 Oracle Databaseの分析の概要

- 3-1 Oracle Predictive Analyticsによる操作

- 7-1 クラスタリング・アルゴリズムの比較

- 10-1 項目セット

- 10-2 高頻度項目セット

- 10-3 項目セット

- 10-4 最小支持度67%の高頻度項目セット

- 10-5 高頻度項目セットとルール

- 12-1 GLM回帰モデルの診断表

- 12-2 ロジスティック回帰の行の診断表

- 18-1 サポート・ベクター・マシンの構築設定

- 19-1 ADPとOracle Data Miningのアルゴリズム

- 19-2 DBMS_DATA_MINING_TRANSFORMのビニング方法

- 19-3 DBMS_DATA_MINING_TRANSFORMの正規化方法

- 19-4 DBMS_DATA_MINING_TRANSFORMの外れ値の処理方法

- 20-1 テキスト列のデータ型

- 20-2 テキストをサポートするOracle Data Miningのアルゴリズム

- 20-3 マイニング機能: Oracle Data MiningとOracle Text

Oracle® Data Mining

概要

11gリリース2(11.2)

E48231-01(原本部品番号:E16808-07)

2013年6月

Oracle Data Mining概要, 11g リリース2 (11.2)

E48231-01

Copyright © 2005, 2013, Oracle and/or its affiliates.All rights reserved.

原本著者: Kathy L.Taylor

このソフトウェアおよび関連ドキュメントの使用と開示は、ライセンス契約の制約条件に従うものとし、知的財産に関する法律により保護されています。ライセンス契約で明示的に許諾されている場合もしくは法律によって認められている場合を除き、形式、手段に関係なく、いかなる部分も使用、複写、複製、翻訳、放送、修正、ライセンス供与、送信、配布、発表、実行、公開または表示することはできません。このソフトウェアのリバース・エンジニアリング、逆アセンブル、逆コンパイルは互換性のために法律によって規定されている場合を除き、禁止されています。

ここに記載された情報は予告なしに変更される場合があります。また、誤りが無いことの保証はいたしかねます。誤りを見つけた場合は、オラクル社までご連絡ください。

このソフトウェアまたは関連ドキュメントを、米国政府機関もしくは米国政府機関に代わってこのソフトウェアまたは関連ドキュメントをライセンスされた者に提供する場合は、次の通知が適用されます。

U.S. GOVERNMENT END USERS: Oracle programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, delivered to U.S. Government end users are "commercial computer software" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations.As such, use, duplication, disclosure, modification, and adaptation of the programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, shall be subject to license terms and license restrictions applicable to the programs.No other rights are granted to the U.S. Government.

このソフトウェアもしくはハードウェアは様々な情報管理アプリケーションでの一般的な使用のために開発されたものです。このソフトウェアもしくはハードウェアは、危険が伴うアプリケーション(人的傷害を発生させる可能性があるアプリケーションを含む)への用途を目的として開発されていません。このソフトウェアもしくはハードウェアを危険が伴うアプリケーションで使用する際、安全に使用するために、適切な安全装置、バックアップ、冗長性(redundancy)、その他の対策を講じることは使用者の責任となります。このソフトウェアもしくはハードウェアを危険が伴うアプリケーションで使用したことに起因して損害が発生しても、オラクル社およびその関連会社は一切の責任を負いかねます。

OracleとJavaはOracle Corporationおよびその関連企業の登録商標です。その他の名称は、それぞれの所有者の商標または登録商標です。

Intel、Intel Xeonは、Intel Corporationの商標または登録商標です。すべてのSPARCの商標はライセンスをもとに使用し、SPARC International, Inc.の商標または登録商標です。AMD、Opteron、AMDロゴ、AMD Opteronロゴは、Advanced Micro Devices, Inc.の商標または登録商標です。UNIXは、The Open Groupの登録商標です。

このソフトウェアまたはハードウェア、そしてドキュメントは、第三者のコンテンツ、製品、サービスへのアクセス、あるいはそれらに関する情報を提供することがあります。オラクル社およびその関連会社は、第三者のコンテンツ、製品、サービスに関して一切の責任を負わず、いかなる保証もいたしません。オラクル社およびその関連会社は、第三者のコンテンツ、製品、サービスへのアクセスまたは使用によって損失、費用、あるいは損害が発生しても一切の責任を負いかねます。

はじめに

このマニュアルでは、Oracle Databaseでの包括的なデータ・マイニング・ソリューションである、Oracle Data Miningの機能について説明します。データ・マイニング・アルゴリズムを説明し、その他のマニュアルに含まれている多くの手順についての概念的基礎を示します。(「関連ドキュメント」を参照してください。)

ここでは次の項目について説明します。

- 対象読者

- ドキュメントのアクセシビリティについて

- 関連ドキュメント

- 表記規則

対象読者

Oracle Data Miningの概要は、アナリスト、アプリケーション開発者、データ・マイニングのスペシャリストを対象としています。

ドキュメントのアクセシビリティについて

Oracleのアクセシビリティについての詳細情報は、Oracle Accessibility ProgramのWebサイト(http://www.oracle.com/pls/topic/lookup?ctx=acc&id=docacc)を参照してください。

Oracleサポートへのアクセス

Oracleサポート・サービスでは、My Oracle Supportを通して電子支援サービスを提供しています。詳細情報は(http://www.oracle.com/pls/topic/lookup?ctx=acc&id=info) か、聴覚に障害のあるお客様は (http://www.oracle.com/pls/topic/lookup?ctx=acc&id=trs)を参照してください。

関連ドキュメント

Oracle Data Miningのドキュメント・セットは、Oracle Database 11gリリース 2 (11.2) オンライン・ドキュメント・ライブラリの一部です。Oracle Data Miningのドキュメント・セットの構成は、次のとおりです。

- 『Oracle Data Mining概要』

- 『Oracle Data Mining管理者ガイド』

- 『Oracle Data Miningアプリケーション開発者ガイド』

- 『Oracle Data Mining Java API Reference』(Javadoc)

- 『Oracle Data Mining APIリファレンス』(仮想ブック)

- 『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』

- DBMS_DATA_MINING

- DBMS_DATA_MINING_TRANSFORM

- DBMS_PREDICTIVE_ANALYTICS

- 『Oracle Database SQL言語リファレンス』

- データ・マイニング機能

表記規則

このマニュアルでは次の表記規則を使用します。

規則

意味

太字

太字は、操作に関連するグラフィカル・ユーザー・インタフェース要素、または本文中で定義されている用語および用語集に記載されている用語を示します。

イタリック

イタリックは、ユーザーが特定の値を指定するプレースホルダ変数を示します。

固定幅

固定幅フォントは、段落内のコマンド、URL、サンプル内のコード、画面に表示されるテキスト、または入力するテキストを示します。

Oracle Data Miningの新機能

この項では、Oracle Data Miningの新機能について説明します。次の項目について説明します。

- Oracle Database 11gリリース 2 (11.2.0.3) Oracle Data Mining

- Oracle Database 11gリリース 2 (11.2.0.2) Oracle Data Mining

- Oracle Database 11gリリース 1 (11.1) Oracle Data Mining

Oracle Database 11gリリース 2 (11.2.0.3) Oracle Data Mining

- Oracle Data Mining Java APIは、このリリースでは非推奨です。

注意:
新しいアプリケーションでは、非推奨となった機能を使用しないことをお薦めします。推奨されない機能は、下位互換性を維持する目的のみでサポートされています。

- Oracle Data Miningでは、Oracle Data Minerの新しいリリースがサポートされています。以前のリリース(Oracle Data Miner Classic)は、OTNからダウンロードして入手できますが、開発は終了しています。
『Oracle Data Miner 11g リリース 2 (11.2.0.3)』は、次のURLからダウンロードできます。

http://www.oracle.com/technetwork/database/options/odm/dataminerworkflow-168677.html

Oracle Data Miner Classicは、次のURLからダウンロードできます。

http://www.oracle.com/technetwork/database/options/advanced-analytics/odm/downloads/index.html

Oracle Database 11gリリース 2 (11.2.0.2) Oracle Data Mining

Oracle Data Mining 11gリリース 2 (11.2.0.2)では、有効なPMMLドキュメントとして表示されている場合、外部作成されたGLMモデルをインポートできます。PMMLは、データ・マイニング・モデルを表示するXML-ベースの標準です。

DBMS_DATA_MININGパッケージのIMPORT_MODELプロシージャは、PMMLインポートをサポートする構文でオーバーロードされます。この構文で起動すると、IMPORT_MODELプロシージャはPMMLドキュメントを受け入れ、情報をOracle Data Miningモデルに変換します。これには、モデル表やSYSモデル・メタデータの作成および移入が含まれます。

この方法でインポートされた外部モデルは、自動的にExadataスコアリング・オフロードに対して有効化されます。

関連項目:

DBMS_DATA_MINING.IMPORT_MODELの詳細は、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照してください。

「Oracle Exadataでのデータ・マイニング」

Oracle Database 11gリリース 1 (11.1) Oracle Data Mining

- マイニング・モデルのスキーマ・オブジェクト

Oracle 11gでは、データ・マイニング・モデルがSYSスキーマ内のデータ・ディクショナリ・オブジェクトとして実装されています。新しく追加された一連のデータ・ディクショナリ・ビューで、マイニング・モデルとそのプロパティを参照できます。マイニング・モデル・オブジェクトに対するアクセスは、新しいシステムおよびオブジェクト権限で制御されます。

データ・マイニング・モデルは、前のリリースでは、DMSYSスキーマ内の表の集合およびメタデータとして実装されていました。Oracle 11gには、DMSYSスキーマはありません。

関連項目:

- マイニング・モデルにアクセスするための権限の詳細は、『Oracle Data Mining管理者ガイド』を参照してください。

- Oracle Data Miningのデータ・ディクショナリ・ビューについては、『Oracle Data Miningアプリケーション開発者ガイド』を参照してください。

- 自動データ準備(ADP)

データをマイニングする前には、ほとんどの場合、ビニング、正規化、欠損値の処理などによってデータを変換する必要があります。作成データ、テスト・データおよび適用データに対しては、まったく同じ変換を行う必要があります。

以前のリリースでは、データの変換はユーザーが行っていました。Oracle Database 11gでは、データ準備プロセスを自動化できます。アルゴリズムに適した変換の指示がモデル内に組み込まれ、作成データおよびスコアリング・データに自動的に適用されます。こうした自動変換は、ユーザー指定の変換方法で補完したり置き換えたりすることができます。

マイニング・モデルは自身のデータを準備するための指示を格納しているため、スーパーモデルと呼ばれます。

関連項目:

- データ・マイニング用の自動データ変換およびカスタム・データ変換については、第19章を参照してください。

- DBMS_DATA_MINING_TRANSFORMの詳細は、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照してください。

- ネストしたデータの検索機能、スパース・データの処理の向上
Oracle Data Miningでは、質的データと量的データの両方について、ネストしたデータ型がサポートされています。複数レコード・ケースのデータをマイニングするには、ネストした列に変換する必要があります。

Oracle Data Mining 10g リリース2では、ネストした列がトップレベルの属性として処理されており、ネストした2つの列に同名の属性が含まれていないことを確認する作業が必要でした。Oracle Data Mining 11gでは、ネストした属性が列名で検索されるため、ユーザーはこの確認を行う必要がありません。

Oracle Data Mining 11gでは、スパース・データや欠損値の処理がアルゴリズム間で標準化されています。データがスパースであるのは、空の状態のセルが高い割合で存在するが、すべての値が既知であると想定される場合です。これは、マーケット・バスケット・データの場合にあてはまります。一部のセルが空でも、その値が既知でない場合は、値はランダムに欠損しているとみなされます。Oracle Data Miningでは、ネストした列内の欠損データはスパース表現であり、ネストしていない列内の欠損データはランダムに欠損しているとみなされます。

Oracle Data Mining 11gのディシジョン・ツリーおよびO-Clusterアルゴリズムでは、ネストしたデータはサポートされません。

関連項目:
『Oracle Data Miningアプリケーション開発者ガイド』

- 一般化線形モデル
Oracle 11gでは、一般化線形モデルという新しいアルゴリズムが導入されました。このアルゴリズムでは、分類(ロジスティック回帰)および回帰(線形回帰)という2種類のマイニング機能がサポートされます。

関連項目:
第12章「一般化線形モデル」

- 新しいSQLデータ・マイニング関数
一般化線形モデル用に、新しいSQLデータ・マイニング関数、PREDICTION_BOUNDSが導入されました。PREDICTION_BOUNDSは、予測値(回帰モデル)または予測確率(分類)の信頼限界を戻します。

関連項目:
『Oracle Data Miningアプリケーション開発者ガイド』

- コスト重視の意思決定に関するサポートの向上
Oracle 11gでは、コスト・マトリックスのサポートが大幅に向上しています。新しいプロシージャであるDBMS_DATA_MINING.ADD_COST_MATRIXおよびDBMS_DATA_MINING.REMOVE_COST_MATRIXを使用すると、どの分類モデルに対してもコスト・マトリックスの追加や削除が可能です。

インラインのコスト・マトリックスの指定用に、SQLデータ・マイニング関数で新しい構文がサポートされています。この新しい機能を使用すると、モデルにスコアリング用のコスト・マトリックスが関連付けられていない場合にも、コスト重視モデルの結果をSQL文内で戻すことができます。

コスト・マトリックスを指定して作成できるのは、ディシジョン・ツリー・モデルのみです。

関連項目:

- 『Oracle Data Miningアプリケーション開発者ガイド』

- 「分類モデルのバイアス」

- 11gリリース 1 (11.1)で提供されていない機能

- DMSYSスキーマ

- Oracle Data Miningスコアリング・エンジン。

- Oracle 10.2では、Database Configuration Assistant(DBCA)を使用してデータ・マイニング・オプションを構成できました。Oracle 11gでは、DBCAを使用してデータ・マイニング・オプションを構成する必要がありません。

- Basic Local Alignment Search Tool(BLAST)

- 11gリリース1 (11.1)で非推奨となった機能

- Adaptive Bayes Network分類アルゴリズム(ディシジョン・ツリーに置換)

- モデル、モデルのシグネチャ、モデルの設定に関する情報を提供するDM_USER_MODELSビューおよびファンクション(GET_MODEL_SETTINGS、GET_DEFAULT_SETTINGSおよびGET_MODEL_SIGNATUREなど)は、データ・ディクショナリ・ビューに置換されます。『Oracle Data Miningアプリケーション開発者ガイド』を参照してください。

第I部

概要

第I部では、Oracle Data MiningおよびOracle Predictive Analyticsの概要を示します。最初の章では、これらの技術に慣れていないユーザーのために一般的な内容を大まかに説明します。

第I部は次の章で構成されています。

- 第1章「データ・マイニングとは」

- 第2章「Oracle Data Miningの紹介」

- 第3章「Oracle Predictive Analyticsの紹介」

1 データ・マイニングとは

この章では、データ・マイニング技術に関する概要を説明します。

注意:
データ・マイニングに関する情報は、幅広く提供されています。現在の知識に関係なく、データ・マイニングに関して役立つドキュメントや記事を見つけることができます。たとえば、http://en.wikipedia.org/wiki/Data_miningです。

この章には、次の項が含まれます。

- データ・マイニングとは

- データ・マイニングで可能なこと、不可能なこと

- データ・マイニングのプロセス

データ・マイニングとは

データ・マイニングとは、大量に保管されているデータを自動的に検索して、単純な分析では得られないパターンや傾向を見つけることです。データ・マイニングでは高度な数学的アルゴリズムを使用して、データを分割し、将来のイベントの発生確率を判断します。データ・マイニングは、データからの知識発見(KDD)としても知られています。

データ・マイニングの主要な特性を次に示します。

- パターンの自動検出

- 発生確率の高い結果の予測

- 実用的な情報の作成

- 大規模なデータセットおよびデータベースへの特化

データ・マイニングを行うと、単純な問合せや報告技術では解決できない問題を解決できます。

自動検出

データ・マイニングは、モデルを作成することによって達成されます。モデルはアルゴリズムを使用してデータセットに作用します。自動検出という概念は、データ・マイニング・モデルの実行に相当します。

データ・マイニング・モデルは、そのモデル作成の基になったデータのマイニングに使用できますが、ほとんどのタイプのモデルは新しいデータに一般化することが可能です。新しいデータに対してモデルを適用するプロセスはスコアリングとも呼ばれます。

関連項目:
Oracle Data Miningでのスコアリングおよび配置については、『Oracle Data Miningアプリケーション開発者ガイド』を参照してください。

予測

データ・マイニングの多くの形式には予測の側面があります。たとえば、あるモデルは、教育レベルなどの人口統計要素に基づいて収入を予測します。予測には、確率(この予測が正しいことの確からしさ)が関連しています。予測確率は信頼度(この予測を信頼できる程度)とも呼ばれます。

予測データ・マイニングの一部の形式では、特定の結果を想定するルールが生成されますたとえば、ルールでは、特定の地区に住む学士号を持つ人は、地域の平均を超える収入を持つ可能性が高いことが示されます。ルールには、関連付けられた支持度(母集団の何割がルールを満たすか)があります。

グループ化

データ・マイニングの他の形式として、データ内の自然なグループを識別するというものがあります。たとえば、モデルによって、母集団のうち、収入が特定の範囲内にある集団、良好な運転歴を持つ集団、年単位で新車をリースする集団を識別するような場合です。

実用的な情報

データ・マイニングでは、大量のデータから実用的な情報を導き出すことができます。たとえば、都市設計家の場合、低所得者向け住宅を開発する際に、人口統計に基づいて収入を予測するモデルを使用することが可能です。自動車のリース会社では、付加価値の高い顧客を対象とする販促を計画するために、顧客の各セグメントを識別するモデルを使用できます。

関連項目:
予測的および記述的データ・マイニングの概要については、「データ・マイニング機能」を参照してください。アルゴリズムの概要は、「データ・マイニングのアルゴリズム」で紹介されています。

データ・マイニングと統計

データ・マイニングと統計はかなりの部分で重複しています。実際、データ・マイニングで使用される技術のほとんどは統計の範疇に収まります。しかし、データ・マイニング技術は従来の統計手法と同一ではありません。

従来の統計手法では一般的に、モデルの精度を検証するためにユーザーとの対話が相当量必要になります。そのため、統計手法の自動化は難しい場合があります。さらに、統計手法では通常、非常に大規模なデータセットに対しては適切な見積りがなされません。統計手法は、大規模な母集団内の小規模な代表サンプルに基づいた仮説の検定または相関の検出に依存しているためです。

データ・マイニング手法は大規模なデータセットに適していて、容易に自動化できます。実際、データ・マイニング・アルゴリズムでは多くの場合、良質なモデルを作成するために大規模なデータセットが必要とされます。

データ・マイニングとOLAP

On-Line Analytical Processing(OLAP)は、共有されている多次元データの高速な分析であると定義できます。OLAPとデータ・マイニングは異なりますが、相互に補完的なアクティビティです。

OLAPでは、データ集約、コスト割当て、時系列分析およびwhat-if分析などのアクティビティがサポートされています。ただし、ほとんどのOLAPシステムには、時系列予測のサポートを超える帰納的推論の機能はありません。特定のサンプルから一般的な結論を導き出すプロセスである帰納的推論は、データ・マイニングの特性です。帰納的推論は、計算論的学習とも呼ばれます。

OLAPシステムではデータの多次元的ビューが提供され、階層が完全にサポートされます。このデータ・ビューは、企業や組織の分析に一般的に使用される様式です。一方、データ・マイニングには通常の場合、次元や階層の概念はありません。

データ・マイニングとOLAPは、様々な方法で統合できます。たとえば、データ・マイニングを使用して、キューブ用のディメンションの選択、ディメンション用の新しい値の作成、キューブ用の新しいメジャーの作成などが可能です。OLAPを使用すると、データ・マイニングの結果を様々な粒度レベルで分析できます。

データ・マイニングを使用すると、より興味深い有益なキューブを作成できます。たとえば、予測データ・マイニングの結果をカスタム・メジャーとしてキューブに追加できます。このようなメジャーにより、各顧客について「債務を履行しない可能性が高い」または「購入する可能性が高い」などの情報を提供できます。OLAP処理を使用すれば、さらに確率を集計したり要約したりできます。

データ・マイニングとデータ・ウェアハウス

データは、フラット・ファイル、スプレッドシート、データベース表またはその他の格納形式で保存されている場合でもマイニングできます。データの重要な基準は格納形式ではなく、解決すべき問題への適用性にあります。

データ・マイニングでは、データの整備および準備を適切に行うことが非常に重要であり、これらのアクティビティはデータ・ウェアハウスで円滑に実行できます。ただし、問題の解決に必要なデータが含まれていないデータ・ウェアハウスは役に立ちません。

Oracle Data Miningでは、1つの例外に単一レコード・ケースのデータ表示が必要です。各レコード(ケース)のデータは、1つの行に指定する必要があります。例外は、相関ルールの計算を行うAprioriアルゴリズムによって受取るデータです。相関ルールのデータが、トランザクション(マーケット・バスケット・データ)として、各ケースのデータが複数の行に指定されて表示される場合があります。

関連項目:
Oracle Data Miningでのデータ要件の詳細は、『Oracle Data Miningアプリケーション開発者ガイド』を参照してください。

データ・マイニングで可能なこと、不可能なこと

データ・マイニングは、データ内のパターンや関係性の検出に役立つ強力なツールです。ただし、データ・マイニングは、単独では機能しません。データ・マイニングを実施しても、ユーザーによるビジネス、データおよび分析手法への理解が必要であることに変わりはありません。データ・マイニングによってデータに隠された情報が発見されても、その情報がユーザーの組織にとってどのような価値を持つかは提示できません。

ユーザーは、長期にわたってデータを処理してきた結果、重要なパターンについてはすでに認識している可能性があります。データ・マイニングでは、そうした経験的観測の追認や適切性の確認ができ、その上で、簡単な観測ではすぐには認識できない可能性のある新たなパターンを発見できます。

データ・マイニングで検出された予測の関係は、因果関係ではないことを理解しておいてください。たとえば、データ・マイニングによって、「収入が$50,000から$65,000で、特定の雑誌を購読する男性は、特定の製品を購入する傾向にある」と判断されたとします。ユーザーは、この情報をマーケティング戦略の開発に利用できますが、データ・マイニングで識別された母集団が、この母集団に属するという理由でその製品を購入すると想定するべきではありません。

適切な問題の設定

データ・マイニングでは、ガイダンスがなければ自動的に情報は発見されません。データ・マイニングを通じて発見されるパターンは、ユーザーが問題をどのように設定するかによって大きく異なります。

意味のある結果を得るには、適切な設問のしかたを学ぶ必要があります。たとえば、ダイレクト・メールによるセールスへの反応を向上させる方法を知ろうとするよりは、過去にセールスに対して反応した顧客の特性を検出しようとする方が有用な場合があります。

データの理解

意味のあるデータ・マイニング結果を得るには、データを理解する必要があります。データ・マイニング・アルゴリズムは、データの特定の特徴に敏感な場合が多くあります。たとえば、外れ値(データベース内の標準的な値とは大きく異なるデータ値)、無関係な列、同時に変化する列(年齢と生年月日など)、データ・コーディング、および含めるまたは除外すると選択したデータです。Oracle Data Miningでは、アルゴリズムで必要なデータ準備のほとんどが自動的に実行されます。ただし、データ準備の一部は、通常はドメインまたはデータ・マイニングの問題に固有となります。モデルの適用時に結果を正しく解釈するためには、モデルの作成に使用したデータについて理解しておく必要があります。

関連項目:
Oracle Data Miningのデータ準備の詳細は、第19章「自動データ準備と組込みのデータ準備」を参照してください。

データ・マイニングのプロセス

図1-1に、データ・マイニング・プロジェクトの各フェーズおよび反復的な性質を示します。このプロセス・フローでは、特定の解決が得られた後もデータ・マイニング・プロジェクトは停止しないことを示しています。データ・マイニングの結果からビジネス上の新たな問題が提起され、この問題を利用してさらに的確なモデルを開発できます。

図1-1 データ・マイニングのプロセス

「図1-1 データ・マイニングのプロセス」の説明

問題の定義

データ・マイニング・プロジェクトの最初のフェーズでは、プロジェクトの目的および要件の把握に取り組みます。ビジネスの観点からプロジェクトを特定した時点で、そのプロジェクトをデータ・マイニング問題として編成し、暫定的な実装計画として開発できるようになります。

たとえば、ビジネス上の問題が「顧客により多くの製品を購入してもらうには」という場合があります。これは「どの顧客が製品を購入する可能性が高いか」などの、データ・マイニングの問題として解釈できます。製品を購入する可能性が最も高い顧客を予測するモデルは、過去に製品を購入したことがある顧客を説明するデータに基づいて作成する必要があります。モデルを作成する前に、製品を購入したことがある顧客と購入したことがない顧客の関係を含む可能性が高いデータをアセンブルする必要があります。顧客の属性には、年齢、子供の数、居住年数、持ち家または賃貸などがあります。

データの収集と準備

データの把握フェーズでは、データの収集や調査を行います。データを詳細に調べるほど、そのデータによって当該のビジネス問題をどの程度解決できるかを判断できるようになります。一部のデータの削除や、他のデータの追加を行う場合もあります。また、このフェーズでは、データの質に関する問題の識別やデータ内のパターンのスキャンも行います。

データの準備フェーズでは、モデルの作成に使用するケース表の作成に必要なタスクをすべて実施します。データ準備のタスクは複数回にわたって実行される可能性が高く、所定の順序には従いません。こうしたタスクには、表、ケースおよび属性の選択に加え、データの整備や変換も含まれます。たとえば、DATE_OF_BIRTH列のAGEへの変換や、INCOME列がNULLのケースへの平均収入の挿入といったタスクが考えられます。

また、データの表面に近い情報を引き出すために、新しく計算された属性を追加できます。たとえば、購入額ではなく、「12か月間で購入額が500ドルを超えた回数」などの新しい属性を作成することができます。頻繁に高額の購入をする顧客は、オファーに反応する顧客としない顧客とも関連する可能性があります。

十分に考慮してデータを準備すると、データ・マイニングで発見できる情報の価値を大幅に高めることができます。

モデルの作成と評価

このフェーズでは、様々なモデリング手法を選択して適用し、パラメータを最適な値に調整します。アルゴリズムでデータ変換が必要な場合、実装するには、(第19章で説明されているとおり、Oracle自動データ準備を使用している場合を除き)前のフェーズに戻る必要があります。

最終的なケース表には何千、何万という数のケースが存在する可能性があるため、暫定的なモデルを作成するときは、多くの場合データセットの数を少なくして(ケース表の行数を減らして)作業する方が合理的です。

プロジェクトのこの段階では、モデルが、事前に示されたビジネス目標をどの程度満たしているか評価します(フェーズ1)。モデルが製品を購入する可能性が高い顧客を予測する場合、2つのクラスを十分に区別できているか。リフトが十分か。混同マトリックスに示したトレードオフは許容可能か。テキスト・データの追加によりモデルが向上するか。購入(マーケット・バスケット・データ)などのトランザクショナル・データを含める必要があるか。偽陽性または偽陰性に関連付けられているコストをモデルに組み込む必要があるか。(分類のテスト・メトリックおよびコストの詳細は、第5章を参照してください。トランザクショナル・データの詳細は、第8章を参照してください。)

知識の配置

知識の配置とは、ターゲット環境内でデータ・マイニングを利用することです。配置フェーズでは、本質的かつ実用的な情報をデータから導き出すことができます。

配置では、スコアリングの実行(新しいデータへのモデルの適用)、モデルの詳細(ディシジョン・ツリーのルールなど)の抽出の他、アプリケーション、データ・ウェアハウス・インフラストラクチャ、問合せツールやレポート・ツールなどへのデータ・マイニング・モデルの統合などを行います。

Oracle Data Miningによるモデルの作成および適用はOracle Database内で実行されるため、その結果はすぐに利用できます。データ・マイニングの結果は、BIレポート・ツールまたはダッシュボードで簡単に表示できます。さらに、Oracle Data Miningではリアルタイムのスコアリングもサポートしているので、データのマイニング結果が1回のデータベース・トランザクション内で戻されます。たとえば、販売担当者は、不正の可能性を予測するモデルをオンライン販売のトランザクションのコンテキスト内で実行できます。

関連項目:
Oracle Data Miningでのスコアリングおよびデプロイメントの詳細は、『Oracle Data Miningアプリケーション開発者ガイド』を参照してください。

2 Oracle Data Miningの紹介

この章では、Oracle Data Miningの使用を開始する際に必要となる基本事項を紹介します。

この章には、次の項が含まれます。

- データベース・カーネル内でのデータ・マイニング

- Oracle Exadataでのデータ・マイニング

- データ・マイニング機能

- データ・マイニングのアルゴリズム

- データ準備

- モデルの透明性

- Oracle Data Miningの使用方法

- Oracle Data Miningに関する情報源

- Oracle Data MiningおよびOracle Databaseの分析機能

データベース・カーネル内でのデータ・マイニング

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 Database内のOracle Data Mining機能には、PL/SQL APIおよびSQL言語の演算子を利用して直接アクセスできます。

注意:
Oracle Data Mining Java APIは、このリリースでは非推奨です。
新しいアプリケーションでは、非推奨となった機能を使用しないことをお薦めします。推奨されない機能は、下位互換性を維持する目的のみでサポートされています。

Oracle Exadataでのデータ・マイニング

スコアリングとは、データ・マイニング・モデルをデータに適用して予測を生成するプロセスのことです。スコアリング・プロセスには、システム・リソースがかなり必要になることがあります。状況によっては、膨大な量のデータが関係するため、アルゴリズムの処理は非常に複雑になります。

Oracle Data Miningでは、処理が非常に高速でインテリジェントなOracle Exadata Storage Serverにスコアリングの負荷を移行できます。

Oracle Exadata Storage Serverは、オラクル社の高性能なストレージ・ソフトウェアとオラクル社の業界標準仕様のSunハードウェアを組み合せて、業界最高レベルのデータベース・ストレージ・パフォーマンスを実現します。Oracle Exadataの詳細は、次のURLでOracle Technology Networkを参照してください。

http://www.oracle.com/us/products/database/exadata/index.htm

データ・マイニング機能

Oracle Data Miningの使用にあたっては、データ・マイニングの機能およびアルゴリズムに関する基礎的な理解が必要です。この項では、データ・マイニングの機能の概念を紹介します。アルゴリズムについては、「データ・マイニングのアルゴリズム」の項で紹介します。

データ・マイニングの各機能は、モデル化や解決の対象となり得る問題の種類を表しています。データ・マイニング機能は、一般に監視ありと監視なしの2つのカテゴリに分けられます。監視あり学習、監視なし学習という概念は、人工知能の1分野といわれる機械学習学に由来しています。

人工知能とは、自身の知能や動作を自主的に提示するシステムの実装や研究を指します。機械学習においては、デバイスが自身のパフォーマンスから学習して、自身の機能を変更できるようにする技術が扱われます。データ・マイニングでは機械学習の概念がデータに適用されます。

関連項目:
データ・マイニング機能の詳細は、第II部「マイニング機能」を参照してください。

監視ありデータ・マイニング

監視あり学習は、指示あり学習とも呼ばれます。この種の学習プロセスは、既知である従属属性またはターゲットからの指示を受けます。指示ありデータ・マイニングでは、ターゲットの動作を一連の独立属性や予測子の機能として説明するように試みられます。

監視あり学習は、通常、予測モデルに帰着します。パターン検出を目的とする監視なし学習とは、この点が異なります。

監視ありモデルでは、トレーニング作業(ソフトウェアがターゲット値がすでにわかっている多くのケースを分析するプロセス)が伴います。トレーニング・プロセスでは、モデルが予測を作成するロジックを「学習」します。たとえば、プロモーションに反応する可能性が高い顧客を識別するモデルの場合、過去にプロモーションに反応を示した、または反応を示さなかったことがわかっている多くの顧客の特徴を分析してトレーニングする必要があります。

監視あり学習: テスト

予測モデルの作成(トレーニング)とテストには、別々のデータセットが必要です。作成データ(トレーニング・データ)とテスト・データは同じ列構造である必要があります。通常は、1つの大規模な表またはビューを2つのデータセットに分割し、1つをモデルの作成用、もう1つをモデルのテスト用とします。

モデルをテスト・データに適用するプロセスは、選択した1つのサンプル上で作成されたモデルが、他のデータに一般化できるかどうかを決定するのに役立ちます特に、モデルのロジックが作成データと高い確率で一致するため、予測能力がわずかになってしまうオーバーフィットの現象を回避するのに役立ちます。

監視あり学習: スコアリング

適用データはスコアリング・データとも呼ばれ、モデルの適用対象となる実際の母集団のことを指します。例として、特定の製品を頻繁に購入する顧客の特性を識別するモデルを作成する場合について考えてみます。特定の店舗で買い物をする顧客のうち関連製品を購入する可能性がある顧客の一覧を取得するために、このモデルを当該店舗の顧客データに適用するとします。この場合、店舗の顧客データがスコアリング・データとなります。

監視あり学習のほとんどは、対象とする母集団に適用できます。スコアリングは、分類モデルおよび回帰モデルの目的であり、主要な監視ありマイニング手法です。

Oracle Data Miningでは、もう1つの監視あり機能である属性評価のスコアリング操作はサポートしていません。このタイプのモデルは、対象とする母集団に基づいて作成され、その母集団に関する情報を取得するため、別個のデータには適用できません。属性評価モデルでは、ターゲット値の予測において最も重要な属性が戻され、ランク付けされます。

関連項目:
表2-1, 「Oracle Data Miningの監視あり機能」

監視なしデータ・マイニング

監視なし学習は、有向ではありません。従属属性と独立属性は区別されません。モデルを作成する際にアルゴリズムをガイドするための既知の結果がありません。

監視なし学習は、記述目的で使用できます。また、予測の作成にも使用できます。

監視なし学習: スコアリング

監視なしデータ・マイニングはターゲットを指定しませんが、ほとんどの監視なし学習は対象とする母集団に適用できます。たとえば、クラスタリング・モデルは記述データ・マイニングの手法を使用しますが、クラスタの割当てに従ってケースを分類するために適用できます。異常検出は監視なしですが、通常は、あるデータ・ポイントが一連のケース内で典型的かどうかを予測するために使用されます。

Oracle Data Miningでは、クラスタリングおよび特徴 抽出(いずれも監視なしマイニング機能)のスコアリング操作をサポートしています。もう1つの監視なし機能である相関ルールのスコアリング操作はサポートしていません。相関モデルは、特定の母集団に関する情報を取得するためにその母集団に基づいて作成されるため、別個のデータには適用できません。相関モデルでは、項目またはイベントが互いにどのように関連付けられるのかを説明するルールが戻されます。相関ルールは統計とともに戻され、この統計を使用して確率に従ってランク付けされます。

関連項目:
表2-2 Oracle Data Miningの監視なし機能

Oracle Data Miningの機能

Oracle Data Miningでは、表2-1に示す監視ありデータ・マイニング機能がサポートされます。

表2-1 Oracle Data Miningの監視あり機能

機能

説明

サンプル・プログラム

属性評価

ターゲット属性の予測において最も重要な属性を識別する。

提携カード・プログラムに対する顧客の反応を指定し、最も重要な予測子を検出する。

分類

個々のクラスに項目を割り当て、ある項目が属するクラスを予測する。

1群の顧客に関する人口統計データを指定し、提携カード・プログラムに対する顧客の反応を予測する。

回帰

連続する値を近似および予測する。

1群の顧客に関する人口統計データおよび購入データを指定し、顧客の年齢を予測する。

Oracle Data Miningでは、表2-2に示す監視なし機能がサポートされます。

表2-2 Oracle Data Miningの監視なし機能

機能

説明

サンプル・プログラム

異常検出(1クラス分類によって実装される)

「通常の」データの特徴に合致しない項目(外れ値)を識別する。

1群の顧客に関する人口統計データを指定し、顧客の基準から大きく外れる購買行動を識別する。

相関ルール

データ内で同時発生する傾向にある項目を検出し、その同時発生の原則となるルールを特定する。

一緒に購入される傾向にある項目群を検出し、その関係性を特定する。

クラスタリング

データ内で自然なグループを検出する。

人口統計データを複数のクラスタに分割し、ある個人が特定のクラスタに属する確率をランク付けする。

特徴抽出

元の属性の一次結合を使用して、新しい属性(特徴)を作成する。

1群の顧客に関する人口統計データを指定し、顧客の一般的な特徴別に属性をグループ分けする。

関連項目:
Oracle Data Miningでサポートされているマイニング機能の詳細は、第II部を参照してください。

データ・マイニングのアルゴリズム

アルゴリズムとは、特定の種類の問題を解決するための数学的手続きです。Oracle Data Miningでは、各データ・マイニング機能について少なくとも1つのアルゴリズムがサポートされています。一部の機能では、複数のアルゴリズムから選択することも可能です。たとえば、分類については4種類のアルゴリズムがサポートされています。

各データ・マイニング・モデルは、特定のアルゴリズムから生成されます。データ・マイニングの問題には、複数のアルゴリズムを使用すると最も適切に解決できるものもあります。この場合、複数のモデルの開発が必要になります。たとえば、初めに特徴抽出モデルを使用して1組の最適化された予測子を作成し、続いて分類モデルを使用してその結果に対する予測を作成するといった方法があります。

注意:
それぞれのアルゴリズムの内部的な仕組みを理解しなくても、正しくデータ・マイニングを行うことができます。ただし、アルゴリズムの一般的な特徴と、様々なアプリケーションに対する適合性を理解することは重要です。

Oracle Data Miningの監視ありアルゴリズム

Oracle Data Miningでは、表2-3に示す監視ありデータ・マイニング・アルゴリズムがサポートされます。次に示すアルゴリズムの略称は、このマニュアル全体で使用されます。

表2-3 Oracle Data Miningの監視あり機能用アルゴリズム

アルゴリズム

機能

説明

ディシジョン・ツリー(DT)

分類

ディシジョン・ツリーを使用すると、人間が理解可能なルールの形式で予測情報を抽出できる。このルールはif-then-else式で、予測を導く決定を示す。

一般化線形モデル(GLM)

分類および回帰

GLMでは、2項ターゲットの分類用にロジスティック回帰が、連続的ターゲット用に線形回帰が実装される。GLM分類では予測確率の信頼限界がサポートされる。GLM回帰では予測の信頼限界がサポートされる。

最小記述長(MDL)

属性評価

MDLは情報理論モデルの選択原理の1つである。MDLでは、最も単純でコンパクトな表現が、データの説明として最適かつ最も可能性が高いとみなされる。

Naive Bayes(NB)

分類

Naive Bayesは、基底の根拠から予測の確率を導き出すBayesの定理を使用して、データで観測された根拠から予測を行う。

サポート・ベクター・マシン(SVM)

分類および回帰

SVMの個々のバージョンで様々なカーネル関数を使用して、種々のデータセットを処理する。線形カーネルおよびガウス(非線形)カーネルがサポートされている。

SVM分類では、可能性のある最大マージンでのターゲット・クラスの分類が試行される。

SVM回帰では、データ・ポイントの最大数がイプシロン幅のチューブ内に収まるような連続関数の検出が試行される。

Oracle Data Miningの監視なしアルゴリズム

Oracle Data Miningでは、表2-4に示す監視なしデータ・マイニング・アルゴリズムがサポートされます。次に示すアルゴリズムの略称は、このマニュアル全体で使用されます。

表2-4 Oracle Data Miningの監視なし機能用アルゴリズム

アルゴリズム

機能

説明

Apriori(AP)

相関

Aprioriは、あるセット内で同時発生する項目(高頻度項目セット)を検出することにより、マーケット・バスケット分析を行う。Aprioriでは、指定した最小限のサポートよりも高度なサポート、および指定した最小限の信頼度よりも高度な信頼度を備えたルールが検出される。

k-Means(KM)

クラスタリング

k-meansは、データを事前に指定されたクラスタ数に分割する、距離ベースのクラスタリング・アルゴリズムです。各クラスタには重心があります(中心は、重心とも呼ばれます)。クラスタ内のケース(母集団内の個人)は重心に近いところにあります。

Oracle Data Miningでは、k-Meansの拡張バージョンがサポートされる。拡張バージョンは従来の実装よりも高度で、クラスタの階層形式の親子関係が定義される。

Non-Negative Matrix Factorization(NMF)

特徴抽出

NMFは、元の属性の一次結合を使用して新しい属性を生成する。一次結合の係数は非負数。モデル適用の際、NMFモデルでは、モデルによって発見された属性(特徴)の新しいセットに元のデータがマップされる。

1クラス・サポート・ベクター・マシン(1クラスSVM)

異常検出

1クラスSVMは1クラスのプロファイルを作成して、そのプロファイルからなんらかの形で外れるケースを適用時に指摘する。これにより、必ずしも相互には関連していない頻度の低いケースの検出が可能になる。

直交パーティショニング・クラスタリング(O-ClusterまたはOC)

クラスタリング

O-Clusterは、階層形式かつグリッドベースのクラスタリング・モデルを作成する。このアルゴリズムでは、属性空間内の密度の高い領域を定義するクラスタが作成される。基準となる密度レベルはsensitivityパラメータで定義される。

関連項目:
Oracle Data Miningでサポートされているアルゴリズムの詳細は、第III部を参照してください。

データ準備

マイニング用のデータは単一の表またはビュー内に存在している必要があります。各ケース(レコード)の情報は、別個の行に格納されていなければなりません。

Oracle Data Mining独自の機能として、ネストした表の変換を介して、ディメンション化されたデータ(スター・スキーマなど)をサポートする点があげられます。また、Oracle Data Miningでは非構造化データをマイニングできます。

関連項目:

データ・マイニング用の表またはビューの作成方法は、『Oracle Data Miningアプリケーション開発者ガイド』を参照してください。

非構造化データのマイニングの詳細は、第20章「テキスト・マイニング」を参照してください。

適切なデータ準備は、どのようなデータ・マイニング・プロジェクトにおいても重要な要素です。データは、適切に整備して非一貫性を排除し、マイニング・アプリケーションのニーズを満たす必要があります。さらに、大部分のアルゴリズムではビニングや正規化など、なんらかの形式のデータ変換が必要とされます。

データ・マイニングの開発プロセスでは、複数のデータセットが必要となる場合があります。モデルの作成(トレーニング)に必要なデータセットの他に、スコアリング用として別のデータセットを使用することもあります。分類モデルの場合はテスト・データセットも必要です。これらのデータセットはそれぞれ、すべて同じ方法で準備する必要があります。

自動データ準備

Oracle Data Miningでは自動のデータ変換および組込みのデータ変換がサポートされており、これらの機能によって、データ・マイニング・モデルの開発に必要な時間や負担が大幅に軽減できます。自動データ準備(ADP)モードでは、モデル自体がアルゴリズムの要件に従って作成データを変換します。変換の指示はそのモデルに組み込まれており、モデルが適用されるたびに再利用されます。

Oracle Data Miningで自動的に実行される変換にユーザー独自の変換を追加することもできます。独自の変換は自動変換指示とともに組み込まれ、モデルが適用されるたびに自動変換とともに再利用されます。この場合、独自の変換を指定するのは作成データに対しての1回のみです。モデル自体が適用される際にデータを適切に変換します。

マイニング・モデルは自身のデータを準備するための指示を格納しているため、スーパーモデルとも呼ばれます。

関連項目:
第19章「自動データ準備と組込みのデータ準備」

モデルの透明性

Oracle Data Miningでは、高度なモデルの透明性が確保されています。すべてのモデルで、問合せを実行してトレーニング・データでのアルゴリズムの影響を観測できるモデルの詳細のセットがサポートされています。また、一部のアルゴリズムでは、モデルで使用されるロジックを表すルールが生成されます。クラスタリング・アルゴリズム、ディシジョン・ツリーおよび相関ルールは、すべてルールを生成します。

モデルによって内部で使用されるデータは、多くの場合、モデルの作成に使用されているデータに見えません。これは、アルゴリズムの処理の前に、モデルによってほとんどのデータが変換されるためです。モデルの詳細で、これらを逆変換し、ユーザーが理解できるようにトレーニング・データを表示します。同様に、監視ありモデルのターゲットに適用されたすべての変換が、結果がユーザーに戻される前に逆変換されます。

関連項目:

モデルの詳細で戻される情報の概要は、『Oracle Data Miningアプリケーション開発者ガイド』を参照してください。

O-Cluster、k-Means、ディシジョン・ツリーおよびAprioriについての章は、第III部, 「アルゴリズム」を参照してください。

Oracle Data Miningの使用方法

Oracle Data Miningでは、PL/SQL、SQLおよびRのプログラム・インタフェースがサポートされています。

注意:
Oracle Data Mining Java APIは、このリリースでは非推奨です。

PMML準拠の一部のモデルは、スコアリング用としてOracle Databaseにインポートできます。

Oracle Data Minerのグラフィカル・ユーザー・インタフェースを使用すると、Oracle Data Miningのデータベース内のすべての機能にアクセスできます。Spreadsheet Add-Inを使用すると、Oracle Data Miningで動作する予測分析にアクセスできます。

Oracle Data Miner

Oracle Data Minerは、Oracle Data Miningのグラフィカル・ユーザー・インタフェースです。Oracle SQL Developer 3.0の拡張機能であるOracle Data Minerでは、ワークフロー・パラダイムを使用して、データ・マイニング・タスクが実行されます。

Oracle Data Minerを使用して、データの調査、複数のマイニング・モデルの作成および評価、または新しいデータへのモデルの適用を行うことができます。ワークフローを作成して、様々なマイニング・タスクを実行するための方法を捕捉およびドキュメント化できます。ワークフローは、保存して共有できます。

関連項目:
『Oracle Data Mining管理者ガイド』

注意:
『Oracle Data Miner 11g リリース 2 (11.2.0.3)』は、次のURLからダウンロードできます。
http://www.oracle.com/technetwork/database/options/odm/dataminerworkflow-168677.html

以前のリリースのOracle Data Minerの開発は終了していますが、Oracle Technology Networkからダウンロード可能です。以前のリリースは、次のURLからダウンロードできます。

http://www.oracle.com/technetwork/database/options/advanced-analytics/odm/downloads/index.html

PL/SQLパッケージ

Oracle Data MiningのPL/SQL APIは、次のPL/SQLパッケージに実装されています。

- DBMS_DATA_MINING- データ・マイニング・モデルの作成、テストおよび適用のためのルーチンが含まれます。

- DBMS_DATA_MINING_TRANSFORM — モデルを作成または適用する前にデータセットを変換するルーチンが含まれます。これらのルーチン、ルーチンの適応、または他のSQLベースのメソッドを使用して、変換を実装できます。
ユーザー定義の変換は、必要でない可能性がある点に注意してください。ADPを使用する場合、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問合せおよび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言語リファレンス』

R-ODM

Oracle Data Mining (R-ODM)のRインタフェースを使用すると、Rプログラミング環境からOracle Data Miningにアクセスできます。R-ODMは、ソースR言語で記述される関数ラッパーのセットで構成されています。これらの関数によって、ODBC接続を介して、データおよびパラメータがR環境からOracle Databaseにパスされます。

R-ODMインタフェースは、完全にOracle Databaseの外部にあります。Oracle製品のコードは、使用および公開されません。R-ODMは、標準のRソース・パッケージとしてパッケージ化されていて、Comprehensive R Archive Network (CRAN)の一部として無償で配布されています。

関連項目:

R-ODMの詳細は、http://www.oracle.com/technetwork/database/options/odm/odm-r-integration-089013.htmlを参照してください。

R環境、RパッケージおよびCRANの詳細は、http://www.r-project.orgを参照してください。

PMMLのインポート

PL/SQL APIを使用して、予測モデル・マークアップ言語(PMML)で表されたGLMモデルを、Oracle databaseにインポートできます。この機能は、Oracle Database 11gリリース2 (11.2.0.2) Data Mining以上で使用可能です。

PMMLは、Data Mining Group(http://www.dmg.org)によって策定されたXMLベースの規格です。PMMLに準拠しているアプリケーションは、任意のベンダーによって作成されたPMML準拠のモデルを配置できます。Oracle Data Miningでは、回帰モデルに対応するPMML 3.1のコア機能をサポートしています。

関連項目:

データ・マイニング・モデルのエクスポートおよびインポートについては、『Oracle Data Mining管理者ガイド』を参照してください。

PMMLの詳細は、http://www.dmg.org/faq.htmlを参照してください。

Oracle Spreadsheet Add-In for Predictive Analytics

予測分析では、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/technetwork/database/options/odm/index.html

関連項目:
第3章「Oracle Predictive Analyticsの紹介」

Java API

Oracle Data MiningのJava APIは、データ・マイニング用のJDM標準Java API(JSR-73)のOracle実装です。このJava APIはPL/SQL API上に用意され、2つのAPI間には完全な相互運用性があります。

注意:
Oracle Data Mining Java 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アプリケーション開発者ガイド』

Oracle Data Miningに関する情報源

Oracle Data Miningのドキュメントは、Oracle Databaseドキュメント・ライブラリに含まれています。

参考までに、Oracle Data Miningおよび関連するOracle Databaseのマニュアルの一覧を表2-5に示します。

表2-5 Oracle Data Miningのドキュメント

ドキュメント

説明

『Oracle Data Mining概要』

このマニュアル。Oracle Data Miningでサポートされる、マイニング機能、アルゴリズム、データ準備、予測分析およびその他の特別な機能の概要。

『Oracle Data Miningアプリケーション開発者ガイド』

Oracle Data Miningのプログラム・インタフェースの使用方法。

『Oracle Data Mining管理者ガイド』

データ・マイニング用のデータベースのインストール方法と管理方法。デモ・プログラムのインストールおよび使用方法。

『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』

データ・マイニングのPL/SQL API構文の使用方法。

『Oracle Database SQL言語リファレンス』

データ・マイニングSQL関数構文の使用方法。

『Oracle Databaseリファレンス』

マイニング・モデル、マイニング・モデルの属性およびマイニング・モデルの設定に関する情報を取得するためのデータ・ディクショナリ・ビューの問合せ方法。

関連項目:
Oracle Databaseドキュメント・ライブラリはhttp://www.oracle.com/pls/db112/homepageで公開されています。

Oracle Technology Network上のOracle Data Miningリソース

Oracle Technology Network(OTN)は簡単にアクセス可能で、有用な情報が提供されているサイトです。Oracle Data Miningのホーム・ページには、次のURLでアクセスできます。

http://www.oracle.com/technetwork/database/options/odm/index.html

このサイトには、ダウンロード用のツールおよび教材の他、ニュースやディスカッション・フォーラムも用意されています。このサイトでは次の内容を参照できます。

- Oracle Data Miner (ダウンロード)

- Oracle Spreadsheet Add-In for Predictive Analytics (ダウンロード)

- サンプル・コード (ダウンロード)

- R-ODM情報

- ホワイト・ペーパーとウェブ・キャスト

- Oracle Data Miningのディスカッション・フォーラム

- Oracle Databaseのデータ・マイニングと分析

Oracle Data MiningおよびOracle Databaseの分析機能

「データベース・カーネル内でのデータ・マイニング」で説明したように、データベース内部での分析には多大な利点があります。データが格納されている場所に分析機能を実装すると、データを分析のために外部のサーバーにエクスポートする必要がありません。分析の結果もインポートする必要がなく、データベース内に存在するので、アクセス、更新および他のデータとの組合せも簡単です。

データ・マイニングや予測分析の他にも、Oracle Databaseでは幅広い分析機能がサポートされています。そうした機能はそれぞれが共通サーバーの一部であるため、効率的に組み合せることができます。分析処理の結果は、Oracle Business Intelligence Suite Enterprise EditionなどのBIツールやアプリケーションに統合できます。これらを総合すると、こうした機能により、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の分析の概要

分析機能

説明

ドキュメント

データ・マイニング

Oracle Data Miningは、大規模なデータを取捨選択し、隠された情報を検出する複雑なアルゴリズムを実装している。データ・マイニング・モデルは、パターンを発見し、推定される結果を予測し、主要な予測子を識別し、その他の価値の高い情報を検出する。

『Oracle Data Mining概要』(このマニュアル)

複合データの変換

データ変換は、分析用アプリケーションやETL(抽出、変換およびロード)の重要な側面である。データ変換の実装には、SQL式またはDBMS_DATA_MINING_TRANSFORMパッケージを使用できる。

DBMS_DATA_MINING_TRANSFORMは柔軟性のあるデータ変換用パッケージで、ビニングや正規化の機能に加え、様々な欠損値や外れ値の処理が含まれる。

『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』

統計関数

Oracle Databaseでは多数のSQL統計関数が提供され、仮説検定(t検定、F検定など)、相関関数(ピアソン相関など)、クロスタブ統計および記述統計(中央値、最頻値など)がサポートされる。DBMS_STAT_FUNCSパッケージにより、分布適用プロシージャや、ある列に対する記述統計を戻すサマリー・プロシージャが追加されている。

『Oracle Database SQL言語リファレンス』および『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』

ウィンドウ関数と分析SQL関数

Oracle Databaseでは、累積集計、移動集計および集中集計を計算するためのウィンドウ関数および分析関数がサポートされる。集計ウィンドウ関数を使用すると、移動および累積バージョンのSUM、AVERAGE、COUNT、MAX、MINなど多数の関数を計算できる。

『Oracle Databaseデータ・ウェアハウス・ガイド』

高頻度項目セット

DBMS_FREQUENT_ITEMSETでは、高頻度項目セット・カウント(複数のイベントが同時に発生する頻度をカウントするメカニズム)がサポートされています。DBMS_FREQUENT_ITEMSETが、Oracle Data Miningで使用する相関ルール・アルゴリズムのビルディング・ブロックとして使用されます。

『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』

線形代数

UTL_NLAパッケージでは、VARRAYで表されるベクターや行列に対する操作用に、一般的なBLASおよびLAPACKライブラリ(バージョン3.0)のサブセットが公開される。このパッケージには、一次方程式のシステムを解決するプロシージャ、行列を反転するプロシージャ、および固有値と固有ベクターを計算するプロシージャが含まれる。

『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』

OLAP

Oracle OLAPは多次元分析をサポートし、多次元問合せのパフォーマンスを向上するために使用できる。これまでは特殊なOLAPデータベースのみに存在した機能も提供されている。Oracle OLAPでは、ドリルダウンやロールアップにとどまらず、時系列分析、モデリングおよび予測の機能もサポートされる。

『Oracle OLAPユーザーズ・ガイド』

空間分析

Oracle Spatialでは、ハイエンドGISおよびLBSソリューションをサポートする高度な空間機能が提供される。Oracle Spatialの分析およびマイニング機能には、ビニング、地域パターンの検出、空間相関、関連マイニング、および空間クラスタリングなどの機能がある。

また、Oracle Spatialでは、トポロジおよびネットワーク・データのモデルと分析もサポートされる。Oracle Spatialのトポロジ・データ・モデルを使用すると、トポロジ内のノード、エッジおよびフェイスに関するデータと連携できる。最短経路、最小コストの全域木、隣接分析、巡回セールスマン問題の計算など様々なネットワーク分析機能が含まれる。

『Oracle Spatial開発者ガイド』

テキスト・マイニング

Oracle Textでは、Oracleデータベース、ファイルおよびWeb上に格納されているテキストおよびドキュメントの索引付け、検索および分析のために標準SQLが使用される。また、一群のドキュメントの自動分類およびクラスタリングもサポートされる。こうした分析機能の多くは、ODM機能の最上位に用意されている。

『Oracle Textアプリケーション開発者ガイド』

3 Oracle Predictive Analyticsの紹介

この章では、予測データ・マイニングを自動的に実行する、Oracle Data Miningの予測分析の概要を説明します。

関連項目:

インストール手順については、『Oracle Data Mining管理者ガイド』を参照してください。

PL/SQLの予測分析の構文については、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照してください。

この章には、次の項が含まれます。

- 予測分析とは

- Oracle Spreadsheet Add-In for Predictive Analytics

- DBMS_PREDICTIVE_ANALYTICS

- 例: PREDICT

- 背景情報

予測分析とは

予測分析は、データ・マイニング・プロセスを単純なルーチンで実行する手法です。「1クリック・データ・マイニング」とも呼ばれるとおり、予測分析では、データ・マイニング・プロセスの単純化と自動化を実現しています。

予測分析ではプロファイルを作成し、特定の結果をもたらす要因を見つけ、最も起こりそうな結果を予測し、予測における信頼度を特定します。

予測分析とデータ・マイニング

予測分析ではデータ・マイニングの手法を使用しますが、データ・マイニングに関する知識は必要としません。

ユーザーは、データに対して実行する操作を指定するだけで予測分析を実行できます。マイニング・モデルを作成または使用したり、このマニュアルの第2章で説明されているマイニング機能やマイニング・アルゴリズムについて理解しておく必要もありません。

仕組み

予測分析ルーチンによって、入力データが分析され、マイニング・モデルが作成されます。これらのモデルがトレーニングおよびテストされてから、ユーザーに戻される結果を生成するために使用されます。操作の完了後は、モデルおよび補助オブジェクトは保存されません。

データ・マイニング手法を直接利用する場合は、自分でモデルを作成するか、他のユーザーが作成したモデルを使用します。通常、モデルは新しいデータ(モデルのトレーニングおよびテストに使用されるデータとは異なるデータ)に適用します。予測分析ルーチンでは、トレーニングおよびテストに使用されたものと同じデータにモデルが適用されます。

関連項目:
Oracleの予測分析における内部的な仕組みについては、「背景情報」を参照してください。

予測分析の操作

Oracle Data Miningの予測分析の操作については、表3-1を参照してください。

表3-1 Oracle Predictive Analyticsによる操作

操作

説明

EXPLAIN

ターゲット列の値の偏差に対して個々の属性がどのように影響するかを説明する。

PREDICT

各ケースについて、ターゲット列の値を予測する。

PROFILE

同じターゲット値を想定するケースに対するルールのセットを作成する。

Oracle Spreadsheet Add-In for Predictive Analytics

Oracle Spreadsheet Add-In for Predictive Analyticsは、Microsoft Excelのスプレッドシート内で予測分析操作を行えるようにするためのアドインです。Excelのデータを分析したり、Oracleデータベース内のデータを分析できます。

図3-1は、Microsoft Excel 7.0でのEXPLAIN操作を示しています。EXPLAINにより、重要度を降順でランク付けした特定のターゲットの予測子が示されます。この例では、RELATIONSHIPが最も重要な予測子で、MARTIAL STATUSが2番目に重要な予測子です。

図3-1 Oracle Spreadsheet Add-In for Predictive AnalyticsのEXPLAIN

「図3-1 Oracle Spreadsheet Add-In for Predictive AnalyticsのEXPLAIN」の説明

図3-2は、2項ターゲットに対するPREDICT操作を示しています。PREDICTにより、各ケースの実際の分類と予測された分類が示されます。それぞれの予測の確率と、データセットに対する全体的な予測の信頼度も表示されます。

図3-2 Oracle Spreadsheet Add-In for Predictive AnalyticsのPREDICT

「図3-2 Oracle Spreadsheet Add-In for Predictive AnalyticsのPREDICT」の説明

図3-3は、PROFILE操作を示しています。この例では、2項分類問題について5つのプロファイルが示されています。各プロファイルには、1つのルール、該当するケースの数およびスコアの分布が含まれています。プロファイル1によって記述されるケースは319件あります。そのメンバーは、学士号、修士号、博士号または専門職学位を持ち、キャピタル・ゲインが5095.5以下の既婚男性または既婚女性です。このグループに対するポジティブ予測の確率は68.7%、ネガティブ予測の確率は31.3%です。

図3-3 Oracle Spreadsheet Add-In for Predictive AnalyticsのPROFILE

「図3-3 Oracle Spreadsheet Add-In for Predictive AnalyticsのPROFILE」の説明

最新版のSpreadsheet Add-Inは、Oracle Technology Networkでダウンロードできます。

http://www.oracle.com/technology/products/bi/odm/

DBMS_PREDICTIVE_ANALYTICS

Oracle Data Miningには、DBMS_PREDICTIVE_ANALYTICS PL/SQLパッケージでの予測分析が実装されています。次のSQL DESCRIBE文は、予測分析のプロシージャとそれぞれのパラメータを表示します。

SQL> describe dbms_predictive_analytics

PROCEDURE EXPLAIN
Argument Name                  Type                    In/Out Default?
------------------------------ ----------------------- ------ --------
DATA_TABLE_NAME                VARCHAR2                IN
EXPLAIN_COLUMN_NAME            VARCHAR2                IN
RESULT_TABLE_NAME              VARCHAR2                IN
DATA_SCHEMA_NAME               VARCHAR2                IN     DEFAULT

PROCEDURE PREDICT
Argument Name                  Type                    In/Out Default?
------------------------------ ----------------------- ------ --------
ACCURACY                       NUMBER                  OUT
DATA_TABLE_NAME                VARCHAR2                IN
CASE_ID_COLUMN_NAME            VARCHAR2                IN
TARGET_COLUMN_NAME             VARCHAR2                IN
RESULT_TABLE_NAME              VARCHAR2                IN
DATA_SCHEMA_NAME               VARCHAR2                IN     DEFAULT

PROCEDURE PROFILE
Argument Name                  Type                    In/Out Default?
------------------------------ ----------------------- ------ --------
DATA_TABLE_NAME                VARCHAR2                IN
TARGET_COLUMN_NAME             VARCHAR2                IN
RESULT_TABLE_NAME              VARCHAR2                IN
DATA_SCHEMA_NAME               VARCHAR2                IN     DEFAULT

例: PREDICT

例3-1に、単純なPREDICT操作を使用して、提携カードを発行した場合に消費を増やす可能性が最も高い顧客を見つける方法を示します。

現在の提携カードの使用内容と、その他の性別、教育レベル、年齢、世帯規模などの情報を含む顧客データが、MINING_DATA_APPLY_Vという名前のビューに格納されています。PREDICT操作の結果は、p_result_tblという名前の表に書き込まれます。

PREDICT操作は、予測とその予測の精度の両方を計算します。精度(予測の信頼度)は、ナイーブ・モデルによって生成される予測に対する改良度を示す測度です。分類の場合、ナイーブ・モデルは常に最も一般的なクラスを予測します。例3-1では、改良度は約50%です。

例3-1 提携カードで消費を増やす可能性が最も高い顧客の予測

DECLARE
p_accuracy NUMBER(10,9);
BEGIN
DBMS_PREDICTIVE_ANALYTICS.PREDICT(
accuracy                => p_accuracy,
data_table_name         =>'mining_data_apply_v',
case_id_column_name     =>'cust_id',
target_column_name      =>'affinity_card',
result_table_name       =>'p_result_tbl');
DBMS_OUTPUT.PUT_LINE('Accuracy: ' || p_accuracy);
END;
/

Accuracy: .492433267

次の問合せは、提携カードに対して最も好意的に反応する可能性の高い顧客の性別および平均年齢を戻します。

SELECT cust_gender, COUNT(*) as cnt, ROUND(AVG(age)) as avg_age
FROM mining_data_apply_v a, p_result_tbl b
WHERE a.cust_id = b.cust_id
AND b.prediction = 1
GROUP BY a.cust_gender
ORDER BY a.cust_gender;

C        CNT    AVG_AGE
- ---------- ----------
F         90         45
M        443         45

背景情報

この項では、Oracleによる予測分析の内部的な仕組みという、高度な内容を取り上げます。データ・マイニングについてある程度の知識があるユーザーにとっては、この情報は簡単で理解しやすいものとなっています。データ・マイニングにまだ習熟していない場合、この項を読まなくてもかまいません。予測分析を使用する際に、この情報について知っている必要はありません。

関連項目:
モデルの機能やアルゴリズムの概要は、第2章を参照してください。

EXPLAIN

EXPLAINは、属性評価モデルを作成します。属性評価では、最小記述長アルゴリズムを使用して、ターゲット値を予測する際の属性の相対的な重要度が決定されます。EXPLAINは、予測に対する属性の影響を相対的な順序でランク付けしたリストを戻します。この情報は、属性評価モデルのモデルの詳細から導出されます。

属性評価モデルでは、新しいデータに対するスコアリングは行われません。ユーザーが指定したデータに関する情報(モデルの詳細)のみが戻されます。

属性評価については、「特徴選択および属性評価」を参照してください。

PREDICT

PREDICTは、分類または回帰用のサポート・ベクター・マシン(SVM)モデルを作成します。

PREDICTは、受信者操作特性(ROC)曲線を作成して、ケースごとの予測の精度を分析します。PREDICTは、2項分類モデルの確率しきい値を最適化します。確率しきい値とは、ポジティブ予測を出すためにモデルが使用する確率です。デフォルトは50%です。

精度

PREDICTは、予測の精度(予測の信頼度)を示す値を戻します。精度は、ナイーブ予測に対する改良度です。ナイーブ予測は、質的ターゲットの場合は最も一般的なクラスとなり、量的ターゲットの場合は平均値となります。たとえば、質的ターゲットがsmall、mediumまたはlargeのいずれかの値をとり、smallがmediumまたはlargeよりも多く予測される場合、ナイーブ・モデルはすべてのケースに対してsmallを戻します。予測分析では、基準の精度として、ナイーブ・モデルの精度が使用されます。

PREDICTによって戻される精度メトリックは、ナイーブ・モデルの最大平均精度に対する改良最大平均精度の測度です。最大平均精度とは、ある確率しきい値で得られる各クラスの精度が、それ以外のしきい値で得られる精度よりも高い場合の、前者の精度の平均です。

SVMについては、第18章を参照してください。

PROFILE

PROFILEは、ディシジョン・ツリー・モデルを作成して、共通のターゲットを予測する属性の特徴を識別します。たとえば、データの質的ターゲットがsmall、mediumまたはlargeの値をとる場合、PROFILEは、特定の属性が通常どのようにして各サイズを予測するかを説明します。

ディシジョン・ツリー・アルゴリズムは、予測に影響する決定を記述するルールを作成します。このルールはif-then-else文としてXMLで記述され、モデルの詳細で戻されます。PROFILEは、このアルゴリズムによって生成されたモデルの詳細から導出されるXMLを戻します。

ディシジョン・ツリーについては、第11章を参照してください。

第II部

マイニング機能

第II部では、Oracle Data Miningでサポートされているマイニング機能について説明します。各マイニング機能は、データ・マイニング・アルゴリズムを使用して解決可能なマイニング問題の種類を表しています。データ・マイニング・モデルを作成する場合、まずマイニング機能を指定してから、その機能を実装する適切なアルゴリズムを選択する必要があります(デフォルトのアルゴリズムがない場合)。Oracle Data Miningのアルゴリズムについては、第III部を参照してください。

用語に関する注意:
マイニング機能という用語は、SQL言語関数とは関係ありません。
Oracle Data Miningでは、マイニング・モデルを配置するための演算子として機能するSQL言語関数群がサポートされています。『Oracle Database SQL言語リファレンス』を参照してください。

第II部は次の章で構成されています。

- 第4章「回帰」

- 第5章「分類」

- 第6章「異常検出」

- 第7章「クラスタリング」

- 第8章「相関」

- 第9章「特徴の選択と抽出」

4 回帰

この章では、連続的な量的ターゲットを予測するための監視ありマイニング機能である回帰について説明します。

関連項目:
「監視ありデータ・マイニング」

この章には、次の項が含まれます。

- 回帰とは

- 回帰モデルのテスト

- 回帰のアルゴリズム

回帰とは

回帰は、連続体に沿って数値を予測するデータ・マイニング機能です。利益、売上、住宅ローン金利、住宅価格、建坪、気温、距離などはすべて、回帰の手法を使用して予測することが可能です。たとえば、回帰モデルを使用すると、立地、部屋数、敷地の広さその他の要因に基づいて住宅価格を予測できます。

回帰タスクは、ターゲット値が判明しているデータセットから着手します。たとえば、住宅価格を予測する回帰モデルは、一定の期間に観測された多数の住宅のデータに基づいて作成されます。このデータには、住宅価格だけでなく、築年数、建坪、部屋数、税金、学区、商店街までの距離などのデータが含まれていることが考えられます。住宅価格をターゲット、他の属性を予測子として、各住宅のデータが1つのケースを構成します。

モデルの作成(トレーニング)プロセスでは、回帰アルゴリズムは、作成データの各ケースの予測子の関数としてターゲットの値を予測します。予測子とターゲットの関係はモデルに集約され、このモデルはターゲット値が未知である別のデータセットに適用できます。

回帰モデルは、予測値と期待値の差を測定する様々な統計を計算することによってテストされます。回帰プロジェクト用の履歴データは、通常2つのデータセットに分割し、一方をモデルの作成用、もう一方をモデルのテスト用として使用します。「回帰モデルのテスト」を参照してください。

回帰モデルには、動向分析、経営計画、マーケティング、財務予測、時系列予測、生物医学および薬物反応モデリング、環境モデリングなど、多数の用途があります。

回帰の仕組み

データ・マイニング用の良質な回帰モデルを作成および使用する上で、回帰分析で使用される数学の知識は必要ありません。ただし、いくつかの基本的な概念を理解することは有益です。

回帰分析の目的は、指定した観測データセットにその関数が最も適合するように、関数のパラメータの値を決定することです。次の方程式は、これらの関係を記号で表したものです。この方程式は、回帰が、1つ以上の予測子(x_1、x_2、...、xn)および1連のパラメータ(θ_1、θ_2、...、θn)の関数(F)と誤差の測度(e)との和により、連続的ターゲット(y)の値を推定するプロセスであることを示しています。

y = F(x,θ)  + e

予測子を独立変数、ターゲットを従属変数と考えることができます。誤差(残差とも呼ばれる)は、従属変数の期待値と予測値の差です。回帰パラメータは、回帰係数とも呼ばれます(「回帰係数」を参照してください。)

回帰モデルのトレーニング・プロセスでは、誤差の測度(2乗誤差の合計など)を最小にするパラメータ値を見つけます。

回帰関数には様々な種類があり、誤差の測定方法も様々です。

線形回帰

線形回帰の手法は、予測子とターゲットの関係を直線で近似できる場合に使用できます。

視覚化するのが最も簡単なのは、予測子が1つの回帰です。予測子が1つの単純線形回帰を図4-1に示します。

図4-1 予測子が1つの線形回帰

「図4-1 予測子が1つの線形回帰」の説明

予測子が1つの線形回帰は、次の方程式で表すことができます。

y = θ_2x   +  θ_1  + e

単純線形回帰の回帰パラメータは次のとおりです。

- 線の傾き(θ_2) - データ・ポイントと回帰直線との間の角度

- y切片(θ_1) - xがy軸と交差する点(x = 0)

多変量線形回帰

多変量線形回帰という用語は、2つ以上の予測子(x_1、x_2、…、xn)を持つ線形回帰を意味します。複数の予測子を使用する場合、回帰直線は2次元空間で視覚化できません。ただし、この回帰直線は、単一予測子の線形回帰を表す方程式を拡張し、各予測子に対応するパラメータを追加することによって簡単に計算できます。

y = θ_1 +  θ_2x_1  +  θ_3x_2   + .....  θn  xn-1  + e

回帰係数

多変量線形回帰では、回帰パラメータを係数と呼ぶこともあります。多変量線形回帰モデルを作成すると、そのモデルが使用する各予測子に対応する係数がアルゴリズムによって計算されます。係数とは、ターゲットyに対する予測子xの影響の測度です。回帰直線がどの程度データに適合するかを評価するために回帰係数の分析を行う際には、多数の統計量を使用できます (「回帰統計量」を参照)。

非線形回帰

xとyの関係は、直線では近似できないこともしばしばあります。この場合、非線形回帰の手法を使用できます。または、線形の関係になるようにデータを事前処理することもできます。

非線形回帰モデルは、線形回帰方程式よりも複雑な方程式を使用して、yをxの関数として定義します。図4-2では、xとyの関係は非線形です。

図4-2 予測子が1つの非線形回帰

「図4-2 予測子が1つの非線形回帰」の説明

多変量非線形回帰

多変量非線形回帰という用語は、2つ以上の予測子(x_1、x_2、…、xn)を持つ非線形回帰を意味します。複数の予測子を使用する場合、非線形関係は2次元空間で視覚化できません。

信頼限界

回帰モデルでは、スコアリング・データの各ケースに対して多数のターゲット値が予測されます。一部の回帰アルゴリズムでは、予測の他に信頼限界も特定できます。信頼限界とは、予測値がある区間に収まると考えられるときの、その区間の上限と下限のことです。

特定の信頼度で予測を行うモデルを作成する場合、信頼区間は予測値に従って生成されます。たとえば、信頼度95%で住宅価格を500,000ドルと予測するモデルでは、住宅価格は475,000から525,000ドルになります。

回帰モデルのテスト

回帰モデルをテストするには、そのモデルを既知のターゲット値を持つテスト・データに適用し、予測値と既知の値を比較します。

モデルを適用するテスト・データは、モデルの構築で使用したデータと互換性があることが必要で、モデル構築データが準備されたのと同じ方法で準備される必要があります。通常、作成データとテスト・データは、同じ履歴データ・セットからのものである必要があります。モデルの作成に数パーセントのレコードが使用され、残りのレコードはモデルのテストに使用されます。

これらの既知の値をモデルがどれくらい正確に予測するかを評価するために、テスト・メトリックが使用されます。モデルの予測精度が高くビジネス要件を満たす場合は、新しいデータにそのモデルを適用して将来の予測に役立てることができます。

回帰統計量

2乗平均平方根誤差および平均絶対誤差は、回帰モデルの全体的な質を評価するためによく使用される統計量です。アルゴリズムによって使用される回帰方法に応じて、異なる統計量を利用できる場合もあります。

2乗平均平方根誤差

2乗平均平方根誤差(RMSE)は、近似線からのデータ・ポイントの平均2乗距離の平方根です。

RMSEは、次のSQL式によって計算できます。

SQRT(AVG((predicted_value - actual_value) * (predicted_value - actual_value)))

次の式は、RMSEを数学記号で表したものです。大文字のシグマは和を表し、jは現在の予測子、nは予測子の数を表しています。

図rmse.gifの説明

平均絶対誤差

平均絶対誤差(MAE)は、残差(誤差)の絶対値の平均です。MAEはRMSEに非常に似ていますが、大きな誤差に対する感度は低くなります。

MAEは、次のSQL式によって計算できます。

AVG(ABS(predicted_value - actual_value))

次の式は、MAEを数学記号で表したものです。大文字のシグマは和を表し、jは現在の予測子、nは予測子の数を表しています。

図mae.gifの説明

回帰のアルゴリズム

Oracle Data Miningは、回帰に対して2つのアルゴリズムをサポートしています。どちらのアルゴリズムも、ディメンション性が非常に高い、つまり多数の属性を持つデータセット(トランザクショナル・データや非構造化データなど)のマイニングに特に適しています。

- 一般化線形モデル(GLM)
GLMは、線形モデリングでよく使用される統計的手法です。Oracle Data Miningでは、回帰および2項分類でGLMを実装しています。

GLMでは、係数統計情報やモデルの統計情報、行の診断情報など多数の情報を利用できます。GLMは信頼限界もサポートしています。

- サポート・ベクター・マシン(SVM)
SVMは、線形回帰および非線形回帰用の強力な最新のアルゴリズムです。Oracle Data Miningでは、回帰およびその他のマイニング機能に対してSVMが実装されています。

SVM回帰では、非線形回帰用のガウス・カーネルおよび線形回帰用の線形カーネルという2種類のカーネルをサポートしています。また、SVMは能動学習もサポートしています。

関連項目:

第12章「一般化線形モデル」

第18章「サポート・ベクター・マシン」

5 分類

この章では、質的ターゲットを予測するための監視ありマイニング機能である分類について説明します。

関連項目:
「監視ありデータ・マイニング」

この章には、次の項が含まれます。

- 分類とは

- 分類モデルのテスト

- 分類モデルのバイアス

- 分類のアルゴリズム

分類とは

分類とは、ある集合内の項目をターゲットのカテゴリまたはクラスに割り当てるデータ・マイニング機能です。分類の目的は、データの各ケースのターゲット・クラスを正確に予測することです。たとえば、分類モデルを使用すれば、融資希望者を信用リスク別(低、中、高)で識別することが可能です。

分類タスクは、クラスの割当てが判明しているデータセットから着手します。たとえば、信用リスクを予測する分類モデルは、一定の期間に観測された多数の融資希望者のデータに基づいて作成されます。これらのデータには、支払能力の履歴だけでなく、雇用履歴、持ち家または賃貸、居住年数、投資の数と種類などが含まれていることが考えられます。支払能力をターゲット、他の属性を予測子として、各顧客のデータが1つのケースを構成します。

分類は離散的であり、順序を示すものではありません。連続的な浮動小数点値の場合、ターゲットは質的ではなく量的になります。量的ターゲットを扱う予測モデルでは、分類アルゴリズムではなく、回帰アルゴリズムを使用します。

最も単純なタイプの分類問題は、2項分類です。2項分類では、ターゲット属性が取り得る値は2つのみ(たとえば「支払能力が高い」と「支払能力が低い」)です。多クラス・ターゲットは、3つ以上の値(たとえば支払能力の場合、低、中、高、不明など)を持ちます。

分類アルゴリズムは、モデルの作成(トレーニング)プロセスにおいて、予測子の値とターゲットの値の関係を見つけます。関係の検出に使用される手法は、分類アルゴリズムによって異なります。これらの関係はモデル内に集約され、このモデルはクラスの割当てが未知である別のデータセットに適用できます。

分類モデルは、テスト・データセット内の既知のターゲット値と予測値を比較することによってテストされます。通常、分類プロジェクト用の履歴データを2つのデータセットに分割し、一方をモデルの作成用、もう一方をモデルのテスト用として使用します。「分類モデルのテスト」を参照してください。

分類モデルをスコアリングすると、各ケースについてのクラスの割当ておよび確率が生成されます。たとえば、顧客を低、中、高の値に分類するモデルの場合、各顧客についてそれぞれの値に分類される確率も予測されます。

分類は、顧客のセグメンテーション、ビジネスのモデル化、マーケティング、信用分析、生物医学および薬物反応モデリングなど、様々な分野で利用されます。

分類モデルのテスト

分類モデルをテストするには、既知のターゲット値を持つテスト・データにそのモデルを適用し、予測値と既知の値を比較します。

モデルを適用するテスト・データは、モデルの構築で使用したデータと互換性があることが必要で、モデル構築データが準備されたのと同じ方法で準備される必要があります。通常、作成データとテスト・データは、同じ履歴データ・セットからのものである必要があります。モデルの作成に数パーセントのレコードが使用され、残りのレコードはモデルのテストに使用されます。

これらの既知の値をモデルがどれくらい正確に予測するかを評価するために、テスト・メトリックが使用されます。モデルの予測精度が高くビジネス要件を満たす場合は、新しいデータにそのモデルを適用して将来の予測に役立てることができます。

混同マトリックス

混同マトリックスは、モデルによる予測をテスト・データでの実際の分類と比較した場合の、正確な予測と不正確な予測の数を表したものです。このマトリックスはn×nの行列(nはクラスの数)です。

図5-1は、2項分類モデルの混同マトリックスです。各行は、テスト・データでの実際の分類の数を表しています。各列は、モデルにより予測された分類の数を表しています。

図5-1 2項分類モデルの混同マトリックス

「図5-1 2項分類モデルの混同マトリックス」の説明

この例では、affinity_cardのポジティブ・クラスをモデルが正確に予測したのが516回、不正確に予測したのが25回ということになります。affinity_cardのネガティブ・クラスの予測については、正確だったのが725回、不正確だったのが10回です。この混同マトリックスから次のことが計算できます。

- このモデルは1241回(516+725)正確な予測を行いました。

- このモデルは35回(25+10)不正確な予測を行いました。

- スコアリングされたケースの合計は1276 (516+25+10+725)です。

- 誤差率は0.0274 (35/1276)です。

- 総合精度は0.9725 (1241/1276)です。

リフト

リフトは、分類モデルの予測が、ランダムに生成された予測よりもどの程度優れているかを表します。リフトは2項分類にのみ適用され、ポジティブ・クラスの指定が必要です。(「ポジティブ・クラスとネガティブ・クラス」を参照。)モデル自体に2項ターゲットが存在しない場合、1つのクラスをポジティブに指定し、その他のすべてのクラスを1つのネガティブ・クラスとして組み合せることによって、リフトを計算できます。

リフトの概念をサポートするためには、非常に多数の統計情報が計算される可能性があります。基本的には、リフトは、2つのパーセンテージ(モデルによって作成された正確なポジティブ分類のパーセンテージと、テスト・データ内の実際のポジティブ分類のパーセンテージ)の割合と理解できます。たとえば、過去にプロモーション・キャンペーンのマーケティング・アンケートで、顧客の40%が好意的に反応し(ポジティブ分類)、モデルによって正確に75%と予測される場合、リフトは、.75を.40で割って取得できます。結果として、リフトは1.875となります。

リフトは、それぞれが同数のケースを含んでいる複数の分位に対して計算されます。対象のデータは、スコアリングされた後で分位に分割されます。ポジティブ・クラスの確率が最も高いものから最も低いものの順にランク付けされ、ポジティブ予測の集中度が高い方が上位の分位になります。標準的な分位数は10です。

リフトは通常、マーケティング用途の反応モデルの性能を測定するために使用されます。反応モデルの目的は、マーケティング・キャンペーンに対する肯定的な反応者が潜在的に多数集まっている母集団のセグメントを特定することです。リフトを使用することにより、最高率の潜在的反応者を得るためには母集団のどの部分にマーケティング活動を行うべきかが明らかになります。

リフト統計量

Oracle Data Miningでは、次のリフト統計量が計算されます。

- 分位nの確率のしきい値は、ポジティブ・ターゲットが、その分位または前の分位(分位n-1, n-2,..., 1)に含まれる最小確率です。コスト・マトリックスを使用する場合は、かわりにコストしきい値が示されます。コストしきい値は、ポジティブ・ターゲットが、その分位または前の分位に含まれる最大コストです。(「コスト」を参照。)

- 累積増加率: ポジティブ・ターゲットの総数に対するポジティブ・ターゲットの累計数の割合。

- ある分位のターゲット密度: その分位内の実際のポジティブ・インスタンスの数を、分位内のインスタンスの総数で割った値。

- 分位nの累積ターゲット密度: 最初のn個の分位に対して計算されるターゲット密度。

- 分位リフト: すべてのテスト・データのターゲット密度に対する分位のターゲット密度の割合。

- レコードの累積比率: ある分位について、最初のn個(ポジティブである信頼度が最も高い最後の分位から指定の分位までを含むn個)の分位によって表されるすべてのケースの割合。

- 分位nの累積ターゲット数: 最初のn個の分位内における実際のポジティブ・インスタンスの数。

- 累積非ターゲット数: 最初のn個の分位における実際のネガティブ・インスタンスの数。

- ある分位の累積リフト: すべてのテスト・データのターゲット密度に対する累積ターゲット密度の割合。

受信者操作特性(ROC)

ROCは、予測ターゲット値と実際のターゲット値を分類モデルで比較する別のメトリックです。ROCは、リフトと同様に、2項分類にのみ適用され、ポジティブ・クラスの指定が必要です。(「ポジティブ・クラスとネガティブ・クラス」を参照。)

ROCを使用すると、モデルの意思決定能力を的確にとらえることが可能です。つまり、モデルがどの程度正確にネガティブ・クラスまたはポジティブ・クラスを予測できるかを知ることができます。

ROCは、確率しきい値における変化の影響を測定します。確率しきい値は、モデルが分類に使用する決定ポイントです。デフォルトの2項分類の確率しきい値は、.5です。予測の確率が50%以上の場合、モデルはそのクラスを予測します。予測の確率が50%未満の場合、他のクラスを予測します。(多クラス分類の場合、最も高い確率のクラスが予測されます。)

ROC曲線

ROCは、X-Y軸上の曲線として描くことができます。X軸を偽陽性率にします。Y軸を真陽性率にします。

ROCグラフでは左上隅が最適位置です。つまり、真のポジティブ率が高く不適切なポジティブ率が低いことを表します。

ROC曲線下面積

ROC曲線下面積(AUC)により、2項分類モデルの識別能力が測定されます。AUCが大きいほど、実際のネガティブ・ケースではなく実際のポジティブ・ケースが高い確率でポジティブに割り当てられるという尤度も高くなります。AUC測定は、ターゲット分布が不均衡である(1つのターゲット・クラスが他のクラスに比べて顕著である)データセットに対して特に有効です。

ROCとモデルのバイアス

確率しきい値の変化は、モデルにより生成される予測に影響します。たとえば、ポジティブ・クラス予測のしきい値が0.5から0.6に変わった場合、生成されるポジティブ予測の数が少なくなります。これにより、混同マトリックスでの値の分布が影響を受け、真のポジティブ数と不適切なポジティブ数および真のネガティブ数と不適切なネガティブ数がすべて変わることになります。

モデルのROC曲線は、その混同マトリックスの値について可能なすべての組合せを表します。ROCを使用することにより、全体の最高精度またはクラスごとの最高精度が得られる確率しきい値を見つけることが可能です。たとえば、ポジティブ・クラスを正確に予測することが重要である一方、ネガティブ・クラスの予測ミスについては許容できる場合には、ポジティブ・クラスのしきい値を下げることができます。つまり、ポジティブ・クラスを優先するようにモデルにバイアスをかけることになります。

コスト・マトリックスは、モデルのスコアリング用の確率しきい値を変更する際に便利なメカニズムです。

関連項目:
「コスト」

ROC統計量

Oracle Data Miningでは、次のROC統計量が計算されます。

- 確率しきい値: ポジティブ・クラス予測が生成される最小予測ポジティブ・クラス確率。しきい値が異なると、ヒット率および不適切な警告率も異なります。

- 真のネガティブ数: 確率しきい値未満の予測確率を持つテスト・データにおけるネガティブ・ケース数(正確に予測されたケース)。

- 真のポジティブ数: 確率しきい値以上の予測確率を持つテスト・データにおけるポジティブ・ケース数(正確に予測されたケース)。

- 不適切なネガティブ数: 確率しきい値未満の予測確率を持つテスト・データにおけるポジティブ・ケース数(不正確に予測されたケース)。

- 不適切なポジティブ数: 確率しきい値以上の予測確率を持つテスト・データにおけるネガティブ・ケース数(不正確に予測されたケース)。

- 真のポジティブの割合: ヒット率 (真のポジティブ数/(真のポジティブ数+不適切なネガティブ数))。

- 不適切なポジティブの割合: 不適切な警告率 (不適切なポジティブ数/(不適切なポジティブ数+真のネガティブ数))。

分類モデルのバイアス

コスト、事前確率およびクラスの重みは、分類モデルにバイアスをかけるための手法です。

コスト

コスト・マトリックスは、モデルの意思決定に影響を与えるためのメカニズムです。コスト・マトリックスを使用することにより、モデルによるコストの高い分類ミスを最小化することが可能です。また、モデルが利益の高い正確な分類を行う確率を最大化することもできます。

たとえば、あるモデルが信用リスクの高い顧客を低リスクとして分類した場合、このような分類ミスにはコストがかかります。コスト・マトリックスを使用することによって、こうしたミスを回避するようにモデルにバイアスをかけることができます。また、信用履歴が最も悪い顧客を正確に分類することを優先するようモデルにバイアスをかける際に、コスト・マトリックスを使用する場合もあります。

確率しきい値が変化したときにモデルがどのように動作するかを評価するメトリックとしては、ROCが有効です。ROCは、用途が異なるいくつかのシナリオがある場合に、特定の分類子について最適なコストを見つけるのに役立ちます。この情報を利用して、モデルの配置に影響を与えるコスト・マトリックスを作成できます。

コストと精度

混同マトリックスと同様、コスト・マトリックスはn×nの行列(nはクラスの数)です。混同マトリックスとコスト・マトリックスはいずれも、特定のテスト・データセットに基づく実測値と予測値のすべての可能な組合せを含んでいます。

混同マトリックスは、精度(予測の合計数に対する正確な予測の割合)の測定に使用されます。コスト・マトリックスは、異なる予測に対する精度の相対的な重要度を指定する際に使用されます。多くのビジネス・アプリケーションでは、モデルの質を評価するには精度だけでなくコストも考慮することが重要です。(「混同マトリックス」を参照。)

ポジティブ・クラスとネガティブ・クラス

ポジティブ・クラスは、最も重要なクラスです。リフトの計算およびROCには、ポジティブ・クラスの指定が必要です。(「リフト」および「受信者操作特性(ROC)」を参照)。

図5-2の混同マトリックスでは、値1がポジティブ・クラスとして指定されています。これは、提携カードがあれば消費を増やす可能性がある顧客(affinity_card=1)を正確に予測する方が、反応のない顧客(affinity_card=0)を正確に予測するよりも重要であるとモデルの作成者が判断したことを意味します。提携カードを使用する可能性が低い顧客にカードを提供したとしても、カードのコストが低いため企業の損失はそれほど大きくはありません。しかし、反応する可能性が高い顧客を見落とした場合は、収益増加の機会を逃すことになります。

図5-2 ポジティブ予測とネガティブ予測

この混同マトリックスでの真のポジティブ率と不適切なポジティブ率は次のようになります。

- 不適切なポジティブ率 — 10/(10 + 725) =.01

- 真のポジティブ率 - 516/(516 + 25) =.95

コストと利益の割当て

コスト・マトリックスでは、正の数(コスト)を使用してネガティブの結果に影響を与えることが可能です。負数のコストは利益と解釈されるため、負の数(利益)を使用するとポジティブの結果に影響を与えることができます。

消費を増やす可能性がある顧客に提携カードを提供しなかった場合、ビジネスに1500ドルの損害を与えることになる、と算定したとします。図5-2の混同マトリックスを持つモデルを使用した場合、不適切なネガティブ予測(反応する顧客の分類ミス)により1500ドルのコストがかかることになります。反応しない顧客の分類ミスの方が、ビジネスに与える損害は小額です。不適切なポジティブ予測(反応しない顧客の分類ミス)によるコストは300ドルしかかからないものと算定しました。

プロモーション・キャンペーンを計画する場合、これらのコストには注意が必要です。1人の顧客をプロモーションに含めるコストには、10ドルかかると見積ります。このため、プロモーションからこれらの顧客を単に排除するために、10ドルの利益を真のネガティブ予測に関連付けます。排除した各顧客は、10ドルの削減を表します。コスト・マトリックスでは、この利益を負のコストとして-10と指定します。

図5-3は、これらのコストおよび利益をコスト・マトリックスで表したものです。

図5-3 コスト・マトリックス

Oracle Data Miningでは、分類モデルのスコアリングに影響するようにコストを指定できます。ディシジョン・ツリー・モデルでは、コスト・マトリックスを使用してモデルの作成に影響を与えることも可能です。

事前確率

ベイズ・モデルでは、作成データと実際の母集団(スコアリング・データ)との間の分布の差を埋めるために、事前確率を指定できます。

多くの問題では、頻度において1つのターゲット値が優位になります。たとえば、電話でのマーケティング・キャンペーンに対する肯定的な反応が2%未満の場合や、クレジット・カードのトランザクションでの不正の発生数が1%未満の場合です。このタイプの、履歴データに基づいた分類モデルは、2つのクラスの特徴を区別するために頻度の低いクラスが十分に検出されない場合があります。結果が、新しいデータへの適用時に、すべてのケースにおいて高頻度クラスを予測するモデルとなります。このようなモデルの精度は非常に高いですが、あまり有用ではない場合があります。このように、分類モデルの質を判断する際に精度のみに依存することは、お薦めできません。

トレーニング・データにおける非現実的な分布を補正するには、モデルの作成プロセスで事前確率を指定します。データの分布に関する問題を補正するその他の方法としては、層別サンプリングや異常検出があります。(第6章を参照してください。)

分類のアルゴリズム

Oracle Data Miningには、次の分類アルゴリズムが用意されています。

- ディシジョン・ツリー
ディシジョン・ツリーは、ツリーの作成に使用されるロジックを明らかにする条件文であるルールを自動的に生成します。第11章「ディシジョン・ツリー」を参照してください。

- Naive Bayes
Naive BayesではBayesの定理が使用されます(履歴データの値の組合せと値の頻度を数えて確率を計算する式)。第15章「Naive Bayes」を参照してください。

- 一般化線形モデル(GLM)
GLMは、線形モデリングでよく使用される統計的手法です。Oracle Data Miningでは、2項分類および回帰でGLMを実装しています。

GLMでは、係数統計情報やモデルの統計情報、行の診断情報など多数の情報を利用できます。GLMは信頼限界もサポートしています。

- サポート・ベクター・マシン
サポート・ベクター・マシン(SVM)は、線形回帰および非線形回帰に基づく強力な最新のアルゴリズムです。Oracle Data Miningでは、2項分類および多クラス分類に対してSVMが実装されています。第18章「サポート・ベクター・マシン」を参照してください。

どの分類アルゴリズムが所定の問題に対して最適な解決策を提供するかは、データの性質によって決まります。アルゴリズムによって、精度、完了までにかかる時間および透明性に関して差がある場合があります。実際には、アルゴリズムごとにいくつかのモデルを作成し、各アルゴリズムに最適なモデルを選択してから、配置に最適なモデルを選択するのが合理的なこともあります。

6 異常検出

この章では、データ内の希少ケースを検出するための監視なしマイニング機能である異常検出について説明します。

関連項目:
「監視なしデータ・マイニング」

参考:

『Creation and Deployment of Data Mining-Based Intrusion Detection Systems in Oracle Database 10g』(Campos, M.M.、Milenova, B.L.、Yarmus, J.S.共著)

http://www.oracle.com/technology/products/bi/odm/

この章には、次の項が含まれます。

- 異常検出とは

- 異常検出アルゴリズム

異常検出とは

異常検出の目的は、一見同質なデータ内に存在する特異なケースを識別することです。異常検出は、重大な意味を持ちながら検出することが難しい、不正行為、ネットワークへの侵入などの発生頻度の低いイベントを検出するための重要なツールです。

異常検出は、次のような問題の解決に使用できます。

- 司法当局は不正行為に関するデータは蓄積しますが、合法行為に関するデータは収集しません。疑わしい行為についてはどのようにして注意すればよいでしょうか。
司法当局のデータはすべて1つのクラスに属します。反例はありません。

- 保険代理店は何百万もの保険金請求を処理しますが、ごくわずかに不正が含まれていることを認識しています。不正請求はどのように識別できるでしょうか。
請求データには、反例がごくわずかですが含まれています。これらは外れ値です。

1クラス分類

異常検出は、分類の一形式です。分類マイニング機能の概要は、「分類とは」を参照してください。

異常検出は、トレーニング・データでは1つのクラスのみが表示されるため、1クラス分類として実装されています。異常検出モデルでは、データ・ポイントが指定した分布内で典型的かどうかが予測されます。非典型的なデータ・ポイントは、外れ値または今までにないクラスの例のいずれかです。

通常、違いが区別できるように、分類モデルを、各クラスの例と反例が存在するデータ上でトレーニングする必要があります。たとえば、薬剤の副作用を予測するモデルは、その薬剤に対する様々な反応が存在するデータ上でトレーニングする必要があります。

1クラス分類プログラムは、トレーニング・データの典型的なケースを大まかに説明するプロファイルを作成します。プロファイルからの偏差は、異常として識別されます。1クラス分類プログラムは、「正しい」動作を識別しようとする一方、それ以外の動作はすべて不正とみなすため、ポジティブ・セキュリティ・モデルと呼ばれる場合もあります。

注意:
1クラス分類問題の解決は困難な場合があります。1クラス分類プログラムの精度は通常、有意の反例を使用して作成した標準的な分類プログラムの精度とは一致しません。
異常検出の目的は、これまで何も情報が得られなかった箇所に、一定の有益な情報を提供することにあります。ただし、十分な数の「希少」なケースが存在し、層別サンプリングで十分な反例を含むトレーニング・セットを標準的な分類モデル用に生成することが可能な場合は、それが一般的に優れた解決策となります。

1クラス・データの異常検出

1クラス・データでは、すべてのケースが同じ分類に属します。この場合、反例(別のクラスのケースの集合)の特定が困難であったり、反例の収集にコストがかかったりすることがあります。たとえば、テキスト・ドキュメントの分類の場合、特定のトピックに基づいてドキュメントを分類することは簡単です。しかし、そのトピックに属さないドキュメントが非常に大量にあり、種類も様々である場合があります。そうなると、他の種類のドキュメントを反例として指定することは難しくなります。

異常検出を利用すれば、特定の種類のドキュメントについて特異なケースを見つけることが可能です。

外れ値検出用の異常検出

外れ値とは、データにとって典型的とみなされる分布から外れた位置に存在するために特異であるケースのことです。たとえば、人口調査のデータにおいて、家計収入の中央値が70,000ドルで平均値が80,000ドルとなっているとき、収入が200,000ドルの家庭が1、2軒存在する場合があります。この場合、これらのケースは外れ値とみなすことができます。

正規分布の中央からの距離によって、データの分布に対して特定のポイントがどの程度典型的であるかが示されます。各ケースは、そのケースが典型的または非典型的である確率に従ってランク付けできます。

外れ値が存在すると、様々な種類のデータ・マイニングに悪影響を及ぼすことがあります。異常検出は、データ・マイニングの実行前に外れ値を特定する目的で使用できます。

異常検出アルゴリズム

Oracle Data Miningでは、異常検出に対して1クラスサポート・ベクター・マシン(SVM)がサポートされています。SVM分類を異常検出で使用する場合、ターゲットは使用されません。

関連項目:
「1クラスSVM」

7 クラスタリング

この章では、データ内の自然なグループを検出するための監視なしマイニング機能であるクラスタリングについて説明します。

関連項目:
「監視なしデータ・マイニング」

この章には、次の項が含まれます。

- クラスタリングとは

- 階層クラスタリング

- クラスタリングのアルゴリズム

クラスタリングとは

クラスタリング分析では、相互になんらかの類似性を持つデータ・オブジェクトの集まり(クラスタ)を見つけます。つまり、あるクラスタのメンバーは、別のクラスタのメンバーよりも同じクラスタのメンバーに類似していることになります。クラスタリング分析の目的は、クラスタ間の類似度が低くなり、クラスタ内の類似度が高くなるような、質の高いクラスタを見つけることです。

クラスタリングは、分類と同じくデータを分割するために使用します。クラスタリング・モデルが分類と異なるのは、事前に定義されていないグループにデータを分割する点です。分類モデルの場合は、あらかじめ定義済のクラスをターゲットとして指定し、それらのクラスに割り当てることによってデータを分割します。クラスタリング・モデルではターゲットを使用しません。

クラスタリングはデータの調査に役立ちます。ケース数が多くグループが明らかでない場合、クラスタリング・アルゴリズムを使用すると、自然なグループを見つけることができます。

クラスタリングは、監視ありモデルの作成対象となる同種グループを識別するためのデータの前処理手段として有効です。

クラスタリングは、異常検出にも使用できます。データがいくつかのクラスタに分割された後に、どのクラスタにも適合しないケースを検出することが可能です。これらのケースが異常値または外れ値です。

クラスタの計算方法

クラスタを計算する方法にはいくつかの種類があります。Oracle Data Miningでは、距離ベースおよびグリッド・ベースのクラスタリングがサポートされています。

- 距離ベース - このタイプのクラスタリングでは、距離メトリックを使用してデータ・オブジェクト間の類似度を判別します。距離メトリックでは、クラスタの実際のケースとクラスタの典型的なケースとの間の距離を測定します。典型的なケースは、重心と呼ばれます。
Oracle Data Miningでは、距離ベースのクラスタリング・アルゴリズムであるk-Meansの拡張バージョンがサポートされています。

- グリッドベース - このタイプのクラスタリングでは、入力空間を超矩形セルに分割し、低密度のセルを破棄してから、隣り合う高密度のセルを結合してクラスタを形成します。
Oracle Data Miningでは、固有のグリッド・ベースのクラスタリング・アルゴリズムである直交パーティショニング・クラスタリング(O-Cluster)がサポートされています。

参考:

『O-Cluster: Scalable Clustering of Large High Dimensional Data Sets』(Campos, M.M.、Milenova, B.L共著、Oracle Data Mining Technologies, 10 Van De Graaff Drive, Burlington, MA 01803)

http://www.oracle.com/technology/products/bi/odm/

新しいデータのスコアリング

Oracle Data Miningでは、クラスタリングのスコアリング操作をサポートしています。アルゴリズムによって検出されたクラスタは、新しいデータのスコアリングに使用できるベイズ確率モデルの生成に使用されます。

階層クラスタリング

Oracle Data Miningがサポートするクラスタリング・アルゴリズムは、階層クラスタリングを実行します。リーフ・クラスタは、アルゴリズムによって生成される最終クラスタです。階層内で上位にあるクラスタは中間クラスタです。

ルール

各クラスタ内のデータはルールによって説明されます。ルールとは、親クラスタを複数の子クラスタに分岐させるためのロジックを表した条件文です。ルールは、ある確率で特定のクラスタに割り当てられるケースについての条件を記述します。

支持度と信頼度

支持度および信頼度は、クラスタリング・ルールとケースとの関係を説明するメトリックです。支持度は、ルールに該当するケースの割合です。信頼度は、ルールによって説明されるケースが実際にクラスタに割り当てられる確率です。

クラスタリング・モデルの評価

クラスタリングでは既知のクラスを使用しないため、クラスタの解釈が難しい場合があります。ビジネスの意思決定に使用するにあたってクラスタが信頼できるものかどうか、どのようにして判断すればよいのでしょうか。

Oracle Data Miningのクラスタリング・モデルでは、高度なモデルの透明性が確保されています。クラスタリング・アルゴリズムによって生成される情報を調べることでモデルを評価できます(距離ベースのクラスタの重心など)。さらに、クラスタリング・プロセスは階層的であるため、階層内での各クラスタの位置に関連するルールなどの情報を評価できます。

クラスタリングのアルゴリズム

Oracle Data Miningは、k-MeansとO-Clusterという2つのクラスタリング・アルゴリズムをサポートしています。表7-1に、2つのアルゴリズムの主な特徴の比較を示します。

表7-1 クラスタリング・アルゴリズムの比較

特徴

k-Means

O-Cluster

クラスタリングの方法

距離ベース

グリッドベース

ケース数

任意のサイズのデータセットを処理可能

ケース数が500を超えるデータセットにより適している。アクティブなサンプリングによって大きな表を処理する。

属性数

属性数が少ないデータセットにより適している

属性数が多いデータセットにより適している

クラスタ数

ユーザーが指定する

自動的に決定される

階層クラスタリング

可

可

確率的なクラスタの割当て

可

可

関連項目:

第13章「k-Means」

第17章「O-Cluster」

8 相関

この章では、相関ルールを発見するための監視なしマイニング機能である相関について説明します。

関連項目:
「監視なしデータ・マイニング」

この章には、次の項が含まれます。

- 相関とは

- トランザクショナル・データ

- 相関のアルゴリズム

相関とは

相関は、ある集合内の項目が同時に発生する確率を見つけるデータ・マイニング機能です。同時に発生する項目間の関係は、相関ルールで表されます。

相関ルール

相関モデルの結果は、データ内の相関のパターンを識別するルールです。Oracle Data Miningでは、相関モデルのスコアリング操作はサポートしていません。

相関ルールは次のメトリックによってランク付けされます。

支持度 - 各項目がデータで同時に発生する頻度。
信頼度 - 各項目がデータで同時に発生する確率。

マーケット・バスケット分析

相関ルールは、よく販売トランザクションの分析に使用されます。たとえば、食料品店でシリアルを購入する顧客は同時に牛乳も購入することが多いことがわかっているとします。実際に相関分析を行うと、精算時にシリアルと牛乳の両方が含まれている確率は85%である、という結果が得られることがあります。この関係は、次のルールで表すことができます。

Cereal implies milk with 85% confidence

相関モデルのこうした応用は、マーケット・バスケット分析と呼ばれています。マーケット・バスケット分析は、ダイレクト・マーケティングや販促活動、ビジネス上の傾向の把握などに役立ちます。また、店舗レイアウト、カタログのデザイン、抱合せ販売などにも活用できます。

相関ルールとE-Commerce

相関モデルは、その他の分野でも重要な用途に応用されています。たとえば、E-Commerceにおいて、Webページのパーソナライズに相関ルールを使用することがあります。相関モデルから、ページAとページBにアクセスするユーザーは70%の確率で同じセッション内でページCにアクセスすることがわかったとします。このルールに基づいて、ページCに関心を持ちそうなユーザー向けに動的なリンクを作成することが可能です。この相関ルールは次のように表すことができます。

A and B imply C with 70% confidence

関連項目:
「信頼度」

トランザクショナル・データ

他のデータ・マイニング機能と異なり、相関はトランザクションに基づくマイニング機能です。トランザクション処理では、清算カウンタにおけるマーケット・バスケットの内容などの項目の集まりがケースに含まれます。トランザクションの項目の集まりが、そのトランザクションの1つの属性です。トランザクションに関連するタイムスタンプやユーザーIDなどがその他の属性となります。

マーケット・バスケット・データとも呼ばれるトランザクショナル・データは、レコード(行)のセットでケースが構成されるため、複数レコード・ケースの形式であると言えます。たとえば、図8-1で、ケース11は3つの行で構成され、ケース12および13はそれぞれ4つの行で構成されています。

図8-1 トランザクショナル・データ

「図8-1 トランザクショナル・データ」の説明

トランザクショナル・データ以外のデータは、単一レコード(行)でケースが構成されるため、単一レコード・ケースの形式であると言えます。Oracle Data Miningでは、相関モデルは、トランザクショナル・データまたは非トランザクショナル・データのいずれかを使用して作成されます。データは、トランザクショナルではない場合、相関マイニング・アクティビティを実行する前に、ネストした列に変換する必要があります。

関連項目:

『Oracle Data Miningアプリケーション開発者ガイド』

「Apriori用のデータ準備」

相関のアルゴリズム

Oracle Data Miningは、高頻度項目セット内の項目に関する相関ルールを計算するときにAprioriアルゴリズムを使用します。

関連項目:
第10章「Apriori」

9 特徴の選択と抽出

この章では、特徴選択、属性評価および特徴抽出について説明します。Oracle Data Miningでは、監視ありデータ・マイニングとして属性評価が、監視なしマイニング機能として特徴抽出がサポートされています。監視ありおよび監視なしデータ・マイニングの概要については、第2章を参照してください。

この章では、次の項目について説明します。

- 最適な属性の検出

- 特徴選択および属性評価とは

- 特徴抽出とは

- 属性評価および特徴抽出のアルゴリズム

最適な属性の検出

情報が大きくなりすぎると、データ・マイニングの効率が低下する場合があります。モデルの作成およびテスト用にアセンブルされたデータ属性の一部の列は、モデルに意味のある情報を提供しない場合があります。実際に、モデルの質および精度を低減させる場合があります。

一例として、ある集団内で特定の病気が発生する可能性を予測する目的で、その集団に関するデータを大量に集めたとします。この情報の一部(おそらくその大部分)は、その病気に対する罹患率についてほとんどあるいはまったく影響を与えないと予想されます。1世帯当たりの車の所有台数といった属性は、通常は何の影響も及ぼしません。

無関係な属性は、データにノイズを加えるのでモデルの精度に響きます。ノイズがあると、モデルのサイズが大きくなり、モデルの作成およびスコアリングに必要な時間やシステム・リソースも増大します。

多くの属性を持つデータセットには、相関した属性のグループが含まれることがあります。これらの属性は、実際には基底に存在する同一の特徴を測定している場合があります。こうした属性が作成データに存在していると、アルゴリズムのロジックが歪められ、モデルの精度が影響を受ける可能性があります。

ワイド・データ(多くの属性)は通常、データ・マイニング・アルゴリズムについて処理上の問題が生じる元となります。モデル属性は、アルゴリズムで使用される処理空間のディメンションです。処理空間のディメンション性が高くなるほど、アルゴリズムの処理にかかる計算コストが高くなります。

ノイズ、相関、高いディメンション性の影響を最小限に抑えるには、データ・マイニングの前処理手順として、なんらかの形でディメンションを削減することが望ましい場合があります。ディメンションを削減するには、特徴選択と特徴抽出という2つの方法があります。

- 特徴選択 - 最適な属性の選択

- 特徴抽出: 属性の組合せによる、新しい削減された特徴セットの作成

特徴選択および属性評価とは

一部のデータ・マイニング・プロジェクトでは、最も重要な予測子を見つけることが最終目的となります。たとえば、高い信用リスクを示す顧客の主要な特徴を見つけることを目的とするモデルなどです。

Oracle Data Miningでは、ターゲット予測での重要度に従って属性をランク付けする属性評価マイニング機能がサポートされています。属性評価では、すべての予測子がモデルに保持されていないため、実際には特徴選択は実行されません。実際の特徴選択では、指定した重要度のしきい値以下にランク付けされた属性は、モデルから削除されます。

特徴選択は、予測モデリングの計算効率を向上させるための前処理手段として有効です。Oracle Data Miningは、ディシジョン・ツリー・アルゴリズム内およびNaive Bayes(ADPが有効化されている場合)内で最適化を行うために特徴選択を実装しています。

属性評価およびスコアリング

Oracle Data Miningでは、属性評価のスコアリング操作はサポートしていません。属性評価の結果は、予測における影響度に従ってランク付けされた作成データの属性です。ランキングおよび重要度の測度は、分類モデルに対するトレーニング・データの選択に使用することができます。

特徴抽出とは

特徴抽出は、属性を削減するプロセスです。最も重要な属性を選択および保持する特徴選択とは異なり、特徴抽出では実際に属性を変換します。変換された属性、つまり特徴は、元の属性の一次結合です。

特徴抽出のプロセスによって、より小さく上質な属性のセットが生成されます。特徴の最大数は、ユーザーが指定するか、アルゴリズムによって決定されます。デフォルトでは、アルゴリズムによって決定されます。

抽出した特徴で作成されたモデルは、意味のある少数の属性でデータが説明されるため、質が高くなります。

特徴抽出では、より高いディメンション性を持つデータセットが、より少ない数のディメンションに投影されます。複雑なデータセットは、2つまたは3つのディメンションに低減すると有効に視覚化できるため、データの視覚化に有効です。

特徴抽出の用途には、潜在意味解析、データ圧縮、データ分解および投影、パターン認識などがあります。特徴抽出を使用して、監視あり学習の速度と効率を向上させることもできます。

特徴抽出は、一連のキーワードとその頻度によって表されるドキュメントのまとまりからテーマを抽出する場合に使用できます。各テーマ(特徴)は、キーワードの組合せで表されます。これにより、発見されたテーマで各ドキュメントを表現できるようになります。

特徴抽出とスコアリング

Oracle Data Miningでは、特徴抽出のスコアリング操作をサポートしています。監視なしマイニング機能として、特徴抽出にはターゲットは含まれません。適用されると、特徴抽出モデルによって、入力が特徴のセットに変換されます。

属性評価および特徴抽出のアルゴリズム

Oracle Data Miningでは、属性評価用に最小記述長アルゴリズムをサポートしています。第14章「最小記述長」を参照してください。

Oracle Data Miningでは、特徴抽出用にNon-Negative Matrix Factorizationアルゴリズムをサポートしています。第16章「Non-Negative Matrix Factorization」を参照してください。

第III部

アルゴリズム

第III部では、Oracle Data Miningでサポートされているアルゴリズムを理解する上で役立つ概念的な情報を提供します。特定のマイニング機能に対して複数のアルゴリズムを使用できる場合、最適な選択を行うのにこの章の情報が役立ちます。また、アルゴリズムの機能について一般的な知識がある場合、チューニング・パラメータおよびデータ準備を使用してアルゴリズムの使用を最適化できるようになります。

第III部は次の章で構成されています。

- 第10章「Apriori」

- 第11章「ディシジョン・ツリー」

- 第12章「一般化線形モデル」

- 第13章「k-Means」

- 第14章「最小記述長」

- 第15章「Naive Bayes」

- 第16章「Non-Negative Matrix Factorization」

- 第17章「O-Cluster」

- 第18章「サポート・ベクター・マシン」

10 Apriori

この章では、相関ルールを計算するためにOracle Data Miningで使用されるアルゴリズムであるAprioriについて説明します。

関連項目:
第8章「相関」

この章には、次の項が含まれます。

- Aprioriとは

- 相関ルールと高頻度項目セット

- Apriori用のデータ準備

- 相関ルールの計算

- 相関ルールの評価

Aprioriとは

相関マイニングの問題は、次の2つの下位問題に分解できます。

- 指定した最小頻度で発生する一連のトランザクションですべての項目の組合せを見つける。これらの組合せは高頻度項目セットと呼ばれます。

- 高頻度項目セット内の、同時に発生する確率が高い項目を表すルールを計算する。(例: 高頻度項目セットからのルールの計算を参照。)

Aprioriは、高頻度項目セット内で別の項目が存在する場合に、ある項目が存在する確率を計算します。

項目数が多い問題領域で頻度の低いイベントを含む相関を見つけるために相関ルール・マイニングを使用することはお薦めしません。Aprioriは、頻度が最小支持度のしきい値を超えるパターンを発見します。したがって、頻度の低いイベントを含む相関を見つけるためには、最小支持度をかなり低くしてアルゴリズムを実行する必要があります。しかし、このようにすると、特に項目数が多いときに、列挙される項目セットの数が極端に多くなる場合があります。このような場合、実行時間が著しく長くなることがあります。データに多くの属性が含まれるときに頻度の低いイベントを見つけるには、分類や異常検出の方が最適な方法である場合もあります。

相関ルールと高頻度項目セット

Aprioriアルゴリズムは、高頻度項目セット内の項目間の確率的な関係を表すルールを計算します。たとえば、A、BおよびCを含む高頻度項目セットから、「トランザクションにAとBが含まれる場合、Cも含まれる可能性が高い」というルールが導出されます。

相関ルールは、項目または項目のグループがある確率で別の項目の存在を示すことを表します。ターゲットを予測するディシジョン・ツリー・ルールとは異なり、相関ルールは単に相関関係を表します。

前件と後件

相関ルールのIFコンポーネントは前件と呼ばれます。THENコンポーネントは、後件と呼ばれます。前件と後件は共通の要素を持たず、共通の項目はありません。

Oracle Data Miningでは、前件に1つ以上の項目を、後件に1つの項目を持つ相関ルールをサポートしています。

信頼度

ルールは、関連性を持ちます(これは、前件が発生した場合に後件が発生する条件付き確率です)。ルールの最低限の信頼度は、ユーザーが指定できます。

Apriori用のデータ準備

相関モデルは、トランザクショナル・データを使用するように設計されています。トランザクショナル・データでは、ケースIDと各ケースの値の間に1対多関係が存在します。各ケースIDと値のペアは、個別のレコード(行)に指定されます。

ネイティブ・トランザクショナル・データとスター・スキーマ

トランザクショナル・データは、一意ではないケースID列および値列を使用するネイティブ・トランザクショナル形式で格納するか、スター・スキーマなどの他の構成で格納することができます。データは、ネイティブ・トランザクショナル形式で格納されていない場合、Aprioriアルゴリズムによって処理するためにネストした列に変換する必要があります。

関連項目:

「トランザクショナル・データ」

トランザクショナル・データをネストした列に変換する方法の詳細は、『Oracle Data Miningアプリケーション開発者ガイド』を参照してください。

項目と集合

トランザクショナル・データ内では、項目の集合が各ケースに関連付けられています。集合は、理論的には、すべての集合のメンバーを含みます。たとえば、理論的には、すべての製品が単一のマーケット・バスケット・トランザクションで購入できます。ただし実際は、指定したトランザクションには、すべての商品のごく一部のサブセットのみが存在し、マーケット・バスケット内の項目は、店で購入可能な項目のごく一部のみを表しています。

スパース・データ

集合内で複数の項目が欠損している場合はデータがスパースであることがわかります。項目の欠損は、NULL値が存在する場合と、単に欠損している場合があります。

トランザクショナル・データ内のNULLは、既知であるがトランザクションには存在しない値を表すものとみなされます。たとえば、数百個ある商品のうち3つの商品が、1回のトランザクションで購入されたとします。購入されなかった商品は既知の商品ですが、トランザクションには含まれていません。

Oracle Data Miningでは、トランザクショナル・データにスパース性が想定されます。Aprioriアルゴリズムは、スパース・データの処理に対して最適化されています。

関連項目:
欠損値の処理については、『Oracle Data Miningアプリケーション開発者ガイド』を参照してください。

注意:
Aprioriは自動データ準備の影響を受けません。

相関ルールの計算

相関分析では、第1段階として項目セットを列挙します。項目セットとは、トランザクション内の2つ以上の項目のあらゆる組合せのことです。

項目セット

1つの項目セットに含める項目の最大数はユーザーが指定します。最大数を2にした場合は、2項目から成るすべての組合せがカウントされます。最大数を3以上にした場合は、2項目から成るすべての組合せ、3項目から成るすべての組合せ、以降指定した最大数の項目から成るすべての組合せがカウントされます。

例10-1 サンプル・トランザクショナル・データ

TRANS_ID   ITEM_ID
---------  -------------------
11         B
11         D
11         E
12         A
12         B
12         C
12         E
13         B
13         C
13         D
13         E

表10-1は、例10-1に示したトランザクションから得られた項目セットの一覧です(ここでは、項目セットの項目の最大数を3に設定したものとします)。

表10-1 項目セット

トランザクション

項目セット

11

(B,D) (B,E) (D,E) (B,D,E)

12

(A,B) (A,C) (A,E) (B,C) (B,E) (C,E) (A,B,C) (A,B,E) (A,C,E) (B,C,E)

13

(B,C) (B,D) (B,E) (C,D) (C,E) (D,E) (B,C,D) (B,C,E) (B,D,E) (C,D,E)

高頻度項目セット

相関ルールは項目セットに基づいて計算されます。すべての項目セットからルールが生成された場合、非常に多くのルールが存在することになり、意味のあるルールが得られないことがあります。また、モデルの作成に長い時間がかかる場合もあります。そのため、通常は、データ内での発生頻度が高い項目セットのみを使用してルールを生成する方が望ましいと言えます。高頻度項目セットとは、ユーザーが指定した最小頻度で発生する項目セットのことです。

最小頻度の項目セットの支持度は、相関ルール用に使用される項目セット数を制限するための割合であり、ユーザーが指定します。項目セットは、ルールの基盤として使用されるためには、全トランザクションにおいて少なくともこの割合で出現する必要があります。

表10-2は、表10-1の項目セットのうち、支持度が66%を超える高頻度項目セットをまとめたものです。

表10-2 高頻度項目セット

高頻度項目セット

トランザクション

支持度

(B,C)

2/3

67%

(B,D)

2/3

67%

(B,E)

3/3

100%

(C,E)

2/3

67%

(D,E)

2/3

67%

(B,C,E)

2/3

67%

(B,D,E)

2/3

67%

関連項目:
相関ルールの計算については、第10章「Apriori」を参照してください。

例: 高頻度項目セットからのルールの計算

表10-4と表10-4に、第8章で計算した項目セットおよび高頻度項目セットを示します。高頻度項目セットは、67%の最小支持度で発生する項目セットであり、3つのトランザクションのうち少なくとも2つにこの項目セットが含まれている必要があります。

表10-3 項目セット

トランザクション

項目セット

11

(B,D) (B,E) (D,E) (B,D,E)

12

(A,B) (A,C) (A,E) (B,C) (B,E) (C,E) (A,B,C) (A,B,E) (A,C,E) (B,C,E)

13

(B,C) (B,D) (B,E) (C,D) (C,E) (D,E) (B,C,D) (B,C,E) (B,D,E) (C,D,E)

表10-4 最小支持度67%の高頻度項目セット

項目セット

トランザクション

支持度

(B,C)

12および13

67%

(B,D)

11および13

67%

(B,E)

11、12および13

100%

(C,E)

12および13

67%

(D,E)

11および13

67%

(B,C,E)

12および13

67%

(B,D,E)

11および13

67%

ルールは条件付き確率を表しています。ルールの信頼度は、項目が同時に発生する確率を前件の発生確率で除算して計算されます。

たとえば、B (前件)が存在する場合、C (後件)も存在する可能性はどのくらいでしょうか。「Bの場合、C」というルールの信頼度はどのくらいでしょうか。

表10-3から、次のことがわかります。

- 3つのトランザクションにはすべてBが含まれている(3/3または100%)。

- 2つのトランザクションのみにBとCの両方が含まれている(2/3または67%)。

- したがって、ルール「Bの場合、C」の信頼度は、67/100または67%である。

表10-5に、表10-4の高頻度項目セットから導出できるルールを示します。

表10-5 高頻度項目セットとルール

高頻度項目セット

ルール

確率(前件と後件) /確率(前件)

信頼度

(B,C)

(Bの場合C)
(Cの場合B)

67/100
67/67

67%
100%

(B,D)

(Bの場合D)
(Dの場合B)

67/100
67/67

67%
100%

(B,E)

(Bの場合E)
(Eの場合B)

100/100
100/100

100%
100%

(C,E)

(Cの場合E)
(Eの場合C)

67/67
67/100

100%
67%

(D,E)

(Dの場合E)
(Eの場合D)

67/67
67/100

100%
67%

(B,C,E)

(BとCの場合E)
(BとEの場合C)
(CとEの場合B)

67/67
67/100
67/67

100%
67%
100%

(B,D,E)

(BとDの場合E)
(BとEの場合D)
(DとEの場合B)

67/67
67/100
67/67

100%
67%
100%

最小信頼度が70%の場合、これらの高頻度項目セットについて10のルールが生成されます。最小信頼度が60%の場合、16のルールが生成されます。

ヒント:
モデルの作成時間を短縮し、生成されるルールの数を減らすには、最小信頼度の値を大きくします。

相関ルールの評価

最小支持度と最小信頼度の使用によって、相関モデルの作成が左右されます。支持度と信頼度は、相関モデルで生成されるルールの質を評価するための主要なメトリックでもあります。また、Oracle Data Miningでは相関ルールのリフトがサポートされています。これらの統計上の測度は、ルールのランク付けに使用できるので予測に役立ちます。

支持度

ルールの支持度は、そのルールにある項目が同時に発生する頻度を示します。たとえば、トランザクションの40%で、シリアルと牛乳が同時に発生するとします。この場合、次に示す2つのルールの支持度はそれぞれ40%となります。

cereal implies milk
milk implies cereal

支持度は、全トランザクションの合計数に対する、前件と後件のすべての項目が含まれるトランザクションの割合です。

次のように確率記法で支持度を表すことができます。

support(A implies B) = P(A, B)

関連項目:
「高頻度項目セット」

信頼度

ルールの信頼度は、同一のトランザクションで前件と後件の両方が発生する確率を示します。前件が存在する場合に後件が存在する条件付き確率です。たとえば、50のトランザクションにシリアルが含まれており、50のうち40のトランザクションには牛乳も含まれているとします。この場合、ルールの信頼度は次のようになります。

cereal implies milk with 80% confidence

信頼度は、前件を含むトランザクションの数に対する、ルールの支持度の割合です。

次のように確率記法で信頼度を表すことができます。

confidence (A implies B) = P (B/A), which is equal to P(A, B) / P(A)

関連項目:
「信頼度」および「例: 高頻度項目セットからのルールの計算」

リフト

ルールが有効であるかどうかを決定するには、支持度と信頼度の両方を使用する必要があります。ただし、これらの測度が高くても、有益でないルールが生成される場合もあります。次に例を示します。

Convenience store customers who buy orange juice also buy milk with
a 75% confidence.
The combination of milk and orange juice has a support of 30%.

このルールは、最初は優れたルールと考えられ、多くの場合は実際に優れています。高い信頼度と支持度があります。ただし、コンビニエンス・ストアの一般的な顧客の90%が牛乳を購入する場合を考えます。この場合、実際は、一般的な顧客に比べ、オレンジ・ジュースを購入する顧客が牛乳を購入する可能性は低くなります。

こうしたルールの質を評価するには、3つ目の測度が必要です。リフトは、それぞれの支持度を持つ前件と後件のランダムな同時発生に対するルールの強度を示します。リフトにより、改良度(前件を前提とする後件の確率の増加)に関する情報が得られます。リフトは次のように定義されます。

(Rule Support) /(Support(Antecedent) * Support(Consequent))

これは、後件の支持度で除算した項目の組合せの信頼度として定義することもできます。この牛乳の例で、顧客の40%がオレンジ・ジュースを購入すると仮定すると、改良度は次のようになります。

30% / (40% * 90%)

この値は0.83で、これは1未満の改良度です。

改良度が1未満のルールでは、偶然以上に購入を確実に予測できないため、支持度と信頼度が高くても、実際の組合せ購入の確率は示されません。

ヒント:
モデルの作成時間を短縮し、単純なルールを生成するには、ルールの最大長の値を小さくします。

ヒント:
モデルの作成時間を短縮し、生成されるルールの数を減らすには、最小支持度の値を大きくします。

11 ディシジョン・ツリー

この章では、Oracle Data Miningでサポートされている分類アルゴリズムの1つであるディシジョン・ツリーについて説明します。

関連項目:
第5章「分類」

この章には、次の項が含まれます。

- ディシジョン・ツリーとは

- ディシジョン・ツリーの拡大

- ディシジョン・ツリー・アルゴリズムのチューニング

- ディシジョン・ツリー用のデータ準備

ディシジョン・ツリーとは

Naive Bayes同様、ディシジョン・ツリー・アルゴリズムは条件付き確率に基づきます。ただし、ディシジョン・ツリーでは、Naive Bayesとは異なり、ルールが生成されます。ルールは、ユーザーが容易に理解でき、レコード・セットを識別するためにデータベース内で簡単に使用できる条件文です。

データ・マイニングの一部のアプリケーションでは、モデルの品質全体を評価する際に、ある結果または別の結果を予測する理由は、重要ではない場合があります。別の用途では、決定の理由を説明できることが不可欠となる場合があります。たとえば、マーケティングの専門家は、マーケティング・キャンペーンを成功させるために、顧客の各セグメントに関する説明をすべて必要とします。ディシジョン・ツリー・アルゴリズムはこのような用途に適しています。

ディシジョン・ツリーのルール

Oracle Data Miningでは、ルールを提供するアルゴリズムがいくつかサポートされています。ディシジョン・ツリーの他にも、クラスタリング・アルゴリズム(第7章を参照)では、クラスタのメンバーによって共有される条件を記述するルールが提供され、相関ルール(第8章を参照)では、属性間の相関を記述するルールが提供されます。

ルールではモデルの透明性が提供され、モデルの内部機構について知ることができます。ルールは、モデルの予測の根拠を示します。Oracle Data Miningではモデルの透明性が高いレベルで確保されています。ルールが提供されるのは一部のアルゴリズムですが、モデルの詳細はすべてのアルゴリズムで提供されます。モデルの詳細を調べて、アルゴリズムによる属性の内部的な処理方法(変換や逆変換など)を決定できます。透明性については、第19章のデータ準備の説明や『Oracle Data Miningアプリケーション開発者ガイド』内のモデル作成の説明を参照してください。

図11-1に、ディシジョン・ツリー・モデルによって生成されるルールを示します。このルールは、ポイント・カードが与えられている場合に顧客が消費を増やす確率を予測するディシジョン・ツリーから生成されています。ターゲット値の0は消費を増やす可能性がないことを、1は増やす可能性があることを意味しています。

図11-1 ディシジョン・ツリー・ルールの例

「図11-1 ディシジョン・ツリー・ルールの例」の説明

図11-1のルールは、次の条件文を表しています。

IF
(current residence > 3.5 and has college degree and is single)
THEN
predicted target value = 0

このルールは完全なルールです。サロゲート・ルールは適用時に使用できる関連属性で、分割に必要な属性がない場合に使用されます。

信頼度と支持度

信頼度と支持度はルールのプロパティです。これらの統計上の測度は、ルールおよび予測のランク付けに使用できます。

支持度: ルールを満たすトレーニング・データセット内のレコード数

信頼度: ルールが満たされている場合に、予測結果が発生する可能性

たとえば、1000人の顧客のケース(1000ケース)について考えてみます。すべての顧客のうち、100人が指定した条件を満たします。100人のうち、75人が消費を増やす可能性があり、消費を増やす可能性がありません。ルールの支持度は100/1000 (10%)です。ルールを満たすケースの予測の信頼度(消費を増やす可能性)は、75/100 (75%)です。

ディシジョン・ツリーの利点

ディシジョン・ツリー・アルゴリズムは、ユーザーによる操作をあまり必要とせずに、正確かつ解釈可能なモデルを作成できます。このアルゴリズムは、2項および多クラスのどちらの分類問題にも使用できます。

アルゴリズムは、作成時および適用時ともに高速です。ディシジョン・ツリーの作成プロセスは並列処理されます。(スコアリングはアルゴリズムに関係なく並列処理されます。)

ディシジョン・ツリーのスコアリングは特に高速です。モデル作成時に作成されるツリー構造は、一連(通常、2から7)の単純なテストに使用されます。各テストは、単一の予測子に基づきます。これは、値のリストにIN(含まれる)かNOT IN(含まれない)か(質的予測子)、または、一定の値に対してLESS THAN(未満)かEQUAL TO(等しい)か(量的予測子)のメンバーシップに関するテストです。

ディシジョン・ツリー・モデルのXML

ユーザーは、ディシジョン・ツリー・モデルを表すXMLを生成できます。生成されるXMLは、Data Mining GroupのPredictive Model Markup Language (PMML)バージョン2.1の仕様に示されている定義に準拠します。この仕様は、http://www.dmg.orgで入手できます。

ディシジョン・ツリーの拡大

ディシジョン・ツリーは、一連の質問を問うことによってターゲット値を予測します。各段階で問われる質問はそれぞれ、直前の質問に対する回答によって決まります。最終的に特定のターゲット値を一意に識別できるような質問を重ねていきます。図形的には、このプロセスがツリー構造を形成します。

図11-2 ディシジョン・ツリーの例

「図11-2 ディシジョン・ツリーの例」の説明

図11-2は、9個のノード(および対応する9個のルール)を持つディシジョン・ツリーです。ターゲット属性は2値で、顧客が消費を増やす場合は1、増やさない場合は0です。ツリーにおける最初の分岐は、CUST_MARITAL_STATUS属性に基づきます。このツリーのルート(ノード0)はノード1とノード3に分岐します。既婚者はノード1に、独身者はノード3に属します。

ノード1には、次のルールが関連付けられています。

Node 1 recordCount=712,0 Count=382, 1 Count=330
CUST_MARITAL_STATUS isIN  "Married",surrogate:HOUSEHOLD_SIZE isIn "3""4-5"

ノード1には712個のレコード(ケース)が含まれています。この712ケースのすべてにおいて、CUST_MARITAL_STATUS属性は顧客が結婚していることを示しています。これらのケースのうち、消費を増やす可能性がないターゲット値0を382のケースがとり、消費を増やす可能性があるターゲット値1を330のケースがとります。

分岐

ディシジョン・ツリー・アルゴリズムは、トレーニング・プロセスにおいて、ケース(レコード)のセットを2つの子ノードに分割する最も効率的な方法を繰り返し見つける必要があります。Oracle Data Miningでは、この分岐の計算用に2つの同種メトリック(giniおよびentropy)を使用できます。デフォルトのメトリックはginiです。

同種メトリックでは、代替分岐条件の質を評価し、その結果、最も同質な子ノードを選択します。均質性は、純粋度とも呼ばれ、結果の子ノードが同じターゲット値のケースで構成される程度を示します。子ノードの純粋度を最大限に高めることを目的としています。たとえば、ターゲットが、はい、または、いいえ(消費を増やす可能性がある場合とない場合)のいずれかのとき、消費を増やすケースがほとんどのノードと、消費を増やさないケースがほとんどのノードを生成することが目的となります。

コスト・マトリックス

ディシジョン・ツリーを含むすべての分類アルゴリズムでは、適用時にコスト/利益マトリックスを使用できます。ディシジョン・ツリー・モデルの作成およびスコアリングに同じコスト・マトリックスを使用したり、スコアリングに異なるコスト/利益マトリックスを指定したりすることが可能です。

「コスト」および「事前確率」を参照してください。

オーバーフィットの回避

原理上は、ディシジョン・ツリー・アルゴリズムでは、トレーニング・サンプルを完全に分類するのに十分な深さまでツリーの各枝を増やすことができます。これは、場合によっては理にかなった方策ですが、実際には、データ内にノイズが存在する場合や、トレーニング・サンプルの数が少なすぎて真のターゲットの機能を代表するサンプルを生成できない場合に、扱いにくくなることがあります。どちらの場合でも、この単純なアルゴリズムでは、トレーニング・サンプルにオーバーフィットするツリーが生成される可能性があります。オーバーフィットとは、あるモデルで、そのモデルの作成に使用されたデータは正確に予測できるが、新たに提示されたデータに対しては満足に予測できない状態を指します。

オーバーフィットを回避するために、Oracle Data Miningでは自動のプルーニング(枝刈り)、およびツリーの拡大を制御する設定可能な制限条件をサポートしています。制限条件を使用すると、条件が満たされた場合に以降の分岐が回避されます。プルーニングによって、予測能力がほとんどない枝を取り除くことができます。

ディシジョン・ツリー・アルゴリズムのチューニング

ディシジョン・ツリー・アルゴリズムには、分岐および終了基準に対して妥当なデフォルト値が実装されています。ただし、微調整のために複数の構築設定を使用できます。

ツリーの最適な分岐条件を見つけるための同種メトリックを指定できます。デフォルトのメトリックはginiです。entropyメトリックも使用できます。

ツリーの拡大を制御する設定も使用できます。ツリーの最大深度、子ノードで必要とされるケースの最小数、追加の分岐を可能にするためにノードで必要とされるケースの最小数、子ノードのケースの最小数、および追加の分岐を可能にするためにノードで必要とされるケースの最小数を指定できます。

関連項目:
詳細は、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照してください。

ディシジョン・ツリー用のデータ準備

ディシジョン・ツリー・アルゴリズムは、自身のデータ準備を内部的に管理します。データを事前処理する必要はありません。ディシジョン・ツリーは自動データ準備の影響を受けません。

ディシジョン・ツリーは、欠損値を、ランダムに欠損した値として解釈します。アルゴリズムでは、ネストした表はサポートされていないため、スパース・データもサポートされていません。

関連項目:

第19章「自動データ準備と組込みのデータ準備」

ネストしたデータおよび欠損値の処理については、『Oracle Data Miningアプリケーション開発者ガイド』を参照してください。

12 一般化線形モデル

この章では、線形モデリング用の統計的手法である、一般化線形モデル(GLM)について説明します。Oracle Data Miningでは、回帰および分類の両マイニング機能に対してGLMがサポートされています。

関連項目:
第4章「回帰」および第5章「分類」

この章には、次の項が含まれます。

- 一般化線形モデルとは

- GLM用のチューニングと診断

- GLM用のデータ準備

- 線形回帰

- ロジスティック回帰

一般化線形モデルとは

一般化線形モデル(GLM)は、「線形回帰」で説明する線形モデルのクラスを含み、このクラスを拡張したものです。

線形モデルでは、ターゲット(従属変数y)が予測応答値に関係なく一定分散を持つ予測子の値を条件として正規分布するという、一連の制限が仮定される点が最も重要です。線形モデルおよび線形モデルの制限のメリットは、計算が容易なこと、解釈可能なモデルの形式であること、および適合度の質に関する一定の診断情報を計算できる点にあります。

一般化線形モデルは、実際には違反されることが多いこれらの制限を緩和したものです。たとえば、2値(yes/noまたは0/1)応答は、クラス間で同じ分散を持ちません。さらに、線形モデルでの項の合計は、一般的に、極端にネガティブな値と極端にポジティブな値を包含する非常に大きな範囲をとる場合があります。2値応答の例では、場合によっては、応答が[0,1]の範囲内の確率となるようにする必要があります。

一般化線形モデルでは、2つのメカニズム(リンク関数および分散関数)に違反する線形モデルの仮定への応答に対応しています。リンク関数は、ターゲット範囲を潜在的に-無限大から+無限大に変換して、線形モデルを単純な形式に維持します。分散関数は、分散を予測応答の機能として表し、非定分散への応答(2値応答など)に対応しています。

Oracle Data Miningは、GLMモデルのファミリのうち最もよく使用されている次の2つのアルゴリズムを備えています。これらのアルゴリズムでは、最もよく使用されているリンク関数および分散関数が使用されます。

- 線形回帰。恒等リンク関数および分散関数(定数1に等しい: 応答値の範囲に対する一定分散)を使用します。「線形回帰」を参照してください。

- ロジスティック回帰。ロジット・リンク関数および2項分散関数を使用します。「ロジスティック回帰」を参照してください。

Oracle Data MiningのGLM

GLMはパラメトリックなモデリング手法です。パラメトリック・モデルでは、データの分散を仮定します。仮定が満たされる場合、パラメトリック・モデルはノンパラメトリック・モデルよりも効率的になります。

このタイプのモデルの作成では、どの程度仮定が満たされるかを見極めることが課題となります。このため、良質なパラメトリック・モデルを作成するには質の診断が重要です。

解釈性と透明性

Oracle Data Mining GLMモデルの解釈は簡単です。各モデル構築によって、多くの統計および診断が生成されます。透明性も主要な機能です。モデルの詳細には係数の特徴が記述され、グローバルな詳細情報によって高水準の統計情報が提供されます。

関連項目:

「GLM用のチューニングと診断」

「透明性」

ワイド・データ

Oracle Data MiningのGLMは、ワイド・データの処理に対して独自に適合化されています。このアルゴリズムでは、実質的に無限数の予測子(属性)を使用する良質なモデルを作成およびスコアリングできます。唯一の制限は、システム・リソースによる制限です。

信頼限界

GLMでは、信頼限界を予測できます。GLMでは、各行の確率(分類のみ)および最良推定値の予測に加え、予測値(回帰)または確率(分類)が収まる区間の特定が可能です。区間の幅は、モデルの精度やユーザーが指定した信頼度に応じて変わります。

信頼度は、モデルによって計算される信頼区間内に実際の値が収まることについてのモデルの確からしさを表す尺度です。一般的には、信頼度95%を使用します。たとえば、従業員の収入を$125,000と予測するモデルの場合、収入は95%の確率で$90,000から$160,000の範囲に収まります。Oracle Data Miningのデフォルトの信頼度は95%ですが、この値は設定可能です。

注意:
信頼限界は、係数統計情報とともに戻されます。また、PREDICTION_BOUNDS SQL関数を使用すると、モデルの予測の信頼限界値を取得できます。『Oracle Database SQL言語リファレンス』を参照してください。

リッジ回帰

最良の回帰モデルは、予測子とターゲットとの相関が高く、予測子同士の相関はほとんどないモデルです。多重共線性は、相関関係にある予測子を使用する多変量回帰を説明するための用語です。

リッジ回帰は、多重共線性を補う手法です。Oracle Data Miningでは、回帰および分類の両マイニング機能に対してリッジ回帰がサポートされています。アルゴリズムは、データに単一性(正確多重共線性)を検出すると、リッジ回帰を自動的に使用します。

単一性に関する情報は、グローバルなモデルの詳細で戻されます。「線形回帰のグローバルなモデルの統計情報」および「ロジスティック回帰のグローバルなモデルの統計情報」を参照してください。

リッジ回帰用の構築設定

GLMS_RIDGE_REGRESSION設定を指定すると、リッジ回帰を明示的に有効化できます。リッジ回帰を明示的に有効化する場合、システム生成のリッジ・パラメータを使用するか、独自のパラメータを指定することが可能です。リッジ回帰が自動的に使用される場合、リッジ・パラメータも自動的に計算されます。

リッジ回帰用の構築設定について次にまとめます。

- GLMS_RIDGE_REGRESSION - リッジ回帰に関して、アルゴリズムによる自動選択を優先するかどうかを指定します。

- GLMS_RIDGE_VALUE - リッジ・パラメータの値(リッジ回帰を明示的に有効化した場合にのみ使用される)を指定します。

- GLMS_VIF_FOR_RIDGE - 線形回帰にリッジが使用される際に、分散拡大係数(VIF)統計情報を生成するかどうかを指定します。

関連項目:
『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』

リッジと信頼限界

リッジ回帰を使用して作成されたモデルでは信頼限界はサポートされていません。「信頼限界」を参照してください。

リッジと分散拡大係数(線形回帰用)

GLMでは、リッジ回帰を使用して作成されたものでないかぎり、線形回帰モデルについて分散拡大係数(VIF)の統計情報が生成されます。GLMS_VIF_FOR_RIDGE設定を指定すると、リッジを使用したときもVIFを明示的に要求できます。アルゴリズムは、システム・リソースが十分にある場合にのみ、リッジを使用してもVIFを生成します。

リッジとデータ準備

リッジ回帰が有効化されていると、モデルの係数および診断に関して、データ準備方法の違いで異なる結果が生成される可能性があります。リッジ回帰が使用される場合は特に、GLMモデルに対して自動データ準備を有効化することをお薦めします。「GLM用のデータ準備」を参照してください。

GLM用のチューニングと診断

GLMモデルの開発プロセスでは通常、多数のモデルを作成します。モデルを作成するたびに、モデルの質を判別するために評価できる統計情報が多数生成されます。これらの診断に応じて、モデル設定の変更などを試行できます。

構築設定

構築設定を使用すると、次のものを指定できます。

- 係数の信頼度 - GLMS_CONF_LEVEL設定は、モデルによって計算される信頼限界内に真の係数が収まる確度を示します。デフォルトの信頼度は、.95です。

- 行の重み - ODMS_ROW_WEIGHT_COLUMN_NAME設定は、行の重み係数が格納される列を識別します。

- 行の診断情報 - GLMS_DIAGNOSTICS_TABLE_NAME設定は、行レベルの診断情報を格納する表を識別します。

その他にも、次のような目的で構築設定を使用できます。

- リッジ回帰の使用の制御(「リッジ回帰」を参照)

- トレーニング・データにおける欠損値の処理の指定(「GLM用のデータ準備」を参照)

- ロジスティック回帰モデルで参照として使用されるターゲット値の指定(「ロジスティック回帰」を参照)

関連項目:
GLM設定の詳細は、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照してください。

診断

GLMモデルでは、モデルの質を評価する際に役立つメトリックが多数生成されます。

係数統計情報

線形およびロジスティックの両回帰では同じ統計情報のセットが戻されますが、該当のマイニング機能に適用されない統計情報はNULLとして戻されます。係数統計情報については、「線形回帰の係数統計情報」および「ロジスティック回帰の係数統計情報」を参照してください。

係数統計情報は、DBMS_DATA_MININGのGET_MODEL_DETAILS_GLMファンクションによって戻されます。

グローバルなモデルの統計情報

線形およびロジスティックの両回帰には、モデル全体を説明する高水準の統計情報が個別に戻されます。リッジ回帰が有効化されている場合、戻されるグローバルな詳細情報は少なくなります(「リッジ回帰」を参照)。グローバルなモデルの統計情報については、「線形回帰のグローバルなモデルの統計情報」および「ロジスティック回帰のグローバルなモデルの統計情報」を参照してください。

グローバルな統計情報は、DBMS_DATA_MININGのGET_MODEL_DETAILS_GLOBALファンクションによって戻されます。

行の診断情報

構築設定のGLMS_DIAGNOSTICS_TABLE_NAMEで診断表の名前を指定することによって、行単位の診断情報を生成するようにGLMモデルを構成できます。行の診断情報については、「線形回帰の行の診断情報」および「ロジスティック回帰の行の診断情報」を参照してください。

GLMでは、行の診断情報を生成するためにケースIDが必要となります。診断表の名前は指定したが、データにケースID列が含まれない場合、例外が発生します。

GLM用のデータ準備

自動データ準備(ADP)には、線形およびロジスティックの両回帰に適したデータの変換方法が実装されています。

注意:
GLMでは自動データ準備を使用することをお薦めします。

関連項目:
第19章「自動データ準備と組込みのデータ準備」

線形回帰用のデータ準備

ADPが有効化されている場合、作成データは、広く使用されている相関変換(Netter他、1990)を使用して標準化されます。データは、最初に各観測の属性値から属性の平均値が減算され、センタリングされます。次に、すべての観測にわたって属性ごとに2乗和平方根で観測の各属性値が除算され、データがスケーリングされます。この変換は、量的属性および質的属性の両方に対して適用されます。

標準化の前に、カテゴリ属性がN-1列(Nは属性のカーディナリティ)に展開されます。最頻値(mode)は、展開の変換中に省略されます。頻度が最も高い一致の場合、属性値は英数字順に昇順でソートされ、リストの最初の値が展開中に省略されます。展開の変換は、ADPが有効化されているかどうかに関係なく発生します。

カーディナリティの高いカテゴリ属性の場合、前述の変換(展開の後に標準化が続く)によって、結果となるデータ表現が稠密なため作成データ・サイズが大きくなる可能性があります。必要なメモリ、ディスク領域および処理を減らすには、代替の手法が必要となります。予測の内部表記の密度の高い大規模なデータセットでは、1GBを超えるディスク領域が必要となるため、カテゴリ属性は標準化されません。この状況の場合、VIF統計は注意して使用する必要があります。

参考:
Neter, J.、Wasserman, W.およびKutner, M.H.共著、『Applied Statistical Models』(Richard D.Irwin, Inc.、Burr Ridge、IL、1990)

関連項目:

- 「リッジとデータ準備」

- 第19章「自動データ準備と組込みのデータ準備」

ロジスティック回帰用のデータ準備

カテゴリ属性は、N-1列(Nは属性のカーディナリティ)に展開されます。最頻値(mode)は、展開の変換中に省略されます。頻度が最も高い一致の場合、属性値は英数字順に昇順でソートされ、リストの最初の値が展開中に省略されます。展開の変換は、ADPが有効化されているかどうかに関係なく発生します。

ADPが有効化されている場合、量的属性は、属性の変動性の測度で属性値をスケーリングすることによって標準化されます。この変動性の測度は、原点(平均値ではない)に関して属性ごとに標準偏差として計算されます(Marquardt、1980)。

参考:
Marquardt, D.W.著、『A Critique of Some Ridge Regression Methods: Comment』(Journal of the American Statistical Association、Vol. 75、No. 369、1980、pp 87-91)

欠損値

Oracle Data Miningは、モデルの作成または適用時に、量的属性の欠損値を平均値に、質的属性の欠損値を最頻値に自動的に置換します。

欠損値のデフォルトの処理を無視するようにGLMモデルを構成できます。ODMS_MISSING_VALUE_TREATMENT設定を使用すると、欠損値が含まれるトレーニング・データ内の行を、平均値や最頻値に置換するのではなく、アルゴリズムによって削除するように設定できます。ただし、モデルの適用時には、Oracle Data Miningは通常の平均値/最頻値による欠損値置換を実行します。そのため、スコアリングによって生成された統計情報が、モデルの作成によって生成された統計情報と一致しないことがあります。

モデルのスコアリングにおいて欠損値を持つ行を削除する場合、変換の明示的な実行が必要です。作成時と適用時の統計情報を一致させるには、適用操作を実行する前に、NULLが含まれる行をスコアリング・データから削除する必要があります。これは、ビューを作成して実行します。

CREATE VIEW viewname AS SELECT * from tablename
WHERE column_name1 is NOT NULL
AND   column_name2 is NOT NULL
AND   column_name3 is NOT NULL .....

注意:
Oracle Data Miningでは、ネストしたデータの欠損値は、ランダムに欠損している値ではなく、スパース性を示します。
値ODMS_MISSING_VALUE_DELETE_ROWは、ネストした列を持たない表についてのみ有効です。ネストしたデータでこの値を使用すると、例外が発生します。

線形回帰

線形回帰は、Oracle Data MiningでサポートされているGLM回帰アルゴリズムです。このアルゴリズムでは、ターゲット値の範囲に対する一定分散およびターゲット変換を想定していません。

線形回帰の係数統計情報

GLM回帰モデルでは、次に示す係数統計情報が生成されます。

- 線形係数推定値

- 係数推定値の標準誤差

- 係数推定値のt値

- t値の確率

- 分散拡大係数(VIF)

- 係数の標準化推定値

- 係数の信頼限界値の下限および上限

線形回帰のグローバルなモデルの統計情報

GLM回帰モデルでは、モデル全体を説明する、次に示す統計情報が生成されます。

- モデル自由度

- モデル平方和

- モデル平均平方

- モデルF統計

- モデルF値確率

- 誤差自由度

- 誤差平方和

- 誤差平均平方

- 修正された総自由度

- 修正された総平方和

- 2乗平均平方根誤差

- 依存平均

- 変動係数

- R2乗

- 調整済R2乗

- 赤池情報量基準

- Schwarzのベイズ情報量基準

- 予測の推定平均平方誤差

- HockingのSp統計

- JP統計(最終予測誤差)

- パラメータ数(切片を含む係数の数)

- 行数

- モデルが収束したかどうか

- 共分散行列が計算されたかどうか

線形回帰の行の診断情報

線形回帰の診断表には、表12-1で説明する列が含まれます。列はすべてNUMBERですが、CASE_ID列のみ、トレーニング・データの型を保持します。

表12-1 GLM回帰モデルの診断表

列

説明

CASE_ID

ケースID列の値

TARGET_VALUE

ターゲット列の値

PREDICTED_VALUE

ターゲットについてモデルにより予測された値

HAT

ハット行列の対角要素の値

RESIDUAL

誤差の測度

STD_ERR_RESIDUAL

残差の標準誤差

STUDENTIZED_RESIDUAL

スチューデント化された残差

PRED_RES

予測残差

COOKS_D

Cookの距離影響統計

ロジスティック回帰

2項ロジスティック回帰は、Oracle Data MiningでサポートされているGLM分類アルゴリズムです。このアルゴリズムでは、ロジット・リンク関数および2項分散関数を使用します。

参照クラス

構築設定GLMS_REFERENCE_CLASS_NAMEを使用すると、2項ロジスティック回帰モデルで参照として使用されるターゲット値を指定できます。その他の(非参照)クラスに対しては確率が生成されます。デフォルトでは、アルゴリズムは普及率の最も高い値を選択します。タイの値が存在する場合、属性値は英数字の昇順でソートされます。

クラスの重み

構築設定CLAS_WEIGHTS_TABLE_NAMEを使用すると、クラスの重み表の名前を指定できます。クラスの重みは、モデルの作成時にターゲット・クラスの重み付けに影響します。

ロジスティック回帰の係数統計情報

GLM分類モデルでは、次に示す係数統計情報が生成されます。

- 予測子の名前

- 係数推定値

- 係数推定値の標準誤差

- 係数推定値のワルドのカイ2乗値

- ワルドのカイ2乗値の確率

- 係数の標準化推定値

- 係数の信頼限界値の下限および上限

- 指数係数

- 係数の信頼限界値の上限および下限に対する指数係数

ロジスティック回帰のグローバルなモデルの統計情報

GLM分類モデルでは、モデル全体を説明する次のような統計情報が生成されます。

- 切片のみのモデルの適合度に関する赤池の基準

- 切片および共変量(予測子)モデルの適合度に関する赤池の基準

- 切片のみのモデルの適合度に関するSchwarzの基準

- 切片および共変量(予測子)モデルの適合度に関するSchwarzの基準

- 切片のみのモデルの-2対数尤度

- モデルの-2対数尤度

- 尤度比自由度

- 尤度比カイ2乗確率値

- 擬似R2乗(Cox & Snell)

- 擬似R2乗(Nagelkerke)

- 依存平均

- 正確な予測の割合

- 不正確な予測の割合

- タイの(2つのケースの確率が等しい)割合

- パラメータ数(切片を含む係数の数)

- 行数

- モデルが収束したかどうか

- 共分散行列が計算されたかどうか

ロジスティック回帰の行の診断情報

ロジスティック回帰の診断表には、表12-2で説明する列が含まれます。列はすべてNUMBERですが、CASE_ID列およびTARGET_VALUE列のみ、トレーニング・データの型を保持します。

表12-2 ロジスティック回帰の行の診断表

列

説明

CASE_ID

ケースID列の値

TARGET_VALUE

ターゲット値の値

TARGET_VALUE_PROB

ターゲット値に関連付けられている確率

HAT

ハット行列の対角要素の値

WORKING_RESIDUAL

調整済従属変数に関する残差

PEARSON_RESIDUAL

ターゲットの推定標準偏差によってスケーリングされた生の残差

DEVIANCE_RESIDUAL

モデルの全体的な適合度に対する寄与率

C

信頼区間の変位診断

CBAR

信頼区間の変位診断

DIFDEV

特定の観測値を削除したことによる逸脱度の変化

DIFCHISQ

ピアソンのカイ2乗の変化

13 k-Means

この章では、Oracle Data Miningでサポートされている拡張k-Meansクラスタリング・アルゴリズムについて説明します。

関連項目:
第7章「クラスタリング」

この章には、次の項が含まれます。

- k-Meansとは

- k-Meansアルゴリズムのチューニング

- k-Means用のデータ準備

k-Meansとは

k-Meansアルゴリズムは、指定した数のクラスタにデータを分割する、距離ベースのクラスタリング・アルゴリズムです。

距離ベースのアルゴリズムは、距離関数を使用して、ケース間の類似度を計測します。各ケースは、使用される距離関数に従って、最も近いクラスタに割り当てられます。

Oracle Data Miningの拡張k-Means

Oracle Data Miningに実装されている拡張バージョンのk-Meansアルゴリズムには、次の特徴があります。

- 距離関数 - アルゴリズムでは、ユークリッド、コサインおよび高速コサインの各距離関数がサポートされます。デフォルトはユークリッドです。

- 階層モデル作成 - トップダウン階層の方法でモデルを作成する際、2分岐を使用し、最後にすべてのノードを精錬します。この意味では、2分k-Meansアルゴリズムと似ています。階層の内部ノードの重心は、ツリーが展開していくにつれて、その変化を反映するように更新されます。ツリー全体が戻されます。

- ツリー拡大 - アルゴリズムでは、指定した分岐基準を使用して、指定した最大クラスタ数に到達するまで、または個別ケースの数に到達するまで、一度に1つのノードが増えてツリーが拡大します。分岐基準は、分散またはクラスタ・サイズになります。デフォルトの分岐基準は分散です。

- クラスタ・プロパティ - クラスタごとに、アルゴリズムによって、重心、各属性のヒストグラム、およびクラスタに割り当てられるデータの大部分を囲むハイパーボックスを記述するルールが戻されます。重心は、質的属性については最頻値を、量的属性については平均および分散を示します。

k-Meansをこのように処理することによって、複数のk-Meansモデルを作成する必要がなくなります。また、常に従来のk-Meansよりも優れたクラスタリング結果が得られます。

重心

重心は、クラスタ内の最も典型的なケースを表します。たとえば、顧客の年齢および収入のデータセットの場合、各クラスタの重心は、年齢と収入がそのクラスタの平均値である顧客となります。重心は一種の典型です。必ずしもクラスタに割り当てられた特定のケースを表すものではありません。

重心の属性値は、量的属性の場合は平均値、質的属性の場合は最頻値となります。

スコアリング

k-Meansによって検出されたクラスタは、新しいデータのスコアリングに使用できるベイズ確率モデルの生成に使用されます。

k-Meansアルゴリズムのチューニング

Oracle Data Miningの拡張k-Meansアルゴリズムでは、複数の作成時設定がサポートされます。すべての設定にはデフォルト値があります。特定の方法でアルゴリズムの動作に影響を与える場合を除き、デフォルトを上書きする必要はありません。

次のいずれかを指定してk-Meansを構成できます。

- クラスタ数

- クラスタ保持のために割り当てられるメモリーの拡張係数

- 収束許容値

- 距離関数。デフォルトの距離関数はユークリッドです。

- 分岐基準。デフォルトの基準は分散です。

- クラスタ・ツリー作成のための反復回数。

- クラスタのルール説明に属性を含めるためにNULL以外に設定する必要のある属性値の割合。欠損値を持つデータでパラメータ値を非常に大きく設定すると、非常に短いルールまたは空のルールが生成される可能性があります。

- ヒストグラム・ビンの数。各属性のビン境界は、トレーニング・データセット全体でグローバルに計算されます。ビニング方法は等幅です。ただ1つのビンを持つ単一値が含まれる属性を除き、すべての属性は同じ数のビンを持ちます。

関連項目:
k-Means構築設定の詳細は、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照してください。

k-Means用のデータ準備

k-Meansアルゴリズムでは、通常、正規化が必要です。自動データ準備では、k-Meansに対して、外れ値に敏感な正規化が実行されます。ADPを使用しない場合、モデルを作成または適用する前に量的属性を正規化する必要があります。

単純な(ネストしていない)データ型の列に欠損値がある場合、k-Meansではそれらをランダムに欠損した値として解釈します。質的データの欠損値は最頻値に置換され、量的データの欠損値は平均値に置換されます。

ネストした列に欠損値がある場合、k-Meansではそれらをスパースとして解釈します。スパースな量的データは0 (ゼロ)に置換され、スパースな質的データはゼロ・ベクトルに置換されます。

関連項目:

正規化ルーチンの詳細は、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照してください。

Oracle Data Miningの自動および組込みのデータ変換については、第19章を参照してください。

Oracle Data Miningでサポートされている、ネストした列および欠損データの詳細は、『Oracle Data Miningアプリケーション開発者ガイド』を参照してください。

14 最小記述長

この章では、属性評価を計算するためにOracle Data Miningが使用する監視あり手法である最小記述長について説明します。

関連項目:
第9章「特徴の選択と抽出」

この章には、次の項が含まれます。

- MDLとは

- MDL用のデータ準備

MDLとは

最小記述長(MDL)は、情報理論モデルの選択原理の1つです。これは、情報理論(情報の定量化の研究)および学習理論(経験的データに基づく一般化に向けた容量の研究)において、重要な概念です。

MDLでは、最も単純でコンパクトな表現が、データの説明として最適かつ最も可能性が高いとみなされます。MDL原理は、Oracle Data Miningの属性評価モデルの作成に使用されます。

圧縮とエントロピ

データ圧縮は、元の表現より少ないビット数を使用して情報をエンコードするプロセスです。MDL原理は、データの最も短い説明が最も可能性が高いという考えに基づきます。この原理の典型的な事例では、モデルは、次に示すとおり不確実性(エントロピ)を低減してデータを圧縮するために使用されます。データの説明には、モデルの説明と、モデルの説明に従ったデータが含まれます。

エントロピは、不確実性の測度です。値の設定に必要な情報として、確率変数内の不確実性を定量化します。この場合、情報は、完全に指定するために必要なビットと呼ばれるYES/NO質問の数(0または1としてエンコードされる)として定義されます。そのため、情報は、変数がとることのできる値の数によって変わります。

たとえば、変数が個人の性別を表す場合、指定可能な値の数は2つ(女性と男性)です。変数が全額ドルで示される個人の給与を表す場合、その値の範囲は$0から$10B (数十億の一意の値)になる可能性があります。明らかに、個人の性別を指定するより正確な給与を指定する方が多くの情報を必要とします。

確率変数の値: 統計的分布

情報(ビット数)は、変数の値の統計的分布と、変数の値の数に依存します。Yes/No質問の選択を慎重に行う場合、給与指定の情報量は、最初に示したほど多くはならない可能性があります。ほとんどの人々は、10億ドルの給与をもらっていません。大多数の人々の給与の範囲が$32000から$64000である場合、通常、その給与を特定するために必要な質問数は、15個のみです($0から$1000000000のすべての給与が同様に確からしい場合、質問数は30個必要です)。前者の例で、その人が妊娠している場合、性別は女性であることがわかります。不確実性は存在せず、Yes/No質問を尋ねる必要はありません。エントロピは0です。

確率変数の値: 重要な予測子

一部の確率変数で、その値がわかっているときに確率変数の不確実性が低下する予測子が存在すると仮定します。たとえば、ある人物が妊娠しているかどうかを知ることで、確率変数の個人の性別の不確実性は低下します。この予測子は、モデルに含める必要のある重要な特徴のように見えます。名前はどうでしょうか。特定の人物の名前を知っている場合、その人物の性別もわかると仮定します。その場合、名前の予測子は、不確実性を0 (ゼロ)に低下するように見えます。ただし、名前が一意である場合、どうなるでしょうか。その人物の名前はサリーでしょうか。その人物の名前はジョージでしょうか... このように、存在する人の数だけ名前モデルのYes/No予測子を使用することになります。つまり、名前モデルを指定する場合、各人物の性別指定と同じ数のビットが必要になります。

合計エントロピ

確率変数Xで、合計エントロピは、確率(X)の2を底とする対数によって乗じられたマイナスの確率(X)として定義されます。これは、変数の最も効率的なエンコーディングとみなすことができます。

モデル・サイズ

MDLでは、モデルのサイズに加え、モデルの使用を要因とする不確実性の低下が考慮されます。モデル・サイズとエントロピは、両方ともビットで測定されます。ここでの目的のため、量的予測子と質的予測子の両方がビニングされます。そのため、各単一予測子のモデルのサイズは、予測子ビンの数です。不確実性は、ビン内のターゲット分布まで低下します。

モデル選択

MDLでは、各属性をターゲット・クラスの単純な予測モデルとして考えます。モデル選択とは、単一予測子のモデルを比較およびランク付けするプロセスのことです。

MDLでは、モデル選択の問題を解決するために通信モデルを使用します。通信モデルには、送信者、受信者および送信するデータがあります。

単一予測子のこれらのモデルは、MDLメトリック(ビット単位での相対的な圧縮)に関して互いに比較され、ランク付けされます。MDLでは、オーバーフィットを回避するため、モデルの複雑性にペナルティが課されます。これは、比較を公平に行うために(モデルとしての)予測子の複雑性を考慮した、合理的なアプローチです。

MDLメトリック

属性評価では、2つの部分で構成されるコードをメトリックとして使用し、各データ単位を送信します。前半部分(プリアンブル)ではモデルを送信します。モデルのパラメータは、予測の各値に関連するターゲットの確率です。

ターゲット値がj個、および予測子がk個、各値に対してni (i= 1,..., k)個の行がある場合、Ci個(ni-1個からj-1個を一度に選び出す組合せの数)の条件付き確率が考えられます。プリアンブルのビット・サイズは、Sum(log_2(Ci))と示すことができます。ここで、Sumはkに対する合計です。こうして計算した値が、それぞれの単一予測モデルに関連付けられるペナルティを表します。コードの後半部分では、モデルを使用してターゲット値を送信します。

順序の最もコンパクトな符号化とは、記号(ターゲット・クラス値)の確率に最も適合する符号化であることがよく知られています。したがって、順序に最も高い確率を割り当てるモデルには、最小のターゲット・クラス値の送信コストが含まれます。これは、ビットではSum(log_2(pi))となります。ここで、piは、モデルに関連する行iの予測確率です。

予測子のランクは、関連付けられた記述長のリストにおける位置で表されます(最短が先頭)。

MDL用のデータ準備

MDLに対する自動データ準備では、監視ありビニングが実行されます。監視ありビニングでは、ディシジョン・ツリーを使用して最適なビンの境界が作成されます。質的属性と量的属性のいずれもビニングされます。

MDLでは、欠損値をそのまま(ランダムに欠損している値として)処理します。スパースな量的データは0 (ゼロ)に置換され、スパースな質的データはゼロ・ベクトルに置換されます。ネストした列の欠損値はスパースとして解釈されます。単純なデータ型の列の欠損値は、ランダムに欠損した値として解釈されます。

独自のデータ準備を行う場合、MDLでは通常ビニングを行うことによってメリットが得られます。ただし、データ内に外れ値が存在する場合に外部等幅ビニングを使用すると、属性評価モデルの識別能力が著しく低下することがあります。この手法では、ほとんどのデータが少数のビン(極端な場合は単一のビン)に集中する可能性があります。この場合、より優れた解決策として、分位ビニングを使用します。

関連項目:

第19章「自動データ準備と組込みのデータ準備」

ネストしたデータおよび欠損値については、『Oracle Data Miningアプリケーション開発者ガイド』を参照してください。

15 Naive Bayes

この章では、Oracle Data Miningでサポートされている分類アルゴリズムの1つであるNaive Bayesについて説明します。

関連項目:
第5章「分類」

この章には、次の項が含まれます。

- Naive Bayesとは

- Naive Bayesモデルのチューニング

- Naive Bayes用のデータ準備

Naive Bayesとは

Naive Bayesアルゴリズムは条件付き確率に基づきます。アルゴリズムではBayesの定理が使用されます(履歴データの値の組合せと値の頻度を数えて確率を計算する式)。

Bayesの定理では、すでに発生している別のイベントの確率を前提として、あるイベントの発生確率を見つけます。Bが従属イベントを、Aが事前イベントを表す場合、Bayesの定理は次のように示すことができます。

Bayesの定理:
Prob(B given A) = Prob(A and B)/Prob(A)

Aを前提としたBの確率は、AおよびBが一緒に発生するケースの数を、Aが単独で発生するケースの数で除算して計算されます。

例15-1 Bayesの定理を使用した消費の増加予測

21才未満の顧客が消費を増やす可能性を特定する必要があるものとします。この場合、事前条件(A)が「21未満」となり、従属条件(B)が「消費を増やす」となります。

トレーニング・データ内に100人の顧客が含まれていて、そのうち25人が消費を増やしている21才未満の顧客である場合、次のように計算されます。

Prob(A and B) = 25%

100人の顧客のうち75人が21才未満である場合、次のように計算されます。

Prob(A) = 75%

この場合、Bayesの定理では、21才未満の顧客の33% (25/75)が消費を増やす可能性があると予測されます。

両方の条件が一緒に発生するケースは、組(pairwise)と呼ばれます。例15-1では、すべてのケースの25%が組です。

事前イベントのみが発生するケースは、単一(singleton)と呼ばれます。例15-1では、すべてのケースの75%が単一です。

図15-1は、Bayesの定理で使用される条件の関係を視覚的に表しています。

図15-1 Bayesの定理の条件付き確率

「図15-1 Bayesの定理の条件付き確率」の説明

例15-1および図15-1では、説明のために、1つの独立イベントに基づく従属イベントを示しています。実際には、Naive Bayesアルゴリズムでは通常、多数の独立イベントを考慮する必要があります。例15-1では、年齢の他に、収入、教育レベル、性別、店舗の場所などの要素を考慮する場合があります。

Naive Bayesでは、各予測子が条件付きで他の項目から独立していると仮定されます。指定されたターゲット値に対して、各予測子の分散は、その他の予測子から独立しています。実際、この独立の仮定では(違反された場合も)、モデルの予測精度は大幅に低下せず、高速で計算的に実行可能なアルゴリズムと困難なものの間に差はでません。

特定の予測子の分布が、明らかに、より大きな母集団を代表していない場合があります。たとえば、トレーニング・データ内に21才未満の顧客が少数しか存在しないが、広範な顧客ベースには、この年齢グループの顧客が実際に多数存在する場合などが考えられます。これを補正するには、モデルのトレーニングの際に、事前確率を指定します。「事前確率」を参照してください。

Naive Bayesの利点

Naive Bayesアルゴリズムでは、高速で拡張性の高いモデルの作成とスコアリングが可能です。予測子および行の数に基づいて線形に拡張されます。このアルゴリズムは予測子および行の数に基づいて線形にスケーリングされます。(スコアリングはアルゴリズムに関係なく並列処理されます。)

Naive Bayeは、2項および多クラスのどちらの分類問題にも使用できます。

Naive Bayesモデルのチューニング

Naive Bayesでは、組の発生割合を単一の発生割合で除算することによって確率が計算されます。これらの割合は、特定の予測子に関して非常に小さい場合、モデルの効率性にはほとんど寄与しません。通常、特定のしきい値以下の発生は無視できます。

確率のしきい値を調整するために、2つの構築設定を使用できます。次を指定できます。

- モデルに予測子を含めるために必要な組の最小発生割合

- モデルに予測子を含めるために必要な単一の最小発生割合

デフォルトのしきい値はほとんどのモデルに対して問題なく機能するため、通常はこれらの設定を調整する必要はありません。

関連項目:
Naive Bayesのアルゴリズム設定の詳細は、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照してください。

Naive Bayes用のデータ準備

Naive Bayesに対する自動データ準備では、監視ありビニングが実行されます。監視ありビニングでは、ディシジョン・ツリーを使用して最適なビンの境界が作成されます。質的属性と量的属性のいずれもビニングされます。

Naive Bayesでは、欠損値をそのまま(ランダムに欠損している値として)処理します。スパースな量的データは0 (ゼロ)に置換され、スパースな質的データはゼロ・ベクトルに置換されます。ネストした列の欠損値はスパースとして解釈されます。単純なデータ型の列の欠損値は、ランダムに欠損した値として解釈されます。

独自のデータ準備を行う場合、Naive Bayesでは通常ビニングが必要となります。Naive Bayesでは、カウント手法に依存して、確率が計算されています。カーディナリティを必要に応じて削減するために、列がビニングされます。量的データは、値の範囲(たとえば、低、中および高)にビニングされ、質的データは、メタクラス(たとえば、市ではなく地域)にビニングされます。等幅ビニングを使用すると、外れ値によって、ほとんどのデータが少数のビン(場合によっては単一のビン)に集中するためお薦めできません。その結果、アルゴリズムの識別能力が著しく低下します。

関連項目:

第19章「自動データ準備と組込みのデータ準備」

ネストした列および欠損データについては、『Oracle Data Miningアプリケーション開発者ガイド』を参照してください。

16 Non-Negative Matrix Factorization

この章では、特徴抽出用にOracle Data Miningで使用される監視なしアルゴリズムであるNon-Negative Matrix Factorization (NMF)について説明します。

関連項目:
第9章「特徴の選択と抽出」

注意:
Non-Negative Matrix Factorization (NMF)は、「Learning the Parts of Objects by Non-Negative Matrix Factorization」という論文(D. D. Lee、H. S. Seung共著、『Nature』誌第401号P.788-791、1999年)に記述されています。

この章には、次の項が含まれます。

- NMFとは

- NMFアルゴリズムのチューニング

- NMF用のデータ準備

NMFとは

Non-Negative Matrix Factorizationは、最新の抽出アルゴリズムです。NMFは、多数の属性があるときに、これらの属性があいまいな場合や予測可能性が低い場合に有効です。属性を組み合せることによって、NMFで意味のあるパターン、トピックまたはテーマが生成されます。

NMFによって作成される各特徴は、元の属性セットの一次結合です。各特徴には、特徴の各属性の重みの測度である係数のセットがあります。量的属性ごと、および各質的属性の個別値ごとに別個の係数があります。係数は、すべて非負数です。

行列因数分解

Non-Negative Matrix Factorizationでは、多変数および線形代数の技術を使用します。データは、マトリックスMとして、2つ下位のランクのマトリックスの生成物(WとH)に分解されます。サブメトリックWにはNMF基準が含まれており、サブメトリックHには関連付けられた係数(重み)が含まれています。

アルゴリズムによって、WとHの値は、その積がMに近づくように繰り返し変更されます。この技術によって、元のデータ構造の大部分が維持され、基底と重みの両方が非負数であることが保証されます。アルゴリズムは、近似誤差が収束するか、反復が指定数に到達すると終了します。

NMFアルゴリズムは、反復の開始点を示すシードで初期化される必要があります。処理空間の高いディメンション性と、大域的最小アルゴリズムが存在しないという事実から、意味のある結果を取得するには適切な初期化が非常に重要になります。Oracle Data Miningでは、一様分布に基づいてWとHの値を初期化するランダム・シードを使用します。このアプローチは、ほとんどのケースで有効です。

NMFでのスコアリング

NMFは、分類、回帰、クラスタリングなどのマイニング・タスクでディメンション性を低減するための前処理ステップとして使用できます。NMFモデルのスコアリングによって、新しい特徴空間にデータ投影が生成されます。投影の規模は、レコードが特徴にマップされる強度を示します。

NMFでのテキスト・マイニング

NMFは、特にテキスト・マイニングに適しています。テキスト・ドキュメントでは、同じ言葉が異なる場所で別の意味を持って出現することがあります。たとえば、「hike」という単語は、アウトドア(outdoor)または金利(interest rate)に関連して使用されます。NMFでは、次のように属性を組み合せることによって、説明能力にとって必須であるコンテキストを取り入れます。

"hike" + "mountain" -> "outdoor sports"
"hike" + "interest" -> "interest rates"

関連項目:
「テキストの特徴抽出」

NMFアルゴリズムのチューニング

Oracle Data Miningでは、NMFの5つの構成可能なパラメータがサポートされます。それらすべてに、アルゴリズムのほとんどの適用にとって適切なデフォルト値があります。NMFの設定は次のとおりです。

- 特徴数。デフォルトでは、特徴数はアルゴリズムによって決定されます。

- 収束許容値。デフォルトは.05です。

- 反復数。デフォルトは50です。

- ランダム・シード。デフォルトは-1です。

- 非負スコアリング。スコアリング結果に負数を許可するかどうかを指定できます。デフォルトでは、許可されます。

関連項目:
モデル設定の詳細は、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照してください。

NMF用のデータ準備

NMFに対する自動データ準備では、量的属性が正規化されます。

単純な(ネストしていない)データ型の列に欠損値がある場合、NMFではそれらをランダムに欠損した値として解釈します。質的データの欠損値は最頻値に置換され、量的データの欠損値は平均値に置換されます。

ネストした列に欠損値がある場合、NMFではそれらをスパースとして解釈します。スパースな量的データは0 (ゼロ)に置換され、スパースな質的データはゼロ・ベクトルに置換されます。

独自のデータ準備を行う場合、外れ値が存在するとNMFに大きな影響を与える可能性があります。ビニングまたは正規化を行う前に、クリッピング変換を実行してください。NMFでは通常、正規化を行うことによってメリットが得られます。ただし、min-max正規化で外れ値が存在すると、行列因数分解のパフォーマンスが低下します。行列因数分解のパフォーマンスを向上するには、許容誤差を減らす必要があります。しかし、許容誤差を減らすと作成時間が長くなります。

関連項目:

第19章「自動データ準備と組込みのデータ準備」

ネストした列および欠損データについては、『Oracle Data Miningアプリケーション開発者ガイド』を参照してください。

17 O-Cluster

この章では、Oracle独自のクラスタリング・アルゴリズムである直行パーティショニング・クラスタリング(O-Cluster)について説明します。

関連項目:
第7章「クラスタリング」

参考:

『Clustering Large Databases with Numeric and Nominal Values Using Orthogonal Projections』(Campos, M.M.、Milenova, B.L.共著、Oracle Data Mining Technologies, Oracle Corporation)

http://www.oracle.com/technology/products/bi/odm/

この章には、次の項が含まれます。

- O-Clusterとは

- O-Clusterアルゴリズムのチューニング

- O-Cluster用のデータ準備

O-Clusterとは

O-Clusterは、大規模な高次元データセットのマイニングに適した、高速でスケーラブルなグリッドベースのクラスタリング・アルゴリズムです。このアルゴリズムでは、ユーザー定義のパラメータに依存せずに高品質なクラスタを生成できます。

O-Clusterの目的は、データ中の高密度領域を識別し、密度の高い領域をクラスタに分割することです。軸平行な1次元(直交)のデータ投影を使用して、密度の高い領域を識別します。アルゴリズムでは分割ポイントが検索され、重複しておらずサイズがバランスする個別クラスタになります。

O-Clusterは、2分木階層を作成して再帰的に動作します。リーフ・クラスタの数は、自動的に決定されます。アルゴリズムは、クラスタの最大数を制限するように構成できます。

パーティショニング方針

パーティショニング方針とは、属性ヒストグラムの密度領域を検出するプロセスのことです。プロセスは、量的データと質的データで異なります。両方のデータが存在する場合、アルゴリズムでは、別々に検索が実行されてからその結果が比較されます。

パーティションの選択では、アルゴリズムによって、2つの目的(適切に分割されたクラスタを検出することと、サイズがバランスするクラスタを作成すること)が調整されます。次の項では、量的属性および質的属性のパーティションの識別方法について詳細に説明します。

量的属性のパーティショニング

最も有効な切断面を見つけるため、O-Clusterでは、高密度(ピーク)のビンの間にある低密度(谷)のビンに対応する属性ヒストグラムを検索します。O-Clusterは、ピークと谷の間のヒストグラム数の差が統計的に有意である、谷を挟んだ1組のピークの検出を試みます。

sensitivityレベル・パラメータで、ピークとみなされる最も低い密度を指定します。sensitivityは、数値データのオプションのパラメータです。分割ポイントの候補のフィルタにも使用できます。

質的属性のパーティショニング

質的な値には、固有の順序が関連付けられていません。そのため、量的な値のパーティショニングに使用されるヒストグラムのピークと谷の概念を適用することはできません。

かわりに、個々の値の数でヒストグラムを構成します。個数の多いビンは、高密度の領域として解釈されます。クラスタリングの目的は、これらの高密度領域を分割して、データのエントロピ(ランダム性)を効果的に低減することです。

O-Clusterは、個々の投影に従って最高度のエントロピを持つヒストグラムを識別します。エントロピは、sensitivityレベルを超えるビンの数として測定されます。O-Clusterは、個別のパーティションに最も大きい2つのビンを配置することで、分岐条件を作成します。ビンの残りは、結果となる2つのパーティションにランダムに割り当てられます。

アクティブなサンプリング

O-Clusterアルゴリズムは、サイズが制限されているデータ・バッファで操作します。アクティブなサンプリング・メカニズムを使用して、メモリに収まらないデータセットを処理します。

初期ランダム・サンプルを処理した後、O-Clusterは、これ以上必要としないケースを識別します。このようなケースは、今後分割する可能性が非常に低い凍結パーティションに属します。これらのケースは、適切な分割面を検出してパーティショニングを継続するためにより多くの情報(追加のケース)が必要とされる不明瞭領域の例に置換されます。パーティションは、有効な分割がより低い信頼度レベルでのみ検出される場合、不明瞭とみなされます。

凍結パーティションに関連付けられたケースは、バッファから削除するものとしてマークされます。これらは、不明瞭パーティションに属するケースに置換されます。不明瞭パーティションのヒストグラムは更新され、分割ポイントは再評価されます。

プロセス・フロー

O-Clusterアルゴリズムでは、パーティションのすべての投影に対して適用可能な分割ポイントを評価し、最適なものを選択して、データを2つの新しいパーティションに分割します。アルゴリズムは、新しく作成されたパーティション内で適切な切断面の検索を続行します。つまり、O-Clusterは、入力空間を重複や間隙のない矩形領域に分割する2分木構造を作成します。

主な処理段階は次のとおりです。

1. バッファをロードします。初期バッファから単一のアクティブ・ルート・パーティションにすべてのケースを割り当てます。

2. アクティブ・パーティションごとに、直交する1次元の投影に従ってヒストグラムを計算します。

3. アクティブ・パーティションの最適な分割ポイントを見つけます。

4. 不明瞭パーティションと凍結パーティションをフラグ付けします。

5. 有効なセパレータが存在する場合、アクティブ・パーティションを2つの新しいアクティブ・パーティションに分割して手順2から再度開始します。

6. 現在のバッファで再帰的パーティショニングがすべて完了した後に、バッファを再ロードします。バッファのロードは、バッファが再度一杯になるか、データセットの最後に到達するか、ケースの数がデータ・バッファのサイズに等しくなるまで継続されます。

注意:
O-Clusterでは、データ全体に1つ以下のパスが必要です。

スコアリング

O-Clusterによって検出されたクラスタは、新しいデータのスコアリングに使用できるベイズ確率モデルの生成に使用されます。生成される確率モデルは混合モデルで、混合要素は、量的属性の独立正規分布と質的属性の多項分布の積によって表されます。

O-Clusterアルゴリズムのチューニング

O-Clusterアルゴリズムでは、2つの作成時設定がサポートされます。どちらの設定にもデフォルト値があります。特定の方法でアルゴリズムの動作に影響を与える場合を除き、デフォルトを上書きする必要はありません。

次のいずれかを指定してO-Clusterを構成できます。

- バッファ・サイズ - 処理バッファのサイズ。(「アクティブなサンプリング」を参照。)

- 感度係数 - 新しいクラスタを分割するために必要なピーク密度を指定する割合。(「パーティショニング方針」を参照。)

関連項目:
O-Cluster構築設定の詳細は、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照してください。

O-Cluster用のデータ準備

O-Clusterに対する自動データ準備では、量的属性のビニングが実行されます。特殊な等幅ビニングを使用して、属性ごとのビンの数が自動的に計算されます。すべてNULLまたは単一の値を持つ数値列は除外されます。

O-Clusterでは、欠損値をそのまま(ランダムに欠損している値として)処理します。アルゴリズムでは、ネストした列はサポートされていないため、スパース・データもサポートされていません。

関連項目:

第19章「自動データ準備と組込みのデータ準備」

ネストした列および欠損データについては、『Oracle Data Miningアプリケーション開発者ガイド』を参照してください。

O-Cluster用のユーザー定義のデータ準備

O-Cluster用のデータをユーザー自身が準備する場合は、次の内容に留意してください。

- O-Clusterでは、モデルを作成する際、必ずしもすべての入力データを使用するわけではありません。O-Clusterは、データをバッチで読み込みます(デフォルトのバッチ・サイズは50,000)。統計テストに基づいて、まだ見つかっていないクラスタが存在すると考えられる場合にのみ、別のバッチを読み込みます。

- 2項属性は、質的属性として宣言する必要があります。

- 自動等幅ビニングの使用をお薦めします。ビン識別子は、通常、1から始まる正の連続する整数にします。例については、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照してください。

- 外れ値が存在すると、クラスタリング・アルゴリズムに大きな影響を与える可能性があります。ビニングまたは正規化を行う前に、クリッピング変換を実行してください。等幅ビニングで外れ値が存在すると、O-Clusterでクラスタを検出できなくなる場合があります。その結果、母集団全体が1つのクラスタ内に含まれているように見えます。

18 サポート・ベクター・マシン

この章では、統計的学習理論に基づいた強力なアルゴリズムであるサポート・ベクター・マシンについて説明します。サポート・ベクター・マシンは、分類、回帰および異常検出用にOracle Data Miningによって実装されています。

関連項目:

第5章「分類」

第4章「回帰」

第6章「異常検出」

参考:

2005年第31回VLDB Conference(ノルウェー、トロンヘイム)会報『SVM in Oracle Database 10g: Removing the Barriers to Widespread Adoption of Support Vector Machines』(Milenova, B.L.、Yarmus, J.S.、Campos, M.M.共著)

http://www.oracle.com/technology/products/bi/odm/

この章には、次の項が含まれます。

- サポート・ベクター・マシンとは

- SVMモデルのチューニング

- SVM用のデータ準備

- SVM分類

- 1クラスSVM

- SVM回帰

サポート・ベクター・マシンとは

サポート・ベクター・マシン(SVM)は、Vapnik-Chervonenkis理論に基づいた強固な理論的基礎を持つ最新の強力なアルゴリズムです。SVMは、強力な正則化プロパティを持ちます。正則化とは、新しいデータへのモデルの一般化を指します。

SVMの利点

SVMモデルは、一般的なデータ・マイニング手法であるニューラル・ネットワークおよび動径基底関数に似た関数形式を持ちます。ただし、どちらのアルゴリズムも、SVMの基盤を形成する正則化に対して根拠のある理論的アプローチを持ちません。SVMのトレーニングの容易性と一般化の質は、これらのより伝統的な手法の機能をはるかに凌いでいます。

SVMでは、テキストや画像の分類、手書き文字の認識、バイオインフォマティクスや配列分析など、実際の世界の複雑な問題をモデル化できます。

SVMは、モデルをトレーニングするケースがごくわずかでも多くの属性を持つデータセットではよく機能します。属性の数に上限はなく、ハードウェアによる制約があるのみです。従来のニューラル・ネットは、このような状況ではうまく機能しません。

Oracle Data MiningのSVMの利点

Oracle Data Miningは独自のSVMを実装しており、この実装では、SVMフレームワークに本来備わっている一部の制限を補いながら、このアルゴリズムの多くの利点を活かしています。Oracle Data MiningのSVMでは、本番レベルのデータ・マイニング・システムで必要とされるスケーラビリティおよび利用性が提供されます。

利用性

SVMは専門家のためのツールと考えられてきたため、主に拡張された機能は利用性です。アルゴリズムでは、通常、データの準備、チューニングおよび最適化が必要です。Oracle Data Miningでは、これらの要件を最小限に抑えます。専門家でなくても、Oracle Data Miningで質の高いSVMモデルを構築できます。次に例を示します。

- ほとんどの場合、データ準備は必要ありません。(「SVM用のデータ準備」を参照。)

- 通常は、デフォルトのチューニング・パラメータが適切です。(「SVMモデルのチューニング」を参照。)

スケーラビリティ

非常に大規模なデータセットを扱う場合、サンプリングが頻繁に必要となります。しかし、Oracle Data MiningのSVMではサンプリングは必要ありません。これは、必要に応じてトレーニング・データのサイズを削減するために、このアルゴリズム自体で層別サンプリングが行われるためです。

Oracle Data MiningのSVMは非常によく最適化されています。このSVMでは、グローバルなソリューションに対して小さなワーキング・セットを最適化することによって、モデルを増分的に作成します。モデルは、現在のワーキング・セットが収束するまでトレーニングされてから、新しいデータに適用されます。このプロセスは、収束条件が満たされるまで繰り返し続行されます。ガウス・カーネルでは、ワーキング・セットの管理にキャッシュ技術が使用されます。「カーネルベースの学習」を参照してください。

Oracle Data MiningのSVMでは能動学習がサポートされています。これは、モデルのトレーニングに必要な時間およびメモリーのリソースを削減しつつ、より小さくてコンパクトなモデルを作成する最適化方法です。「能動学習」を参照。

カーネルベースの学習

SVMはカーネルベースのアルゴリズムです。カーネルは、問題が解決される高次元空間に入力データを変換する関数です。カーネル関数は線形の場合も非線形の場合もあります。

Oracle Data Miningでは、線形カーネルおよびガウス(非線形)カーネルがサポートされています。

Oracle Data Miningでは、線形カーネル関数が、トレーニング・データ内の元の属性に関する一次方程式に還元されます。線形カーネルは、トレーニング・データ内に多数の属性が存在する場合に適しています。

ガウス・カーネルによって、トレーニング・データ内の各ケースがn-次元空間(nはケースの数)のポイントに変換されます。アルゴリズムは、ポイントを同質ターゲット値のサブセットに分割しようと試みます。ガウス・カーネルでは、非線形のセパレータが使用されますが、カーネル空間では一次方程式の構造となります。

能動学習

能動学習は、モデルの増加を制御し、モデルの作成時間を短縮する最適化方法です。能動学習を使用しない場合、構築データセットのサイズが増加するにつれてSVMモデルも拡大し、SVMモデルを小規模および中規模サイズ(100,000ケース未満)のトレーニング・セットに効果的に制限します。能動学習には、この制限事項を回避する方法があります。能動学習では、非常に大規模なトレーニング・セット上にSVMモデルを構築できます。

能動学習により、SVMアルゴリズムは最も有益なトレーニング・サンプルを学習し、データ全体を使用しないように制限されます。多くの場合、生成されるモデルの予測精度は、標準的な(精密な) SVMモデルの予測精度と同程度になります。

能動学習によって、線形およびガウスSVMモデルのどちらにおいても、分類、回帰または異常検出が大幅に改善されます。ただし、能動学習は、ガウス・カーネルに対して特に有効です(それ以外の場合、非線形モデルは非常に大規模に増加し、メモリーおよびその他のシステム・リソースを大幅に使用する場合があるため)。

SVMモデルのチューニング

SVMには、データに基づいて適切な設定を自動的に選択するメカニズムが組み込まれています。分野によっては、システムで決定された設定をオーバーライドする必要がある場合もあります。

表18-1で説明する構築設定は、SVMモデルの構成に使用できます。特に指定されていなければ、回帰、分類および異常検出に関する設定を指します。

表18-1 サポート・ベクター・マシンの構築設定

設定名

構成対象

説明

SVMS_KERNEL_FUNCTION

カーネル

線形またはガウス。対象データに最も適切なカーネル関数がアルゴリズムによって自動的に使用される。

SVMでは、トレーニング・データ内に多数の(100を超える)属性が存在する場合に線形カーネルが使用され、それ以外の場合にガウス・カーネルが使用される。「カーネルベースの学習」を参照してください。

属性の数は、トレーニング・データ内の列数には対応しない。SVMでは、質的属性が2項の量的属性に展開される。さらに、Oracle Data Miningでは、ネストした列の各行が別個の属性として解釈される。「SVM用のデータ準備」を参照。

SVMS_STD_DEV

ガウス・カーネルの標準偏差

ガウス・カーネル関数の分布を制御する。

SVMでは、データ駆動の手法が使用され、通常のケース間の距離と同じスケールにある標準偏差値が検出される。

SVMS_KERNEL_CACHE_SIZE

ガウス・カーネルのキャッシュ・サイズ

モデルの作成時間を短縮するためにメモリー内に維持される、ガウス・カーネルのキャッシュに割り当てられたメモリー量。デフォルトのキャッシュ・サイズは50MB。

SVMS_ACTIVE_LEARNING

能動学習

能動学習を使用するかどうか。この設定は、非線形(ガウス) SVMモデルに対して特に重要となる。

デフォルトでは、能動学習が使用される。「能動学習」を参照。

SVMS_COMPLEXITY_FACTOR

複雑性要素

新しいデータに対して優れた一般化を実現するための、モデルの堅牢性に対するモデルの複雑性のバランスをとる正則化設定。SVMでは、データ駆動の手法を使用して複雑性要素が検出される。

SVMS_CONVERGENCE_TOLERANCE

収束許容値

モデルのトレーニング・プロセスを完了するための基準。デフォルトは0.001。

SVMS_EPSILON

回帰用のイプシロン要素

回帰用の正則化設定(複雑性要素と似ている)。イプシロンによって、データ内で許容される残差(ノイズ)が指定される。

SVMS_OUTLIER_RATE

異常検出の外れ値

異常検出で期待される外れ値の率。デフォルトの割合は0.1。

関連項目:
SVM設定の詳細は、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照してください。

SVM用のデータ準備

SVMアルゴリズムは、量的属性に対してネイティブに作用します。このアルゴリズムでは、質的データはカテゴリ値ごとに2項属性のセットとして自動的に展開されます。たとえば、値marriedまたはsingleを持つ婚姻区分用の文字列の列は、marriedとsingleという2つの量的属性に変換されます。新しい属性には、値1 (true)または0 (false)が格納されます。

単純な(ネストしていない)データ型の列に欠損値がある場合、SVMではそれらをランダムに欠損した値として解釈します。質的データの欠損値は最頻値に、量的データの欠損値は平均値に自動的に置換されます。

ネストした列に欠損値がある場合、SVMではそれらをスパースとして解釈します。スパースな量的データは0 (ゼロ)に、スパースな質的データはゼロ・ベクトルに自動的に置換されます。

正規化

SVMでは、量的な入力を正規化する必要があります。正規化によって、量的属性の値が同じスケール上に配置され、元の大規模なスケールを持つ属性によってソリューションに偏りがでることが回避されます。正規化はまた、オーバーフローおよびアンダーフローの可能性を最小限に抑えます。さらに、正規化によって量的属性が、展開された質的データと同じスケール(0,1)に配置されます。

SVMと自動データ準備

欠損値の処理や質的データの変換はSVMアルゴリズムによって自動的に実行されますが、正規化や外れ値の検出はADPで処理するか、手動で準備する必要があります。ADPは、SVM用にmin-max正規化を実行します。

注意:
SVMでは自動データ準備を使用することをお薦めします。ADPで実行される変換は、ほとんどのモデルに対して適切です。
第19章「自動データ準備と組込みのデータ準備」を参照してください。

SVM分類

SVM分類は、決定境界を定義する決定面の概念に基づいています。決定面は、異なるクラスのメンバーシップを持つオブジェクト・セット間を区別するものです。SVMは、クラスの最も広範な区切りを与えるセパレータを定義するベクター(サポート・ベクター)を検出します。

SVM分類では、2項および多クラスの両ターゲットがサポートされます。

クラスの重み

SVM分類では、重みは、ターゲット値(クラス)の相対的な重要度を示すためのバイアス・メカニズムです。

SVMモデルは、クラス全体にわたって最良の平均予測を得るために自動的に初期化されます。ただし、トレーニング・データが実際の分布を代表していない場合は、モデルにバイアスをかけて、十分に代表されていないクラス値を補正できます。クラスの重みを増やすと、そのクラスの正しい予測子の割合が増加します。

関連項目:
「事前確率」

1クラスSVM

Oracle Data Miningでは、異常検出用の1クラス分類機能としてSVMが使用されます。SVMは異常検出で使用される場合、分類マイニング機能を持ちますが、ターゲットは使用しません。

1クラスSVMモデルは、適用時に、スコアリング・データの各ケースに対して予測および確率を生成します。予測が1の場合、そのケースは典型的とみなされます。予測が0の場合、そのケースは異常とみなされます。この動作は、モデルが標準データでトレーニングされていることを反映しています。

異常とみなすデータの割合は、SVMS_OUTLIER_RATE構築設定で指定できます。「疑わしい」ケースの数が母集団の一定の割合であることがわかっている場合、その割合に外れ値の率を設定できます。モデルは、一般母集団への適用時に、その数の「頻度の低い」ケースをおおまかに識別します。デフォルトは10%ですが、この値は多くの異常検出問題において高い設定値となります。

SVM回帰

SVMでは、回帰問題を解決するために、イプシロン非感受性損失関数が使用されます。

SVM回帰では、データ・ポイントの最大数がイプシロン幅の非感受性チューブ内に収まるような連続関数の検出が試行されます。真のターゲット値のイプシロン距離内におさまる予測は、誤差として解釈されません。

イプシロン要素は、SVM回帰用の正則化設定です。この設定によって、モデルの堅牢性と誤差のマージンのバランスがとられ、新しいデータへの最適な一般化を実現できます。SVM用の構築設定については、表18-1を参照してください。

第IV部

データ準備

第IV部では、Oracle Data Miningでサポートされている自動および組込みのデータ変換機能について説明します。

第IV部は次の章で構成されています。

- 第19章「自動データ準備と組込みのデータ準備」

19 自動データ準備と組込みのデータ準備

この章では、Oracle Data Miningの機能を使用してマイニング用のデータを準備する方法について説明します。

この章には、次の項が含まれます。

- 概要

- 自動データ準備

- 組込みのデータ準備

- 透明性

概要

モデルの質は、そのモデルの作成(トレーニング)に使用されるデータの質に大きく左右されます。どのようなデータ・マイニング・プロジェクトでも、その取組みの多くの時間がデータの準備に費やされます。データは慎重に調査、整備および変換する必要があり、アルゴリズムに適したデータ準備方法を適用する必要があります。

データ準備のプロセスは、テスト用であるかスコアリング用であるかに関係なく、モデルが適用されるあらゆるデータについて、そのモデルのトレーニングに使用されたデータと同じ変換を行う必要があるため、一層複雑になっています。

Oracle Data Miningでは、データ準備プロセスを大幅に単純化するいくつかの機能が提供されます。

- 組込みのデータ準備 - モデルのトレーニングに使用される変換は、モデルに組み込まれ、モデルが新しいデータに適用されるたびに自動的に実行されます。モデルの変換を指定する場合、1回指定すれば済みます。

- 自動データ準備(ADP) - Oracle Data Miningでは、自動データ準備モードがサポートされます。ADPが有効化されている場合、アルゴリズムで必要とされるデータ変換が自動的に実行されます。変換の指示は、ユーザーが指定した変換の指示とともにモデルに組み込まれます。

- カスタム・データ準備用のツール - Oracle Data Miningには、独自の変換指示を作成する際に使用できるPL/SQLパッケージの変換ルーチンが用意されています。これらの変換指示はADPとともに使用することも、ADPのかわりに使用することもできます。

- 欠損値およびスパース・データの自動管理 - Oracle Data Miningでは、マイニング・アルゴリズム間で一貫した方法でスパース性および欠損値が処理されます。

- 透明性 - Oracle Data Miningでは、モデル内部の質的属性および量的属性のビューであるモデルの詳細が提供されます。ユーザーが解釈可能な形式に変換済属性値をマップする逆変換によって、モデル内部の詳細を調べることができます。可能である場合、属性値は元の列値に逆変換されます。逆変換は、監視ありモデルのターゲットにも適用されるため、スコアリングの結果は、元のターゲットの単位と同じ単位になります。

ケース表

マイニング用のデータを準備する際の最初のステップは、ケース表の作成です。すべてのデータが単一の表内にあり、各ケース(レコード)のすべての情報が単一の行に含まれている場合(単一レコード・ケース)、このプロセスは完了しています。

データが複数の表に存在している場合、データソースの作成には、ビューの作成が伴います。「ケース表」という用語は、簡易的に、表またはビューを指すものとします。

データソースにトランザクショナル・データが含まれる場合(複数レコード・ケース)、必要に応じてネストした列を使用して、データソースをケース・レベルに集計する必要があります。トランザクショナル・データでは、各ケースの情報が複数の行に含まれています。例として、本番レベルでのマイニング時のスター・スキーマにおける売上データがあります。売上は、その製品が多数の店舗で多数の顧客に対してある期間にわたって販売されるため、単一の製品(ケース)の多数の行に格納されます。

関連データがすべて含まれたケース表を作成したら、列内で一貫性のない形式を持つデータを整備する必要があります。次の項で説明するように、電話番号、郵便番号、日付などの項目については特に注意してください。

関連項目:
詳細は、『Oracle Data Miningアプリケーション開発者ガイド』を参照してください。

データ型変換

Oracle Data Miningでサポートされている列のデータ型の数は限られています。数値データは量的属性として解釈され、文字データは質的属性として解釈されます。

列のデータ型は、その型がOracle Data Miningでサポートされていない場合や、その型をOracle Data Miningが誤認識する場合、変換する必要があります。たとえば、郵便番号は様々な郵便区を識別しますが、順番は示しません。郵便番号を数値列に格納すると、量的属性として解釈されます。この場合、列データがモデルによって質的属性として使用されるように、データ型を変換する必要があります。これには、TO_CHAR関数を使用して1から9の数字を変換し、LPAD関数を使用して先頭の0(ある場合)を保持します。

LPAD(TO_CHAR(ZIPCODE),5,'0')

日付データ

Oracle Data MiningのAPIでは、DATEおよびTIMESTAMPデータはサポートされていません。データ列は、データ・マイニング用に単純な数値データ型か文字列データ型に変換する必要があります。

ほとんどの場合、DATEおよびTIMESTAMPはNUMBERへの変換が必要ですが、個々のケースについて検討する必要があります。TIMESTAMP列は時間軸におけるある固有点を表すため、通常は数値に変換します。

または、年次売上データの表内の日付列は、製品が販売された月を示す場合があります。このようなDATE列はVARCHAR2に変換し、質的に扱います。TO_CHAR関数を使用すると、DATEデータ型をVARCHAR2に変換できます。

開始日を選択して、各日付値からその開始日を減算すると、日付を数値に変換できます。また、日付を解析して、その構成要素をいくつかの列に分配する方法もあります。このアプローチは、DATEおよびTIMESTAMPデータ型をサポートしていないDBMS_PREDICTIVE_ANALYTICSによって使用されます。

関連項目:

データ型の変換については、『Oracle Database SQL言語リファレンス』を参照してください。

DBMS_PREDICTIVE_ANALYTICSでサポートされている日付データ型については、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照してください。

テキスト変換

Oracle Data Miningではテキストをマイニングできます。ケース表内のテキスト列は、適切に変換すると、マイニングできるようになります。

テキスト列は、ビューではなく、表内に存在している必要があります。変換プロセスでは、いくつかのOracle Textの機能が使用され、表の各行のテキストがそれぞれ別個のドキュメントとして処理されます。各ドキュメントは、数値およびテキスト・ラベルを持つ用語と呼ばれるテキスト・トークンのセットに変換されます。テキスト列は、DM_NESTED_NUMERICALSのネストした列に変換されます。

関連項目:
詳細は、『Oracle Data Miningアプリケーション開発者ガイド』を参照してください。

ビジネスおよび領域に関する変換

一部の変換は、ビジネス上の問題の定義によって決まります。たとえば、高い利益を生む顧客を予測するモデルを作成する場合を考えます。現在の顧客の利益データはドルなどの通貨で表されているため、どの程度が「高い利益」なのかを定義する必要があります。この場合、モデルを作成する前に、これまでの経験から導かれたいくつかの式を使用して、利益属性を「低」、「中」および「高」の範囲に再コード化できます。

その他の一般的なビジネス上の変換には、データ情報の経過時間への変換があります。たとえば、出生日は年齢に変換できます。

場合によっては、モデルによるデータの望ましくない解釈を最小限に抑えるため、データの変換が必要となります。例として、対数変換があります。値が非常に広い範囲に分布する場合、量的属性の対数をとることができます。たとえば、手数料などは数百から数百万の範囲に分布する場合があります。対数スケールに変換することによって、モデルにおける歪効果を最小化できます。

専門知識は、データをどのように準備するのかを決める上で非常に重要になることがあります。たとえば、一部のアルゴリズムでは、通常の範囲から遠く外れた値がデータに含まれていると、信頼できない結果が生成される可能性があります。ある場合は、これらの値は誤差または異常値を表します。別の場合では、これらの値が意味のある情報を提供することもあります。「外れ値の処理」を参照してください。

自動データ準備

ほとんどのアルゴリズムでは、なんらかの形のデータ変換が必要となります。Oracle Data Miningは、モデルのトレーニング・プロセス時にアルゴリズムで必要とされる変換を自動的に実行できます。ユーザーは、この自動変換に独自の変換を追加したり、すべての変換を独自に管理できます。

自動変換を計算する際、Oracle Data Miningでは、経験則を使用して特定のアルゴリズムの一般的な要件を見つけます。多くの場合、このプロセスによってモデルの質がある程度確保されます。

ビニング、正規化および外れ値の処理は、データ・マイニング・アルゴリズムで一般的に必要とされる変換です。

ビニング

ビニングは離散化とも呼ばれ、連続データおよび離散データのカーディナリティを減らすための手法です。ビニングでは、関連する複数の値をビンにグループ化して、個別値の数を減らします。

ビニングを行うと、モデルの質をほとんど落とすことなく、リソースの使用率やモデル作成の応答時間を大幅に向上させることが可能です。ビニングを行うと、属性間の関係が補強され、モデルの質が向上する場合があります。

注意:
ビニングは、Naive-Bayesおよび属性評価アルゴリズムで必要な第一の変換です。Oracle Data Miningのディシジョン・ツリー・アルゴリズムには、独自形式のビニング(監視ありビニング)が実装されています。

正規化

正規化は、数値データの範囲を狭くする最も一般的な手法です。ほとんどの正規化手法では、1つの変数の範囲が別の範囲(通常は0から1)にマップされます。

注意:
正規化は、サポート・ベクター・マシン(1クラス、分類および回帰)、Non-Negative Matrix Factorizationおよびk-Meansアルゴリズムで必要な第一の変換です。

外れ値の処理

列内の他の値から大幅に外れている値は、外れ値とみなされます。外れ値が存在すると、データに歪効果が現れ、正規化やビニングなどの変換の有効性が抑制される場合があります。

トリミングやクリッピングなどの外れ値の処理手法を行うと、外れ値の影響を最小限に抑えることができます。

外れ値は、機器の異常に起因する不正確な読取りなど、問題のあるデータを表している場合があります。ただし、特にビジネス分野などの一部のケースでは、外れ値が完全に有効となることがあります。たとえば、人口調査のデータにおいて、富裕層に属する一部の個人の収入が一般層とは大きく異なる場合があります。この情報はデータの重要な部分であるため、外れ値として処理すべきではありません。通常、外れ値の処理を決定するには専門知識が必要です。

自動データ準備での変換

各アルゴリズムに対してADPがどのようにデータを準備するかを、表19-1に示します。

注意:
ほとんどのアルゴリズムには、なんらかの形のデータ準備が組み込まれています。たとえば、量的属性に対してネイティブに作用するアルゴリズムは、各非数値入力列を量的属性のセットに展開します。
アルゴリズム内にカプセル化されている変換は、ユーザーに対して透過的であり、ADPとは無関係に行われます。

また、ネストしたデータ、スパーシティおよび欠損値の処理は、アルゴリズム間で標準で、ADPとは無関係に発生します。(『Oracle Data Miningアプリケーション開発者ガイド』を参照してください。)

表19-1 ADPとOracle Data Miningのアルゴリズム

アルゴリズム

マイニング機能

ADPによる処理

Naive Bayes

分類

監視ありビニングによってすべての属性がビニングされる。

ディシジョン・ツリー

分類

ADP設定はディシジョン・ツリーに対して効果がない。データ準備はアルゴリズムによって処理される。

GLM

分類および回帰

量的属性が正規化される。

SVM

分類、異常検出および回帰

量的属性が正規化される。

k-Means

クラスタリング

外れ値に敏感な正規化によって量的属性が正規化される。

O-Cluster

クラスタリング

属性ごとのビン数を自動的に計算する特別な形式の等幅ビニングによって量的属性がビニングされる。すべてNULLまたは単一の値を持つ数値列は除外されます。

MDL

属性評価

監視ありビニングによってすべての属性がビニングされる。

Apriori

相関ルール

ADP設定は相関ルールに対して効果がない。

NMF

特徴抽出

量的属性が正規化される。

関連項目:
アルゴリズム固有のデータ準備の詳細は、第III部の個々のアルゴリズムに関する章を参照してください。

組込みのデータ準備

変換は、ADPによってモデルに自動的に組み込んだり、ユーザーが指定した変換の指示の結果として組み込むことができます。独自の組込み変換を指定するには、変換リストを作成し、DBMS_DATA_MINING.CREATE_MODELに渡します。

PROCEDURE create_model(
model_name           IN VARCHAR2,
mining_function      IN VARCHAR2,
data_table_name      IN VARCHAR2,
case_id_column_name  IN VARCHAR2,
target_column_name   IN VARCHAR2 DEFAULT NULL,
settings_table_name  IN VARCHAR2 DEFAULT NULL,
data_schema_name     IN VARCHAR2 DEFAULT NULL,
settings_schema_name IN VARCHAR2 DEFAULT NULL,
xform_list           IN TRANSFORM_LIST DEFAULT NULL);

関連項目:
変換リストの詳細は、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照してください。

変換リストおよび自動データ準備

ADPを有効化し、変換リストを指定すると、その変換リストがシステムによって生成された自動の変換とともに組み込まれます。変換リストは、自動変換の前に実行されます。

ADPを有効化し、変換リストを指定しないと、自動変換のみがモデルに組み込まれます。

ADPを無効化し(デフォルト)、変換リストを指定すると、カスタム変換がモデルに組み込まれます。自動変換は実行されません。

ADPを無効化し(デフォルト)、変換リストを指定しないと、モデルには変換が組み込まれません。この場合、作成データセット、テスト・データセットおよびスコアリング・データセットを独自に変換する必要があります。各データセットには同じ変換を適用してください。このデータ準備の方法は、以前のリリースのOracle Data Miningで必要でした。

Oracle Data Miningの変換ルーチン

Oracle Data Miningには、DBMS_DATA_MINING_TRANSFORMパッケージの様々な変換手法を実装するルーチンが用意されています。このパッケージの詳細は、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照してください。

ビニング・ルーチン

ビニング計画の決定には、多数の要因が関与します。通常、値の数を少なくするとモデルがコンパクトになり、短時間でモデルを作成できるようになりますが、精度が低下する可能性もあります。

ビンの境界を適切に選択すると、モデルの質が大幅に向上する場合があります。たとえば、年齢をビンに分ける適切な手段としては、0から13は子供、13から19は10代、19から24は青年、24から35は社会人、などのように、対象とするグループに分割する方法があります。

表19-2に、Oracle Data Miningで提供されているビニングの手法を示します。

表19-2 DBMS_DATA_MINING_TRANSFORMのビニング方法

ビニング方法

説明

上位N個の最頻出項目

この方法は、質的属性のビニングに使用できる。ユーザーはビンの数を指定する。発生頻度が最も高い値が最初のビンとしてラベル付けされ、発生頻度が2番目に高い値が2番目のビンとしてラベル付けされる、などとなる。残りの値はすべて追加のビンに含まれる。

監視ありビニング

監視ありビニングは高い知能を備える形式のビニングであり、ビンの境界はデータの重要な特性から導かれる。監視ありビニングでは、単一予測子のディシジョン・ツリーが作成され、ターゲットに関して特徴的なビンの境界が検出される。これは、量的属性または質的属性に使用できる。

等幅ビニング

等幅ビニングは、量的属性に使用できます。最大値から最小値を差し引いて値の範囲を計算し、その値の範囲が等間隔に分割されます。ビンの数は、ユーザーが指定することも、自動的に計算することもできます。等幅ビニングは通常、外れ値の処理とともに使用する必要があります。(「外れ値の処理のルーチン」を参照してください。)

分位ビニング

分位ビニングは量的なビニングの手法である。分位の計算には、SQL分析関数のNTILEが使用される。ビンの境界は、各分位の最小値に基づいて計算される。左右の境界が等しいビンはビンとして形成されないため、必要な数よりも少ないビン数となる可能性がある。

正規化ルーチン

正規化のほとんどの手法では、1つの属性の範囲を別の範囲(通常は0から1または-1から+1)にマップします。

正規化は外れ値に対して非常に敏感です。外れ値の処理をしない場合、値の多くがきわめて小さな範囲にマップされ、情報の多くが失われてしまいます。(「外れ値の処理のルーチン」を参照してください。)

表19-3 DBMS_DATA_MINING_TRANSFORMの正規化方法

変換

説明

Min-Max正規化

この手法では、最小値と最大値を使用して属性の正規化が計算される。シフト量には最小値が、スケールには最大値と最小値の差が使用される。

スケール正規化

この正規化手法でも、最小値と最大値が使用される。スケール正規化の場合、シフト量が0で、スケールがmax{abs(max), abs(min)}となる。

Z-スコア正規化

この手法では、平均値と標準偏差を使用して属性の正規化が計算される。シフト量には平均値が、スケールには標準偏差が使用される。

外れ値の処理のルーチン

外れ値は極端な値であり、通常は平均値から標準偏差の数倍離れた値のことを指します。外れ値の影響を最小限に抑えるには、データをウィンザライズするかトリミングします。

ウィンザライズでは、属性の両端の値を特定の指定値に設定します。たとえば、ウィンザライズを90%とする場合、値の下位5%は5パーセンタイルの最小値と同じ値に設定され、値の上位5%は95パーセンタイルの最大値に一致する値に設定されます。

トリミングでは、末端値をNULLに設定します。これらの値はアルゴリズムで欠損値として処理されます。

外れ値が及ぼす影響はアルゴリズムによって異なります。通常、外れ値は、等幅ビニングおよびmin-max正規化において歪みを生じさせます。

表19-4 DBMS_DATA_MINING_TRANSFORMの外れ値の処理方法

変換

説明

トリミング

この手法では、非NULL値をソートし、一定の割合に基づいて末端値を計算し、その末端値をNULLに置き換えることによって数値列の外れ値を取り除く。

ウィンザライズ

この手法では、非NULL値をソートし、一定の割合に基づいて末端値を計算し、その末端値を指定値に置き換えることによって数値列の外れ値を取り除く。

透明性

Oracle Data Miningでは、モデルによって戻される情報が、モデルのトレーニングに使用されたデータの形式に似た形式または同じ形式で表されることを保証する、モデルの透明性をサポートします。内部変換は、モデルの詳細および監視ありモデルによって生成された予測で逆変換されます。

内部変換

モデルで使用される属性の一部は、作成データ内の列に対応します。ただし、アルゴリズム、ネストしたデータおよび変換に固有のロジックがあるため、多くの属性は列に対応しません。

たとえば、モデルでは、トレーニング・データ内のネストした列は属性として解釈されません。Oracle Data Miningではモデルの作成時に、ネストした列が展開され、各行(属性の名前と値のペア)が1つの属性となります。

SVMおよびGLMなどの一部のアルゴリズムは、量的属性に対してのみ作用します。SVMの場合、作成データ内の非数値列は2項の量的属性に展開されます(列内の各個別値に対して1つ)。GLMでは、元の列内の最頻値に対して新しい属性は生成されません。これらの2項属性は、ケースの列値がその2項属性に関連付けられた値と等しい場合にのみ、1に設定されます。

係数を生成するアルゴリズムは、結果の解釈性に関する課題を示しています。例としては、SVNやNMFが挙げられます。これらのアルゴリズムは、変換された属性と組み合せて使用される係数を生成します。これらの係数は、元のデータのスケールではなく、変換されたスケール上のデータに関連があります。

アルゴリズムではトレーニング・データ内のすべての列が必ずしも使用されるわけではありません。一部の列はモデルの質を維持する上で不要または有害とみなされる場合があります。これらの列は属性として使用されません。

こうしたすべての理由から、モデルの詳細にリストされる属性は、モデルのトレーニングに使用されるデータの列とは似ていない場合があります。ただし、ADPで実行される、またはユーザーが指定した変換リストによるかにかかわらず、組込みの変換が行われる属性は、元の列値とできるだけ近い変換前の状態でモデルの詳細に表示されます。属性は、モデルによって使用される際に変換されますが、モデルの詳細ではユーザーが解釈できる形式で表示されます。

関連項目:
GET_MODEL_DETAILS
GET_MODEL_TRANSFORMATIONS
ALTER_REVERSE_EXPRESSION
の詳細は、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照してください。

第V部

非構造化データのマイニング

第V部では、Oracle Data Miningを使用してテキストおよびその他の形式の非構造化データをマイニングする方法について説明します。

第V部は次の章で構成されています。

- 第20章「テキスト・マイニング」

20 テキスト・マイニング

この章には、次の項が含まれます。

- 非構造化データとは

- Oracle Data Miningでの非構造化データのサポート方法

- マイニング用のテキストの準備

- Oracle Data MiningとOracle Text

非構造化データとは

データ・マイニング・アルゴリズムは、リレーショナル・データベースまたはスプレッドシートに格納されている量的データと質的データに作用します。量的データは、INTEGER、DECIMAL、FLOATなどの型を持ちます。質的データは、CHARまたはVARCHAR2の型を持ちます。

量的データでも質的データでもないデータ項目をマイニングする場合を考えます。Webページ、ドキュメント・ライブラリ、PowerPointプレゼンテーション、製品仕様、電子メール、サウンド・ファイル、デジタル画像など、多くの例があります。製品説明、レポートのコメント欄、コールセンターのメモなど、長い文字列に格納された情報をマイニングするにはどうすればよいでしょうか。

データ・マイニングでは、量的データや質的データとして解釈できないデータは非構造化データとみなされます。企業データの85%が、この非構造化データに該当すると推計されています。非構造化データから意味のある情報を抽出することは、ビジネスの成功にとって不可欠となります。

Oracle Data Miningでの非構造化データのサポート方法

非構造化データは、画像やオーディオ・ファイルなどのバイナリ・オブジェクト、または言語ベースのテキスト・オブジェクトです。Oracle Data Miningではテキスト・オブジェクトをサポートしています。

データ・マイニング用のケース表には、1つ以上のテキスト列(「混合データ」を参照)が含まれ、これらの列は属性として指定されます。テキスト列はターゲットとしては使用できません。ケース表自体はリレーショナル表である必要があるため、ビューとしては作成できません。

テキストは、マイニングする前に変換プロセスを行う必要があります。データが正しく変換されると、ケース表を使用して、データ・マイニング・モデルの作成、テストまたはスコアリングを行うことができます。ほとんどのOracle Data Miningアルゴリズムでは、テキストがサポートされています。(「テキスト・データ・アルゴリズム」を参照してください。)

混合データ

今日、ほとんどの企業情報には、特定の関心項目に関連する、構造化コンテンツと非構造化コンテンツの両方が存在します。顧客アカウントのデータには、サポート・コールおよびその他の顧客との対話が記述されたテキスト・データが含まれている場合があります。保険金請求データには、請求のステータス、サポート・ドキュメント、電子メール対応およびその他の情報が含まれている場合があります。分析応用では、多くの場合、関連する非構造化情報とともに構造化情報を評価することが重要です。

Oracle Data Miningでは、こうした機能が提供されています。Oracle Data Miningを使用して、通常の関連情報(数値列および文字列)の他、1つ以上のテキスト列も含むデータセットをマイニングできます。

テキスト・データ型

Oracle Data Miningでは、表20-1に示すデータ型のいずれかを持つテキスト列をサポートしています。

表20-1 テキスト列のデータ型

データ型

説明

BFILE

データベース外に保存された大きなバイナリ・ファイルのロケータ

BLOB

バイナリ・ラージ・オブジェクト

CHAR

固定長の文字列

CLOB

キャラクタ・ラージ・オブジェクト

LONG

可変長の長い文字列

LONG RAW

可変長の長い生バイナリ・データ

RAW

生バイナリ・データ

VARCHAR2

可変長の文字列

XMLTYPE

XMLデータ

関連項目:
Oracleのデータ型については、『Oracle Database SQL言語リファレンス』を参照してください。

テキスト・マイニング・アルゴリズム

テキスト・マイニングには、表20-2に示すOracle Data Miningのアルゴリズムを使用できます。

表20-2 テキストをサポートするOracle Data Miningのアルゴリズム

アルゴリズム

マイニング機能

Naive Bayes

分類

一般化線形モデル

分類、回帰

サポート・ベクター・マシン

分類、回帰、異常検出

k-Means

クラスタリング

Non-Negative Matrix Factorization

特徴抽出

Apriori

相関ルール

最小記述長

属性評価

Oracle Data Miningでは、すべてのマイニング機能でテキストをサポートしています。表20-2に示すとおり、各マイニング機能につき少なくとも1つのアルゴリズムにテキスト・マイニング機能があります。

分類、クラスタリングおよび特徴抽出には、純粋なテキスト・マイニングにおいて重要な用途があります。それ以外の機能(回帰や異常検出など)は、混合データ(構造化および非構造化)のマイニングに、より適しています。

テキスト分類

テキスト分類は、たとえば主題や著者によってドキュメントをカテゴリ分類するプロセスです。ドキュメント分類アプリケーションの大半では、多クラスの分類または多ターゲットの分類が使用されます。

多クラスのドキュメント分類

多クラスのドキュメント分類では、各ドキュメントに各カテゴリの確率が割り当てられ、確率は合計1になります。たとえば、economics、mathおよびphysicsというカテゴリがある場合、ドキュメントAは、20%の確率でeconomics、50%の確率でmath、30%の確率でphysicsです。

このドキュメント分類方法は、Oracle Data MiningおよびOracle Textでサポートされています。

多ターゲットのドキュメント分類

多ターゲットのドキュメント分類では、各ドキュメントに、あるカテゴリに含まれる確率または含まれない確率が割り当てられ、各カテゴリの確率は合計1になります。economics、mathおよびphysicsというカテゴリがあるとすると、ドキュメントAは、30%の確率でeconomicsであり70%の確率でeconomicsでない、65%の確率でmathであり35%の確率でmathでない、40%の確率でphysicsであり60%の確率でphysicsでない、というように分類されます。

多ターゲットのドキュメント分類では、各カテゴリは別個の2項ターゲットです。各ドキュメントは各ターゲットについてスコアリングされます。

このドキュメント分類方法は、Oracle Textでサポートされますが、Oracle Data Miningではサポートされていません。ただし、カテゴリごとに1つの2項分類モデルを作成してから、1つのSQLスコアリング問合せですべてのモデルを別個にスコアリングすることにより、同様の結果が得られます。

関連項目:
「Oracle Data MiningとOracle Text」

ドキュメント分類のアルゴリズム

Oracle Data Miningでは、テキスト・マイニングに適した3つの分類アルゴリズムをサポートしています。いずれも、何千ものテキストの特徴(テキストの特徴については、「マイニング用のテキストの準備」を参照)を簡単に処理でき、少ないデータでも大量のデータでもトレーニングが容易です。サポートされるアルゴリズムは次のとおりです。

- サポート・ベクター・マシン(SVM)(第18章を参照)

- ロジスティック回帰(GLM)(第12章を参照)

- Naive Bayes(NB)(第15章を参照)

関連項目:
第5章「分類」

テキスト・クラスタリング

テキスト・マイニングでのクラスタリングの主な用途は次のとおりです。

- 単純なクラスタリング。テキストの特徴のクラスタを作成します(テキストの特徴については、「マイニング用のテキストの準備」を参照)。たとえば、検索エンジンによって戻されたヒットをグループ化します。

- 分類の生成。階層的なグループを生成します。たとえば、自動車メーカーに関するテキストを含むクラスタは、自動車のモデルに関するテキストを含む子クラスタの親です。

- トピックの抽出。グループの最も典型的な特徴を抽出します。たとえば、各ドキュメント・トピックに含まれる、最も典型的なドキュメントの特徴です。

Oracle Data Miningの拡張k-Meansクラスタリング・アルゴリズム(第13章を参照)では、テキスト・マイニングをサポートしています。

関連項目:
第7章「クラスタリング」

テキストの特徴抽出

特徴抽出は、テキスト・マイニングの中心です。テキスト・マイニング・プロセスでは、2つの段階でテキスト変換に特徴抽出を使用します。

1. 特徴抽出プロセスは、テキスト・ドキュメントをマイニングする前に実行する必要があります。この前処理で、テキスト・ドキュメントが特徴または用語と呼ばれる小さなテキストの単位に変換されます。

関連項目:
「マイニング用のテキストの準備」

2. テキスト変換プロセスでは、テキスト・ドキュメントから大量の(場合によっては何千もの)テキストの特徴が生成されます。Oracle Data Miningのアルゴリズムは、特徴をそれぞれ別個の属性として扱います。そのため、テキスト・データに膨大な数の属性が含まれていても、大部分の属性が監視ありモデルのトレーニングや監視なしモデルの作成にとって重要な情報をほとんど持たないことがあります。
Oracle Data Miningでは、特徴抽出用にNon-Negative Matrix Factorization(NMF)アルゴリズムをサポートしています。NMFモデルを作成することにより、ケース表から導出したテキスト属性を統合して、数を絞った有意義な属性セットを生成できます。分類、クラスタリングまたはその他のデータ・マイニング・モデルにこの結果を使用すると、非常に効果的な場合があります。NMFについては、第16章を参照してください。

関連項目:
第9章「特徴の選択と抽出」

テキストの相関

相関モデルは、用語の意味を明らかにするために使用できます。たとえば、accountという用語が、customer、explanation、churn、story、region、debitおよびmemoといった用語と同時発生するとします。相関モデルは、accountとこれらの概念を結び付けるルールを生成します。このルールを調べることにより、一群のドキュメント内でのaccountのコンテキストが提供されます。このような相関によって、情報検索エンジンを改善できます。

Oracle Data Miningでは、相関用にAprioriがサポートされています。Aprioriについては、第10章を参照してください。

関連項目:
第8章「相関」

テキストの属性評価

属性評価を使用すると、ターゲット列の値を区別する用語を見つけることができます。属性評価では、ターゲットを予測する際に用語の相対的な重要度がランク付けされます。たとえば、特定の語句によって著者の文体を区別できます。

Oracle Data Miningでは、属性評価用に最小記述長(MDL)をサポートしています。MDLについては、第14章を参照してください。

関連項目:
第9章「特徴の選択と抽出」

マイニング用のテキストの準備

テキストをマイニングする前には、用語抽出または特徴抽出と呼ばれる特別な前処理を実行する必要があります。このプロセスで、テキストがマイニング可能な単位(用語)に分割されます。テキストの用語は、キーワードまたはその他のドキュメント派生の特徴です。

テキスト・マイニング・モデルを作成または適用する際に、Oracle Data Minerのグラフィカル・ツールで用語抽出が透過的に実行されます。Oracle Textのテーブル・ファンクション・セットを使用して、PL/SQL APIテキスト・マイニングの用語を抽出できます(『Oracle Data Miningアプリケーション開発者ガイド』を参照)。

関連項目:
Oracle Data Miningサンプル・プログラム付属の用語抽出コードの例については、『Oracle Data Mining管理者ガイド』を参照してください。

用語抽出プロセスでは、Oracle Textのルーチンを使用してテキスト列をネストした列に変換します。各用語は、ネストした属性の名前です。ネストした属性の値は、用語を一意に識別する番号です。そのため、テキストから導出された各用語は、データ・マイニング・アルゴリズムで別個の量的属性として使用されます。

ネストしたデータをサポートするOracle Data Miningのアルゴリズムはすべて、テキスト・マイニングに使用できます。これらのアルゴリズムを表20-2に示しています。

関連項目:

「Oracle Data MiningとOracle Text」

ネストしたデータについては、『Oracle Data Miningアプリケーション開発者ガイド』を参照してください。

Oracle Data MiningとOracle Text

Oracle Textは、Oracle Databaseで提供される基本機能に含まれている技術です。Oracle Textでは、Oracle Data Miningの内部コンポーネントを使用してデータ・マイニング機能の一部を提供します。

Oracle Data Miningは、Oracle DatabaseのEnterprise Editionのオプションの1つです。Oracle Data Miningを使用するには、データ・マイニング・オプションのライセンスが必要です。Oracle Textおよびそのデータ・マイニング機能を使用する上で、データ・マイニング・オプションのライセンスは必要ありません。

Oracle Textは、PL/SQLパッケージと、テキスト問合せやドキュメント分類をサポートする関連データ構造で構成されます。Oracle Textのルーチンは次のことに使用できます。

- Webサイトやオンライン・ライブラリなど一群のドキュメントの問合せ

- 著者や発行者の説明などドキュメント・カタログの問合せ

- ドキュメント分類やクラスタリングの実行

Oracle Data Miningの機能とOracle Textの機能の主な相違点は、次のとおりです。

- Oracle Data Miningでは、混合データ(「混合データ」を参照)のマイニングがサポートされています。Oracle Textのマイニング機能では、テキストのみがサポートされ、構造化データと非構造化データの混合データはサポートされません。

- Oracle Data Miningでは、複数のテキスト列を一度にマイニングできます。Oracle Textのルーチンで処理できるのは1つの列のみです。

- Oracle Data Miningでは、すべてのデータ・マイニング機能でテキストをサポートしています。Oracle Textでは、サポートできるデータ・マイニングは限られています。これらの相違点を表20-3にまとめます。

- Oracle Data MiningとOracle Textの両方では、表20-1に示すすべてのデータ型のテキスト列がサポートされています。Oracle Data Miningでは、マイニングの前に、テキストの特徴抽出による変換が必要です(「マイニング用のテキストの準備」を参照)。Oracle Textでは、テキストの特徴抽出を内部で実行するため、そのままのテキストを処理します。

- Oracle Data MiningとOracle Textは両方とも、ドキュメント分類をサポートしています(「テキスト分類」を参照)。Oracle Data Miningでは多クラスの分類がサポートされています。Oracle Textでは、多クラスの分類と多ターゲットの分類がサポートされています。

表20-3 マイニング機能: Oracle Data MiningとOracle Text

マイニング機能

Oracle Data Mining

Oracle Text

異常検出

1クラスSVMを使用してテキストまたは混合データをマイニング可能

未サポート

相関

Aprioriを使用してテキストまたは混合データをマイニング可能

未サポート

属性評価

MDLを使用してテキストまたは混合データをマイニング可能

未サポート

分類

SVM、GLMまたはNaive Bayesを使用してテキストまたは混合データをマイニング可能

SVM、ディシジョン・ツリーまたはユーザー定義ルールを使用してテキストをマイニング可能

クラスタリング

k-Meansを使用してテキストまたは混合データをマイニング可能

k-Meansを使用してテキストをマイニング可能

特徴抽出

NMFを使用してテキストまたは混合データをマイニング可能

未サポート

回帰

SVMまたはGLMを使用してテキストまたは混合データをマイニング可能

未サポート

関連項目:

『Oracle Textアプリケーション開発者ガイド』

『Oracle Textリファレンス』

用語集

能動学習

サポート・ベクター・マシン・アルゴリズムの機能で、大量のトレーニング・データセットを処理する方法を提供します。

ADP

「自動データ変換」を参照。

集計

複数のデータ値をより少ない数の値に集約するプロセス。たとえば、売上データを毎日収集して、これを週レベルに総計できる。

アルゴリズム

問題を解決するための一連の手順。「データ・マイニング・アルゴリズム」を参照。Oracle Data Miningのプログラム・インタフェースでは、MDL、Apriori、ディシジョン・ツリー、k-Means、Naive Bayes、GLM、O-Cluster、およびサポート・ベクター・マシンの各アルゴリズムがサポートされます。

アルゴリズム設定

モデル作成用のアルゴリズム固有の動作を指定する設定。

異常検出

外れ値または特殊なケースの検出。Oracle Data Miningのプログラム・インタフェースを使用して異常検出モデルを作成するには、マイニング機能として分類を、アルゴリズムとしてSVMを指定し、ターゲット列名としてNULLまたは空の文字列を渡す。

適用

データのスコアリングを行うデータ・マイニング操作。すなわち、モデルを新しいデータに使用して結果を予測します。

Apriori

相関の計算に高頻度項目セットが使用されます。

相関

項目間の関係を識別する機械学習手法。

相関ルール

トランザクション間の各項目の同時発生性を見つけ出すマイニング機能。典型的なルールは、項目セットAの存在が、一定の支持度および信頼度で項目セットBの存在を示すA -> B形式の関連付け。ルールの支持度とは、総トランザクション数に対する、項目セットAおよびBが存在するトランザクションの数の割合である。ルールの信頼度とは、項目セットAが存在するトランザクションの数に対する、項目セットAおよびBが存在するトランザクションの数の割合である。Oracle Data Miningでは、相関モデルにAprioriアルゴリズムが使用される。

属性

属性は、予測モデルの予測子、または記述モデルの記述情報の項目を指す。データ属性はモデルの作成に使用される列を指す。データ属性は、変換により、モデルで質的属性または量的属性として使用できるようになる。質的属性および量的属性はモデル属性である。「ターゲット」も参照。

属性評価

特定のターゲットを予測する際の、属性の重要度の測度を提供するマイニング機能。トレーニング・データ表の様々な属性の測度によって、ユーザーは、マイニング・モデルに対して最も適切であると判明した属性を選択できる。属性セットが小さいほど短時間でモデルが作成され、結果として生成されるモデルの精度が高くなる場合がある。Oracle Data Miningでは、重要な属性の検出に最小記述長アルゴリズムを使用する。「特徴選択」または「キー・フィールド」と呼ばれる場合もある。

自動データ変換

マイニング・モデルは、自動データ準備(ADP)モードで作成できる。ADPでは、アルゴリズムの要件に従って作成データが変換され、モデルに変換の指示が組み込まれて、モデルの適用時にテスト・データまたはスコアリング・データを変換する際にその指示が使用される。

ビニング

「離散化」を参照。

作成データ

モデルを作成(トレーニング)するためのデータ。「トレーニング・データ」とも呼ばれる。

ケース

特定のトランザクションまたは関連する値のセットに関して収集されたすべてのデータ。データセットはケースの集合である。ケースは、「レコード」または「サンプル」とも呼ばれる。最も単純な状況では、ケースは表内の1行に相当する。

ケース表

単一レコード・ケース形式の表またはビュー。各ケースのすべてのデータは、1つの行に格納される。ケース表には、各行の一意の識別子を格納するケースID列が含まれる場合がある。マイニング・データはケース表として与える必要がある。

質的属性

値が個別カテゴリに対応している属性。たとえば、州は、個別の値(CA、NY、MAなど)を持つ質的属性である。質的属性は、州、性別などのように順序付けられないもの(名称的)か、温度の高、中、低などのように順序付けられるもの(序数的)かのいずれかである。

重心

「クラスタの重心」を参照。

分類

既知のターゲット値を持つレコードから作成したモデルを使用して、新しいレコードの質的ターゲット値を予測するマイニング機能。Oracle Data Miningでは、分類に関して、Naive Bayes、ディシジョン・ツリーおよびサポート・ベクター・マシンの各アルゴリズムをサポートしています。

クリッピング

「トリミング」を参照。

クラスタの重心

各属性について、クラスタに割り当てられたトレーニング・データにおけるケースの平均値(量的属性の場合)または最頻値(質的属性の場合)のエンコードを行うベクター。クラスタの重心は単に「重心」とも呼ばれる。

クラスタリング

データ内での自然発生的なグループを見つけるためのマイニング機能。より正確には、それぞれが属性セットを持つデータ・ポイントのセット、およびそのデータ・ポイント間の類似性測度があるものとすると、クラスタリングとは、相互に類似するデータ・ポイントを同じクラスタ内に、あまり類似しないデータ・ポイントを異なるクラスタ内にグループ化するための処理である。Oracle Data Miningでは、クラスタリングに関して、k-meansおよび直行パーティショニング・クラスタリングの2つのアルゴリズムをサポートしている。

混同マトリックス

これによって、テスト・タスクからのモデルによる予測の精度が測定される。混同マトリックスの行インデックスは、テスト・データで提供され、観測された「実測値」に対応する。列インデックスは、モデルをテスト・データに適用して生成された「予測値」に対応する。実測/予測インデックスの各組合せの値は、その組合せに分類されるレコードの数を表す。

予測値が実測値に等しい場合、モデルによって正確な予測が生成される。その他のすべてのエントリはエラーを示す。

コスト・マトリックス

実測値と予測値に関連するコストを定義するnxnの表。コスト・マトリックスは、通常分類モデルで使用され、nはターゲット内の個別値の数で、列および行はターゲット値でラベル付けされる。行が実測値、列が予測値が列となる。

反例

ターゲットのネガティブ・インスタンス。反例は、1クラス・サポート・ベクター・マシン以外の分類モデルで必要となる。

データ・マイニング

データ・マイニングとは、大量に保管されているデータを自動的に検索して、単純な分析では得られないパターンや傾向を見つけることである。データ・マイニングでは高度な数学的アルゴリズムを使用して、データを分割し、将来のイベントの発生確率を判断します。データ・マイニングは、「データからの知識発見(KDD)」としても知られている。

データ・マイニング・モデルは、特定のデータセットの特定のタイプの問題を解決するためにデータ・マイニング・アルゴリズムを実装しています。

データ・マイニング・アルゴリズム

データ・マイニング・モデルを生成する特殊な技法または手順。1つのアルゴリズムでは特定のデータ表現および特定のマイニング機能が使用されます。

Oracle Data Miningのプログラム・インタフェースのアルゴリズムには、分類用にNaive Bayes、サポート・ベクター・マシン、一般化線形モデルおよびディシジョン・ツリー、回帰用にサポート・ベクター・マシンおよび一般化線形モデル、クラスタリング用にk-MeansおよびO-cluster、属性評価用に最小記述長、特徴抽出用にNon-Negative Matrix Factorization、相関用にApriori、異常検出用に1クラス・サポート・ベクター・マシンがある。

Data Mining Server

データ・マイニング・エンジンおよび永続メタデータ・リポジトリを実装する、Oracle Databaseのコンポーネント。データ・マイニング・タスクを実行する前にData Mining Serverに接続する必要がある。

データセット

一般的には、データの集合。データセットはケースの集合である。

記述モデル

記述モデルは、基底のプロセスや行動の理解に役立つ。たとえば、相関モデルによって消費者行動が記述される。「マイニング・モデル」も参照。

離散化

離散化によって、単一値(またはビン)に基づいて、関連値が一緒にグループ化される。これによって、列内の個別値の数が減少する。ビンの数が少なくなると、モデルが短時間で作成される。モデルの作成、テスト、リフトの計算、適用(スコアリング)の前に入力データを離散化することによって、Oracle Data Miningの多くのアルゴリズム(NBなど)にプラスとなる場合がある。アルゴリズムごとに異なるビニング・タイプが必要になる場合がある。Oracle Data Miningには、質的属性に対して上位N個の頻度ビニングを、量的属性に対して等幅ビニングおよび分位ビニングを実行する変換がある。

距離ベース(クラスタリング・アルゴリズム)

距離ベースのアルゴリズムは、距離メトリック(関数)を使用して、データ・ポイント間の類似度を計測する。各データ・ポイントは、使用される距離メトリックに従って、最も近いクラスタに割り当てられる。

ディシジョン・ツリー

ディシジョン・ツリーは、分類システムまたは監視ありモデルの表現。ツリーは一連の問題として構築される。問題への答えはツリーをリーフまでさかのぼり、そのリーフで予測が生成される。

ディシジョン・ツリーは、クラスまたは値をもたらす一連の問題を表す方法である。ディシジョン・ツリーの最上位ノードはルート・ノードと呼ばれ、終端ノードはリーフ・ノードと呼ばれる。ディシジョン・ツリーは、各分割においてグループ間の距離が最大になるような、個々のグループへのデータの反復的な分割によって構築される。

ディシジョン・ツリー・モデルの重要な特性は、透過的であるという点にある。すなわち、その分類を説明するルールが存在する。

「ルール」も参照。

DMS

「Data Mining Server」を参照してください。

等幅ビニング

等幅ビニングは、指定した同じサイズのビン数に値の範囲を分割することによって、量的属性のビンを決定する。

展開

質的属性に関して、複数値の質的列をいくつかの2項質的列で置き換える。属性を展開するには、属性がとる各個別値に新しい2項列を作成する必要がある。新しい列では、1は属性の値がその列の値をとることを示し、0はとらないことを示す。たとえば、質的属性が値{1, 2, 3}をとるとする。この属性を展開するために、col_1、col_2およびcol_3という新しい列を3つ作成する。属性が値1をとる場合、col_1の値は1であり、他の2つの列の値は0となる。

特徴

特に重要度が高くデータの重要な特性をとらえた、データ内の属性の組合せ。「特徴抽出」を参照。

「テキストの特徴」も参照。

特徴抽出

元のデータを分解して、特徴の新しいセットを作成すること。特徴抽出を使用すると、通常、元の属性の数よりもはるかに少ない数の特徴でデータを記述できる。「Non-Negative Matrix Factorization」も参照。

一般化線形モデル

線形モデリング用の統計的手法。一般化線形モデル(GLM)は、単純な線形モデルのクラスを含み、このクラスを拡張したものである。Oracle Data Miningでは、GLM分類に対してロジスティック回帰が、GLM回帰に対して線形回帰がサポートされている。

GLM

「一般化線形モデル」を参照。

k-Means

十分な数の個別ケースがある場合に、事前に決められた数のクラスタにデータをパーティション化する、距離ベースのクラスタリング・アルゴリズム。距離ベースのアルゴリズムは、距離メトリック(関数)を使用して、データ・ポイント間の類似度を計測する。各データ・ポイントは、使用される距離メトリックに従って、最も近いクラスタに割り当てられる。Oracle Data Miningには、k-Meansの拡張バージョンが用意されている。

リフト

偶然取得される予測結果より、モデルを使用している予測結果がどのくらい優れているかの測度。たとえば、カタログを請求した顧客の2%が購入を行っていると仮定し、あるモデルを使用してカタログの請求者を絞ると請求者の10%が購入を行っていると仮定する。この場合、そのモデルのリフトは10/2、つまり5となる。リフトは、異なるデータ・マイニング・モデルを比較するための測度としても使用できる場合がある。リフトは実際の結果を持つデータ表を使用して計算されるので、予測結果の当該データに関して、あるモデルがどの程度機能しているのかが比較される。リフトによって、実際の結果からランダムに選択した予測に対して、モデルがどの程度予測を向上させているかが示される。リフトを使用すると、新しいデータに対してモデルがどの程度機能するかを推測できる。

系統

モデル作成プロセスのデータ準備フェーズで、データセットに対して実行される変換順序。

線形回帰

Oracle Data MiningでサポートされているGLM回帰アルゴリズム。

ロジスティック回帰

Oracle Data MiningでサポートされているGLM分類アルゴリズム。

MDL

「最小記述長」を参照。

min-max正規化

次の変換を使用して量的属性を正規化することです。

x_new = (x_old-min) / (max-min)

最小記述長

データのサンプルがあり、そのデータを説明するための適切な代替理論が効率的に列挙されている場合、最良の理論は次の合計を最小化するものである。

- 理論の記述のビット長

- 理論によってエンコードされる際のデータのビット長

この原理は、属性評価におけるターゲット値の区別に最も影響のある属性の選択に使用される。

マイニング機能

共通の高水準の特性を共有するデータ・マイニングの主なサブドメイン。Oracle Data Miningのプログラム・インタフェースは、分類、回帰、属性評価、特徴抽出およびクラスタリングの各マイニング機能をサポートしている。異常検出は分類の機能として、どちらのプログラム・インタフェースでもサポートされている。

マイニング・モデル

データ・マイニングの重要な目的の1つはモデルの生成にある。モデルは、監視ありモデルまたは監視なしモデルのいずれかである。理論的には、マイニング・モデルは、マイニング設定からモデルを作成した結果である。モデルの表現は、ユーザーが指定したか、DMSによって選択されたアルゴリズムに固有となる。モデルは、相関モデルから生成されたルールの検査や、データのスコアリングなど、直接検査のために使用できる。

マイニング・オブジェクト

マイニングのタスク、モデル、設定およびそれらの構成要素。

マイニング結果

マイニング・タスクの最終生成物。たとえば、作成タスクではマイニング・モデルが、テスト・タスクではテスト結果が生成されます。

欠損値

ランダムに欠損しているデータ値。欠損の理由には、使用不可、不明、または喪失がある。Oracle Data Miningでは、単純な(ネストしていない)データ型の列にある欠損値を、ランダムに欠損したと解釈する。Oracle Data Miningでは、ネストされた列の欠損値をスパースとして解釈する。

データ・マイニング・アルゴリズムには、様々な欠損値の処理方法がある。一般的な処理方法として、欠損値を無視する、欠損値を含んでいるレコードを省く、欠損値を最頻値または平均値で置き換える、または既存値から欠損値を推測するなどがあげられる。「スパース・データ」も参照。

モデル

「マイニング・モデル」を参照。

複数レコード・ケース

データ表の各ケースは、複数の行に格納されます。「トランザクショナル・データ」としても知られています。「単一レコード・ケース」も参照。

Naive Bayes

Bayesの定理に基づく分類用のアルゴリズム。Naive Bayesでは、各属性は条件的に他の属性に従属しないものとみなされる。つまり、あるターゲット値を考える際、各予測子の分布は他の予測子に依存しない。

ネストしたデータ

Oracle Data Miningでは、名前と値のペアのネストした列でのトランザクショナル・データがサポートされている。1対多の関係を表す多次元データはネストした列にロードして、ケース表内の単一レコード・ケース・データとともにマイニングできる。

NMF

「Non-Negative Matrix Factorization」を参照。

Non-Negative Matrix Factorization

ユーザーが定義した数の特徴を作成して多変量データを分解することにより、元のデータの縮小表現を生成する特徴抽出アルゴリズム。

正規化

正規化では、[–1.0,1.0]や[0.0,1.0]などの量的な値を、x_new = (x_old-shift)/scaleなどのように特定の範囲に変換します。正規化は、量的属性に対してのみ適用されます。Oracle Data Miningには、min-max正規化、スケール正規化およびz-スコア正規化を実行する変換が用意されています。

量的属性

値が数である属性。数値は整数または実数のいずれかである。量的属性の値は、連続する値として操作できる。「質的属性」も参照。

O-Cluster

「直行パーティショニング・クラスタリング」を参照。

1クラス・サポート・ベクター・マシン

異常検出に関する問題の解決に使用されるサポート・ベクター・マシン・モデルのバージョン。Oracle Data Miningのプログラム・インタフェースでは、分類機能として1クラス・アルゴリズムが実装される。

直交パーティショニング・クラスタリング

グリッドベースの階層クラスタリング・モデルを作成するOracle独自のクラスタリング・アルゴリズム。つまり、軸並行な(直行の)パーティションを入力属性空間に作成する。このアルゴリズムは再帰的に作用する。結果の階層構造には、属性スペースをクラスタに四分木分割する不正なグリッドが表示される。

外れ値

通常のデータの個体群から離れているデータ値(極値)。正規分布では、外れ値は通常、平均値からの標準偏差が少なくとも3である。

ポジティブ・ターゲット値

2項分類の問題では、2つのクラス(ターゲット値)のうち1つをポジティブとし、もう1つをネガティブと指定できる。Oracle Data Miningによってモデルのリフトが計算される際、モデルが一定の信頼度でポジティブ値を予測する、テスト・インスタンス・セット中のポジティブ・ターゲット値の密度が計算される。

予測モデル

予測モデルは、他の既知の値(独立変数または入力)からは目に見えないか、測定されない値(従属変数または出力)を予測できるようにする式またはルールのセットである。式またはルールの形式は、調査プロセスから収集されたマイニング・データによって示される。トレーニングまたは評価手法の中には、式やルールのパラメータの評価に使用されるものがある。予測モデルは、監視ありモデルである。

予測子

監視ありモデルまたはモデルを作成するアルゴリズムへの入力として使用される属性。

既存データ

特定のアルゴリズムを使用したモデルの作成に適したデータ。データ・マイニング・プロジェクトで費やされるほとんどの時間を、データの準備が占める場合がある。Oracle Data Miningでは、ビニング、正規化および欠損値の処理による変換がサポートされています。Oracle Data Miningは、自動データ変換が有効な場合には、アルゴリズムに適した変換を自動的に実行できます。

事前確率

事前確率のセットによって、元のソース・データにおける様々なクラスのサンプルの分布が指定される。単に「事前」とも呼ばれ、モデルの作成に提供されるデータセットで観測される分布とは異なる場合がある。

事前

「事前確率」を参照。

分位ビニング

量的属性はビンに分割され、各ビンにほぼ同じ数のケースが格納されるようにする。

ランダム・サンプル

データセットの各要素が選択される機会を等しく持つ場合のサンプル。

再コーディング

文字どおり、コードを変更または再配置すること。再コーディングは、データ・マイニングの多くの場合で有効となることがある。次にその例を示す。

- 欠損値の処理: 欠損値は、「0000」、「9999」、「NA」またはその他の文字列など、NULL以外のもので示される場合がある。欠損値を処理するには、「0000」からNULLに再コーディングするなどの方法がある。これにより、Oracle Data Miningのアルゴリズムおよびデータベースによって、その値は欠損値として認識される。

- 変数のデータ型の変更: 「Y」または「Yes」を1に、「N」または「No」を0に変更するなど。

- カットオフ値の確立: $20,000より少ないすべての収入を同じ値に再コーディングするなど。

- 項目のグループ化: USの個々の州を地域にグループ化するなど。「New England region」の構成要素としてME、VT、NH、MA、CTおよびRIがある場合、この5つの州を、NE (for New England)などと再コーディングする。

レコード

「ケース」を参照。

回帰

既知のターゲット値を持つレコードから作成したモデルを使用して、新しいレコードの連続的なターゲット値を予測するデータ・マイニング機能。Oracle Data Miningでは、線形回帰(GLM)およびサポート・ベクター・マシンのアルゴリズムが回帰用にサポートされています。

ルール

「Xの場合Y」という一般形式の式。クラスタリング、相関、ディシジョン・ツリーなどの特定のアルゴリズムの出力である。述語Xは、コンパウンド述語の場合がある。

サンプル

「ランダム・サンプル」を参照。

スケール正規化

次の変換を使用して量的属性を正規化することです。

x_new = (x_old - 0) / (max(abs(max),abs(min)))

スキーマ

Oracleデータベース内の表、ビュー、順序、ストアド・プロシージャ、シノニム、索引、クラスタ、データベース・リンクなどの論理構造を含むコレクション。スキーマは、特定のデータベース・ユーザーに関連付けられている。

スコア

データのスコアリングとは、予測を生成するために、データ・マイニング・モデルをデータに適用することを意味する。

設定

「アルゴリズム設定」を参照。

単一レコード・ケース

データ表の各ケースは、1つの行に格納されます。「複数レコード・ケース」と対比。

スパース・データ

ある特定のケースにおいて、非ゼロまたは非NULLである属性の割合が小さいデータ。マーケット・バスケットやテキスト・マイニングのデータは通常スパース・データです。Oracle Data Miningは、ネストしたデータをスパースとして解釈します。「欠損値」も参照。

分割

あるデータセットをいくつかの非結合サブセットに分割すること。たとえば、分類に関する問題では多くの場合、データセットがトレーニング・データセットとテスト・データセットに分割される。

層別サンプル

データセットを非結合サブセット(層)に分割し、各サブセットからランダム・サンプルを取得すること。この手法は、ターゲット値の分布が大幅に偏っている場合に使用される。たとえば、マーケティング・キャンペーンに対する反応のポジティブ・ターゲット値が、そのキャンペーン期間の1%以下の場合などで使用される。層別サンプルにより、ポジティブ・ターゲット値とネガティブ・ターゲット値を区別する要因を学習するために十分な数のポジティブ・サンプルが、データ・マイニング・アルゴリズムに提供される。「ランダム・サンプル」も参照。

スーパーモデル

自身のデータを準備するための指示を格納しているマイニング・モデル。Oracle Data Miningでは、自動データ変換(ADP)および組込みのデータ変換が提供され、ともにスーパーモデルをサポートする。

監視あり学習

「監視ありモデル」を参照。

監視ありモデル

既知の従属変数を使用して作成されたデータ・マイニング・モデル。ターゲットとも呼ばれる。監視ありマイニングの例として、分類および回帰手法がある。「監視なしモデル」を参照。予測モデルとしても知られる。

サポート・ベクター・マシン

機械学習理論を使用して、データへのオーバーフィットを自動的に回避しつつ予測の精度を最大化するアルゴリズム。サポート・ベクター・マシンは、バイオインフォマティクスで扱われるデータのように、予測子の列が多い一方で行が比較的少ない分野などに見られるスパース・データについても予測を行うことができます。サポート・ベクター・マシンは、分類、回帰および異常検出に使用できます。

SVM

サポート・ベクター・マシンを参照。

表

Oracleデータベースにおけるデータ記憶域の基本単位。表のデータは、行と列に格納されます。

ターゲット

監視あり学習における、識別された予測対象の属性。「ターゲット値」または「ターゲット属性」と呼ばれる場合もある。「属性」も参照。

テキストの特徴

ドキュメントまたはドキュメントのクラスの重要な属性を捕捉する用語の組合せ。テキストの特徴とは通常、キーワード、用語の頻出度など、ドキュメント派生の特徴である。ドキュメントには通常、多くの用語が含まれるが、特徴の数は比較的少ない。

テキスト・マイニング

テキストの特徴を使用して行われる従来型のデータ・マイニング。テキストの特徴とは通常、キーワード、用語の頻出度など、ドキュメント派生の特徴である。テキストの特徴を抽出して、その他のデータと同様にマイニングを行う。テキスト・マイニングは、Oracle Data MiningおよびOracle Textの両方でサポートされる。

上位N個の頻度ビニング

質的属性をビニングするビニングの一種。各属性のビンの定義は、データから計算される値の発生頻度に基づいて計算される。ビンの数は、ユーザーが特定の数（N）を指定する。この場合、bin_1,..., bin_Nの各ビンが頻度が上位にある値に対応し、bin_N+1のビンがそれ以外のすべての値に対応する。

トレーニング・データ

「作成データ」を参照。

トランザクショナル・データ

1つのケースのデータは、複数の行に格納されます。例としては、マーケット・バスケット・データ(ケースが複数の項目を含んでいる1つのバスケットを表す)があります。Oracle Data Miningでは、属性名と値のペアのネストした列でのトランザクショナル・データがサポートされています。「ネストしたデータ」、「複数レコード・ケース」および「単一レコード・ケース」も参照。

変換

データに適用される機能。適用後は新しい表現のデータとなる。たとえば、離散化および正規化はデータに対する変換である。

トリミング

外れ値の処理に使用する手法。トリミングでは分布の両端の値が取り除かれ、以降の計算では取り除かれた値が無視される。トリミングでは、末端値をNULLに設定する。

非構造化データ

画像、音声、映像、地理空間マッピング・データ、ドキュメントまたはテキストのデータは、まとめて非構造化データと呼ばれる。Oracle Data Miningでマイニングできる非構造化データはテキスト・データである。

監視なし学習

「監視なしモデル」を参照。

監視なしモデル

既知の正確な結果のガイダンス(監視)なしで作成されたデータ・マイニング・モデル。監視あり学習では、この正確な結果がターゲット属性で提供される。監視なし学習には、そのようなターゲット属性がない。監視なしマイニング機能の例として、クラスタリングおよび相関がある。「監視ありモデル」を参照。

ビュー

ビューは、問合せの出力を取得し、表として処理します。したがって、ビューはストアド・クエリーまたは仮想表とみなすことができます。ビューは、表が使用可能なほとんどの状況で使用できます。

ウィンザライズ

外れ値を処理する方法。ウィンザライズでは、特定の属性の末端値を一定の指定値に設定する処理が伴う。たとえば、ウィンザライズを90%とする場合、下位5%の値は6パーセンタイルの最小値と同じ値に設定され、上位5%の値は95パーセンタイルの最大値と同じ値に設定される。

z-スコア正規化

次の変換を使用して量的属性を正規化することです。

x_new = (x_old-mean) / standard_deviation

索引

A  B  C  D  E  F  G  H  I  J  K  L  M  N  O  P  R  S  T  U  W  X

A

精度, 3.5.2.1, 5.3.1.1, 5.3.2

能動学習, 18.1.4

アクティブなサンプリング, 17.1.2

ADP

「自動データ準備」を参照

アルゴリズム

Apriori, 2.4.2, 8.3, 10, 19.2.4

ディシジョン・ツリー, 2.4.1, 11, 19.2.4

一般化線形モデル, 2.4.1, 12, 19.2.4

k-Means, 2.4.2, 7.4, 13, 19.2.4

最小記述長, 2.4.1, 14, 19.2.4

Naive Bayes, 2.4.1, 15, 19.2.4

Non-Negative Matrix Factorization, 2.4.2, 16, 19.2.4

O-Cluster, 2.4.2, 7.4, 17, 19.2.4

1クラス・サポート・ベクター・マシン, 2.4.2, 18.5

監視あり, 2.4.1, 2.4.1

サポート・ベクター・マシン, 2.4.1, 18, 19.2.4

監視なし, 2.4.2

異常検出, 2.3.2.1, 2.3.2.1, 2.3.3, 2.4.2, 5.3.2, 6, 7.1 適用

「スコアリング」を参照

Apriori, 1.1.7, 2.4.2, 10, 19.2.4 曲線下の面積, 5.2.3.2 人工知能, 2.3 相関ルール, 1.1.7, 2.3.2.1, 2.3.3, 2.4.2, 8, 10 属性評価, 2.3.3, 2.4.1, 3.5.1, 9, 14.1

最小記述長, 9.4

機能選択も参照

属性, 1.3.1, 2.3.3 自動データ準備, 1.2.2, 1.3.3, 2.5.1, 19.1

B

Bayesの定理, 15.1

ビニング, Preface, 2.9, 16.3, 19.2.1

等幅ビニング, 13.2, 14.2, 17.3, 19.3.2.1

分位, 19.3.2.1

監視あり, 14.2, 15.3, 19.3.2.1

上位N個の最頻出, 19.3.2.1

C

ケース表, 1.1.7, 1.3.2, 19.1.1

質的属性, 3.5.2.1, 5, 19.1.2

重心, 7.1.1, 13.1.2

分類, 2.3.3, 2.4.1, 5

バイアス, 5.3

2分, 5.1, 12.5

ディシジョン・ツリー, 11

一般化線形モデル, 12

ロジスティック回帰, 12.5

多クラス, 5.1

Naive Bayes, 15

1クラス, 6.1.1

サポート・ベクター・マシン, 18.4

クリッピング, 19.2.3 クラスタリング, 2.3.2.1, 2.3.2.1, 2.3.3, 2.4.2, 7

階層, 2.4.2, 7.2, 7.3

K-Means, 13.1

O-Cluster, 17

スコアリング, 2.3.2.1, 2.3.2.1

係数

Non-Negative Matrix Factorization, 2.4.2, 16.1

回帰係数, 4.1.1, 4.1.1.3

計算論的学習, 1.1.6 信頼度

Apriori, 2.4.2, 10.2.2, 10.5.2

相関ルール, 8.1.1

クラスタリング, 7.2.2

定義, 1.1.2

予測分析, 3.1

信頼限界, 2.4.1, 4.1.1.6, 12.1.1.3 混同マトリックス, 1.3.3, 5.2.1, 5.3.1.1 コスト・マトリックス, 5.3.1, 5.3.1.3, 11.2.2 コスト, 1.3.3, 5.3.1, 5.3.1.3, 5.3.1.3 CREATE_MODEL, 2.7.2 キューブ, 1.1.6

D

データ・マイニング

自動, 3

定義, 1.1

Oracle, 2

プロセス, 1.3

データ準備, 1.2.2, 1.3.2, 2.5, 19

Apriori, 10.3, 19.2.4

ディシジョン・ツリー, 19.2.4

一般化線形モデル, 12.3, 19.2.4

k-Means, 13.3, 19.2.2, 19.2.4

最小記述長, 14.2, 19.2.4

Naive Bayes, 15.3, 19.2.4

Non-Negative Matrix Factorization, 19.2.2, 19.2.4

O-Cluster, 17.3, 19.2.4

サポート・ベクター・マシン, 19.2.2, 19.2.4

データ型, 19.1.2 データ・ウェアハウス, 1.1.7 DBMS_DATA_MINING, 2.7.2 DBMS_DATA_MINING_TRANSFORM, 2.7.2, 2.9 DBMS_FREQUENT_ITEMSET, 2.9 DBMS_PREDICTIVE_ANALYTICS, 2.7.2, 3.3 DBMS_STAT_FUNCS, 2.9 ディシジョン・ツリー, 2.4.1, 3.5.3, 3.5.3, 11, 19.2.4 配置, 1.3.4 非推奨機能, はじめに 記述モデル, 2.3.2 ディメンション化されたデータ, 2.5 指示あり学習, 2.3.1 離散化

「ビニング」を参照

DMSYSスキーマ

「サポート対象外機能」を参照

ドキュメント, 2.8

E

組込みのデータ準備, 1.2.2, 2.5.1, 19

エントロピ, 11.2.1, 14.1.1, 14.1.1.3

Exadata, 2.2

Excel, 3.2

EXPLAIN, 2.7.2, 2.7.6

F

特徴抽出, 2.3.2.1, 2.3.3, 2.4.2, 9, 16, 20.2.6, 20.3

特徴選択, 9

「属性評価」も参照

高頻度項目セット, 10.1, 10.4.2

G

一般化線形モデル, 2.4.1, 12, 19.2.4

分類, 12.5.1

回帰, 12.4

gini, 11.2.1 GLM

「一般化線形モデル」を参照

H

階層, 1.1.6, 2.4.2, 7.2, 7.3

ヒストグラム, 13.2

I

帰納的推論, 1.1.6

項目セット, 10.4

J

Java API, はじめに, 2.1, 2.7.7, 2.7.7

K

KDD, 1.1, 用語集

カーネル, 2.1

k-Means, 2.4.2, 7.4, 13, 19.2.4

L

リフト, 1.3.3, 5.2.2, 5.2.2.1, 10.5.3

線形回帰, 2.4.1, 4.1.1.1, 12.4

ロジスティック回帰, 2.4.1, 12.5

M

機械学習, 2.3

マーケット・バスケット・データ, はじめに, 1.1.7, 1.3.3

MDL, 2.4.1, 3.5.1

「最小記述長」を参照

最小記述長, 14, 19.2.4 マイニング機能, 2.3, 2.3.3

異常検出, 2.3.3, 2.4.2, 6

相関ルール, 2.3.3, 2.4.2, 8

属性評価, 2.4.1, 9, 14.1

分類, 2.3.3, 2.4.1, 5

クラスタ, 2.3.3, 2.4.2, 7

特徴抽出, 2.3.3, 2.4.2, 9, 9.3

回帰, 2.3.3, 2.4.1, 4

欠損値の処理, はじめに, 19.1 モデルの詳細, 1.3.4, 3.5.1, 3.5.3, 11.1.1 多重共線性, 12.1.2 多次元分析, 1.1.6, 2.9, 2.9 多変量線形回帰, 4.1.1.2

N

Naive Bayes, 2.4.1, 15, 19.2.1, 19.2.4

ネストしたデータ, はじめに, 2.5, 10.3.1

ニューラル・ネットワーク, 18.1.1

NMF

「Non-Negative Matrix Factorization」を参照

非線形回帰, 4.1.1.4 Non-Negative Matrix Factorization, 2.4.2, 16, 19.2.4 非トランザクショナル・データ, 8.2 正規化, はじめに, 19.2.2, 19.2.2

Min-Max, 19.3.2.2

スケール, 19.3.2.2

Z-スコア, 19.3.2.2

量的属性, 5.1, 19.1.2

O

O-Cluster, 2.4.2, 7.4, 17, 19.2.4

OLAP, 1.1.6, 2.9

1クラス・サポート・ベクター・マシン, 2.4.2, 18.5

Oracle Business Intelligence Suite Enterprise Edition, 2.9

Oracle Data Miner, はじめに, 20.3

Oracle Data Miningのディスカッション・フォーラム, 2.8.1

Oracle Data Miningのドキュメント, 2.8

Oracle Databaseの分析, 2.9

Oracle Databaseのカーネル, 2.1

Oracle Databaseの統計関数, 2.9

Oracle OLAP, 2.9

Oracle Spatial, 2.9

Oracle Spreadsheet Add-In for Predictive Analytics

「Spreadsheet Add-In」を参照

Oracle Text, 2.9, 2.9, 20.4 外れ値, 1.2.2, 6.1.3, 17.3.1, 19.2.3, 19.3.2.3 オーバー・フィット, 2.3.1.1, 11.2.3

P

PL/SQL API, 2.7, 2.7.2

PMML, 2.7, 2.7.5

PREDICT, 2.7.2, 2.7.6

PREDICTION_PROBABILITY, 2.7.3

予測分析, 2.7.2, 2.7.6, 3

予測の信頼度, 3.2, 3.4, 3.5.2.1

予測モデル, 2.3.1

事前確率, 5.3.2, 15.1

確率しきい値, 5.2.2.1, 5.2.3, 5.2.3.4

PROFILE, 2.7.2, 2.7.6

プルーニング, 11.2.3

R

R, 2.7

動径基底関数, 18.1.1

受信者操作特性

「ROC」を参照

回帰, 2.3.3, 2.4.1, 4

係数, 4.1.1, 4.1.1.3

定義, 4.1.1

一般化線形モデル, 12

線形, 4.1.1.1, 12.4

非線形, 4.1.1.4

リッジ, 12.1.2

統計, 4.2.1

サポート・ベクター・マシン, 18.6

ROC, 3.5.2, 5.2.3, 5.2.3.2 ルール, 1.3.4

Apriori, 10.1

相関ルール, 8.1.1

クラスタリング, 7.2.1

ディシジョン・ツリー, 3.5.3, 3.5.3, 3.5.3, 11.1.1

定義, 1.1.2

PROFILE, 3.5.3

S

サンプル・プログラム, 2.8.1

スコアリング, 2.3.2.1, 2.3.2.1, 2.3.2.1

異常検出, 2.3.2.1

分類, 2.3.1.2

クラスタリング, 2.3.2.1

定義, 1.1.1

Exadata, 2.2

知識の配置, 1.3.4

モデルの詳細, 1.3.4

Non-Negative Matrix Factorization, 16.1.2

O-Cluster, 17.1.4

リアルタイム, 1.3.4

回帰, 2.3.1.1

監視ありモデル, 2.3.1.2

監視なしモデル, 2.3.2.1

単一性, 12.1.2 スパース・データ, はじめに, 10.3, 19.1 Spreadsheet Add-In, 2.7.6, 2.8.1, 3.2 SQLデータ・マイニング関数, 2.7, 2.7.3 SQL統計関数, 2.9 スター・スキーマ, 2.5, 10.3.1 統計, 1.1.5 層別サンプリング, 5.3.2, 6.1.1 スーパーモデル, 2.5.1, 2.5.1 監視あり学習, 2.3.1 支持度

Apriori, 2.4.2, 10.4.2, 10.5.1

相関ルール, 8.1.1

クラスタリング, 7.2.2

定義, 1.1.2

サポート・ベクター・マシン, 2.4.1, 3.5.2, 18, 19.2.4

分類, 2.4.1, 18.4

ガウス・カーネル, 2.4.1

線形カーネル, 2.4.1

1クラス, 2.4.2, 18.5

回帰, 2.4.1, 18.6

SVM

「サポート・ベクター・マシン」を参照

T

ターゲット, 2.3.1, 2.3.2.1

用語抽出, 20.3

テキスト・マイニング, 20

データ型, 20.2.2

Non-Negative Matrix Factorization, 16.1.3

前処理, 20.2

トランザクショナル・データ, 1.1.7, 1.3.3, 8.2, 10.3 トランスフォーメーション, 2.5.1, 2.7.2, 19.1, 19.2.4 透明性, 7.3, 11.1.1, 12.1.1.1, 19.1 トリミング, 19.3.2.3

U

非構造化データ, 2.5, 20.1

監視なし学習, 2.3.2

UTL_NLA, 2.9

W

ワイド・データ, 9.1, 12.1.1.2

ウィンザライズ, 19.3.2.3

X

XML

ディシジョン・ツリー, 3.5.3, 11.1.3

PROFILE, 3.5.3

Copyright © 2005, 2013, Oracle and/or its affiliates. All rights reserved.