scikit_regressions プログラム仕様

scikit-regressions.py

概要:

scikit-learnの様々な回帰モデルを使用してデータ分析と予測を行うスクリプト。

詳細説明:

Excelファイルからデータを読み込み、記述子(独立変数)と目的変数(従属変数)を抽出します。 データをトレーニングセットとテストセットに分割し、指定された回帰モデル(線形回帰、リッジ、LASSO、 Elastic Net、多項式回帰、ガウス過程回帰、多層パーセプトロン、ランダムフォレスト、SVR、SGDRegressor)で学習を行います。 学習後、トレーニングデータ、テストデータ、および目的変数が欠損しているデータに対して予測値を計算し、 評価指標(MAE, MSE, RMSE, R^2)を出力します。 予測結果は元のデータフレームに結合され、新しいExcelファイルとして保存されます。 さらに、データの分布、相関、実測値と予測値の比較、各記述子に対する目的変数の変動など、 様々な種類のグラフ(箱ひげ図、ヒートマップ、ペアプロット、散布図)を生成して表示します。 コマンドライン引数を通じて、入力ファイル、回帰手法、分割比率、モデルパラメータ、プロットオプションなどを 柔軟に設定できます。

関連リンク:

scikit_regressions.py 技術ドキュメント # sklearnの回帰モデルを片っ端から試す # https://qiita.com/futakuchi0117/items/72ce4afae9adcccd6e18

regression.scikit_regressions.main()[ソース]
概要:

メイン処理を実行する関数。

詳細説明:

プログラムの開始点であり、コマンドライン引数とグローバル変数からパラメータを読み込む。 Excelファイルを読み込み、split_df 関数でデータを記述子と目的変数に分割する。 データをトレーニングセットとテストセットに分割し、指定された回帰モデルで学習・予測を行う。 各種評価指標(MAE, MSE, RMSE, R^2)を計算し、予測結果をExcelファイルに保存する。 最後に、データの分布、相関、実測値と予測値の比較、各記述子に対する目的変数の変動など、 様々な種類のグラフを生成して表示する。

戻り値:

なし

戻り値の型:

None

regression.scikit_regressions.pint(s, def_val=None)[ソース]
概要:

文字列を整数に変換する。

詳細説明:

指定された文字列を整数型に変換して返す。 変換に失敗した場合は、デフォルト値 def_val を返す。

パラメータ:
  • s (str) -- 変換対象の文字列。

  • def_val (int or None) -- 変換失敗時に返すデフォルト値。Noneの場合はNoneを返す。

戻り値:

変換された整数、または def_val

戻り値の型:

int or None

regression.scikit_regressions.remove_control_tag(s)[ソース]
概要:

文字列から特定の制御タグを削除する。

詳細説明:

入力文字列が空の場合はそのまま返す。 文字列がハイフン (-) で始まる場合は、最初の2文字(例えば -x から x)を削除する。 または、t:, o:, max:, min: などのパターンにマッチした場合、そのタグ部分を削除した文字列を返す。 それ以外の場合は、元の文字列をそのまま返す。

パラメータ:

s (str) -- 制御タグを含む可能性のある入力文字列。

戻り値:

制御タグが削除された文字列。

戻り値の型:

str

regression.scikit_regressions.split_df(df)[ソース]
概要:

DataFrameを記述子、目的変数、全データ、既存データ、予測対象データに分割する。

詳細説明:

入力DataFrameの列名から、特定のパターン(-`や`t:o:max:min:`など)に基づいて 記述子(独立変数)と目的変数(従属変数)を識別する。 目的変数が欠損している行は予測対象データ (`predict_data.df) として分離し、 目的変数がすべて存在する行は既存データ (exist_data.df) として扱う。 元の制御タグが付いた列名と、タグが削除されたクリーンな列名 (labels0) の両方を管理する。

パラメータ:

df (pandas.DataFrame) -- 分割対象のPandas DataFrame。

戻り値:

以下のtkParamsオブジェクトのタプル: - descriptors: 記述子に関する情報(列名、データフレーム)。 - objectives: 目的変数に関する情報(列名、データフレーム)。 - all: 元のDataFrameに関する情報(全列名、全データフレーム)。 - exist_data: 目的変数がすべて存在する行のデータフレーム。 - predict_data: 目的変数が欠損している行のデータフレーム。

戻り値の型:

tuple[tkParams, tkParams, tkParams, tkParams, tkParams]

class regression.scikit_regressions.tkObject[ソース]

ベースクラス: object

概要:

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

詳細説明:

オブジェクトの属性の取得、設定、更新、および標準出力へのパラメータ情報表示機能を提供する。

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

オブジェクトの属性値を取得する。

詳細説明:

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

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

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

戻り値:

属性値、または defval

戻り値の型:

any

printinf(app)[ソース]
概要:

オブジェクトのパラメータ情報を標準出力に表示する。

詳細説明:

オブジェクトの内部辞書 (__dict__) に含まれるすべてのキーと値のペアを整形して出力する。

パラメータ:

app (tklib.tkapplication.tkApplication) -- Tkinterアプリケーションインスタンス (未使用)。

戻り値:

なし

戻り値の型:

None

set_attribute(key, val)[ソース]
概要:

オブジェクトの属性値を設定する。

詳細説明:

指定されたキーに値を設定する。 もしキーがすでに存在すれば上書きし、存在しなければ新たに作成する。

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

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

戻り値:

なし

戻り値の型:

None

update(**args)[ソース]
概要:

複数の属性値を一括で更新する。

詳細説明:

キーワード引数として渡された辞書でオブジェクトの属性を更新する。 既存の属性は上書きされ、新しい属性は追加される。

パラメータ:

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

戻り値:

なし

戻り値の型:

None

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

ベースクラス: tkObject

概要:

プログラムのパラメータを管理するクラス。

詳細説明:

tkObject を継承し、コマンドライン引数を初期化時に保持し、 パラメータを更新する機能を提供する。 プログラムの実行時に指定される様々な設定値を格納するために使用される。

パラメータ:
  • parameter_file (str or None) -- パラメータを読み込むファイルパス (現在は未使用)。

  • args (dict) -- キーワード引数として渡される初期パラメータ。

printinf(app)[ソース]
概要:

オブジェクトのパラメータ情報を標準出力に表示する。

詳細説明:

オブジェクトの内部辞書 (__dict__) に含まれるすべてのキーと値のペアを整形して出力する。 このメソッドは tkObjectprintinf と同じ動作をする。

パラメータ:

app (tklib.tkapplication.tkApplication) -- Tkinterアプリケーションインスタンス (未使用)。

戻り値:

なし

戻り値の型:

None