問題タブ [jama]

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 投票する
1 に答える
436 参照

java - Jama と Matlab の LMNN と固有値

LMNN (Largest Margin Nearest Neighbor) メトリック学習アルゴリズムの matlab コードを Java に変更し、Jama ライブラリを使用します。異なる結果が得られました。違いが発生したのは、Matlab と Jama の固有値分解 (固有値と固有ベクトル) のせいだと思います。以前にそのような問題に遭遇した場合は、コメントしてください。また、そのような条件下で同様の結果が得られる必要がありますか。

マトラブでは:

Java ( IdeM は PSD マトリックス)

結果

結果の例:

マトラブの結果:

Jama ライブラリを使用した Java:

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

java - JAMA が正しい固有ベクトルを計算していません

対称で実数の次の行列があります(ハミルトン演算子です):(Matlabフレンドリー)

[63.000000、-1.732051、0.000000、0.000000、0.000000、0.000000、0.000000、0.000000、0.000000、0.000000; -1.732051、61.000000、-2.000000、0.000000、-1.000000、0.000000、0.000000、0.000000、0.000000、0.000000; 0.000000、-2.000000、61.000000、-1.732051、0.000000、-1.414214、0.000000、0.000000、0.000000、0.000000; 0.000000、0.000000、-1.732051、63.000000、0.000000、0.000000、-1.732051、0.000000、0.000000、0.000000; 0.000000、-1.000000、0.000000、0.000000、61.000000、-1.414214、0.000000、0.000000、0.000000、0.000000; 0.000000、0.000000、-1.414214、0.000000、-1.414214、60.000000、-1.414214、-1.414214、0.000000、0.000000; 0.000000、0.000000、0.000000、-1.732051、0.000000、-1.414214、61.000000、0.000000、-2.000000、0.000000; 0.000000、0.000000、0.000000、0.000000、0.000000、-1.414214、0.000000、61.000000、-1.000000、0.000000; 0.000000、0.000000、0.000000、0.000000、0.000000、0.000000、-2.000000、-1.000000、61.000000、-1.732051; [

これらの値で JAMA 行列を作成し、固有値分解を実行すると、V*D*transpose(V) はハミルトンに等しくなりません。何がうまくいかないのか知っている人はいますか?固有値は MATLAB と一致していますが、固有ベクトルは一致していません。

ここにそれをテストするクラスがあります

編集:結果 (V*D*transpose(V)) は

63.1093 -0.6379 0.3400 -0.6576 0.0938 -0.0437 -0.6056 -0.5066 0.3463 0.5039 -0.6379 61.3082 -0.2368 -1.7813 -0.0851 0.7949 -0.1337 0.7668 -0.0422 -2.4329 0.3400 -0.2368 60.1481 1.3323 -0.4099 -1.8834 -0.5780 0.7516 0.0946 0.1705 -0.6576 -1.7813 1.3323 61.2455 0.0972 -0.8075 -0.9004 0.0242 0.3963 -1.2527 0.0938 -0.0851 -0.4099 0.0972 60.3086 -0.1899 0.0394 0.1987 -0.0484 -0.1495 -0.0437 0.7949 -1.8834 -0.8075 -0.1899 61.7941 0.3741 0.8237 0.7772 0.7557 -0.6056 -0.1337 -0.5780 -0.9004 0.0394 0.3741 60.6415 0.6351 0.7099 0.3349 -0.5066 0.7668 0.7516 0.0242 0.1987 0.8237 0.6351 62.8108 1.3507 1.3002 0.3463 -0.0422 0.09464 -0.04867772 0.7099 1.3507 63.3270 0.1244 0.5039 -2.4329 0.1705 -1.2527 -0.1495 0.7557 0.3349 1.3002 0.1244 60.3069

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

eigenvector - EigenValue および EigenVector Java 実装

メトリック学習アルゴリズムを実装しています。データの次元を減らしたいです。Java とライブラリ (Jama) を使用して実装し、PCA を使用して次元を削減しています。Jama ライブラリの eig を使用して固有値を取得すると、サイズが 300 x 20 の行列でもかなりの時間がかかります。固有値と固有ベクトルの Java 実装を取得する必要があります。参考までに、PCAを持つJblasなどの他のライブラリも試してみましたが、固有値と固有ベクトルのパフォーマンスが非常に悪いです。

0 投票する
0 に答える
261 参照

java - 100 万行と 100 万列の 2 次元配列

ユーザーが参加したイベントのユーザー評価を含むユーザー イベント データがあります。入力として 2 次元配列を必要とする類似性マトリックスに Jama ライブラリを使用しようとしています (イベント評価を含むユーザー イベント マトリックス)

私が3つの列として持っているデータ:userID、eventID、rating

しかし、ユーザー数は約 200 万人、イベント数は約 100 万です。では、類似度マトリックスを計算するために jama ライブラリを使用する効率的な方法は何でしょうか。数値が膨大で、システムのメモリに収まらないためです。問題にはJAVAを使用しています。

ありがとうアマン

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

java - Java の行列のモジュラー逆数

マトリックスのモジュラー逆数を計算しようとしていますが、これを Java で行うにはどうすればよいですか?

これまでのところ、パッケージ Jama パッケージを見つけました - http://math.nist.gov/javanumerics/jama/ 逆行列乗算に使用できますが、逆行列のモルダー逆を見つけようとして困惑しています.. .

これはまさに私がここで達成しようとしていることです: http://planetcalc.com/3324/

何か案は?

ありがとう