問題タブ [svm]
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.
optimization - svmtrain - 最適化問題を解決できません
svmtrain を使用して、いくつかのデータのペアを区別しています。svmtrain は 1 つのケース (svmclassify によって検証された ~70% の精度で分類器オブジェクトを出力する) で目的どおりに動作しますが、他のすべてのケースは失敗するようです。私の特徴ベクトルは 134 次元で、各クラスに 300 から 800 のデータ ポイントを使用しています。(各クラスのデータ ポイントの数は必ずしも同じではありません)。メソッドを使用してsvmtrainのデフォルトカーネルを使用してみました
この場合、次のエラーが表示されます。
最適化問題を解決できません: 最大反復回数を超えました。options.MaxIter を増やします。現在の解を出発点として問題を解き続けるには、quadprog を呼び出す前に x0 = x を設定します。
また、呼び出しを使用して反復回数を拡張し、カーネルを指定しようとしました。
この場合、次のエラーが表示されます。
最適化問題を解決できません: 終了: 解は無制限で無限にあります。制約は十分に制限的ではありません。
うまくいった場合、最初のクラスから 338 のデータ ポイントがあり、2 番目のクラスから 476 のデータ ポイントがあります。例として、機能しない 3 つのケースでは、2 番目のクラスに 828、573、および 333 のデータ ポイントがありますが、最初のクラスは同じままで 338 のデータ ポイントがあります。どちらのメソッド呼び出しも機能していないようです。
手伝っていただけませんか?私はこの問題を 1 週間解決しようとしてきましたが、うまくいきませんでした。1 GHz プロセッサと 2 GB RAM を搭載した仮想マシン Windows XP で MATLAB 7.9.0 R2009B を使用しています。
どうもありがとう!-Vivek
classification - 構造化アウトプット学習用データベース
初心者なのでお手柔らかにお願いします。
現在、カーネル メソッドを使用して構造化された予測アルゴリズムを適用しようとしています。私が見逃しているのは、これをテストするための優れたデータベースです。私は現在、いくつかの無料のデータベースを検索しました (そして検索を続けています) が、今まで (有用な) ものは何も見つかりませんでした。
私があなたについて何をしているのかをより明確にするために、この論文を参照として見ることができます。
http://www-kd.iai.uni-bonn.de/pubattachments/402/GaertnerV09ECML.pdf
現在、このリンクでデータベースを検索しています。適切なものが見つかったら、このトピックを更新します: http://www.quora.com/Data/Where-can-I-get-large-datasets-open-to- the-public?q=大規模+データベース
java - サポート ベクター マシンの概要
こんにちは、SVM ツールを使用して POS タグ付けを行っていますが、トレーニング コーパスから特徴ベクトルを構築する方法がわかりません。
machine-learning - 人工ニューラル ネットワークではなくサポート ベクター マシンを使用する必要があるのはいつですか?
SVMは、表現の複雑さを自動的に選択し、グローバルな最適値を見つけるという点で、おそらく「ANNキラー」であることを知っています(SVMの賞賛の引用については、こちらを参照してください)。
しかし、ここで私がはっきりしないところがあります - これらの優越性の主張はすべて、2 クラスの決定問題の場合にのみ当てはまるのでしょうか、それともさらに先に進むのでしょうか? (私は、それらが非線形に分離可能なクラスに当てはまると仮定します。さもなければ、誰も気にしません)
したがって、私が解決したいいくつかのケースのサンプル:
- SVM は多くのクラスを持つ ANN より優れていますか?
- オンライン設定で?
- 強化学習のような半教師ありの場合はどうでしょうか?
- より優れた教師なしバージョンの SVM はありますか?
誰かがこれらの些細な質問のすべてに答えてくれるとは思っていませんが、実際には、SVM が一般的な ANN の同等物 (例: FFBP、リカレント BP、ボルツマン マシン、SOM など) よりも優れている場合の一般的な境界を示してください。そしてできれば、理論的にも。
opencv - HOG を SVM に供給する: HOG には 9 つのビンがありますが、SVM は 1D 行列を取り込みます
OpenCV には、サンプルのマトリックスを取り込んで SVM をトレーニングする CvSVM クラスがあります。行列は 2D で、行にサンプルがあります。
ビデオ フィードから方向勾配 (HOG) のヒストグラムを生成する独自の方法を作成しました。これを行うために、各チャネルが方向ビンに対応する HOG を格納する 9 チャネルのマトリックスを作成しました。最終的に、タイプ の 40x30 マトリックスができましたCV_32FC(9)
。
また、HOG の視覚化を行い、機能しています。
この行列を OpenCV SVM に入力する方法がわかりません。これを平坦化すると、SVM が 1D 入力データから 9D 超平面を学習する方法がわからないからです。
machine-learning - 1 対残りの分類器
私は、(1) コンピューター カーソルを上に移動する場合と (2) 他の 7 つの基本方向のいずれかに移動する場合、または移動しない場合に対応するニューラル データを区別するために、 1 対静止分類器を実装しています。RBF カーネル (LIBSVM で作成) で SVM 分類器を使用しており、分類器に最適なガンマとコスト パラメータを見つけるためにグリッド検索を行いました。2 つのクラスのそれぞれから 338 要素のトレーニング データを使用してみました (大規模な「残りの」クラスをアンダーサンプリングします)。最初のクラスから 338 要素を使用し、2 番目のクラスから 7218 要素を加重 SVM で使用しました。
また、特徴選択を使用して、使用している特徴の数を 130 から 10 に減らしました。分類器をトレーニングするときに、10 個の「最良」の特徴と 10 個の「最悪」の特徴を使用してみました。また、機能セット全体を使用しました。
残念ながら、私の結果はあまり良くありません。さらに、その理由を説明することもできません。私は 37759 のデータ ポイントでテストしました。そのうちの 1687 は「1」(つまり「上」) クラスからのもので、残りの 36072 は「残り」のクラスからのものでした。すべての場合において、私の分類子は 95% 正確ですが、正しく予測された値はすべて「rest」クラスに分類されます (つまり、すべてのデータ ポイントは「rest」として予測され、誤って予測されたすべての値は「one」に分類されます)。 "/"up" クラス)。各クラスから 338 個のデータ ポイント (トレーニングに使用したものと同じもの) でテストを試みたところ、サポート ベクターの数は 666 であり、データ ポイントの数より 10 少ないことがわかりました。この場合、パーセント精度はわずか 71% です。
何がうまくいかないのか分かりますか?ご提案がありましたら、お知らせください。
ありがとう!
machine-learning - ワンクラスサポートベクターマシン
だから私は私がこの権利を持っていることを確認したいと思います。まず、私は学部生のコンピューターエンジニアリング専攻で、ソフトウェアよりもハードウェア/EEの経験が豊富です。この夏、私は1クラスのSVMを使用するクラスタリングアルゴリズムを使用していることに気付きました。SVMは、入力データを分類/分離するために使用される単なる数学モデルですか?SVMは、1つの属性/変数を持つデータセットでうまく機能しますか?おそらく、単一の属性による分類が実質的にステレオタイプであるため、後者には当てはまらないと思います。私の推測では、SVMは、分類に寄与する複数の属性/変数を持つデータセットでより優れたパフォーマンスを発揮します。前もって感謝します!
artificial-intelligence - ヘルプ -- LibSVM で 100% の精度?
名目上は良い問題ですが、何かおかしいことが起こっているからだと確信しています...
コンテキストとして、私は顔の表情/認識空間の問題に取り組んでいるので、100% の精度を得ることは信じられないほど信じられないようです (ほとんどのアプリケーションでもっともらしいというわけではありません...)。データセットには一貫したバイアスがあり、SVM が答えを引き出すのを非常に簡単にしている、= または = のいずれかだと思います。おそらく、SVM 側で何か間違ったことをしたのでしょう。
何が起こっているのかを理解するのに役立つ提案を探しています-それは私ですか(=私のLibSVMの使用法)? それともデータですか?
詳細:
- 約 2500 個のラベル付きデータ ベクトル/インスタンス (変換された個人のビデオ フレーム -- 合計 20 人未満)、バイナリ分類問題。~900 機能/インスタンス。約 1:4 の比率で設定された不均衡なデータ。
- subset.py を実行して、データをテスト (500 インスタンス) とトレーニング (残り) に分けました。
- 「svm-train -t 0」を実行しました。(注:明らかに「-w1 1 -w-1 4」は必要ありません...)
- テスト ファイルに対して svm-predict を実行しました。精度=100%!
試したこと:
- 不注意なコマンドライン引数エラーにより、同じデータファイルでトレーニングとテストを行っていないことを約10回確認しました
- Subset.py を (-s 1 を使用しても) 何度も再実行し、複数の異なるデータ セットのみをトレーニング/テストしました (最も魔法のようなトレーニング/テスト PA をランダムに実行した場合)
- テストファイルがトレーニングデータのサブセットではないことを確認するために、単純な差分のようなチェックを実行しました
- データの svm-scale は精度に影響しません (accuracy=100%)。(ただし、サポート ベクターの数は nSV=127、bSV=64 から nBSV=72、bSV=0 に減少します。)
- ((奇妙)) デフォルトの RBF カーネル (逆線形 -- つまり、'-t 0' を削除) を使用すると、精度がガベージ (?!) になります
- (サニティ チェック) スケーリングされたデータ セットでトレーニングされたモデルをスケーリングされていないデータ セットに対して使用して svm-predict を実行すると、精度 = 80% になります (つまり、常に支配的なクラスを推測します)。これは厳密には、私のマシンで svm-predict が名目上正しく動作していることを確認するための健全性チェックです。
暫定的な結論?:
データの何かがおかしくなっています。どういうわけか、データ セット内に、SVM が検出している微妙な実験者主導の効果があります。
(しかし、これは最初のパスで、RBF カーネルがガベージ結果を返す理由を説明しません。)
a) LibSVM の使用法を修正する方法 (それが実際に問題である場合) または b) LibSVM が拾っているデータの微妙な実験バイアスを判断する方法についての提案をいただければ幸いです。
matlab - libsvm (matlab) で事前計算された chi2 カーネルを使用すると悪い結果が生じる
libsvm を試しています。ソフトウェアに付属の heart_scale データで svm をトレーニングする例に従います。自分で事前計算した chi2 カーネルを使用したい。トレーニング データの分類率は 24% に低下します。カーネルを正しく計算していると確信していますが、何か間違ったことをしているに違いないと思います。コードは以下です。間違いが見られますか?助けていただければ幸いです。
これは、カーネルが事前計算される方法です。
別の svm 実装 (vlfeat) を使用すると、トレーニング データの分類率が約 90% になりました (はい、何が起こっているかを確認するためにトレーニング データをテストしました)。したがって、libsvm の結果が間違っていると確信しています。
python - Python ベースの SVM ライブラリ
GPL またはその他のオープンソース ライセンスで SVM 実装を提供する Python ベースのライブラリはありますか? C でエンコードされた SVM ロジックの SVM ラッパーを提供するものをいくつか見つけましたが、完全に Python でコーディングされているものはありません。
よろしく、
マンダー