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.COUNTRIESdmshgrantsスクリプトは、SHスキーマの表にSELECTアクセス権を付与します。dmsh.sqlスクリプトは、OML4SQLユーザーのスキーマ内のSH表のビューを作成します。次の表にビューの説明を示します。
                     
表5-2 dmsh.sqlにより作成されるビュー
| ビュー名 | 説明 | 
|---|---|
| 
 | データの結合とフィルタリング | 
| 
 | モデルの作成用のデータ | 
| 
 | モデルのテスト用のデータ | 
| 
 | スコアリング対象のデータ | 
| 
 | テキストを含むモデルの作成用のデータ | 
| 
 | テキストを含むモデルのテスト用のデータ | 
| 
 | スコアリング対象となる、テキスト列を含むデータ | 
| 
 | 異常検出用のデータ | 
相関ルールの例は、独自のトランザクショナル・データを作成します。