scikit-learnのSVMの処理時間を比較する
アドベントカレンダー17日目です。
今日はscikit-learnのSVMの処理時間を比較してみたいと思います。
kernelごとの速度を計測する
今回は、「linear」「rbf」「poly」「sigmoid」の処理時間を計測してみます。
計測に使用するデータは、当初sklearnについてるdigitsを考えていたのですが、より大きなデータで試したかったので、mnistを使います。
自分でmnistのデータを拾って準備するのは面倒なので、chainerをimportして、get_mnist関数を使ってデータを取得します。
データの件数は6万件あり、データの件数が多すぎるので、今回は10分の1のデータを使います。
データとラベルを切り分ける方法があるのかわからなかったので、とりあえず無理やり分けました。
SVMのその他のパラメータは今回は特に指定しません。
計測結果
linear
CPU times: user 5.92 s, sys: 23.4 ms, total: 5.94 s
Wall time: 5.95 s
rbf
CPU times: user 15.8 s, sys: 3.52 ms, total: 15.8 s
Wall time: 15.8 s
poly
CPU times: user 57.8 s, sys: 15.5 ms, total: 57.9 s
Wall time: 57.9 s
sigmoid
CPU times: user 20.1 s, sys: 5.94 ms, total: 20.1 s
Wall time: 20.2 s
あとは意味もなく比較のグラフを作りました。googleスプレッドシートはグラフがきれいでいいですね。
実際の計測結果は以下から確認できます。