SVMでいくつかの予測モデルを構築するscikit-learnで作業しています。私は約5000の例と約700の特徴を持つデータセットを持っています。私は自分のトレーニングセットで18x17グリッド検索を使って5倍のクロスバリデーションを行い、次にテストセットに最適なパラメータを使用します。いくつかの個々のSVMの訓練の反復は他の人が最大15分かかることができますが、唯一の分を取るように見える)SVMの実装、scikitsの実行時間の短縮、最速のSVM
1:実行は、私が予想以上に時間をたくさん取っていると私は次のように気づきました。これは異なるデータとパラメータ(Cとガンマ、私はrbf
カーネルを使用しています)で期待されていますか?
2)余分なメモリを利用するために64ビットのPythonをWindows上で使用しようとしていますが、私のすべてのPythonプロセスはタスクマネージャの1ギガでトップに見えますが、ランタイムと関係します。私は結果を下に保存していないのに
3)私はそれがかなり速いもの)(前32ビットを使用し、同じデータセットについてのランニング、と私は覚えていました。私は、32ビットのPythonでこれを試してみるのが良いかどうかわからないので、第三者ビルドのscikit-learnを64ビットウィンドウ用に使用しましたか? (ソースhttp://www.lfd.uci.edu/~gohlke/pythonlibs/)
どのように私はランタイムを減らすことができます上の提案は大歓迎です。私はグリッド検索の検索スペースを減らすのが助かりますが、最適なパラメータの範囲についてもわからないので、できるだけ大きなものにしておきたいと思います。より高速なSVM実装がある場合は、私に知らせてください。私はそれらを試すかもしれません。
補足:私は戻って、32ビット版をもう一度実行しようとしました。何らかの理由ではるかに高速です。 16時間で64ビットバージョンに到達するまでには約3時間かかりました。なぜそのような違いがありますか?
お返事ありがとうございます。彼らは多くの意味があります。私は32bitと64bitのどちらの問題についてもわからないが、チャンスがあれば、もう少し時間をかけて実行しようとするだろう。私のデータは前処理され(0-1に正規化されています)、私はscikits(たぶん、過剰スキル)のためにcache_sizeを4000に増やしました。私は間違いなく私のコードを修正して、粗いグリッドからより小さな領域に移動するようにします。これは間違いなく私のコードのスピードアップに役立ちます。再度、感謝します。 – tomas
@Origrisel、一般的な粗くて細かいグリッドサーチャーはどうですか? – denis
他の質問があります。クロスバリデーション+グリッド検索を行っている場合、どのように粗いグリッド検索を使用することができますか?クロス検証をいくつか実行して平均化しようとすると、粗いものから細かいものまで、検索スペースは一致しません。私にはわからない/紛失した良い方法があると確信しています。 – tomas