多変数におけるカーネル関数はいままでにいくつか扱ってきました。やったものとしては密度推定と、ナダラヤワトソン推定量による曲線回帰のようなものがあります。blogこれらにおけるカーネルには「乗法的である」という仮定を置いていました。いうようにカーネルの積の形で分解できるもののことを言います。直接プログラム中には出てきませんが、カーネル単回帰の時にもこの仮定は使っています*1。当たり前のように使いましたが、これらを仮定しない多次元カーネル関数というのももちろんあります。多次元のカーネル関数の種類としては乗法的カーネル関数であるという仮定を置いたものユークリッドノルムを用いて定義してあるものバンド幅行列を用いて定義してあるより一般的なものの三種類に大別できます*2。種類というより、包含関係という感じか。ああ、言葉がいつもと違うから書いてて疲れてきた。「乗法的カーネル関数の仮定を置いたもの」と「ユークリッドノルムで定義したもの」をバンド幅h1とh2を変更しつつplotしたのが下の画像。「乗法的カーネル関数の仮定を置いたもの」のほうは長方形みたいに、「ユークリッドノルムで定義したもの」は円なり楕円のような感じになる。c(1,1),c(1,0.5))バンド幅行列を用いて定義してあるより一般的なものバンド幅行列を用いた、より一般的な多変数カーネル関数の定義は次のようになっている。バンド幅行列を使ったやつというのは、要するに(バンド幅行列の逆行列を使って)基底を変換したようなものという感じのやつ。回転させたりとかそんなやつですね。Statistics)のP69付近にこんな記述がある。X.大体訳すると非対角要素があるとどうなるのか?データの分散共分散行列のマイナス1/2乗してやったやつをバンド幅行列に使ってやればいいっていうのが経験則から分かってるよ、っていうのが3.6.2に書いてあるよだから、そういうバンド幅は、データを変換することに対応するよ結果として、Xの相関行列を使えばいいんじゃないかな!!なんか文章がおかしいと思うんですけど、気にしない。3.6.2章を読めってことですね。変換してやってから、カーネルを分解してあげれば何も難しいことはないですね。#outerを使うために、行列計算しないでやっている。#outerを使うために、行列計算しないでやっている。Kernel")参考資料この本の3.6章の付近です。estimatorお、なんか大分間が空いた気がする。Cでナダラヤワトン推定量*1計算させて、R...2009-01-18クロスバリデーション最小化のコード関係をCで書いてみたCで書いてどうなるかを見てみるテスト。(1)スターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。