「ほっ」と。キャンペーン

[R][e1071]libsvmのモデルのインポート/エクスポート

libsvm には write.svm という、モデルを出力する関数があるけれど、
逆の read.svm は実装されていない。

世界中で load model はどうするの?、という質問がたくさん出ている。
僕の github のコードを使ったらいいよ、とか
そんなんばっかりで、あんまりばちっとした回答が書いてあるページがない。

では、モデルのインポート、エクスポートはどうするか。
write.svm は人が読める形式で出力するための関数のようだ。
ので、write.svm でエクスポートしてもダメ、というのが答えかも。
この形式をインポートしても良いけど、
わざわざ人が読める形式にしてあるので、
読み込んでもたぶん dog slow だろう。

というわけで、普通にオブジェクトのバイナリダンプが良いみたい。
確認してみたけど、ダンプ前後でモデルは変わらなかった。

library("e1071")
svm_model <- svm(Species~., data=iris)
modelfile <- "model.svm"
save(svm_model, file=modelfile)
svm_model_loaded = load(modelfile)

[PR]
Commented by h at 2017-01-22 20:07 x
ありがとう

load(svm_model, file=modelfile)
のところを、↓のに変えたら うまくいきました。
load( modelfile )
Commented by xiaoxia at 2017-01-24 17:46
■hさま
お役に立てて何よりです。
一応実行して確認したソースを書いたつもりですが、検索してみたら、hさまのご指摘の方が正しい気がします。
ので、修正しておきます。
ご指摘ありがとうございました。
by xiaoxia | 2016-08-23 17:55 | ソフトウェア | Comments(2)

ダメ女プログラマ&主婦&腐女子&バイオリン弾き


by 小霞