eagpytorch.Classifier package

Module contents

class eagpytorch.Classifier.Approximate(*, inducing_points_num=0.5, kernel='RBFKernel', likelihood='BernoulliLikelihood', 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として使用するクラス名が指定される。

    • 'BernoulliLikelihood' : 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乗に対応する

load(file_path)[source]

モデルのloadメソッド

Parameters

file_path (str) – モデルの保存先のパスとファイル名

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.samples : 入力説明変数に対する予測値yのサンプル(sample_num個サンプルされる)

  • output.samples_f : 入力説明変数に対する予測関数fのサンプル(sample_f_num個サンプルされる)

  • output.probs : 2値分類の予測確率。

Return type

object

save(file_path)[source]

モデルのsaveメソッド

Parameters

file_path (str) – モデルの保存先のパスとファイル名

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.Classifier.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乗に対応する

load(file_path)[source]

モデルのloadメソッド

Parameters

file_path (str) – モデルの保存先のパスとファイル名

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.samples : 入力説明変数に対する予測値yのサンプル(sample_num個サンプルされる)

  • output.samples_f : 入力説明変数に対する予測関数fのサンプル(sample_f_num個サンプルされる)

  • output.probs : 2値分類の予測確率。

Return type

object

save(file_path)[source]

モデルのsaveメソッド

Parameters

file_path (str) – モデルの保存先のパスとファイル名

set_model(train_x, train_y, *, lr=0.001)[source]

使用するモデルのインスタンスを立てるメソッド

Parameters
  • train_x (np.array or torch.tensor) – 学習用データセットの説明変数

  • train_y (np.array or torch.tensor) – 学習用データセットの目的変数

  • lr (float) – 学習率