昨日書いたSVMのカーネルは線形カーネル(というかただの内積)だったので、多項式カーネルにパワーアップ!させてみた。 参考: perlでSGD版SVMを書いてみた - EchizenBlog-Zwei といってもreturnをちょっといじっただけ。SVMは訓練データの影響がカーネル内で閉じているので、カーネルを色々置き換えるだけで様々な学習ができる。昨日の色分類の例ではRGB値の3次元で線形分離できてしまったので線形カーネルで十分だったのだが、折角なので多項式カーネルも用意してみた次第。さしあたり面白い適用例が見つからなかったのでカーネルのコードだけ置いておく。 sub kernel { my $x1 = shift; my $x2 = shift; my $p = shift; my $c = shift; my $k = 0; for (my $i = 0; $i < $d; $i++