私はPythonでmnistデータ用のSVMを実装しています。今のところ、QPを解決してアルファを取り戻すためにcvxoptを使用しています。
しかし、私の問題はKグラム行列を**効率的に**計算することです。最初は2つのクラス(数字の6と0)だけで、トレーニング例の数は最初の1kから次の10Kまで少なくなりました。
1k x 1k行列全体をより高速に計算するために、私はProcessを使用しており、計算にさまざまなrawを与えています。しかし、それでも2分ほどかかります-そのrbf-ガウス。(10kのものはまだ実行中です!)
誰かがそれに取り組んだり、Python愛好家がここで私を助けてくれるなら、それは素晴らしいことです!
PS:誰かがグラム行列の計算を知らない場合、ここに詳細があります:その単純な:
for i in range(1k):
for j in range(1k):
for K[i,j] = some_fun(x[i], x[j])
ここで、some_fun-はドット積またはファンシーガウスです。
私はpython2.7、numpyとMac Air 4G RAM、128Gソリッドステートを使用しています。
[編集]誰かがここに来たら!はい、SVMは時間がかかります...そして、複数の分類を行う場合は、k-グラム行列を再度計算する必要があります..時間がかかるので、アルゴリズムを実装して2回チェックし、一晩実行することをお勧めします!しかし、あなたは確かに翌日良い結果を見るでしょう!:)