深層学習とその他

機械学習したいマン

scikit-learnのSVMの処理時間を比較する

アドベントカレンダー17日目です。
今日はscikit-learnのSVMの処理時間を比較してみたいと思います。

adventar.org

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スプレッドシートはグラフがきれいでいいですね。

 

実際の計測結果は以下から確認できます。