Python PR

【Python】最適化フレームワークのCodable Model Optimizerで回帰モデルのパラメータ調整を自動化する

最適化フレームワークのCodable Model Optimizerで回帰モデルのパラメータ調整を自動化する
記事内に商品プロモーションを含む場合があります

こんにちは。現役エンジニアの”はやぶさ”@Cpp_Learningです。

最適化問題を気軽に解くための最適化フレームワーク:codable-model-optimizer が非常に魅力的だったので、回帰モデルのパラメータ調整を題材に、使い方を解説します。

Codable Model Optimizerとは

Codable Model Optimizer に興味ある人は、Recruit Data Blog にある以下の公式ブログ記事を必ず読んでほしいです!

私自身の言葉で Codable Model Optimizer について、あれこれ書くことも考えましたが、蛇足だと判断しました。なので本記事では、公式ブログには無い「実用例」の説明に注力して書きます。

実践!Codable Model Optimizer

Codable Model Optimizer による「回帰モデルのパラメータ自動調整」について説明します。

正確には「回帰モデルの評価指標の1つである、決定係数(R2)が最大となるパラメータをCodable Model Optimizer で算出する」という表現が適切です。

インストール

以下のコマンドでインストールします。

pip install codableopt

依存ライブラリは numpy のみです。なので最低限の動作環境は以下の通りです。

  • Python >= 3.8
  • codableopt == 0.1.2
  • numpy >= 1.22.0

以降からソースコード書いていきます。

Import

まずはimportから

説明変数と目的変数

適当な説明変数と目的変数を用意します。

最適化フレームワークのCodable Model Optimizerで回帰モデルのパラメータ調整を自動化する

Problemオブジェクト作成

Problemオブジェクトを生成します。引数が is_max_problem=True の場合は最大化問題、False の場合は最小化問題です。

目的関数の設定

目的関数:y = b0 + b1x + b2x^2 + b3x^3 の最適値を算出します。正確には R2 を最大化するパラメータ b0~b3 を算出します。

最適化で利用する変数を定義

最適化で利用する各パラメータ b0~b3 が上下限-5.0~5.0の範囲の連続値だと定義します。

「チューニング対象のパラメータが連続値で、探索範囲を-5.0~5.0に設定」という表現の方が分かりやすいかも。

最適化の実行

ソルバーオブジェクトと最適化手法オブジェクトを生成し、最適化計算を行います。

answer:{‘b0’: 4.9598541557333915, ‘b1’: 2.468429435349079, ‘b2’: -1.9206374732463405, ‘b3’: 0.40126042390510896}, answer_is_feasible:True

回帰モデルとR2の評価

算出した回帰モデルのR2評価と可視化を行います。

r2: 0.9529992755681892

最適化フレームワークのCodable Model Optimizerで回帰モデルのパラメータ調整を自動化する

以上 Codable Model Optimizer による「回帰モデルのパラメータ自動調整」の解説でした。

スポンサーリンク

まとめ

最適化フレームワーク:codable-model-optimizer について、簡単な「実用例」を交えて紹介しました。開発者が意図した通り、最適化ソルバーを簡単に利用できました。

なお本記事で紹介できなかった機能もありますので、公式ドキュメントを是非チェックしてみてください。

はやぶさ
はやぶさ
開発者に感謝!ビジネス課題の最適化に活用できるか検討します

以下 オススメのPython書籍を紹介。

PICK UP BOOKS

  • 数理モデル入門
    数理モデル
  • Jetoson Nano 超入門
    Jetoson Nano
  • 図解速習DEEP LEARNING
    DEEP LEARNING
  • Pythonによる因果分析
    Python