bayes_gp_plain プログラム仕様

PHYSBOを用いたガウス過程に基づくベイズ最適化CLIツール。

このスクリプトは、PHYSBOライブラリを使用して、与えられたデータセットに対しガウス過程回帰に基づくベイズ最適化を実行します。 入力ファイルから記述子と目的関数を読み込み、学習データとテストデータに分割します。 その後、指定された獲得関数(EI、PI、TS)を用いて最適な候補点を探索し、 予測された目的関数値の平均と分散、および獲得関数の値を計算します。 結果はExcelファイルに保存され、2D等高線図、パレート図、予測値と獲得関数のプロットによって視覚化されます。 グラフ上でクリックすることで、最も近いデータ点の詳細情報をコンソールに表示する機能も含まれています。

関連リンク: - PHYSBO 公式サイト: https://www.pasums.issp-u-tokyo.ac.jp/physbo/ - PHYSBO 引用情報: https://issp-center-dev.github.io/PHYSBO/manual/master/en/introduction.html

PHYSBO.bayes_gp_plain.citation(app)[ソース]

PHYSBOの引用情報をコンソールに表示します。

パラメータ:

app (tkApplication) -- アプリケーションオブジェクト (引用URLの取得に使用)。

PHYSBO.bayes_gp_plain.execute(app, cparams, wait_by_input=True)[ソース]

ベイズ最適化の主要な実行ロジックをカプセル化します。

データファイルの読み込み、PHYSBOを用いたベイズ最適化の実行、結果の保存、 および等高線図、パレート図、予測値・獲得関数のプロットなどのグラフ描画を行います。 また、グラフ上のクリックイベントを処理し、最も近いデータ点の情報を表示する機能も提供します。

パラメータ:
  • app (tkApplication) -- アプリケーションオブジェクト。

  • cparams (tkParams) -- パラメータオブジェクト。

  • wait_by_input (bool) -- プログラム終了時にユーザーの入力待ちを行うかどうかのフラグ。

戻り値:

処理が成功した場合は None。データ読み込みエラーの場合は None を返して終了する。

戻り値の型:

None

PHYSBO.bayes_gp_plain.get_dirname(path)[ソース]

指定されたファイルパスのディレクトリ名を取得します。

パラメータ:

path (str) -- ディレクトリ名を取得するファイルパス。

戻り値:

ディレクトリ名。

戻り値の型:

str

PHYSBO.bayes_gp_plain.get_plot_descriptors(descriptors)[ソース]

プロット用の記述子インデックスとラベルを決定します。

与えられた記述子リストに基づいて、2D/3DプロットのX、Y、Z軸に割り当てる 記述子のインデックスとラベルを生成します。 記述子名に X:, Y:, Z: のプレフィックスが含まれる場合、それらを優先的に割り当てます。

パラメータ:

descriptors (list[str]) -- 記述子名のリスト。

戻り値:

プロットインデックスの辞書、プロットラベルの辞書、制御子を除去した記述子ラベルのリスト。

戻り値の型:

tuple[dict, dict, list[str]]

PHYSBO.bayes_gp_plain.getarg(position, defval=None)[ソース]

コマンドライン引数を安全に取得します。指定された位置に引数がない場合はデフォルト値を返します。

パラメータ:
  • position (int) -- 取得する引数のインデックス (sys.argvのインデックス)。

  • defval (any) -- 引数がない場合に返すデフォルト値。

戻り値:

コマンドライン引数の値、またはデフォルト値。

戻り値の型:

str or any

PHYSBO.bayes_gp_plain.getfloatarg(position, defval=None)[ソース]

コマンドライン引数を浮動小数点数として安全に取得します。

getarg 関数を呼び出し、その結果を pfloat を使用して浮動小数点数に変換します。 引数がない場合や変換できない場合は、指定されたデフォルト値を返します。

パラメータ:
  • position (int) -- 取得する引数のインデックス (sys.argvのインデックス)。

  • defval (float) -- 引数がない場合や変換失敗時に返すデフォルト値。

戻り値:

コマンドライン引数の浮動小数点数値、またはデフォルト値。

戻り値の型:

float

PHYSBO.bayes_gp_plain.getintarg(position, defval=None)[ソース]

コマンドライン引数を整数として安全に取得します。

getarg 関数を呼び出し、その結果を pint を使用して整数に変換します。 引数がない場合や変換できない場合は、指定されたデフォルト値を返します。

パラメータ:
  • position (int) -- 取得する引数のインデックス (sys.argvのインデックス)。

  • defval (int) -- 引数がない場合や変換失敗時に返すデフォルト値。

戻り値:

コマンドライン引数の整数値、またはデフォルト値。

戻り値の型:

int

PHYSBO.bayes_gp_plain.initialize()[ソース]

アプリケーションとパラメータのオブジェクトを初期化し、デフォルト値を設定します。

戻り値:

初期化されたアプリケーションオブジェクトとパラメータオブジェクト。

戻り値の型:

tuple[tkApplication, tkParams]

PHYSBO.bayes_gp_plain.load_data(app, cparams)[ソース]

データファイルを読み込み、記述子と目的関数に分割し、学習データと全データを準備します。 目的関数がNaNの行はテストデータとして扱われます。 目的関数のモード(最小化、目標値)に基づいて値を変換します。

パラメータ:
  • app (tkApplication) -- アプリケーションオブジェクト (メッセージ表示に使用)。

  • cparams (tkParams) -- パラメータオブジェクト (入力ファイル名に使用)。

戻り値:

元のDataFrame、目的関数パラメータ、記述子パラメータ、全データ、学習データ。 ファイル読み込みエラー時は None を含むタプル。

戻り値の型:

tuple[pd.DataFrame or None, tkParams or None, tkParams or None, tkParams or None, tkParams or None]

PHYSBO.bayes_gp_plain.pfloat(s, strict=True, defval=0.0)[ソース]

文字列を浮動小数点数に安全に変換します。変換できない場合は指定されたデフォルト値を返します。

パラメータ:
  • s (str or any) -- 変換する文字列または数値。

  • strict (bool) -- 厳密な変換を行うかどうかのフラグ (現在は未使用)。

  • defval (float) -- 変換失敗時に返すデフォルト値。

戻り値:

変換された浮動小数点数値、またはデフォルト値。

戻り値の型:

float

PHYSBO.bayes_gp_plain.pint(s, strict=True, defval=0)[ソース]

文字列を整数に安全に変換します。変換できない場合は指定されたデフォルト値を返します。

パラメータ:
  • s (str or any) -- 変換する文字列または数値。

  • strict (bool) -- 厳密な変換を行うかどうかのフラグ (現在は未使用)。

  • defval (int) -- 変換失敗時に返すデフォルト値。

戻り値:

変換された整数値、またはデフォルト値。

戻り値の型:

int

PHYSBO.bayes_gp_plain.pintfloat(s, strict=True, defval=0.0)[ソース]

文字列を整数に、それが失敗した場合は浮動小数点数に安全に変換します。 どちらも変換できない場合は指定されたデフォルト値を返します。

パラメータ:
  • s (str or any) -- 変換する文字列または数値。

  • strict (bool) -- 厳密な変換を行うかどうかのフラグ (現在は未使用)。

  • defval (float) -- 変換失敗時に返すデフォルト値。

戻り値:

変換された整数値、浮動小数点数値、またはデフォルト値。

戻り値の型:

int or float

PHYSBO.bayes_gp_plain.read_data_file(app, infile)[ソース]

指定されたファイルからデータを読み込み、Pandas DataFrameとして返します。 Excel (.xlsx) または CSV (.csv) ファイルに対応しています。

パラメータ:
  • app (tkApplication) -- アプリケーションオブジェクト (エラーメッセージ表示に使用)。

  • infile (str) -- 読み込むデータファイルのパス。

戻り値:

読み込んだデータを格納したPandas DataFrame、またはエラー発生時は None

戻り値の型:

pd.DataFrame or None

PHYSBO.bayes_gp_plain.replace_path(path, template, ext_dict)[ソース]

指定されたパスをテンプレートと拡張辞書に基づいて整形します。

パスの各要素(フルパス、ディレクトリ名、ファイル名、ファイル本体、拡張子)が ext_dict に追加され、テンプレート文字列をフォーマットするために使用されます。

パラメータ:
  • path (str) -- 処理する元のファイルパス。

  • template (str) -- ファイルパスを整形するためのテンプレート文字列。

  • ext_dict (dict) -- テンプレートに渡される追加のキーと値の辞書。 この関数内でパスの要素が追加されます。

戻り値:

整形されたファイルパス文字列。

戻り値の型:

str

PHYSBO.bayes_gp_plain.split_raw_data(df_original)[ソース]

DataFrameの列ヘッダーを解析し、目的関数 (ターゲット) と記述子に分割します。 ヘッダーに特定の制御コード(=value:, max:, min:, to:)が含まれる場合、 それに応じて目的関数とそのモードを識別します。

パラメータ:

df_original (pd.DataFrame) -- 処理する元のPandas DataFrame。

戻り値:

目的関数の情報 (tkParamsオブジェクト) と記述子の情報 (tkParamsオブジェクト)。

戻り値の型:

tuple[tkParams, tkParams]

PHYSBO.bayes_gp_plain.terminate(app, message=None, usage=None, pause=False)[ソース]

プログラムを終了します。オプションでメッセージを表示し、使用法を表示し、ユーザーの入力待ちを行うことができます。

パラメータ:
  • app (tkApplication) -- アプリケーションオブジェクト。

  • message (str or None) -- 終了前に表示するメッセージ。

  • usage (function or None) -- 使用法を表示する関数。None の場合は表示しない。

  • pause (bool) -- 終了前にユーザーの入力待ちを行うかどうかのフラグ。

class PHYSBO.bayes_gp_plain.tkApplication(_globals=None, locals=None, **args)[ソース]

ベースクラス: tkObject

アプリケーション全体のコンテキストと設定を管理するためのクラス。

パラメータ、コマンドライン引数、スクリプトパス、使用法文字列などを保持します。

get_argv()[ソース]

現在のコマンドライン引数とその数を取得します。

戻り値:

コマンドライン引数のリストと引数の数。

戻り値の型:

tuple[list[str], int]

get_params()[ソース]

このアプリケーションに関連付けられたパラメータオブジェクトを取得します。 存在しない場合は新しく作成します。

戻り値:

パラメータオブジェクト。

戻り値の型:

tkParams

print(*args, **kwargs)[ソース]

print 関数をラップし、アプリケーションオブジェクトを通じて出力します。

パラメータ:
  • args (any) -- print 関数に渡される位置引数。

  • kwargs (dict) -- print 関数に渡されるキーワード引数。

class PHYSBO.bayes_gp_plain.tkObject[ソース]

ベースクラス: object

汎用的な基底オブジェクトクラス。

辞書形式の属性操作、属性の更新、属性情報の表示機能を提供します。

get(key, defval=None)[ソース]

指定されたキーの属性値を取得します。キーが存在しない場合はデフォルト値を返します。

パラメータ:
  • key (str) -- 取得する属性のキー。

  • defval (any) -- キーが存在しない場合に返すデフォルト値。

戻り値:

属性値、またはデフォルト値。

戻り値の型:

any

printinf(app)[ソース]

オブジェクトの全ての属性情報をコンソールに出力します。

パラメータ:

app (tkApplication) -- アプリケーションオブジェクト (現在は未使用だが引数として定義されている)。

set_attribute(key, val)[ソース]

指定されたキーに属性値を設定します。

パラメータ:
  • key (str) -- 設定する属性のキー。

  • val (any) -- 設定する値。

update(**args)[ソース]

キーワード引数として渡された属性でオブジェクトの属性を更新します。

パラメータ:

args (dict) -- 更新する属性のキーと値のペア。

class PHYSBO.bayes_gp_plain.tkParams(parameter_file=None, **args)[ソース]

ベースクラス: tkObject

アプリケーションのパラメータを管理するためのクラス。

tkObjectを継承し、コマンドライン引数やファイルから読み込んだパラメータを格納します。

printinf(app)[ソース]

オブジェクトの全ての属性情報をコンソールに出力します。

パラメータ:

app (tkApplication) -- アプリケーションオブジェクト (現在は未使用だが引数として定義されている)。

PHYSBO.bayes_gp_plain.update_vars(app, cparams)[ソース]

コマンドライン引数に基づいて、アプリケーションのパラメータを更新します。

sys.argvから引数を読み込み、cparams オブジェクトの対応する属性に設定します。

パラメータ:
  • app (tkApplication) -- アプリケーションオブジェクト。

  • cparams (tkParams) -- 更新するパラメータオブジェクト。

PHYSBO.bayes_gp_plain.usage(app)[ソース]

プログラムの使用法メッセージと引用情報をコンソールに表示します。

パラメータ:

app (tkApplication) -- アプリケーションオブジェクト (パラメータと使用法文字列の取得、引用情報の表示に使用)。