問題タブ [libsvm]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
windows - ウィンドウで libsvm の easy.py を実行するには?
私は libsvm を初めて使用し、ばかげた質問をして申し訳ありません。easy.py を実行しようとしていますが、問題があります。私は持っている
- libsvm-3.1 パッケージをダウンロードし、C:\User\Cassie\libsvmに解凍します
- Python をインストールすると、C:/Python27にフォルダーが作成されます
- gp443win32.zipをダウンロードし、Download フォルダーのフォルダー gnuplot に展開します。gnuplot.exeのコピーを作成し、 C:\User\Cassie\libsvm3-1\libsvm3-1\toolsに貼り付けます。
- Window 7 で cmd を呼び出し、「easy.py myfile.txt」と入力します。しかし、エラーメッセージが表示されました
「トレースバック (最新の呼び出しが最後): ファイル "C:\User\Cassie\libsvm-3.1\libsvm-3.1\tools\easy.py"、31 行目、assert os.path.exists(gnuplot_exe) 内、"gnuplot 実行可能ファイル見つかりません" AssertionError: gnuplot 実行可能ファイルが見つかりません"
質問:
- 間違った gnuplot パッケージをインストールしましたか?
- 間違ったアプリケーションを移動しましたか? gnuplot.exe
- cmd がgnuplot.exeを見つけられるように、パスまたは環境を構成する必要がありましたか?
- easy.pyを実行するために間違ったコマンドを入力しましたか?
- 最初にトレーニング ファイルにラベルを付ける必要がありますか?
libsvm には多くの情報があり、本当に混乱しました。この問題に関する経験は大歓迎です。どうもありがとうございました。
opencv - OpenCV + HOG +SVM: SVM 単一特徴ベクトルに必要なヘルプ
OpenCV2.3 を使用して、SVM と HOG に基づく人物検出システムを実装しようとしています。しかし、私は立ち往生しました。
ここまで来ました: 画像データベースから HOG 値を計算し、LIBSVM で SVM ベクトルを計算できます。たとえば、それぞれ 3780 の値を持つ 1419 の SVM ベクトルが得られます。
OpenCV は、hog.setSVMDetector() メソッドで 1 つの特徴ベクトルだけを必要とします。したがって、LIBSVM が計算した 1419 個の SVM ベクトルから 1 つの特徴ベクトルを計算する必要があります。
この単一の特徴ベクトルを計算する方法のヒントが 1 つ見つかりました:リンク
「コンポーネント i (i は 0 ~ 3779 の範囲) での検出特徴ベクトルは、i でのサポート ベクターの合計 * そのサポート ベクターのアルファ値から構築されます。たとえば
det[i] = sum_j (sv_j[i] * alpha[j])
、j
はサポートの番号です。ベクトルi
は、サポート ベクターのコンポーネントの数です。」</p>
これによると、私のルーチンは次のように機能します。最初の SVM ベクトルの最初の要素を取得し、アルファ値で乗算し、アルファ値で乗算された 2 番目の SVM ベクトルの最初の要素と加算します。</ p>
しかし、1419 要素すべてを合計すると、非常に高い値が得られます。
それらを比較すると、OpenCV サンプルのpeopledetect.cpp (およびOpenCV ソースの hog.cpp)のデフォルト ベクトルと比較できます。
デフォルトのベクトル値は –1 と +1 の間の境界にありますが、私の値はそれをはるかに超えています。
私の単一の特徴ベクトル ルーチンには調整が必要だと思いますが、アイデアはありますか?
よろしく、
クリストフ
r - e1071 RパッケージのSVM方程式?
SVM のパフォーマンスをテストして、複数の個人を 4 つのグループ/クラスに分類することに興味があります。MATLAB の svmtrain LibSVM 関数を使用すると、この方程式の値に基づいて、これらの個人を 4 つのグループに分類するために使用される 3 つの方程式を取得できます。スキームは次のようになります。
e1071 R パッケージの svm 関数を使用してこれらの方程式を取得する方法はありますか?
machine-learning - モデルの精度と SVM の機能の重要性を測定する
LIBSVM
回帰分析に使い始めています。私の世界には約 20 の特徴と数千から数百万のトレーニング サンプルがあります。
私は2つのことに興味があります:
モデルの精度や信頼性を示す指標は、おそらく .model ファイルやその他の場所にありますか?
機能が重要かどうかを判断するにはどうすればよいですか? たとえば、身長、肩幅、性別、髪の色の関数として体重を予測しようとしている場合、体重の予測において髪の色は重要な特徴ではないことに気付くかもしれません。それは .model ファイルに反映されていますか、それとも調べる方法はありますか?
dataset - Libsvm データセット形式のサンプルの意味 (特に Mnist)
Libsvm のデータセット ページから Mnist データセットをダウンロードしました。すべてのサンプルは次のようになります。
それが何を意味するか知っている人はいますか?5
はクラス ラベルですが、153:3
たとえばペアとは何ですか? また、mnist 自身の Web ページからも意味を見つけることができませんでした。
matlab - libsvm で事前計算されたカーネルを使用する
現在、さまざまな画像記述子で画像を分類する作業を行っています。それらには独自のメトリックがあるため、事前に計算されたカーネルを使用しています。したがって、これらの NxN カーネル行列 (合計 N 個の画像) を考えると、SVM をトレーニングしてテストしたいと考えています。ただし、SVM の使用経験はあまりありません。
しかし、私を混乱させるのは、トレーニングの入力方法です。カーネル MxM (M はトレーニング イメージの数) のサブセットを使用して、M 個の特徴を持つ SVM をトレーニングします。ただし、それを正しく理解していれば、これにより、同様の量の機能を持つテストデータを使用することが制限されます。サイズ MxN のサブカーネルを使用しようとすると、トレーニング中に無限ループが発生し、その結果、テスト時により多くの機能を使用すると悪い結果が得られます。
これにより、同じサイズのトレーニングとテストセットを使用して妥当な結果が得られます。しかし、1 つの画像だけを分類したい場合、またはクラスごとに特定の量の画像を使用してトレーニングし、残りの画像をテストしたい場合、これはまったく機能しません。
トレーニング画像の数と機能の間の依存関係を削除して、任意の数の画像でテストできるようにするにはどうすればよいですか?
私は MATLAB に libsvm を使用しています。カーネルは [0,1] の範囲の距離行列です。
amazon-ec2 - 計算集約型(非Web)並列アプリケーション用のEC2の使用を開始する
回帰分析にLIBSVMを使用しています。チャンピオンのように機能します。しかし、モデルのパラメーターを最適化するための3パラメーターグリッド検索では、2.66 GHz Intelボックスの4つのコアすべてが最大になり、1つのモデルを生成するにはまだ数時間待つ必要があります。
これはAmazonEC2の仕事のようです。
Web関連のタスクにEC2を使用するためのチュートリアルや紹介資料をたくさん見てきました。
しかし、EC2で複数のインスタンスを実行したい小さな計算集約型のカスタムANSI-Cプログラムがある場合はどうでしょうか?誰かがそれを行う方法(または検索する流行語でさえ)についてのポインタを提供できますか?
svm - LIBSVMによって予測された確率推定について
SVM分類器を使用して3クラス分類を試みています。LIBSVMによって予測された確率推定値をどのように解釈しますか。最大マージン超平面からのインスタンスの垂直距離に基づいていますか?
LIBSVM分類器によって予測された確率推定の解釈についてのいくつかの光を通して親切に。パラメータC
とgamma
は最初に調整され、次に確率推定値が-b
トレーニングとテストの両方でオプションを使用して出力されます。
python - LibSVM モデルの解釈
2 つのクラス間でいくつかの値を分類する必要があります。トレーニング セットとして使用できる約 30 の値があり、各値には 10 の異なる次元があります。私は(Pythonで)libSVMを使用していますが、うまく機能しているようです。
libSVM によって計算されたモデルにも解釈を与えようとしています。これは、分類プロセスにおいて、いくつかの次元が他の次元よりも「重要」であると考えているためです。
たとえば、次の例を考えてみましょう。
x リストの要素の 2 番目の次元が、このデータ セットを分類するのに役に立たないことは明らかです。
私の質問は:
libSVM によって生成されたモデルを分析して、この種の状況を検出する体系的な方法はありますか?
c++ - libsvm c++ のチュートリアル
libSVM の C++ インターフェイスのチュートリアルやサンプル コードを探しています。具体的には、SIFT または SURF 特徴記述子を使用して抽出された特徴を分類したいと考えています。
Web サイトを調べてみましたが、そのようなドキュメントやサンプル コードは見つかりませんでした。