3.7.8.5. renom.utility.preprocess.whitening package

class Whitening ( X , adding=True , zero=True )

白色化したデータを使うと、機械学習のパフォーマンスを向上させることができる。このクラスは入力データを白色化する。ここで、入力の行列をXとすると、X * X.T は正則でなくてはならない。すなわち、もし入力の1つ1つの画像が(28,28)行列(28×28=784)ならば、入力となる行列は784個以上の画像を含む必要がある(よって、入力行列は(784,x>784)、ただしxは画像の個数)。また、MNISTのように真っ白な(もしくは単色の)行や列を持つ画像が多くあるデータセットは使用できない(X * X.T が正則でなくなってしまうため)。

パラメータ:
  • X ( ndarray ) – 白色化するデータ
  • adding ( bool ) – Trueなら、計算途中で使うDに微小値を加える。FalseならDをそのまま使うが、データによっては計算ができなくなる恐れがある
  • zero ( bool ) – Trueならゼロ位相白色化、FalseならPCA白色化を行う
Example:
>>> from renom.utility.preprocess import Whitening
>>> X, _ = load_cifar10()  #load cifar10 images
>>> hoge = Whitening(X)
>>> _, transformed_X = hoge.transform()
>>> 2045th_image = transformed_X[:, 2045].reshape(3, 32, 32).transpose(1, 2, 0)
>>> 2045th_image = (2045th_image - 2045th_image.min()) / (2045th_image - 2045th_image.min()).max()
>>> plt.imshow(2045th_image)
>>> plt.show()
transform ( )

P(Uを計算するために使う)とUを返す

Return ndarray:

白色化されたデータの行列

Example:
>>> from renom.utility.preprocess import Whitening
>>> X, _ = load_cifar10()  #load cifar10 images
>>> hoge = Whitening(X)
>>> transed_X = hoge.transform()
get_keynumber ( )

Return x_mean, P, U (x_mean is input_x.mean(), U is whitened picture data, U = P * input_x)

Return float:

入力xの平均値

Return ndarray:

Uを計算するのに使う行列

Return ndarray:

白色化されたデータを含む行列

Example:
>>> from renom.utility.preprocess import Whitening
>>> hoge = Whitening(X)
>>> _, transed_X = hoge.transform()
>>> x_mean, P ,U = hoge.get_keynumber()
whiten ( x , do_zero=True , do_adding=True )

白色化したデータを使うと、機械学習のパフォーマンスを向上させることができる。このクラスは入力データを白色化する。ここで、入力の行列をXとすると、X * X.T は正則でなくてはならない。すなわち、もし入力の1つ1つの画像が(28,28)行列(28×28=784)ならば、入力となる行列は784個以上の画像を含む必要がある(よって、入力行列は(784,x>784)、ただしxは画像の個数)。また、MNISTのように真っ白な(もしくは単色の)行や列を持つ画像が多くあるデータセットは使用できない(X * X.T が正則でなくなってしまうため)。

パラメータ:
  • X ( ndarray ) – 白色化するデータ
  • do_adding ( bool ) – Trueなら、計算途中で使うDに微小値を加える。FalseならDをそのまま使うが、データによっては計算ができなくなる恐れがある
  • do_zero ( bool ) – Trueならゼロ位相白色化、FalseならPCA白色化を行う
Return ndarray:

白色化されたデータを含む行列

Example:
>>> from renom.utility.preprocess import whiten
>>> X, _ = load_cifar10()  #load cifar10 images
>>> transed_X = whiten(x)
>>> 2045th_image = transed_X[:, 2045].reshape(3, 32, 32).transpose(1, 2, 0)
>>> 2045th_image = (2045th_image - 2045th_image.min()) / (2045th_image - 2045th_image.min()).max()
>>> import matplotlib.pyplot as plt
>>> plt.imshow(2045th_image)
>>> plt.show()
whiten_reverse ( x )

白色化されたデータをもとのデータに戻す

Return ndarray:

元のデータを含む行列

Example:
>>> from renom.utility.preprocess import  Whitening, whiten, whiten_reverse
>>> X, _ = load_cifar10()  #load cifar10 images
>>> transed_X = whiten(X)
>>> original_data = whiten_reverse(transed_X)  # show the 2045th picture
>>> import matplotlib.pyplot as plt
>>> 2045th_image = original_data[:, 2045].reshape(3, 32, 32).transpose(1, 2, 0)
>>> plt.imshow(2045th_image)
>>> plt.show()