問題タブ [svd]
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.
python - Python ValueError: オペランドをシェイプと一緒にブロードキャストできませんでした
SVD を実行していますが、コードを実行しようとすると、次のエラーが発生します。
ValueError: オペランドを形状と共にブロードキャストできませんでした (375, 375) (375, 500)
サイズ(500、375)の画像を使用しています
これが私のコードです:
matlab - svdsを逆にすることは可能ですか
matlabで以下を逆にすることは可能ですか?
java - Jama で SVD を実行する前に行列を転置する
だから私は Jama (Java 行列ライブラリ) を使用して行列 A の SVD を計算しています。問題は、A (mxn) が m >=n の行列であり、m
これは、A' (転置) を実行することで解決できると読みました。だからあなたが持っているなら
したがって、本質的には、U と V を反転するだけで同じ答えを復元できると言われています。D の特異値は同じままです。これについて私が持っている混乱は、寸法を見ることです
しかし、SVD(A') を実行する場合は、次のようになります。
誰かが私にこれを説明できますか?
pca - バイナリ データに対する主成分分析 (PCA) の使用
問題の次元 (属性) を削減するために、バイナリ属性に PCA を使用しています。初期次元は 592 で、PCA 後の次元は 497 です。別の問題の数値属性で以前に PCA を使用したところ、次元を大幅に削減することができました (初期次元の半分)。バイナリ属性は PCA の能力を低下させると思いますが、その理由はわかりません。PCA が数値データほどうまく機能しない理由を教えてください。
ありがとうございました。
recommendation-engine - SVDとSVMの違いは何ですか
私は略語を知っておりSVM(Support Vector Machines)
、SVD(Singular Value Decomposition)
SVM と SVD の両方がレコメンデーション エンジンで使用されていることを知っています。
素人の言葉で言えば、これら 2 つのアルゴリズムの違いは何であり、それらが私のレコメンデーション エンジンにどのような影響を与えるでしょうか。
lapack - LAPACKのDGESVDはどのアルゴリズムを実装していますか?
MATLABでSVDを計算するために使用されるDGESVD関数に興味があります。ジーン・H・ゴラブとチャールズ・F・ヴァン・ローンによる「マトリックス計算」からわかる限り、使用される2つの可能な二極化スキームがあります-ハウスホルダー二二角化とR二二角化です。しかし、使用されているLAPACKのドキュメントからは判断できませんでした。誰かアイデアはありますか?
matlab - SVD を使用して MATLAB でイメージを圧縮する
私は MATLAB を初めて使用しますが、グレースケール イメージのイメージ圧縮コードを実行しようとしています。
質問
SVD を使用して値の低い固有値を削除し、圧縮された画像を再構築するにはどうすればよいですか?
これまでの作業/試行
これまでの私のコードは次のとおりです。
これにより、変数 S に格納された固有値を使用して画像行列を正常に分解できます。
S (167x301、クラス double) を切り捨てるにはどうすればよいですか? 167 個の固有値のうち、上位 100 個 (または実際には任意の n 個) のみを取得したい場合、どのようにそれを行い、圧縮された画像を再構築しますか?
更新されたコード/考え
コメント セクションに大量のコードを入れる代わりに、これが現在のドラフトです。N を手動で変更することで圧縮イメージを正常に作成できましたが、さらに 2 つのことを行いたいと考えています。
1-さまざまな圧縮の画像のパネルを表示します(つまり、N = 5、10、25などのループを実行します)
2- それぞれの画像と原画の差分(誤差)をなんとか計算してグラフ化。
ループと出力を理解するのは恐ろしいですが、これは私が試したことです:
複数の写真を取得していないか、エラーマトリックスを「グラフ化」する方法を知らないため、明らかにいくつかのエラーがあります
c++ - SVD 分解を使用した画像再構成
画像に対してブロック SVD 分解を実行し、結果を保存しました。さて、この結果から再構築する必要があります。すべてMatlabで書かれた例はほとんど見つかりませんでしたが、これは私にとって謎です。自分の絵を再構築できる式、または C 言語で書かれた例だけが必要です。行列 A は U*S*V' に等しいです。たとえば、最初の 5 つの特異値 (行と列の積) を計算するための数式はどのようになりますか? C のようなスタイルのインデックスを使用して数式を指定してください。U と V' は行列で、S はベクトル (行列ではない) です。
node.js - SVD と特異/非特異行列
一連のドキュメントから概念を抽出するには、行列の SVD 形式を使用する必要があります。私の行列は、A = [d1, d2, d3 ... dN]
がコンポーネントdi
のバイナリ ベクトルの形式M
です。次に、svd 分解により、特異値svd(A) = U x S x V'
が含まれるようになります。S
私はSVDLIBCを使用してnodejsで処理を行います(それを使用するために書いた小さなモジュールを使用します)。すべてうまく機能しているように見えましたが、マトリックスの状態に応じて、実行時の動作に非常に奇妙なことに気付きました (N、M は成長していますが、それぞれがすでに 1000 を超えています)。最初は、同じドキュメント ベクトルを抽出することを考慮していませんでしたが、いくつかのテストの結果、ドキュメントを 2 回追加すると、処理が異常に速くなる場合があるようです。
- A の各列が対独立であることを確認する必要がありますか? それらはすべて線形独立である必要がありますか? (いや、SVDは一部の列がまったく同じであってもうまく機能しているように見えるので、
U
orに0のコンポーネントを含めることで、結果の分解でどの列/行が役に立たないかを単純に示すだけだと思いましたV
) - 大きな行列の SVD を計算するのに時間がかかりすぎることがあるので、同じ列を削除してサイズを縮小しようとしましたが、実際にダミーの同じベクトルを追加すると、はるかに高速になることがわかりました。それは正常ですか?何が起こっていますか?
論理的には、マトリックスにできるだけ多くの情報を含めたいと思います。
- [A] 同じ列をすべて削除します。
- [B] 線形従属列を削除します。
[A] を実行するのは非常に簡単で、計算コストもそれほど高くないように思えます。作成時にベクトルをハッシュして、同じベクトルである可能性があるものを確認し、時間をかけてこれらを確認することもできますが、[A] と [B] の適切な計算手法はありますか? ]?
([A]が過去のベクトル全体との新しいベクトルの同等性を総当りの方法でチェックする必要がないことを感謝します.[B]については、それをチェックする良い方法がわかりません/行うそれ)。
関連する質問を追加: 私の 2 番目の質問について、類似の列を 1 つ追加するだけで SVD の実行時の動作が大幅に変わるのはなぜですか? これは正常に起こりうる動作ですか、それとも SVDLIBC のバグを探す必要があるということですか?
machine-learning - svd類似アイテムを評価する方法は?
ユーザーにアイテムを推奨するようなタスクの場合、データセットをトレーニングデータセットとテストデータセットの2つに分割し、平均絶対誤差を使用して結果を評価できます。ただし、アイテムの類似アイテムを見つける必要がある場合、結果を評価する方法がわかりません。たとえば、
入力:
出力は多分:(222,0.98)、(121,0.78)... svdから見つかった同様のアイテムが良いかどうかわかりません、結果を評価する方法は?