私はscikit-learnを使用して、SVMを使用したいくつかの予測モデルの構築に取り組んでいます。約5000の例と約700の機能を含むデータセットがあります。トレーニングセットで18x17グリッド検索を行い、テストセットに最適なパラメーターを使用して、5分割交差検証を行っています。実行に予想よりもはるかに時間がかかり、次のことに気づきました。
1)個々のSVMトレーニングの反復には、1分しかかからないように見えるものもあれば、最大15分かかるものもあります。これは、異なるデータとパラメーター(Cとガンマ、rbf
カーネルを使用しています)で予想されますか?
2)余分なメモリを利用するためにWindowsで64ビットPythonを使用しようとしていますが、すべてのPythonプロセスがタスクマネージャーで1ギガでトップになっているようです。それが、ランタイム。
3)以前は32ビットを使用していて、ほぼ同じデータセットで実行していましたが、(結果を保存しませんでしたが)かなり高速だったことを覚えています。私は64ビットウィンドウ用にscikit-learnのサードパーティビルドを使用したので、32ビットPythonでこれを試す方が良いかどうかわかりませんか?(ソースhttp://www.lfd.uci.edu/~gohlke/pythonlibs/)
ランタイムを短縮する方法についての提案をいただければ幸いです。グリッド検索の検索スペースを減らすことは役立つと思いますが、最適なパラメーターの範囲さえわからないので、できるだけ大きくしたいと思います。より高速なSVM実装もある場合は、お知らせください。試してみる場合があります。
補遺:戻って、32ビットバージョンを再度実行してみました。なんらかの理由ではるかに高速です。64ビットバージョンが16時間で到達するまでに約3時間かかりました。なぜそのような違いがあるのでしょうか?