データサイエンス・プロジェクトにおいて、機械学習に関しては一般に次のようなパイプライン作業が必要とされています(+トラブルシューティング)。
データ探索->データ変換->モデル構築->モデル実行->モデル評価->モデル・チューニング
->モデル管理
Db2ユーザーの方がデータサイエンス・プロジェクトに参加することになり、
「機械学習用データはDb2内にある。機械学習のパイプライン作業もできるだけ自動化したい。」時、
Db2 V11.5.4(#1)以降からサポートされるようになった、機械学習ストアド・プロシージャがお役に立てます。
(#1)この記事の執筆段階では、Linux版のみでのサポートとなっています。ちなみにDb2 Warehouseでは以前からサポートされていました。
メリット1 (パイプライン作業がSQL文で記述可能)
機械学習のパイプライン作業(データ探索、データ変換、モデル構築、モデル実行、モデル評価、モデル・チューニング、モデル管理、トラブルシューティング)などの一般的な機械学習タスクを馴染みのあるDb2 SQL文で記述し、実行できます。
メリット2(自動化)
上記のSQL文を次々に呼び出すようなDb2アプリケーションを開発し、実行することで、パイプライン作業を自動化することができます。
メリット3(サーバー集中処理)
上記のパイプライン作業は、データをDb2から外部システムへネットワーク経由で転送することなく、Db2サーバー内部で実行されます。
このため、ビッグデータをネットワーク転送するオーバーヘッドがない、データ転送時のデータ漏洩のリスクが少ない、ことも利点になります。
サポートされているアルゴリズムについて
機械学習のアルゴリズムは、教師あり/なし学習、強化学習といったカテゴリーや、分類、クラスタリング、回帰などで分類されたりしますが、実に様々なものが存在します。
Db2 Linux V11.5.4以降のストアド・プロシージャでサポートされているのは、分類、クラスタリング、回帰のアルゴリズムであり、次の通りです。
(a)分類
-
決定木(デシジョン・ツリー)
デシジョン・ツリーは、データを分類するのに役立ち、階層的なグラフィカル構造(樹形図)で表現されます。
教師あり学習の一つ。 -
単純(ナイーブ)ベイズ
Naive Bayes 分類アルゴリズムは、確率的分類器です。
これは、強力な独立性の仮定を組み込んだ確率モデル(ベイズの定理)に基づいています。
教師あり学習の一つ。
(b)クラスタリング
- K-means クラスタリング
K-means アルゴリズムは、明示的な距離測定を使用してデータ セットをクラスターに分割する、最も広く使用されている非階層的クラスタリング アルゴリズムです。
教師なし学習の一つ。
(c)回帰
- 線形回帰
線形回帰は、予測分析で最も一般的に使用される方法です。
従属変数 (ターゲット) と 1 つ以上の独立変数 (予測変数) の間の線形関係を使用して、ターゲットの将来を予測します。
予測は、ターゲットと予測子の間の関係が従属的または因果的であるという仮定に基づいています。
教師あり学習の一つ。
先に提供されているアルゴリズムをご紹介しましたが、機械学習で必要になるタスク視点では、次のようなカテゴリーのストアド・プロシージャが提供されています。
(a)データ探索
これらのストアド プロシージャを使用して、選択した機械学習アルゴリズム用にデータを前処理する前に、データの内容を評価します。
データの分布、特徴のプロパティ、欠損値、およびその他の重要な領域を特定することにより、重要な洞察を得ることができます。
(b)データ変換
これらのストアド プロシージャを使用して、機械学習アルゴリズムに渡す前にデータを変換します。
(c)モデル構築
これらのストアド プロシージャを使用して、機械学習モデルを構築します。
線形回帰、決定木、単純ベイズ、k-means クラスタリングなどの一般的なアルゴリズムを使用して、機械学習モデルを構築できます。
(d)モデル実行
これらのストアド プロシージャを使用して、トレーニング済みの機械学習モデルで予測を行います。
(e)モデル評価
これらのストアド プロシージャを使用して、予測を実際の値と比較することにより、モデルのパフォーマンスを評価します。 混同行列を作成し、精度、精度、再現率、平均絶対誤差、平均二乗誤差などの指標を評価します。
(f)モデル・チューニング
これらのストアド プロシージャを使用して、機械学習モデルを微調整します。 これは、モデルのオーバーフィッティングやアンダーフィッティングなどの一般的な落とし穴を回避するための重要なステップです。
(g)モデル管理
これらのストアド プロシージャを使用して、古いモデルとテーブルをクリーンアップします。
(h)機械学習ストアド プロシージャのトラブルシューティング
分析ストアド プロシージャを使用しているときに発生する問題を診断、回復、および解決するのに役立つストアド・プロシージャが提供されています。
今回はDb2の機械学習ストアード・プロシージャを簡単にご紹介しました。
「もっと詳しく!」という方は、ぜひDb2マニュアルのトピック”In-database machine learning in Db2”をご参照ください。
説明は割愛しましたが、このストアド・プロシージャを利用するためには、事前準備作業(Db2データベース・パラメーターの更新、データベース・オブジェクト群の作成など)が必要となっています。
こちらに関しては、Db2マニュアルのトピック”Prerequisites for machine learning in Db2”をご参照ください。