Oracle Machine Learning for SQLに対するインタフェース
Oracle Machine Learning for SQLに対してサポートされているインタフェースについて説明します。
Oracle Machine Learning for SQLのプログラム・インタフェースは、モデルの作成および維持のためのPL/SQLと、スコアリングのためのSQL関数群です。OML4SQLでは、Oracle SQL Developerの機能拡張として実装されるグラフィカル・ユーザー・インタフェースもサポートされています。
Oracle Predictive Analytics (簡略化されたOML4SQLルーチンのセット)は、OML4SQLを基盤として構築されたもので、PL/SQLパッケージとして実装されます。
Oracle Machine Learningのモデリング、変換および利便性関数
PL/SQLインタフェースにアクセスして、データ・モデリング、変換および予測分析を実行できます。
次の表に、Oracle Machine LearningのPL/SQLパッケージを示します。リリース21cより前のOracle Databaseリリースでは、Oracle Machine LearningはOracle Data Miningという名前でした。
DBMS_DATA_MINING
DBMS_DATA_MINING
パッケージには、機械学習モデルの作成、モデルに対する操作の実行、モデルの問合せを行うためのルーチンが含まれています。
このパッケージには、次の操作を実行するためのルーチンが含まれています。
-
機械学習モデルの作成と削除およびマイニング・モデルに対する他のDDL操作の実行
-
モデル内部で使用されるモデルの属性やルールなどの詳細情報(モデルの詳細)の取得
-
分類モデルのテスト・メトリックの計算
-
分類モデルのコストの指定
-
モデルのエクスポートおよびインポート
-
Oracle Machine Learningのネイティブ・アルゴリズムおよびRで記述されたアルゴリズムを使用したモデルの作成
Oracle Machine Learningモデルについて
機械学習モデルとは、機械学習手法を実行するデータベース・スキーマ・オブジェクトのことです。
すべてのスキーマ・オブジェクトと同様に、機械学習モデルへのアクセスは、データベース権限によって制御されます。モデルはエクスポートとインポートが可能です。コメントがサポートされており、Oracle Database監査システムで追跡できます。
機械学習モデルは、DBMS_DATA_MINING
PL/SQLパッケージのCREATE_MODEL2
またはCREATE_MODEL
プロシージャによって作成されます。モデルは特定の機械学習手法に対して作成され、その機能を実行するために特定のアルゴリズムを使用します。機械学習手法とは、解決する機械学習の問題のクラスを表す用語です。機械学習手法の例としては、回帰、分類、属性評価、クラスタリング、異常検出および特徴選択が挙げられます。OML4SQLでは、機械学習手法ごとに1つ以上のアルゴリズムをサポートしています。
CREATE_MODEL2
プロシージャでは、機械学習手法とともに、モデルのアルゴリズムおよびその他の特性を指定できます。CREATE_MODEL
では、設定表を指定して、モデルのアルゴリズムやその他の特性を指定できます。設定には、一般的な設定と、機械学習手法およびアルゴリズムに固有の設定があります。
ノート:
ほとんどのタイプの機械学習モデルは、データのスコアリングに使用できます。ただし、モデルを適用せずにデータをスコアリングすることもできます。動的スコアリングと予測分析では、ユーザーが提供するモデルなしでスコアリング結果を戻します。この場合、表示されない一時モデルを作成して適用します。
DBMS_DATA_MINING_TRANSFORM
DBMS_DATA_MINING_TRANSFORM
パッケージには、ビニング、正規化、外れ値の処理などのデータ変換を実行するルーチンが含まれています。
DBMS_DATA_MINING_TRANSFORMの変換手法
DBMS_DATA_MINING_TRANSFORM
パッケージのデータを変換するための手法をまとめます。
表3-2 DBMS_DATA_MINING_TRANSFORMの変換手法
変換手法 | 説明 |
---|---|
|
|
|
|
|
モデルへの組込み用の変換を指定する。 |
oml4sql-classification-text-mining-svm.sql
の例で作成します。
例3-1 組込み変換の例
DECLARE xformlist dbms_data_mining_transform.TRANSFORM_LIST; BEGIN dbms_data_mining_transform.SET_TRANSFORM( xformlist, 'comments', null, 'comments', null, 'TEXT'); DBMS_DATA_MINING.CREATE_MODEL( model_name => 'T_SVM_Clas_sample', mining_function => dbms_data_mining.classification, data_table_name => 'mining_build_text', case_id_column_name => 'cust_id', target_column_name => 'affinity_card', settings_table_name => 't_svmc_sample_settings', xform_list => xformlist); END; /
予測分析
予測分析は、Oracle Machine Learning for SQLのプロセスを単純なルーチンで取得する手法です。
ワンクリック機械学習と呼ばれることもあり、予測分析により機械学習プロセスが簡略化され自動化されます。
予測分析にはOML4SQLテクノロジを使用しますが、予測分析を使用する際にOML4SQLに関する知識は不要です。ユーザーは、データに対して実行する操作を指定することで予測分析を実行できます。OML4SQLモデルを作成する必要も使用する必要もありません。また、「Oracle Machine Learning for SQLの基本」にまとめたOML4SQLの関数やアルゴリズムについての知識も不要です。
Oracle Machine Learning for SQLの予測分析の操作については、次の表を参照してください。
表3-3 Oracle Predictive Analyticsによる操作
操作 | 説明 |
---|---|
|
ターゲット列の値の偏差に対して個々の予測子(列)がどのように影響するかを説明する。 |
|
各ケース(行)について、ターゲット列の値を予測する。 |
|
同じターゲット値を想定するケース(行)に対するルールのセットを作成する。 |
Oracle Predictive Analyticsによる操作は、DBMS_PREDICTIVE_ANALYTICS
PL/SQLパッケージに実装されています。これらは、Oracle Data Minerでも利用できます。
DBMS_PREDICTIVE_ANALYTICS
DBMS_PREDICTIVE_ANALYTICS
パッケージには、予測分析とも呼ばれる機械学習の自動化された形式を実行するルーチンが含まれています。予測分析を使用する場合、モデルの作成やスコアリングを意識する必要はありません。すべての機械学習アクティビティは、プロシージャによって内部的に処理されます。
DBMS_PREDICTIVE_ANALYTICS
パッケージには、次のルーチンが含まれています。
-
EXPLAIN
: ターゲット列の説明における各属性の影響度をランク付けします。 -
PREDICT
: 入力データの値に基づいてターゲット列の値を予測します。 -
PROFILE
: 入力データからケースを説明するルールを生成します。
次の例のEXPLAIN
文は、affinity_card
の予測における重要度の順にmining_data_build_v
ビューの属性をリストします。
Oracle Machine Learningのデータ・ディクショナリ・ビュー
Oracle Machine Learningのデータ・ディクショナリ・ビューの一覧を示します。
次の表に、Oracle Machine Learningのデータ・ディクショナリ・ビューを示します。ビューのデータベース管理者(DBA)およびUSERバージョンも使用可能です。
表3-4 Oracle Machine Learningのデータ・ディクショナリ・ビュー
ビュー名 | 説明 |
---|---|
アクセス可能なすべての機械学習モデルに関する情報を示します |
|
アクセス可能なすべての機械学習モデルの属性に関する情報を示します |
|
アクセス可能なすべてのパーティション化された機械学習モデルのパーティションに関する情報を示します |
|
アクセス可能なすべての機械学習モデルの構成設定に関する情報を示します |
|
アクセス可能なすべての機械学習モデルのモデル・ビューに関する情報を示します |
|
アクセス可能なすべての機械学習モデルに埋め込まれたユーザー指定の変換を示します。 |
SQL関数
Oracle Machine Learning for SQLでは、予測、クラスタリングおよび特徴抽出を実行するためのSQL関数をサポートしています。
これらの関数は、OML4SQLモデル・オブジェクトを適用するか、動的スコアリングを実行する分析句を実行することで、データをスコアリングします。
次の例に、分類モデルsvmc_sh_clas_sample
をビューmining_data_apply_v
のデータに適用する問合せを示します。この問合せによって、提携カードを使用する可能性の高い顧客の平均年齢が戻されます。結果は性別によって分類されます。
例3-3 PREDICTION関数
SELECT cust_gender, COUNT(*) AS cnt, ROUND(AVG(age)) AS avg_age FROM mining_data_apply_v WHERE PREDICTION(svmc_sh_clas_sample USING *) = 1 GROUP BY cust_gender ORDER BY cust_gender;出力内容は次のようになります。
C CNT AVG_AGE
- ---------- ----------
F 59 41
M 409 45
関連トピック
Oracle Machine Learning for SQLのスコアリング関数
OML4SQL関数のスコア・データを使用します。関数は、機械学習モデルのスキーマ・オブジェクトをデータに適用することも、分析句を使用して動的にデータをマイニングすることもできます。すべてのOML4SQLスコアリング・アルゴリズムにSQL関数が存在します。
表3-5 OML4SQL 関数
関数 | 説明 |
---|---|
予測対象のクラスタのIDを戻す。 |
|
予測対象のクラスタに関する詳細情報を戻す。 |
|
予測対象のクラスタの重心からの距離を戻す。 |
|
特定のクラスタに属するケースの確率を戻す。 |
|
特定のケースが属している可能性のあるすべてのクラスタのリストと、ケースが含まれている確率を戻す。 |
|
FEATURE_COMPARE |
2つの異なるドキュメントまたはキーワード・フレーズ、あるいはその両方の組合せからの類似または非類似のテキスト・セットを比較する |
最も高い係数値を持つ特徴のIDを戻す。 |
|
予測対象の特徴に関する詳細情報を戻す。 |
|
考え得るすべての特徴が含まれているオブジェクトのリストとその係数を戻す。 |
|
予測対象の特徴の値を戻す。 |
|
ORA_DM_PARTITION_NAME |
パーティション化されたモデルのパーティション名を戻す |
ターゲットの最適な予測を戻す。 |
|
不正確な予測のコストの測度を戻す。 |
|
予測に関する詳細情報を戻す。 |
|
予測の確率を戻す。 |
|
分類モデルの結果を戻す(各ケースについての予測および関連する確率を含む)。 |
|
様々なデータ型の単一のベクトル埋込みを生成する |
次の例では、CLUSTER_ID
関数の結果を戻す問合せを示しています。この問合せでは、特定の特性を共有する顧客のグループを検出するモデルem_sh_clus_sampleを適用します。この問合せでは、クラスタの識別子および各クラスタの顧客数が戻されます。em_sh_clus_sampleモデルは、oml4sql-clustering-expectation-maximization.sql
の例によって作成されます。
例3-4 CLUSTER_ID関数
-- -List the clusters into which the customers in this -- -data set have been grouped. -- SELECT CLUSTER_ID(em_sh_clus_sample USING *) AS clus, COUNT(*) AS cnt FROM mining_data_apply_v GROUP BY CLUSTER_ID(em_sh_clus_sample USING *) ORDER BY cnt DESC; -- List the clusters into which the customers in this -- data set have been grouped. -- SELECT CLUSTER_ID(em_sh_clus_sample USING *) AS clus, COUNT(*) AS cnt FROM mining_data_apply_v GROUP BY CLUSTER_ID(em_sh_clus_sample USING *) ORDER BY cnt DESC;
出力内容は次のようになります。
CLUS CNT
---------- ----------
9 311
3 294
7 215
12 201
17 123
16 114
14 86
19 64
15 56
18 36
Oracle Machine Learning for SQL統計関数
Oracle Databaseでは、様々なSQL統計関数を使用してデータを調査および分析できます。
Oracle Databaseでは、SQLを介して様々なスケーラブルな統計関数にアクセスできます。これらの統計関数は、SQL関数として実装されています。SQL統計関数を使用すると、データに関するMEAN
、MAX
、MIN
、MEDIAN
、MODE
および標準偏差などの標準的な可変統計を計算できます。ユーザーは、テスト、f-test、集計関数、分析関数、ANOVAなど、その他の様々な統計関数を実行することもできます。次の表に示す関数は、SQLから使用できます。
表3-6 OML4SQLでサポートされているSQL統計関数
関数 | 説明 |
---|---|
APPROX_COUNT |
式の近似カウントを返します |
APPROX_SUM |
式の近似合計を返します |
APPROX_RANK |
値のグループの近似値を返します |
CORR |
数値の組の集合に対する相関係数 |
CORR_S |
Spearmanの順位相関係数(Spearman's rho)を計算します |
CORR_K |
Kendallの順位相関係数(Kendall's tau-b)を計算します |
COVAR_POP |
数値の組の集合について母集団分散を返します |
COVAR_SAMP |
数値の組の集合について標本分散を返します。 |
LAG |
LAG は分析ファンクションです。これは、自己結合せずに、表の2つ以上の行へ同時アクセスを行います。
|
LEAD |
LEAD は分析ファンクションです。これは、自己結合せずに、表の2つ以上の行へ同時アクセスを行います。
|
STATS_BINOMIAL_TEST |
STATS_BINOMIAL_TEST は、有効な値が2つのみである二値変数に使用する直接確立法です。
|
STATS_CROSSTAB |
STATS_CROSSTAB は、2つの名義変数を分析するために使用する方法です。
|
STATS_F_TEST |
STATS_F_TEST は、2つの分散に有意差があるかどうかをテストします。
|
STATS_KS_TEST |
STATS_KS_TEST は、2つの標本を比較して、それらが同じ母集団に属しているか、または同じ分布を持つ母集団に属しているかをテストするKolmogorov-Smirnovファンクションです。
|
STATS_MODE |
引数として値の集合を取り、最も出現頻度の高い値を返します |
STATS_MW_TEST |
Mann-Whitney検定では、2つの独立した標本を比較して、2つの母集団が同じ分布ファンクションを持つという帰無仮説を、2つの分布ファンクションは異なるという対立仮説に対してテストします。 |
STATS_ONE_WAY_ANOVA |
2種類の差異の見積りを比較することで、統計的重要性の(グループまたは変数の)差異をテストします。 |
STATS_T_TEST_* |
t検定は、平均値の差の有意性を測定します |
STATS_T_TEST_ONE |
1標本 t検定 |
STATS_T_TEST_PAIRED |
2標本、対応のあるt検定(交差したt検定とも呼ばれます) |
STATS_T_TEST_INDEP およびSTATS_T_TEST_INDEPU |
同じ分散を持つ(合併分散) 2つの独立したグループのt検定
分散が等しくない(分散は非合併)2つの独立したグループのt検定 |
STDDEV |
数値の集合について標本標準偏差を返します |
STDDEV_POP |
母集団標準偏差を計算し、母集団分散の平方根を返します |
STDDEV_SAMP |
標本累積標準偏差を計算し、標本分散の平方根を返します |
SUM |
値の合計を返します |
DBMS_STAT_FUNCS
PL/SQLパッケージは、ユーザーに対しても使用可能です。
Oracle Data Miner
Oracle Machine Learning for SQLは、Oracle Data Minerというグラフィカル・インタフェースをサポートしています。
Oracle Data MinerはOML4SQLへのグラフィカル・インタフェースです。Oracle Data Minerは、Oracle Technology Networkで無償ダウンロードできるOracle SQL Developerの拡張です。
Oracle Data Minerは、ワークフロー・パラダイムを使用して、OML4SQLモデルの作成、評価、適用のプロセスを取得、ドキュメント化および自動化します。ワークフロー内で、データ変換の指定、複数のモデルの作成と評価、および複数のデータセットのスコアリングを行うことができます。その後、ワークフローを保存して他のユーザーと共有できます。
インストール手順を含むOracle Data Minerの詳細は、Oracle Technology Networkを参照してください。
関連トピック