OML4SQLの例について
OML4SQLの例では、データの準備、アルゴリズムの選択、アルゴリズムのチューニング、テストおよびスコアリングを行うための一般的な方法を示します。
OML4SQLの例から、OML4SQLアプリケーション・プログラミング・インタフェースについて多くを学習できます。例は単純です。プログラムには、コードの理解に役立つインライン・コメントが多数含まれています。すべての一時オブジェクトが終了時に削除されるため、これらの例はセットアップやクリーン・アップなしで繰り返し実行できます。
OML4SQLの例は、GitHub (https://github.com/oracle/oracle-db-examples/tree/master/machine-learning/sql/)から入手できます。データベース・リリース(たとえば23ai)を選択して例を表示します。
OML4SQLの例は、ユーザーのスキーマに機械学習モデルのセットを作成します。次の表に、この例のファイル名と、この例で使用するmining_function
値およびアルゴリズムを示します。
表5-1 各例で作成するモデル
ファイル名 | MINING_FUNCTION | アルゴリズム |
---|---|---|
oml4sql-anomaly-detection-1class-svm.sql |
CLASSIFICATION |
ALGO_SUPPORT_VECTOR_MACHINE |
oml4sql-anomaly-detection-em.sql |
CLASSIFICATION |
ALGO_EXPECTATION_MAXIMIZATION |
oml4sql-association-rules.sql |
ASSOCIATION |
ALGO_APRIORI_ASSOCIATION_RULES |
oml4sql-classification-decision-tree.sql |
CLASSIFICATION |
ALGO_DECISION_TREE |
oml4sql-classification-glm.sql |
CLASSIFICATION |
ALGO_GENERALIZED_LINEAR_MODEL |
oml4sql-classification-naive-bayes.sql |
CLASSIFICATION |
ALGO_NAIVE_BAYES |
oml4sql-classification-neural-networks.sql |
CLASSIFICATION |
ALGO_NEURAL_NETWORK |
oml4sql-classification-random-forest.sql |
CLASSIFICATION |
ALGO_RANDOM_FOREST |
oml4sql-classification-regression-xgboost.sql |
CLASSIFICATION |
ALGO_XGBOOST |
oml4sql-classification-svm.sql |
CLASSIFICATION |
ALGO_SUPPORT_VECTOR_MACHINES |
oml4sql-classification-text-analysis-svm.sql |
CLASSIFICATION |
ALGO_SUPPORT_VECTOR_MACHINES |
oml4sql-clustering-expectation-maximization.sql |
CLUSTERING |
ALGO_EXPECTATION_MAXIMIZATION |
oml4sql-clustering-kmeanms-star-schema.sql |
CLUSTERING |
ALGO_KMEANS |
oml4sql-clustering-kmeans.sql |
CLUSTERING |
ALGO_KMEANS |
oml4sql-clustering-ocluster.sql |
CLUSTERING |
ALGO_O_CLUSTER |
oml4sql-cross-validation-decision-tree.sql |
CLASSIFICATION |
ALGO_DECISION_TREE |
oml4sql-feature-extraction-cur.sql |
ATTRIBUTE_IMPORTANCE |
ALGO_CUR_DECOMPOSITION |
oml4sql-feature-extraction-nmf.sql |
FEATURE_EXTRACTION |
ALGO_NONNEGATIVE_MATRIX_FACTOR |
oml4sql-feature-extraction-svd.sql |
FEATURE_EXTRACTION |
ALGO_SINGULAR_VALUE_DECOMP |
oml4sql-feature-extraction-text-mining-esa.sql |
FEATURE_EXTRACTION |
ALGO_EXPLICIT_SEMANTIC_ANALYS |
oml4sql-feature-extraction-text-mining-nmf.sql |
FEATURE_EXTRACTION |
ALGO_NONNEGATIVE_MATRIX_FACTOR |
oml4sql-feature-extraction-text-term-extraction.sql |
FEATURE_EXTRACTION |
ALGO_EXPLICIT_SEMANTIC_ANALYSIS |
oml4sql-partitioned-models-svm.sql |
CLASSIFICATION |
ALGO_SUPPORT_VECTOR_MACHINES |
oml4sql-regression-glm.sql |
REGRESSION |
ALGO_GENERALIZED_LINEAR_MODEL |
oml4sql-regression-neural-networks.sql |
REGRESSION |
ALGO_NEURAL_NETWORK |
oml4sql-regression-random-forest.sql |
REGRESSION |
ALGO_RANDOM_FOREST |
oml4sql-regression-svm.sql |
REGRESSION |
ALGO_SUPPORT_VECTOR_MACHINES |
oml4sql-singular-value-decomposition.sql |
REGRESSION |
ALGO_SINGULAR_VALUE_DECOMPOSITION |
oml4sql-survival-analysis-xgboost.sql |
REGRESSION |
ALGO_XGBOOST |
oml4sql-time-series-esm-auto-model-search.sql |
TIME_SERIES |
ALGO_EXPONENTIAL_SMOOTHING |
oml4sql-time-series-exponential-smoothing.sql |
TIME_SERIES |
ALGO_EXPONENTIAL_SMOOTHING |
oml4sql-time-series-mset.sql |
CLASSIFICATION |
ALGO_MSET_SPRT |
oml4sql-time-series-regression-dataset.sql |
- | これは時系列回帰モデルを構築するためのデータセットです。 |
oml4sql-time-series-regression.sql |
TIME_SERIES およびREGRESSION |
ALGO_EXPONENTIAL_SMOOTHING 、ALGO_GENERALIZED_MODEL およびALGO_XGBOOST を使用します |
前述の表に示されている例以外にも、DBMS_PREDICTIVE_ANALYTICS.EXPLAIN
プロシージャを使用して、ターゲット属性に独立して影響を与える属性の重要性を検出するoml4sql-attribute-importance.sql
、CTX.DDL
パッケージを使用してテキストを抽出するoml4sql-feature-extraction-text-term-extraction.sql
などの例があります。
その他の例のセットでは、R言語の関数の登録およびRモデルの作成のために、ALGO_EXTENSIBLE_LANG
アルゴリズムを使用する例を示します。次の表に、R拡張性の例を示します。この例のファイル名と、MINING_FUNCTION値および使用するR関数が示されています。
ファイル名 | MINING_FUNCTION | R関数 |
---|---|---|
oml4sql-r-extensible-algorithm-registration.sql |
CLASSIFICATION |
glm |
oml4sql-r-extensible-association-rules.sql |
ASSOCIATION |
apriori |
oml4sql-r-extensible-attribute-importance-via-rf.sql |
REGRESSION |
randomForest |
oml4sql-r-extensible-glm.sql |
REGRESSION |
glm |
oml4sql-r-extensible-kmeans.sql |
CLUSTERING |
kmeans |
oml4sql-r-extensible-principal-components.sql |
FEATURE_EXTRACTION |
prcomp |
oml4sql-r-extensible-regression-tree.sql |
REGRESSION |
rpart |
oml4sql-r-extensible-regression-neural-networks.sql |
REGRESSION |
nnet |
OML4SQLの例のインストール
OML4SQLの例のインストール方法を学習します。
OML4SQLの例には、次のものが必要です。
-
Oracle Database (オンプレミス、Oracle Database Cloud ServiceまたはOracle Autonomous Database)
-
Oracle Databaseのサンプル・スキーマ
-
「Oracle Machine Learning for SQLの権限の付与」で説明されている権限を持つユーザー・アカウント。
-
システム管理者による
dmshgrants.sql
の実行 -
OML4SQLユーザーによる
dmsh.sql
の実行
次のステップに従って、OML4SQLの例をインストールします。
-
Oracle Database 23aiインスタンスをインストールするか、それに対するアクセス権を取得します。データベースをインストールする際には、Oracle Database 23aiで使用するプラットフォームに対応したインストール手順を参照してください。
-
データベースにサンプル・スキーマがインストールされていることを確認します。サンプル・スキーマの詳細は、Oracle Databaseのサンプル・スキーマ を参照してください。
-
GitHub (https://github.com/oracle/oracle-db-examples/tree/master/machine-learning/sql)から、サンプル・コード・ファイルをダウンロードします。データベースのエディションを選択します。Oracle Databaseサーバー上の、アクセス権のあるディレクトリにファイルを配置します。たとえば、
$ORACLE_HOME/demo/schema
.$ORACLE_HOME
は、データベースをインストールしたホーム・パスです。通常は、/scratch/u01/app/oracle/product/23.0.0/dbhome_1
になります。 -
ユーザー・アカウントに、「Oracle Machine Learning for SQLの権限の付与」で説明されている必要な権限があることを確認します。
-
システム管理者に
dmshgrants.sql
スクリプトの実行を依頼します。管理者権限を所有している場合は自分で実行します。このスクリプトは、例の実行に必要な特権を付与します。これらには、OML4SQLサンプル・データで説明されているSH
スキーマの表に対するSELECT
アクセス権、およびシステム権限が含まれます。SYSDBA
として接続します:CONNECT sys / as sysdba Enter password: sys_password Connected.
OML4SQLユーザーの名前を
dmshgrants
に渡します:@<location_of_examples>/dmshgrants oml_user
-
データベースに接続して
dmsh.sql
スクリプトを実行します。このスクリプトは、OML4SQLユーザーのスキーマ内のサンプル・データのビューを作成します。CONNECT oml_user Enter password: oml_user_password Connected.
このスクリプトを実行するには、次を発行します:
@<location_of_examples>/dmsh.sql
関連トピック
OML4SQLサンプル・データ
OML4SQLの例で使用されるデータは、次に示すSH
スキーマの表に基づいています。
表は次のとおりです:
SH.CUSTOMERS
SH.SALES
SH.PRODUCTS
SH.SUPPLEMENTARY_DEMOGRAPHICS
SH.COUNTRIES
dmshgrants
スクリプトは、SH
スキーマの表にSELECT
アクセス権を付与します。dmsh.sql
スクリプトは、OML4SQLユーザーのスキーマ内のSH
表のビューを作成します。次の表にビューの説明を示します。
表5-2 dmsh.sqlにより作成されるビュー
ビュー名 | 説明 |
---|---|
|
データの結合とフィルタリング |
|
モデルの作成用のデータ |
|
モデルのテスト用のデータ |
|
スコアリング対象のデータ |
|
テキストを含むモデルの作成用のデータ |
|
テキストを含むモデルのテスト用のデータ |
|
スコアリング対象となる、テキスト列を含むデータ |
|
異常検出用のデータ |
相関ルールの例は、独自のトランザクショナル・データを作成します。