tksynthetic プログラム仕様

tksynthetic.py

最小二乗プログラムの動作確認用の内部生成データユーティリティ。

tksynthetic.py ライブラリ技術ドキュメント

class regression.tklsq.tksynthetic.SyntheticData(x: ndarray, y: ndarray, y_clean: ndarray, y_noise: ndarray, true_params: dict, noise_std: float, seed: int | None = None)[ソース]

ベースクラス: object

合成データとその生成情報を保持するデータクラス。

概要:

合成データとその生成情報を保持するデータクラス。

詳細説明:

x, y (ノイズ付き), y_clean (ノイズなし), y_noise (ノイズ成分) などのデータ配列に加え、 データ生成に使用された真のパラメータやノイズの標準偏差などの情報もカプセル化する。

パラメータ:
  • x (numpy.ndarray) -- x軸のデータ配列。

  • y (numpy.ndarray) -- ノイズを含むy軸のデータ配列。

  • y_clean (numpy.ndarray) -- ノイズを含まない真のy軸データ配列。

  • y_noise (numpy.ndarray) -- yに加算されたノイズ成分のデータ配列。

  • true_params (dict) -- データ生成に使用された真のモデルパラメータを格納した辞書。

  • noise_std (float) -- データ生成に使用されたノイズの標準偏差。

  • seed (Optional[int]) -- 乱数生成に使用されたシード値。指定がない場合はNone。

noise_std: float
seed: int | None = None
true_params: dict
x: ndarray
y: ndarray
y_clean: ndarray
y_noise: ndarray
regression.tklsq.tksynthetic.generate_noisy_data(model_func: Callable[[ndarray, Mapping[str, float]], Sequence[float] | ndarray], x: Sequence[float] | ndarray, true_params: Mapping[str, float], *, noise_std: float = 0.05, seed: int | None = 0, noise: str = 'normal', relative_noise: bool = False) SyntheticData[ソース]

モデル関数からノイズ付きデータを生成する。

概要:

与えられたモデル関数と真のパラメータに基づいて、指定されたタイプのノイズを含む合成データを生成する。

詳細説明:
  1. モデル関数 model_func(x_array, true_params) を使用して、ノイズを含まない y_clean を計算します。

  2. 指定された noise_stdseed を用いて、正規分布または一様分布に従うノイズ eps を生成します。

  3. relative_noiseTrue の場合、ノイズは y_clean の絶対値に比例して適用されます。

  4. y_clean にノイズを加算して、最終的なノイズ付きデータ y を生成します。

  5. 生成されたすべてのデータを SyntheticData オブジェクトとして返します。

パラメータ:
  • model_func (Callable[[numpy.ndarray, Mapping[str, float]], ArrayLike]) -- y_clean = model_func(x_array, true_params) の形式で、x配列とパラメータ辞書を受け取り、y配列を返すCallableオブジェクト。

  • x (ArrayLike) -- x軸の入力データ。numpy.ndarrayまたはfloatのシーケンス。

  • true_params (Mapping[str, float]) -- モデル関数の真のパラメータを格納した辞書。

  • noise_std (float) -- ノイズの標準偏差。

  • seed (Optional[int]) -- 乱数生成のシード値。同じシード値を使用すると再現可能なノイズが生成される。Noneの場合は非再現的。

  • noise (str) -- 生成するノイズのタイプ。'normal' (正規分布) または 'uniform' (一様分布) を指定。

  • relative_noise (bool) -- ノイズを相対的に適用するかどうか。Trueの場合、ノイズはy_cleanの絶対値に比例してスケールされる。

例外:

ValueError -- model_funcの出力サイズとxのサイズが一致しない場合、またはnoiseが'normal'でも'uniform'でもない場合。

戻り値:

生成された合成データと関連情報を含むSyntheticDataオブジェクト。

戻り値の型:

SyntheticData

regression.tklsq.tksynthetic.generate_replicates(model_func: Callable[[ndarray, Mapping[str, float]], Sequence[float] | ndarray], x: Sequence[float] | ndarray, true_params: Mapping[str, float], *, noise_std: float = 0.05, seed: int | None = 0, n_replicates: int = 3) SyntheticData[ソース]

同じx値に対する繰り返し測定(レプリケート)をシミュレートしたノイズ付きデータを生成する。

概要:

与えられたx値とモデル関数に対して、複数回の繰り返し測定に見立てたノイズ付きデータを生成する。

詳細説明:

この関数は、単一のxデータセットとモデル関数から y_clean を計算し、 その y_cleann_replicates 回独立した正規ノイズを加えることで、 繰り返し測定のデータセットをシミュレートします。 結果として、x軸のデータは複製され、各x値に対応する複数のy値が存在するデータセットが生成されます。

パラメータ:
  • model_func (Callable[[numpy.ndarray, Mapping[str, float]], ArrayLike]) -- y_clean = model_func(x_array, true_params) の形式で、x配列とパラメータ辞書を受け取り、y配列を返すCallableオブジェクト。

  • x (ArrayLike) -- x軸の入力データ(レプリケート元)。numpy.ndarrayまたはfloatのシーケンス。

  • true_params (Mapping[str, float]) -- モデル関数の真のパラメータを格納した辞書。

  • noise_std (float) -- ノイズの標準偏差。

  • seed (Optional[int]) -- 乱数生成のシード値。同じシード値を使用すると再現可能なノイズが生成される。Noneの場合は非再現的。

  • n_replicates (int) -- 生成する繰り返し測定の数。

戻り値:

生成された合成データと関連情報を含むSyntheticDataオブジェクト。xとyの配列サイズは元のn_replicates倍になる。

戻り値の型:

SyntheticData

regression.tklsq.tksynthetic.make_x_grid(xmin: float = 0.0, xmax: float = 1.0, n: int = 50, *, kind: str = 'linear') ndarray[ソース]

線形または対数スケールのxグリッド配列を生成する。

概要:

指定された範囲と要素数で、線形または対数スケールのxグリッド配列を生成する。

詳細説明:

'linear'を指定するとnp.linspaceを用いて等間隔のグリッドを生成し、 'log'を指定するとnp.geomspaceを用いて対数等間隔のグリッドを生成する。 'log'の場合はxminとxmaxが正である必要がある。

パラメータ:
  • xmin (float) -- グリッドの最小値。

  • xmax (float) -- グリッドの最大値。

  • n (int) -- グリッドの要素数。

  • kind (str) -- グリッドの種類。'linear' (線形) または 'log' (対数) を指定。

例外:

ValueError -- kindが'linear'または'log'ではない場合、または'log'でxmin/xmaxが0以下の場合。

戻り値:

生成されたxグリッド配列。

戻り値の型:

numpy.ndarray

regression.tklsq.tksynthetic.save_xy_csv(path: str | Path, data: SyntheticData, *, include_clean: bool = True) None[ソース]

合成データをCSVファイルに保存する。

概要:

SyntheticData オブジェクトに含まれるx, yデータをCSVファイルとして保存する。

詳細説明:

指定されたファイルパスにCSVファイルを書き込みます。 include_cleanTrue の場合、y_clean (ノイズを含まない真値) と y_noise (ノイズ成分) の列もCSVに含まれます。 指定されたパスの親ディレクトリが存在しない場合は、自動的に作成されます。

パラメータ:
  • path (Union[str, Path]) -- 保存先のファイルパス。文字列またはPathオブジェクト。

  • data (SyntheticData) -- 保存する SyntheticData オブジェクト。

  • include_clean (bool) -- y_cleany_noise の列をCSVに含めるかどうか。デフォルトはTrue。

戻り値:

なし

戻り値の型:

None

regression.tklsq.tksynthetic.synthetic_summary(data: SyntheticData) str[ソース]

合成データの概要を整形された文字列として返す。

概要:

SyntheticData オブジェクトの主要な情報を人間が読める形式の文字列として生成する。

詳細説明:

データセットのサンプル数、xとyの範囲、ノイズの標準偏差、乱数シード、 そしてデータ生成に使用された真のパラメータのリストを含む詳細な概要を生成します。 この出力はデバッグやログ記録に役立ちます。

パラメータ:

data (SyntheticData) -- 概要を生成する SyntheticData オブジェクト。

戻り値:

データの概要を示す整形済み文字列。

戻り値の型:

str