5 つのラベルを持つ 2 つのマルチクラス データ セットがあり、1 つはトレーニング用、もう 1 つは相互検証用です。これらのデータ セットは .csv ファイルとして保存されるため、この実験ではコントロールとして機能します。
libsvm 用の C++ ラッパーと、libsvm 用の MATLAB 関数があります。
C++ と MATLAB の両方の場合: RBF カーネルで C タイプの SVM を使用して、C 値とガンマ値の 2 つのリストを反復処理します。パラメータの組み合わせごとに、トレーニング データ セットでトレーニングしてから、クロス検証データ セットを予測します。予測の精度を 2D マップに保存します。これは、精度をもたらした C 値とガンマ値に相関します。
私は、さまざまなトレーニングおよび相互検証データ セットを何度も再作成しました。C++ と MATLAB の精度は毎回異なります。時にはたくさん!ほとんどの場合、MATLAB の方が精度が高くなりますが、C++ 実装の方が優れている場合もあります。
これらの違いは何が原因でしょうか? 私が試しているC /ガンマ値は同じで、残りのSVMパラメーター(デフォルト)も同じです。