3.1 データ要件
Oracle Machine Learningのデータを格納および表示する方法について理解します。
機械学習操作では、1つの表またはビュー内で定義されたデータが必要です。各レコードの情報は別個の行に格納する必要があります。このデータ・レコードは一般的にケースと呼ばれます。各ケースは、必要に応じて一意のケースIDで識別されます。表またはビュー自体は、ケース表と呼ばれます。
機械学習に使用できる表の例として、SH
スキーマのCUSTOMERS
表があります。各顧客のすべての情報は、1つの行に格納されています。CUST_ID
列にケースIDが格納されます。次の例に示されている行は、SH.CUSTOMERS
から選択されています。
例3-1 ケース表の例
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
- 列のデータ型
ケース表の列データの様々なタイプについて理解しましょう。 - 分類および回帰用のデータセット
モデルのトレーニングおよびテストの場合のデータセットの使用方法を理解しましょう。 - スコアリング要件
Oracle Machine Learning for SQLでのスコアリングの実行方法を学習します。
関連トピック
親トピック: データの準備
3.1.1 列のデータ型
ケース表の列データの様々なタイプについて理解します。
ケース表の列には、各ケースを説明する属性が含まれます。例3-1で、属性はCUST_GENDER
、CUST_YEAR_OF_BIRTH
およびCUST_MAIN_PHONE_NUMBER
です。属性は、教師ありモデルの予測子または教師なしモデルの記述子です。ケースIDのCUST_ID
は、特別な属性として表示できます(これは予測子または記述子ではありません)。
OML4SQLでは、DATE
、TIMESTAMP
、RAW
およびLONG
を除く、標準のOracleデータ型がサポートされています。Oracle Machine Learningでは、テキスト列として解釈されるcase_id、CLOB
/BLOB
/FILE
の日付型(日時、日付、タイムスタンプ)と、次のコレクション型もサポートされています。
DM_NESTED_CATEGORICALS
DM_NESTED_NUMERICALS
DM_NESTED_BINARY_DOUBLES
DM_NESTED_BINARY_FLOATS
ノート:
データ型がBOOLEAN
の属性は、次の値を持つ数値として処理されます。TRUE
は1
、FALSE
は0
を意味し、NULL
は不明な値として解釈されます。CASE_ID_COLUMN_NAME
属性では、BOOLEAN
データ型はサポートされていません。
親トピック: データ要件
3.1.2 分類および回帰用のデータ・セット
モデルのトレーニングおよびテストに対するデータセットの使用方法について理解します。
分類モデルと回帰モデルを作成して検証するには、ケース表が2つ必要です。1つの行セットはモデルのトレーニング用、もう1つの行セットはモデルのテスト用に使用されます。作成データおよびテスト・データは多くの場合、同じデータ・セットから導出すると便利です。たとえば、モデルのトレーニング用に行の60%をランダムに選択し、残りの40%をモデルのテストに使用できます。
その他の機械学習機能を実装するモデル(属性評価、クラスタリング、相関または特徴抽出)では、別個のテスト・データは使用しません。
親トピック: データ要件
3.1.3 スコアリング要件
Oracle Machine Learning for SQLでスコアリングを実行する方法を学習します。
機械学習モデルの多くは、スコアリングと呼ばれるプロセスで別個のデータに適用できます。Oracle Machine Learning for SQLでは、分類、回帰、異常検出、クラスタリングおよび特徴抽出のスコアリング操作をサポートします。
スコアリング・プロセスでは、スコアリング・データ内の列名と、モデルの作成に使用された列の名前とがマッチングされます。スコアリング・プロセスでは、スコアリング・データ内にすべての列が存在している必要はありません。データ型が一致しない場合、OML4SQLでは型の強制が試行されます。たとえば、PRODUCT_RATING
という列がトレーニング・データ内ではVARCHAR2
型であるのに対し、スコアリング・データ内ではNUMBER
型である場合、OML4SQLでは実際にはTO_CHAR()
関数が適用され、スコアリング・データ内の列の型が変換されます。
テスト・データまたはスコアリング・データ内の列には、作成データ内の対応する列と同じ変換を行う必要があります。たとえば、作成データ内のAGE
列が数値から値CHILD
、ADULT
およびSENIOR
に変換された場合、スコアリング・データ内のAGE
列にも同じ変換を実行して、モデルが適切に評価できるようにする必要があります。
関連項目:
自動データ変換と組込みのデータ変換の詳細は、「自動データ準備」および「モデルへの変換の組込み」を参照してください
親トピック: データ要件