eagpytorch.Regressor package¶
Module contents¶
-
class
eagpytorch.Regressor.
Approximate
(*, inducing_points_num=0.5, kernel='RBFKernel', likelihood='GaussianLikelihood', optimizer='Adam', mll='VariationalELBO', ard_option=True, ker_conf={}, mll_conf={}, opt_conf={}, random_state=None)[source]¶ Bases:
eagpytorch._base_ApproximateGP.RunApproximateGP
ApproximateGPModelの実行クラス
- Parameters
inducing_points_num (int or float) –
補助変数の個数(int)
もし 0 < inducing_points_num < 1 が渡された場合、学習用データの len と inducing_points_num の積が補助変数の個数として設定される
kernel (str or
gpytorch.kernels
, default'RBFKernel'
) –使用するカーネル関数を指定する。下記から選択する。
'CosineKernel'
'LinearKernel'
'MaternKernel'
'PeriodicKernel'
'RBFKernel'
'RQKernel'
'SpectralMixtureKernel'
基本はstrで指定されることを想定しているものの、
gpytorch.kernels
を用いた自作のカーネル関数を入力することも可能likelihood (str, default
'GaussianLikelihood'
) –likelihoodとして使用するクラス名が指定される。下記から選択する。
'GaussianLikelihood'
,'GL'
: likelihoodにガウス分布を仮定したガウス過程を行う場合'PoissonLikelihood'
,'PL'
: likelihoodにポアソン分布を仮定したポアソン回帰ガウス過程モデルを行う場合
optimizer (str, default
'Adam'
) –optimizerとして使用するクラス名が指定される。下記から選択する。
'Adam'
'sgd'
'RMSprop'
'Adadelta'
'Adagrad'
mll (str, default
'VariationalELBO'
) –確率分布の周辺化の方法のクラス名が指定される。下記から選択する。
'VariationalELBO'
,'VELBO'
'PredictiveLogLikelihood'
,'PLL'
'GammaRobustVariationalELBO'
,'GRVELBO'
ard_option (bool, default True) –
ARDカーネルを利用するかが指定される
もし
kernel_coeff
を利用する場合 ard_option=True を選択するker_conf (dict, default dict()) – カーネル関数に渡す設定
mll_conf (dict, default dict()) – mllに渡す設定
opt_conf (dict, default dict()) – optimizerに渡す設定
random_state (int, default None) – seedの固定
-
fit
(epochs, *, test_dataloader=None, verbose=True)[source]¶ 学習用メソッド
- Parameters
epochs (int) – エポック数
test_dataloader (
torch.utils.data.DataLoader
, default None) –テストデータをまとめたデータローダー
もし test_dataloader を設定している場合エポックごとにテストデータに対するlossも表示されるように設定される
verbose (bool, default True) – 表示形式
-
kernel_coeff
()[source]¶ kernelの係数を出力するメソッド
- Returns
output_dict – カーネル関数の係数
ard_option=True の場合、 $Theta$ が各々の説明変数ごとに重みを変えて更新され、出力される
- Return type
dict
Warning
RBFKernelの場合、各説明変数の重要度 $eta$ は出力される ‘base_kernel.raw_lengthscale’ の逆数の2乗に対応する
-
plot_kernel
(*, kernel=None, plot_range=None, **kwargs)[source]¶ カーネル関数のプロット
- Parameters
kernel (str or
gpytorch.kernels
, default None) – 使用するカーネル関数を指定するplot_range (tuple, default None) – プロットする幅
**kwargs (dict) – カーネル関数に渡す設定
-
predict
(X, *, cl=0.6827, sample_num=None, sample_f_num=None)[source]¶ 予測用メソッド
- Parameters
X (np.array or torch.tensor) – 入力説明変数
cl (float default 0.6827(1sigma)) – 信頼区間
sample_num (int default None) – yのサンプル数
sample_f_num (int default None) – fのサンプル数
- Returns
output – 予測された目的変数のオブジェクト。下記の属性が用意されている。
output.mean : 予測された目的変数の平均値
output.upper : 予測された目的変数の信頼区間の上限
output.lower : 予測された目的変数の信頼区間の下限
output.samples : 入力説明変数に対する予測値yのサンプル(sample_num個サンプルされる)
output.samples_f : 入力説明変数に対する予測関数fのサンプル(sample_f_num個サンプルされる)
- Return type
object
-
set_model
(train_x, train_y, *, lr=0.001, batch_size=128, shuffle=True)[source]¶ 使用するモデルのインスタンスを立てるメソッド
- Parameters
train_x (np.array or torch.tensor) – 学習用データセットの説明変数
train_y (np.array or torch.tensor) – 学習用データセットの目的変数
lr (float) – 学習率
batch_size (int, default 128) – ミニバッチでのデータ数
shuffle (bool, default True) – 学習データをシャッフルしてミニバッチ学習させるかを設定
-
class
eagpytorch.Regressor.
Exact
(*, kernel='RBFKernel', likelihood='GaussianLikelihood', optimizer='Adam', mll='ExactMarginalLogLikelihood', ard_option=True, ker_conf={}, opt_conf={}, mll_conf={}, random_state=None)[source]¶ Bases:
eagpytorch._base_ExactGP.RunExactGP
ExactGPModelの実行クラス
- Parameters
kernel (str or
gpytorch.kernels
, default'RBFKernel'
) –使用するカーネル関数を指定する。下記から選択する。
'CosineKernel'
'LinearKernel'
'MaternKernel'
'PeriodicKernel'
'RBFKernel'
'RQKernel'
'SpectralMixtureKernel'
基本はstrで指定されることを想定しているものの、
gpytorch.kernels
を用いた自作のカーネル関数を入力することも可能likelihood (str, default
'GaussianLikelihood'
) –likelihoodとして使用するクラス名が指定される。
'GaussianLikelihood'
,'GL'
: likelihoodにガウス分布を仮定したガウス過程を行う場合
optimizer (str, default
'Adam'
) –optimizerとして使用するクラス名が指定される。下記から選択する。
'Adam'
'sgd'
'RMSprop'
'Adadelta'
'Adagrad'
mll (str, default
'ExactMarginalLogLikelihood'
) –確率分布の周辺化の方法のクラス名が指定される。
'ExactMarginalLogLikelihood'
ard_option (bool, default True) –
ARDカーネルを利用するかが指定される
もし
kernel_coeff
を利用する場合 ard_option=True を選択するker_conf (dict, default dict()) – カーネル関数に渡す設定
mll_conf (dict, default dict()) – mllに渡す設定
opt_conf (dict, default dict()) – optimizerに渡す設定
random_state (int, default None) – seedの固定
-
fit
(epochs, *, test_x=None, test_y=None, verbose=True)[source]¶ 学習用メソッド
- Parameters
epochs (int) – エポック数
test_x (np.ndarray or torch.tensor, default None) – 説明変数のテストデータ
test_y (np.ndarray or torch.tensor, default None) –
目的変数のテストデータ
もし test_x, test_y を設定している場合エポックごとにテストデータに対するlossも表示されるように設定される
verbose (bool, default True) – 表示形式
-
kernel_coeff
()[source]¶ kernelの係数を出力するメソッド
- Returns
output_dict – カーネル関数の係数
ard_option=True の場合、 $Theta$ が各々の説明変数ごとに重みを変えて更新され、出力される
- Return type
dict
Warning
RBFKernelの場合、各説明変数の重要度 $eta$ は出力される ‘base_kernel.raw_lengthscale’ の逆数の2乗に対応する
-
plot_kernel
(*, kernel=None, plot_range=None, **kwargs)[source]¶ カーネル関数のプロット
- Parameters
kernel (str or
gpytorch.kernels
, default None) – 使用するカーネル関数を指定するplot_range (tuple, default None) – プロットする幅
**kwargs (dict) – カーネル関数に渡す設定
-
predict
(X, *, cl=0.6827, sample_num=None, sample_f_num=None)[source]¶ 予測用メソッド
- Parameters
X (np.array or torch.tensor) – 入力説明変数
cl (float default 0.6827(1sigma)) – 信頼区間
sample_num (int default None) – yのサンプル数
sample_f_num (int default None) – fのサンプル数
- Returns
output – 予測された目的変数のオブジェクト。下記の属性が用意されている。
output.mean : 予測された目的変数の平均値
output.upper : 予測された目的変数の信頼区間の上限
output.lower : 予測された目的変数の信頼区間の下限
output.samples : 入力説明変数に対する予測値yのサンプル(sample_num個サンプルされる)
output.samples_f : 入力説明変数に対する予測関数fのサンプル(sample_f_num個サンプルされる)
- Return type
object