4.1 機械学習のクラスとアルゴリズムについて
次に示すクラスは、データベース内機械学習アルゴリズムへのアクセスを提供します。
アルゴリズム・クラス
| クラス | アルゴリズム | アルゴリズムの機能 | 説明 | 
|---|---|---|---|
| oml.ai | 最小記述長 | 分類または回帰の属性評価 | ターゲットの予測における重要度に従って属性をランク付けします。 | 
| oml.ar | Apriori | 相関ルール | あるセット内で同時発生する項目(高頻度項目セット)を識別することにより、マーケット・バスケット分析を行います。 | 
| oml.dt | デシジョン・ツリー | 分類 | 人間が理解可能なルールの形式で予測情報を抽出します。 このルールはif-then-else式で、予測を導く決定を示す。 | 
| oml.em | 期待値の最大化 | クラスタリング | 密度推定アルゴリズムに基づいて確率的クラスタリングを実行します。 | 
| oml.esa | 明示的セマンティック分析 | 特徴抽出 | ドキュメントのコーパスからテキストベースの特徴を抽出します。 ドキュメントの類似度比較を実行します。 | 
| oml.glm | 一般化線形モデル | 分類 回帰 | 2項ターゲットの分類用にロジスティック回帰を実装し、連続的ターゲット用に線形回帰を実装します。 | 
| oml.km | k-Means | クラスタリング | 教師なし学習を使用し、類似度に基づいて、事前に決められた数のクラスタにデータをグループ化します。 | 
| oml.nb | Naive Bayes | 分類 | データで観測された、基礎となる根拠から予測の確率を導き出すことによって予測を行います。 | 
| oml.nn | ニューラル・ネットワーク | 分類 回帰 | 例から学習し、学習プロセス中にニューロン間の接続の重みをチューニングします。 | 
| oml.rf | ランダム・フォレスト | 分類 | データを分類するためのアンサンブル学習手法を提供します。 | 
| oml.svd | 特異値分解 | 特徴抽出 | 矩形マトリックスを3つのマトリックスに分解することで、基礎となるデータの分散を取得する直交線形変換を実行します。 | 
| oml.svm | サポート・ベクター・マシン | 異常検出 分類 回帰 | クラスのプロファイルであるモデルを構築します。モデルが適用されると、そのプロファイルとなんらかの形で異なるケースを識別します。 | 
| oml.nmf | Non-Negative Matrix Factorization | 特徴抽出 | 多数の属性があり、これらの属性があいまいであるか、予測可能性が低い場合に使用される、最先端の特徴抽出アルゴリズム。 | 
| oml.xgb | XGBoost | 分類 回帰 | スタンドアロンの予測子として使用することも、広告クリックスルー率の予測、ハザード・リスクの予測、Webテキスト分類といった幅広い問題に対処するために、実際の生産パイプラインに組み込むこともできます。 | 
| oml.onnx | オープン・ニューラル・ネットワーク交換 | 回帰 分類 クラスタリング 埋込み | ONNX形式のモデルをデータベースにロードし、Oracle Machine Learningの予測演算子を使用してデータをスコアリングするために使用できます。 これは「アルゴリズム」ではありませんが、複数のアルゴリズムと機械学習手法のモデルをサポートします。 | 
繰返し可能な結果
OML4Py機械学習アルゴリズム・クラスのfitメソッドでcase_idパラメータを使用することで、繰返し可能なサンプリング、データ分割(トレーニングと除外)およびランダム・データ・シャッフルを実現できます。 
                  
モデルの永続化
OML4Py APIを介して作成されたデータベース内モデルは、次のいずれかのアクションを実行しないかぎり、データベース接続が終了したときに削除される一時オブジェクトとして存在します。
- 次の例のように、デフォルトの名前のモデル・オブジェクトをデータストアに保存します。regr2 = oml.glm("regression") oml.ds.save(regr2, 'regression2')
- 次の例のように、モデルの構築時にfit関数でmodel_nameパラメータを使用します。regr2 = regr2.fit(X, y, model_name = 'regression2')
- 次の例のように、モデルのmodel_name関数を使用して既存のモデルの名前を変更します。regr2(model_name = 'myRegression2')
永続的な名前付きモデルを削除するには、oml.drop関数を使用します。
                  
既存のデータベース内モデルからのモデルの作成
既存のデータベース内機械学習モデルのプロキシ・オブジェクトとしてOML4Pyモデルを作成できます。 データベース内モデルは、OML4Py、OML4SQLまたはOML4Rを使用して作成されている可能性があります。 これを行うには、OML4Pyの作成時に、次の例のように、既存のモデルの名前を指定し、オプションでモデルの所有者の名前を指定します。
ar_mod = oml.ar(model_name = 'existing_ar_model', model_owner = 'SH', **setting)この方法で作成されたOML4Pyモデルは、oml.drop関数を使用して削除するまで保持されます。
                  
モデルを使用した新しいデータのスコアリング
ほとんどのOML4Py機械学習クラスでは、モデル・オブジェクトのpredictおよびpredict_probaメソッドを使用して新しいデータをスコアリングできます。
                  
データベース内モデルについては、データベース内で直接スコアリングするSQL PREDICTION関数をモデル・プロキシ・オブジェクトで使用できます。 データを適切に準備すれば、データベース内モデルをSQLから直接使用できます。 オープン・ソース・モデルについては、Embedded Python Executionを使用し、データ・パラレル実行を実現することでパフォーマンスとスケーラビリティを向上させることができます。 
                  
REST APIを介したモデルのデプロイ
Oracle Machine Learning ServicesのREST APIは、Oracle Autonomous DatabaseインスタンスでホストされるRESTエンドポイントを提供します。 これらのエンドポイントを使用すると、OMLモデルをそのメタデータとともに格納し、モデルのスコアリング・エンドポイントを作成できます。
親トピック: リファレンス