問題タブ [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.

0 投票する
2 に答える
1713 参照

libsvm - カテゴリ機能

LibSVM の場合。

'A Practical Guide to Support Vector Classification' では、m 数を使用して m-category 属性を表すことが提案されています。たとえば、{red, green, blue} は (0,0,1)、(0,1,0)、(1,0,0) として表すことができます。

しかし、README では、index:value ペアの value は実数しかとれないと書かれています。

データファイルで (0,0,1) を表現する方法を知っている人はいますか?

0 投票する
1 に答える
1101 参照

opencv - libsvmは正確ですか?

StompChickenの修正(私は1つのドット積を誤算しました、うーん!)で、答えはイエスのように見えます。それ以来、事前に計算されたカーネルを使用して同じ問題をテストし、同じ正しい結果が得られました。libsvm StompChickens clearを使用している場合、整理された計算は非常に優れたチェックです。

元の質問: libSVMで事前計算されたカーネルの使用を開始しようとしています。質問に対するVladの答えに気づい たので、libsvmが正しい答えを出したことを確認するのが賢明だと思いました。私は、事前に計算されていないカーネルから始めました。これは、3次元空間に2つのクラスと3つのデータポイントを持つ単純な線形カーネルです。データを使用しました

の呼び出しによって生成されたモデルファイルにsvm-train -s 0 - t 0は、

しかし、私が手で解を計算するとき、それは私が得るものではありません。libsvmにエラーが発生するかどうかを知っている人はいますか、それともノートを比較してlibsvmと同じものが得られるかどうかを確認できますか?

libsvmによって返される係数a1、、はa2a3

a1 + a3 = a2 、、のそれぞれが0と1(Cのデフォルト値)の間にある必要がa1あるという制限付きでa2、可能な限り大きくし ます。a3

上記のモデルファイルは答えが

しかしa2 = a1 + a3、上記の大きな式に代入し、両方の偏導関数がゼロであることを確認して、この解が正しいかどうかを確認する必要があります(、、のいずれもa10a2またはa31ではないため)が、ゼロではありません。

私は何か間違ったことをしていますか、それともlibsvmが悪い結果を出しているのですか?(私は何か間違ったことをしていることを望んでいます。)

0 投票する
2 に答える
8453 参照

c# - SVMは段階的に学習できますか?

多次元SVM分類器(SVM.NET、libSVMのラッパー)を使用して、一連の機能を分類しています。

SVMモデルが与えられた場合、以前のすべてのデータを再計算することなく、新しいトレーニングデータを組み込むことは可能ですか?別の言い方をすると、SVMは可変ですか?

0 投票する
7 に答える
5118 参照

algorithm - バイナリ SVM の線形分離可能性を理解するのを手伝ってください

フィードバックがなく、時間に敏感な質問であるため、これをmath.stackexchange.comから相互投稿しています。


私の質問は、サポート ベクター マシンにおける超平面による線形分離可能性に関するものです。

ウィキペディアによると:

...正式には、サポートベクターマシンは、分類、回帰、またはその他のタスクに使用できる、高次元または無限次元の空間に超平面または超平面のセットを構築します。直感的には、任意のクラスの最も近いトレーニング データ ポイント (いわゆる関数マージン) までの最大距離を持つ超平面によって適切な分離が達成されます。これは、一般に、マージンが大きいほど、classifier.classifier の一般化エラーが低くなるためです。

超平面によるクラスの線形分離は、直感的に理解できます。そして、2 次元幾何学の線形分離可能性を理解していると思います。ただし、一般的な SVM ライブラリ (libSVM) を使用して SVM を実装していますが、数値をいじると、SVM がクラス間で曲線を作成する方法や、カテゴリ 1 の中心点を円形の曲線で囲む方法を理解できません。 n 次元空間 V の超平面が次元 n − 1 の「平坦な」部分集合である場合、または 2 次元空間の場合はカテゴリ 2 の点で囲まれています (1D 線)。

これが私が意味することです:

2D バイナリ SVM の円で囲まれたクラス分離

それは超平面ではありません。それは円形です。これはどのように作動しますか?それとも、2 次元の 2D 入力フィーチャよりも多くの次元が SVM 内にありますか?


このサンプル アプリケーションは、ここからダウンロードできます。


編集:

包括的な回答をありがとう。そのため、SVM はカーネル関数を使用することで、奇妙なデータをうまく分離できます。データを SVM に送信する前に線形化することは役に立ちますか? たとえば、私の入力フィーチャ (数値) の 1 つには、カテゴリ 1 にきちんと収まる転換点 (たとえば 0) がありますが、0 より上と下ではカテゴリ 2 に収まります。分類が SVM のこの機能の絶対値を送信するのに役立ちますか?

0 投票する
4 に答える
5567 参照

python - ライブラリ外呼び出しモジュールの出力抑制

機械学習ライブラリPyMLを使用すると、厄介な問題が発生します。PyML はlibsvmを使用して SVM 分類器をトレーニングします。問題は、libsvm が一部のテキストを標準出力に出力することです。しかし、それは Python の外部にあるため、インターセプトできません。問題sys.stdout を破棄せずに Python の関数の標準出力をサイレンスするで説明されている方法を使用してみましたが、それらのどれも役に立ちませんでした。

これを行う方法はありますか。PyML の変更はオプションではありません。

0 投票する
8 に答える
49355 参照

python - SVM ライブラリ LIBSVM の Python バインディングを使用した例

Python で LibSVM を使用した分類タスクの例が急務です。入力がどのように見えるべきか、どの関数がトレーニングを担当し、どの関数がテストを担当するのかわかりません ありがとう

0 投票する
1 に答える
1221 参照

machine-learning - LibSVM と非数値データ

LibSVM を使用してテキストの分類を行うことに興味があります。用語/単語を数値データに変換して、LibSVM が理解できるようにする方法を教えてください。

ありがとうございました!

0 投票する
4 に答える
1221 参照

machine-learning - 機械学習-svm機能融合技術

私の最終論文では、色と深度の情報を組み合わせて3D顔認識システムを構築しようとしています。私が行った最初のステップは、反復最接近点アルゴリズムを使用して、データヘッドを特定のモデルヘッドに再調整することです。検出ステップでは、libsvmの使用を考えていました。しかし、深さと色の情報を1つの特徴ベクトルに組み合わせる方法がわかりませんか?それらは依存情報です(各ポイントは色(RGB)、深度情報、およびスキャン品質で構成されています)。何をすることをお勧めしますか?重み付けのようなものですか?

編集:昨夜、SURF / SIFT機能に関する記事を読みました。それらを使用したいと思います!それはうまくいくでしょうか?コンセプトは次のようになります。各特徴をsvmの単一の特徴ベクトルとして使用して、カラー画像と深度画像(範囲画像)からこの特徴を抽出しますか?

0 投票する
2 に答える
20739 参照

r - predict.svm は新しいデータを予測しません

残念ながら、次の簡単な例で predict() を使用すると問題が発生します。

結果は次のとおりです。

predict() がトレーニング サンプル (x,y) の適合値のみを提供し、テスト データを気にしない理由を説明できる人はいますか?

ご助力ありがとうございます!

リチャード

0 投票する
2 に答える
3461 参照

python - libsvmはメソッドの混乱を予測します

libsvmのsvm_predict()メソッドについて質問があります。

READMEには、次のクイックスタートサンプルコードがあります。

これで、yはxの辞書に関連付けられているカテゴリのリストであることがわかりました。svm_trainの部分も理解しています。

意味をなさない部分は、svm_predictで、xのテストデータとともにyからの「真の値」を提供する必要があるということです。事前にテストデータの分類がわからないのではないかと思いました。

私のトレーニングデータが次の場合:

しかし、私のテストデータは次のとおりです。

次に、次のようにzの真の値をsvm_predict()に渡す必要があるのはなぜですか。

zの真の値を知るつもりはありません-それが予測の目的です。予測を実行するときにyに任意の分類値を設定する必要がありますか、それとも何かが完全に欠落していますか?

皆さんありがとう