Help us understand the problem. What is going on with this article?

numpyを使ってRBFでカーネル回帰をやってみる

More than 1 year has passed since last update.

カーネル回帰とは

カーネル関数を用いて学習・予測を行う回帰。
非線形なデータに対しての回帰に有効である。
予測時にも訓練データを使用する。

RBF

ガウスカーネルとも呼ばれる。無限次元特徴ベクトルの内積としてみなすことができる。
RBFは次式で表される。

k(x_i, x_j) = \exp(-\gamma||x_i - x_j||^2)

i行j列目の要素を $k(x_i, x_j)$ とする行列が$K$である。つまり$K$はサンプル数を次元とする正方行列である。

numpyでKを計算

def rbf(x1, x2, gamma=0.1):
    return np.exp(-1 * gamma * (np.linalg.norm(x1- x2, axis=2)))

x = np.arange(120).reshape(40,3)
K = rbf(x[:, np.newaxis, :], x[np.newaxis, :, :])
print(K.shape)

numpyのnewaxisとbroadcastを活用してx1とx2の距離を計算している。

続く...

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away