最適化

Python データ間を線形補完する「scipy.interpolate 」

本記事では、下図のように、青点の間を一次式で補完して赤点を作成する関数を作成する雛形コードを載せました。 上記データは、下図の横軸にA列、縦軸にD列をとったものです。 ■本プログラム #!/usr/bin/env python # coding: utf-8 # In[1]: import pandas …

Python 説明変数間が従属関係にある制約条件下での多目的最適化「PyCaret×Optuna」

本記事では、説明変数間が従属関係にある制約条件下での多目的最適化を実施して、下図のようなパレート解を取得する雛形コードを載せました。 下図はその実施例です。説明変数3つ「PTRATIO」「INDUS」「DIS」の和が固定値25という制約下で乱数により、多目的…

Python 回帰モデルの作成と多目的最適化によるパレート解の作成「PyCaret×Optuna」

本記事では、PyCaretを用いてベストな回帰モデルを自動で作成する雛形コードと、作成した複数の回帰モデル(バイナリファイル)を利用して、Optunaを用いて多目的最適化を行う雛形コードを載せました。 最終的には、複数の目的変数に対して最小値or最大値を…

Python 多目的最適化「Optuna」

'21/03/03更新:浮動小数点以外の型の場合の制約条件「カテゴリ変数、整数、対数、離散値」の設定例を追記しました。 本記事では、Optunaを使った多目的最適化の雛形コードを載せました。 Optunaは、オープンソースの機械学習モデルのハイパーパラメータを自…

Python 回帰モデルの最小値or最大値をベイズ最適化により探索する「PyCaret×GPyOpt」

本記事では、回帰モデル(目的関数)の最小値もしくは最大値をベイズ最適化のライブラリ「GPyOpt」で探索する雛形コードを載せました。最適結果に加えて、最適解の探索過程の目的変数と説明変数の履歴もcsvファイルに保存する仕様です。 はじめに、回帰モデ…

Python ベイズ最適化による単一目的最適化「GPyOpt」

本記事では、目的関数Yの最小値または最大値と、説明変数Xを求めるための雛形コードを載せました。ベイズ最適化のPythonライブラリは複数あります。本記事ではGPyOptについてで、インストールはcondaで次のようにします。 conda install -c conda-forge gpyo…

Python 「PyCaret」ハイパーパラメータの自動チューニング【カスタムパラメータ設定の方法】

PyCaretにはハイパーパラメータのチューニングを自動で行う機能が備わっています。一方、その項目と範囲を手動で設定することも出来ます。本記事では、そのカスタム設定に加えて自動設定した場合とで得られたハイパーパラメータの比較、適合度の比較とその雛…

Python 近似式を作成してグラフに記入する方法「Numpy×SciPy」

'21/10/04更新:汎用性を高めるため、関数の引数を変更しました。3つの引数は順に、pandas DataFrame, X軸に指定する列名, Y軸に指定する列名です。 本記事では、下図3つのような近似式を作成する雛形コードを載せました。scipyのoptimize.curve_fitを利用し…

Python 多目的最適化「Platypus」のスクリプトをアルゴリズム別に作成する

# '20/02/16更新:パレート解に判断基準線を加えることができるようにした。 多目的最適化のフレームワーク「Platypus」については以前に述べた→Python 多目的最適化「Platypus」:自作モジュールの回帰モデルを読む場合 - HK29’s blog 本記事では、これを複…

最適化ライブラリで最大化, 最小化メソッドしかない場合の目的関数の設定方法

# ’20/01/19更新 例(4)を追記 本記事ではPythonに限らない話である。例のためPythonの多目的最適化のフレームワーク「Platypus」を挙げると、最大化問題を解くProblem.MAXIMIZEと、最小化問題を解くProblem.MINIMIZEの二つがある。最大化問題とは、例えばy=f…

Python ベイズ最適化によるハイパーパラメータの調整「Bayesian Optimization×TensorFlow」

本記事では、テンソルフローで作成するニューラルネットワーク回帰分析のハイパーパラメータを調整する雛形コードを載せました。Pythonのベイズ最適化ライブラリはいくつかある中で、本記事では「Bayesian Optimization」を用いました。GitHub - fmfn/Bayesi…

Python 多目的最適化「Platypus」シリアル化した回帰モデルを読む場合

Platypusに関しては前回、Python 多目的最適化「Platypus」:自作モジュールによる回帰モデルを読む場合 - HK29’s blogで述べた。 本記事では、回帰式を自作モジュールでなくて、シリアライズにより保存した「.joblib」ファイルを読み込んで実行するコードの…

Python 多目的最適化「Platypus」自作モジュールの回帰モデルを読む場合

'20/01/12更新:コードを見易くするため、グラフ化の箇所は関数化して分けた。 本記事では、Pythonの多目的最適化のフレームワークのひとつ「Platypus(カモノハシ)」を利用して、その中に含まれるGAアルゴリズムのひとつ「NSGAII(Non dominated Sorting G…

Python ハイパーパラメータの自動最適化「Optuna×sk-learn」

本記事ではオープンソースのライブラリ「Optuna」を使用した雛形コードを載せました。インストールは、次のようにcondaで行えます。 conda install -c conda-forge optuna 分析内容は、ボストンデータセットの住宅価格を目的関数に、scikit-learnのニューラ…

Python 実験データを自作関数にフィッティングする「scipy.optimize」

本プログラム実行後のグラフを下図に示す。青点は実験データ(便宜上、手で作成)、赤線はガウス関数でのフィッティング後をプロットしている。 ▼本プログラム フィッテイングはScipyのoptimizeを利用しており、最適値は初期値の設定に依存する。他には、matpl…

Python 連立方程式の解(y=f(x)の係数)を求める。そして代入して計算する方法

# 19/10/08刷新座標2点もしくは3点から、関数y=f(x)へフィッティングするための係数をnumpyで連立方程式を計算する方法です。その後、適当な複数のXをその関数へぶちこんで、X,Yデータをcsvファイル出力するまでを行う。 ▼本プログラム 行列含む数値計算はnu…