問題タブ [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.
java - Java での svd の問題
私はジャマとコルト(Javaでコードを書いています)を経験しました。どちらも、行数が列数よりも多くなるような配列を使用することを期待しています。
しかし、潜在的意味解析 (LSA) の場合、5 冊の本があり、合計 1000 の奇妙な単語があります。用語ドキュメント マトリックスを使用すると、5*1000 マトリックスが得られます。
これは機能しないため、行列を転置する必要があります。転置では 1000 * 5 を使用します。1000*5 で svd を実行すると、 5*5 の S 行列が得られます。次元削減を実行するには、この 5*5 行列は小さく見えます。
何ができますか?
search-engine - 検索エンジンの開発における潜在的意味解析の役割は何ですか?
最終年度のプロジェクトで、音楽に焦点を当てた検索エンジンを開発しようとしています。潜在的意味分析と、それがインターネット上でどのように機能するかについて調査を行っています。LSI が検索エンジンのシステム全体のどこに位置するかを理解するのに苦労しています。Web クローラーが Web ページの検索を終了した後に使用する必要がありますか?
java - 潜在意味解析の次元数はどのように決めるのですか?
最近は潜在意味解析に取り組んでいます。Jama パッケージを利用して Java で実装しました。
コードは次のとおりです。
しかし、どのように次元数を決定するのでしょうか? 最良の結果を得るためにシステムを縮小する次元数を決定する方法はありますか? LSA の効果的なパフォーマンスのために考慮すべきその他のパラメーターは何ですか?
machine-learning - 機械学習における PCA または SVD の重要性
この間ずっと (特に Netflix コンテストで)、私はいつもこのブログ (またはリーダーボード フォーラム) に出くわし、データに単純な SVD ステップを適用することで、データのスパース性を減らしたり、一般的にアルゴリズムのパフォーマンスを向上させたりする方法について言及しています。手。私は(長い間)考えようとしていますが、なぜそうなのか推測できません。一般に、私が取得するデータは非常にノイズが多く (これはビッグデータの楽しい部分でもあります)、対数変換などの基本的な機能のスケーリング、つまり正規化を知っています。しかし、SVD のようなものはどのように役立ちますか。たとえば、ユーザー評価の映画の巨大なマトリックスがあるとしましょう..そして、このマトリックスに、いくつかのバージョンの推奨システムを実装します (協調フィルタリングなど):
それはどのように役立ちますか
c++ - 次元数の異なる点を比較する方法は?
異なる次元のデータポイントがあり、冗長なポイントを削除できるようにそれらを比較したいと思います。PCAを使って同じ次元の点を作ろうとしましたが、PCAが次元を減らしたという問題がありますが、得られた点が私が持っていた点と異なるため、各次元の意味が失われました。そうする他の方法。つまり、次元数の異なる点を比較するのに役立つ方法はないかと思います。
java - Jama getS が例外を与える
既に作成した用語文書マトリックスに SVD を適用しています。マトリックスは次の形式の double 配列です。
public static double[][] tdidf;
tdidf = new double[listOfFiles.length][keywordList.size()];
しかし、私がsvdをアップルするとき:
public void computeSVD()
{
マトリックス A = 新しいマトリックス(tdidf); SingularValueDecomposition svd = A.svd();
マトリックス U = svd.getU();
行列 S = svd.getS();
}
私はエラーが発生しています:
スレッド「メイン」での例外 java.lang.ArrayIndexOutOfBoundsException: 53
at Jama.SingularValueDecomposition.getS(SingularValueDecomposition.java:511)
at TDIDF_Matrix.computeSVD(TDIDF_Matrix.java:119)
at Jama.main(Jama.java:191)
SVD を計算する前に A を転置する必要がありますか?
python - 共分散行列の最初の要素が1になるようにスケーリング係数を決定するにはどうすればよいですか?
原点を中心に配置するために、中心に配置してスケーリングする必要のあるデータがあります。次に、最大分散の方向がx軸上になるように、データを回転させる必要があります。次に、データと共分散の平均が計算されます。共分散行列の最初の要素を1にする必要があります。これはスケーリング係数を調整することによって行われると思いますが、スケーリング係数がどうあるべきかがわかりません。
データを中央に配置するために平均を取り、回転させるためにSVDを使用しますが、スケーリングは依然として私の問題です。
以下は、ノルムの平均とcovの結果の例です(テストケースではresを使用しています)。
共分散行列の最初の要素を除いて、すべての値は無関係です。最初の要素は1つである必要があります。
どこを見ても答えが見つかりません。どんな助けでもいただければ幸いです。
java - LSI実装用のJavaでの用語ドキュメントマトリックスの作成
私はベクトル空間モデルを使用して検索エンジンプロジェクトを行っていますが、そのために用語ドキュメントマトリックスを作成し、それにSVDを適用する必要があります。
行として用語を、列としてドキュメントを使用する必要がありますか?
私はJavaでそれを行っているので、次のようになります。
count [keywordList.size()] [listOfFilesinCorpus.length];
またはそれは逆である必要がありますか?この2D配列をApacheCommonsmathに渡す必要があります:
RealMatrix A = Array2DRowRealMatrix(TDM);
ここで、TDMはドキュメントマトリックスという用語です。
次元として用語が必要です。次に、ベクトル空間内のドキュメントを比較します。助けてください、ありがとう。
c++ - OpenCVで行列のSVDコンポーネントを乗算する
CV_32FC1 cvMat に SVD を適用し、「u」コンポーネントの値をいくつか変更しました。ここで、'u、'w'、および 'vt' コンポーネントを乗算して単一の行列 A を取得しようとしていますが、OpenCV は次のエラーで行列を乗算できません。
SVD オブジェクトの行列の型を調べたところ、型 = 20 のように見えますが、これは既定の行列の型のいずれとも一致しません。