3.2 属性について

属性は、データ・マイニングで使用されるデータの項目です。予測モデルでは、属性は、特定の結果に影響を及ぼす予測子です。記述モデルでは、自然なグループまたは相関を見つけるために分析される情報項目です。たとえば、肩書き、雇用日、給与、年齢、性別などの属性を持つ従業員データの表です。

3.2.1 データ属性とモデル属性

データ属性とは、モデルの作成、テストまたはスコアリングに使用されるデータセットの列のことです。モデル属性とは、モデルによって内部的に使用されるデータ表現のことです。

データ属性とモデル属性が同一である場合もあります。たとえば、値SMLが格納されているSIZEという列が、モデル作成用としてアルゴリズムによって使用される属性です。モデル属性SIZEは、内部的にはその導出元であるデータ属性と同じである可能性が高いと考えられます。

一方、ある製品グループの売上高が格納されているネストした列SALES_PRODは、モデル属性とは一致しません。データ属性はSALES_PRODとなりますが、モデル属性は、対応する売上高と関連付けられた各製品(ネストした列の各行)です。

変換によっても、データ属性とモデル属性の不一致が起こります。たとえば、変換によって2つのデータ属性に計算が適用され、その結果が新しい属性に格納されたとします。この新しい属性は、対応するデータ属性を持たないモデル属性になります。ビニング、正規化および外れ値の処理などの変換では、ケース表のデータ属性とモデルの属性表現の不一致が起こります。

関連項目:

3.2.2 ターゲット属性

データ・マイニングにおけるターゲットの意味、および様々なターゲットのデータ型について理解します。

教師ありモデルのターゲットは特別な属性です。トレーニング・データのターゲット列には、モデルのトレーニングに使用される履歴値が格納されます。テスト・データのターゲット列には、予測の比較対象になる履歴データが格納されます。スコアリングでは、ターゲットの予測が生成されます。

ターゲットは、クラスタリング・モデル、特徴抽出モデル、相関モデルおよび異常検出モデルでは使用されません。

ネストした列および非構造化データ(BFILECLOBBLOBなど)の列は、ターゲットとして使用できません。

表3-1 ターゲットのデータ型

マイニング機能 ターゲットのデータ型

分類

VARCHAR2CHAR

NUMBERFLOAT

BINARY_DOUBLEBINARY_FLOATORA_MINING_VARCHAR2_NT

回帰

NUMBERFLOAT

BINARY_DOUBLEBINARY_FLOAT

*_MINING_MODEL_ATTRIBUTESビューを問い合せると、特定のモデルのターゲットを見つけることができます。

3.2.3 量的、質的および非構造化テキスト

量的、質的および非構造化テキスト属性について説明します。

モデル属性は、量的、質的または非構造化(テキスト)です。データ属性(ケース表の列)は、Oracleデータ型を持ちます(「列のデータ型」を参照)。

量的属性は、論理上は無限の数の値を持つことができます。これらの値には暗黙的な順序があり、値間の差も順序付けられます。Oracle Data Miningでは、NUMBERFLOATBINARY_DOUBLEBINARY_FLOATDM_NESTED_NUMERICALSDM_NESTED_BINARY_DOUBLESおよびDM_NESTED_BINARY_FLOATSを量的として解釈します。

質的属性は、有限数の離散的カテゴリまたはクラスを特定する値を持ちます。値には、暗黙的な順序は関連付けられていません。一部のカテゴリは2値(yesまたはno、maleまたはfemaleなど)であり、取り得る値が2つのみです。その他のカテゴリは多クラスであり、3つ以上の値(small、mediumおよびlargeなど)を持ちます。

Oracle Data Miningでは、デフォルトでCHARおよびVARCHAR2を質的として解釈しますが、これらの列は非構造化データ(テキスト)の列として識別される場合もあります。Oracle Data Miningでは、DM_NESTED_CATEGORICALSの列を質的として解釈します。CLOBBLOBおよびBFILEの列には、常に非構造化データが含まれます。

分類モデルのターゲットは質的です。(分類モデルのターゲットが量的である場合、このターゲットは質的として解釈されます。)一方、回帰モデルのターゲットは量的です。属性評価モデルのターゲットは、質的または量的のいずれかです。

3.2.4 モデル・シグネチャ

モデルのシグネチャは、モデルの作成に使用されたデータ属性のセットです。シグネチャの属性の一部またはすべては、スコアリング用に存在している必要があります。モデルは、可能なかぎり欠損している列も埋めようとします。名前は同じだがデータ型が異なる列が存在している場合、モデルではそのデータ型の変換が試行されます。余分な未使用の列が存在している場合、それらは無視されます。

必ずしも作成データのすべての列がモデルのシグネチャに含まれるとはかぎりません。アルゴリズム固有の基準により、モデルが特定の列を無視することがあります。また、変換によって一部の列が除外される場合もあります。モデルの作成で実際に使用されたデータ属性のみがシグネチャに含まれます。

ターゲット列およびケースID列はシグネチャに含まれません。

3.2.5 モデル属性の名前の詳細

モデル属性の名前は、1つの列名と1つのサブ列名から構成されます。

column_name[.subcolumn_name]

column_name構成要素は、データ属性の名前です。モデル属性の名前には必ず含まれます。ネストした属性およびテキスト属性の場合は、次の例に示すとおり、subcolumn_name構成要素も含まれます。

例3-2 ネストした列から導出されたモデル属性

ネストした列SALESPRODは次の3つの行を持ちます。

SALESPROD(ATTRIBUTE_NAME, VALUE)
--------------------------------
((PROD1, 300),
 (PROD2, 245),
 (PROD3, 679))

データ属性の名前はSALESPRODです。関連するモデル属性は次のようになります。

SALESPROD.PROD1
SALESPROD.PROD2
SALESPROD.PROD3

3.2.6 モデルの詳細

モデルの詳細によって、モデル属性、およびアルゴリズムによるモデル属性の処理に関する情報がわかります。それぞれのアルゴリズムに対応するモデル・ディテール・ビューを利用することをお薦めします。

モデル属性には変換式や逆変換式が関連付けられます。変換はモデルを作成するアルゴリズムの処理の前にデータ属性に適用されます。逆変換はモデルの作成後にモデル属性に適用されますので、モデルの詳細は元のデータ属性の形式または可能なかぎりそれに近い形式で表されます。

逆変換では、モデルの透明性がサポートされます。逆変換は、アルゴリズムによって内部的に処理されるデータを、ユーザーが解釈可能な形式で表示します。

非推奨になったGET_MODEL_DETAILS

アルゴリズムにはそれぞれ別個のGET_MODEL_DETAILSルーチンが存在します。Oracle Database 12cリリース2以降、GET_MODEL_DETAILSは非推奨になっています。それぞれのアルゴリズムのモデル・ディテール・ビューを使用することをお薦めします。