ridge_gaussian_basis プログラム仕様
ガウス基底関数を用いたリッジ回帰を実行し、結果を可視化するスクリプトです。
このスクリプトは、指定されたデータセットに対してガウス基底関数を使用したリッジ回帰分析を実行します。 コマンドライン引数を通じて、入力ファイル、ガウス基底関数の数、幅、リッジ正則化パラメータを 調整することが可能です。計算された係数とフィッティング結果はグラフにプロットされ、視覚的に 分析結果を確認できます。
関連リンク: Ridge Gaussian Basis Regression
- regression.ridge_gaussian_basis.Ridge(x, y, m, lmda=0.0)[ソース]
ガウス基底関数を用いたリッジ回帰により、係数ベクトルを計算します。
入力データ (x, y) と m 個のガウス基底関数に対し、以下の正規方程式を解きます。 Sij は基底関数の内積行列、Si はデータと基底関数の内積ベクトルです。 正則化パラメータ lmda を対角要素に追加することで、過学習を抑制します。 最終的に c = (Sij + lmda * I)^-1 * Si を計算します。
- パラメータ:
x -- numpy.ndarray or list: 独立変数のデータポイントの配列。
y -- numpy.ndarray or list: 従属変数のデータポイントの配列。
m -- int: 使用するガウス基底関数の数。
lmda -- float, optional: リッジ正則化のパラメータ。デフォルトは0.0 (通常の最小二乗法)。
- 戻り値:
list: 計算されたガウス基底関数の係数のリスト。
- regression.ridge_gaussian_basis.lsqfunc(i, x)[ソース]
指定されたインデックスのガウス基底関数の値を計算します。
グローバル変数 x0 (ガウス基底関数の中心) と wG (ガウス基底関数の幅) を使用して、 指定された x におけるガウス関数 exp(-((x - x0[i]) / wG)^2) の値を計算します。
- パラメータ:
i -- int: ガウス基底関数の中心 x0 のインデックス。
x -- float: 関数値を計算する独立変数の値。
- 戻り値:
float: 計算されたガウス基底関数の値。
- regression.ridge_gaussian_basis.main()[ソース]
プログラムのエントリポイントであり、リッジ回帰の実行と結果の可視化を行います。
この関数は以下のステップを実行します。 1. コマンドライン引数を解析し、入力ファイル名、ガウス基底関数の数、幅、リッジパラメータを設定します。 2. Excelファイルからデータを読み込みます。 3. ガウス基底関数の中心 x0 をデータの範囲に基づいて生成します。また、グローバル変数 x0 と wG を設定します。 4. Ridge 関数を呼び出してガウス基底関数の係数を計算します。 5. 計算された係数を用いて、滑らかな曲線 (フィッティング結果) を生成します。 6. 入力データとフィッティング結果、および計算された係数をグラフにプロットします。 7. ユーザーの入力があるまでプロットを表示し続けます。
- Param:
なし
- 戻り値:
なし