回帰

Python 回帰モデルの予測精度を兎に角、向上する手法スタッキング「PyCaret」

本記事では、Pycaretを用いて、スタッキング(Stacking)回帰モデルを構築する雛形コードを載せました。概要は下記です。 # スタッキング stacked_model = stack_models(estimator_list = [reg], # 合成する回帰モデルをリストで指定。複数指定可 meta_model…

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

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

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

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

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

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

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

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

Python 「PyCaret」ベストな回帰モデルを自動選定するautoml()

'20/12/13更新:PyCaretのverup2.2に伴いコードや図を編集、差し替えしました。 本記事では、機械学習でお馴染みのボストン住宅価格のデータセットを用いて、多数ある回帰モデルからベスト回帰モデルを抽出してオブジェクトファイルに保存する雛形コードを載…

Python 「PyCaret」複数の回帰モデルをCUIで自動生成する

PyCaretは、対話型のIDEであるJupyter Notebook、Jupyter Lab、 Google Colaboratory等での使用を推奨しています。そのため、コマンドライン(CUI)ではエラーで動作ストップする場合もいくらか遭遇します。そこで、本記事ではCUIで実行する場合でも、それに…

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

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

Python 水準表を作成して、csvファイルに保存する

'22/06/10更新:オプションとして、同じ値の列を別名で追加する場合の雛形コードを追記しました。 本記事では、PythonでDOE(実験計画法)を作成する雛形コードを載せました。使用方法は、本コード中にある「param_dict」と名付けた辞書に、作成したい水準の…

Python 「Pytorch」によるニューラルネットワーク回帰分析

本記事は、Pytorchのインストール方法とコードの雛形について載せました。 ▼インストール手順はじめに、下記リンクの本家webページへ飛びます。 pytorch.org 次に、リンク先で下へスクロールすると、下図のようなのが出現するため、自分の使用しているPC環境…

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 「LightGBM」による回帰分析

# '20/02/16更新:グラフのフォントサイズ調整やタイトル等の見栄え関連のコード更新 本記事では、決定木アルゴリズムの勾配ブースティング法のひとつLight Gradient Boosting Machine(LightGBM, lgbm)の回帰分析について、実務向けコードの雛形を記載して…

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

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

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

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

Python scikit-learn付属のボストン市の住宅価格データ(Boston house prices dataset)をcsvファイル化する

'20/01/01更新: csvファイル化せずに直接読み出す場合についても文末に追記しました。 本プログラム実行後のフォルダ内を下図に示す。3つのcsvファイルを出力しています。 「boston_Xdata.csv」…入力変数Xデータ(設計因子) 「boston_XYdata.csv」…出力変数Y…

Python ラテン超方格法などで水準表を作成する「lhsmdu」

'21/12/17更新:余剰なコードを削除して可読性を良くしました。 はじめに、実験計画法(Design of Experiments,DOE)は広義には、直交表計画、中心複合計画、要因計画、ラテン超方格法、最適ラテン超方格法、パラメータスタディ(1因子実験)などがあります。実…

Python joblibで保存した機械学習モデルを読み込んで利用する

'21/06/19更新:利便性を考えて、JupyterLabのようにインタラクティブに使用できる雛形コードにしました。勿論、テキストファイルに保存してコマンドプロンプトで実行することも可能です。 機械学習モデルを作成してバイナリファイル(.joblib)へ保存する例は…

Python テンソルフローで保存した回帰モデルの読み出しと実行

本記事では回帰モデル「拡張子.h5」を読み出して、予測に使用する方法について記載する。本プログラムをコピーして例えば、「zzz_load_NNmodel.py」のような適当な名前で保存して実行するだけ。 実行後は下図のように入力因子(設計変数)Xデータと回帰モデル…

Python Keras(TensorFlow)によるニューラルネットワーク回帰分析

TensorFlow2.0が'19/10/01に正式リリースされてKeras(ケラス)が統合された。これにより、Sequential(シーケンシャル)にNeural Networkを構築する方法が主流になりそうに思う。それは順番に層を積み重ねて記述する方法であり、define by runでデバックが…

Python 「scikit-learn」による様々な回帰分析(線形/勾配ブースティング/ランダムフォレスト/サポートベクトルマシン/ニューラルネットワーク)

'19/12/22更新・汎用性を持たせるためにcsvファイルを指定して読み込むようにした・NN(Neural Network)の隠れ層をリストとして、複数パターンを指定できるようにした・得られた回帰モデル(回帰式)をシリアライズにより「.joblib」ファイルで保存する 本記事…

Python ランダムフォレスト(Random Forest)回帰分析のフルver

'20/07/12更新:二次元散布図でY軸範囲を指定した場合、反映されなかったのを修正 本記事のコードは実用的になっています。下図は分析するデータの例で、csv形式のファイルであればOKです。ヘッダーは1行目でなくとも、何行目でも構いません。本プログラム中…

Python scikit-learnのランダムフォレストによる回帰分析の実務的ver

'20/07/12更新:graphvizを使用しない(インストール作業が不要な)verです。 分析データはcsvファイルであれば良く、お試し用の作成例は右記参照Python scikit-learn 付属のボストン市の住宅価格データ(Boston house prices dataset)をcsvファイル化する …

Python scikit-learnによる交互作用の項を考慮した重回帰分析

'20/02/15更新回帰分析後の相関性確認用のグラフ上に、y=axの近似式を入れる仕様にした 本記事では、回帰モデル(回帰式)の項に、相互作用項として「因子A×因子B」や「因子A×因子B×因子C」等が加えられます。 上図のように分析するcsvファイルがあればよい。…

Python scikit-learnのランダムフォレストによる回帰分析

本記事では、sklearnのRandomForestRegressorを用いた回帰分析について記載してます。ランダムフォレストとは、多数の決定木を作成して平均化する手法です。これは、1本の決定木の場合では階層が深くなると過学習してしまうことから考えられたアルゴリズムで…

Python scikit-learnによる重回帰分析(データの標準化/正規化含む)

重回帰分析と言ってもソルバーは複数ある。本記事では、sklearn(サイキットラーン)のLinearRegressionとSGDRegressorを用いた2つについて記載した。得られる回帰式は文字通り、Y=f(Xi)=a1x1+a2x2+…+aixi+eで表し、共にlinear_modelをインポートして利用する…

VBA 回帰式を用いて多数のデータを生成する

本記事は、実機評価もしくはシミューレーション等で得られたデータ分析ですでに回帰式が得られている場合に関する。本プログラムは、VBAで乱数を生成して、その乱数を回帰式へ代入計算して多数のデータを生成する。そのため、設計段階のマージン検証などに使…