29.1 データ要件

データ・マイニングのためにデータがどのように格納され表示されるかについて理解します。

データ・マイニング操作では、1つの表またはビュー内で定義されたデータが必要です。各レコードの情報は別個の行に格納する必要があります。このデータ・レコードは一般的にケースと呼ばれます。各ケースは、必要に応じて一意のケースIDで識別されます。表またはビュー自体は、ケース表と呼ばれます。

マイニングに使用できる表の例として、SHスキーマのCUSTOMERS表があります。各顧客のすべての情報は、1つの行に格納されています。CUST_ID列にケースIDが格納されます。次の例に示されている行は、SH.CUSTOMERSから選択されています。

ノート:

Oracle Data Miningでは、ネイティブ・トランザクショナル・データで構築できる相関モデルを除き、すべての種類のモデルに単一レコード・ケースのデータが必要です。

例29-1 ケース表の例

SQL> select cust_id, cust_gender, cust_year_of_birth, 
           cust_main_phone_number from sh.customers where cust_id < 11;

CUST_ID CUST_GENDER CUST_YEAR_OF_BIRTH CUST_MAIN_PHONE_NUMBER
------- ----------- ---- ------------- -------------------------
1        M               1946          127-379-8954
2        F               1957          680-327-1419
3        M               1939          115-509-3391
4        M               1934          577-104-2792
5        M               1969          563-667-7731
6        F               1925          682-732-7260
7        F               1986          648-272-6181
8        F               1964          234-693-8728
9        F               1936          697-702-2618
10       F               1947          601-207-4099

29.1.1 列のデータ型

ケース表の列データの様々なタイプについて理解します。

ケース表の列には、各ケースを説明する属性が含まれます。例29-1で、属性はCUST_GENDERCUST_YEAR_OF_BIRTHおよびCUST_MAIN_PHONE_NUMBERです。属性は、教師ありモデルの予測子または教師なしモデルの記述子です。ケースIDのCUST_IDは、特別な属性として表示できます(これは予測子または記述子ではありません)。

Oracle Data Miningでは、標準のOracleデータ型と次のコレクション型をサポートしています。

  • DM_NESTED_CATEGORICALS
  • DM_NESTED_NUMERICALS
  • DM_NESTED_BINARY_DOUBLES
  • DM_NESTED_BINARY_FLOATS

29.1.2 分類および回帰用のデータ・セット

モデルのトレーニングおよびテストに対するデータセットの使用方法について理解します。

分類モデルと回帰モデルを作成して検証するには、ケース表が2つ必要です。1つの行セットはモデルのトレーニング用、もう1つの行セットはモデルのテスト用に使用されます。作成データおよびテスト・データは多くの場合、同じデータ・セットから導出すると便利です。たとえば、モデルのトレーニング用に行の60%をランダムに選択し、残りの40%をモデルのテストに使用できます。

その他のマイニング機能を実装するモデル(属性評価、クラスタリング、相関または特徴抽出)では、別個のテスト・データは使用しません。

29.1.3 スコアリング要件

データ・マイニング・モデルの多くは、スコアリングと呼ばれるプロセスで別個のデータに適用できます。Oracle Data Miningでは、分類、回帰、異常検出、クラスタリングおよび特徴抽出のスコアリング操作をサポートします。

スコアリング・プロセスでは、スコアリング・データ内の列名と、モデルの作成に使用された列の名前とがマッチングされます。スコアリング・プロセスでは、スコアリング・データ内にすべての列が存在している必要はありません。データ型が一致しない場合、Oracle Data Miningでは型の強制が試行されます。たとえば、PRODUCT_RATINGという列がトレーニング・データ内ではVARCHAR2型であるのに対し、スコアリング・データ内ではNUMBER型である場合、Oracle Data MiningではTO_CHAR()関数が効果的に適用され、スコアリング・データ内の列の型が変換されます。

テスト・データまたはスコアリング・データ内の列には、作成データ内の対応する列と同じ変換を行う必要があります。たとえば、作成データ内のAGE列が数値から値CHILDADULTおよびSENIORに変換された場合、スコアリング・データ内のAGE列にも同じ変換を実行して、モデルが適切に評価できるようにする必要があります。

ノート:

Oracle Data Miningでは、ユーザーが指定した変換指示をモデルに組み込んで、モデルの適用時は常にその変換指示が再適用されるようにすることが可能です。変換指示がモデルに組み込まれているときは、テスト・データセットまたはスコアリング・データセットに対してその変換指示を指定する必要はありません。

Oracle Data Miningは、自動データ準備(ADP)もサポートしています。ADPを有効にすると、アルゴリズムで必要とされる変換が自動的に実行され、ユーザーが指定した変換とともにモデル内に組み込まれます。

関連項目:

自動および埋込みデータ変換の詳細は、「データの変換」を参照してください