RBF (Gaussian) Kernel Modelを使うためのWrapper Classを作りました

分類問題において,非線形な決定境界を表現するための一つの方法に,RBF Kernel Modelがあります. これは,入力xを以下で定義される\phi(x)に変換するものです.

\phi_i(x)=\exp\left(-\gamma\|x-x_i\|\right), \ \forall i=1,\ldots,n.

コードはGistに載せてあります:

https://gist.github.com/nkt1546789/e41199340f7a42c515be

使い方は,例えばsklearnのLogisticRegressionに適用したい場合は,

clf=RbfModelWrapper(LogisticRegression()).fit(X,y)

同様にRidgeに適用したい場合は,

clf=RbfModelWrapper(Ridge()).fit(X,y)

ちなみにGridSearchもできるようになっています:

gs=GridSearchCV(RbfModelWrapper(Ridge()),param_grid={"gamma":np.logspace(-2,0,9),"alpha":[1,10,100]}).fit(X[itr],y[itr])