問題タブ [alglib]
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.
c++ - OpenCV と Alglib ランダム フォレスト分類器の比較
以前は、データに Opencv ランダム フォレスト分類器を使用していました。しかし、Opencv の問題は事後確率です。これはバイナリ分類専用であり、2 つ以上のクラスの確率 (CvRTrees::predict_prob opencv
関数) をサポートしていません。データに含まれるクラスの数は 7 ですが、ALGLIB は 3 つ以上の確率をサポートしています ( alglib::dfprocess
)。この関数を使用して、7 つのクラスの確率を取得しました。しかし、私の問題は、Alglib で得た結果が OPencv 分類子よりもはるかに貧弱であることです。
どうすれば問題を解決できるか教えてもらえますか? 使用している 7 つのクラスすべての確率予測を取得する必要があります。
r - RcppでAlglibを使用することは可能ですか?
私はよく Rcpp コードを使用して、C++ コードを R に組み込みます。BH パッケージを通じて、Boost ライブラリも使用できます。しかし、Boostライブラリには使いたい機能がありません(正確にはBessel関数しかありませんが、オーバーフローのためにすぐにLog-Besselを取得したいです)。Alglibにこの機能があることは知っています。
Rcpp で Alglib を使用すること、つまり Alglib の log-bessel 関数を使用することは可能でしょうか?
c++ - C++: Levenberg Marquardt を使用して 2 つの変数を解く最小化
C++を使用してこの方程式を解こうとしています:
X と Y はどちらも与えられたデータのセットです。
X = [x1、x2、...、xn]、Y = [y1、y2、...、yn]
a は与えられた整数です。
目標は、与えられたデータに基づいてこの方程式を満たす z と k のペアを見つけることです。
現在、Levenberg Marquardt アルゴリズムで非線形最小二乗法を使用してこの方程式を解こうとしています。ALGLIB をライブラリとして使用して C++ で実装しています。
私が抱えている問題は、私が目にするすべての例が 1 つの変数 (特に This one ) を解決することです。ただし、解 (z と k) に適合する最適なペアを見つけようとしています。
これを行うための最良の方法は何ですか?
ありがとう!
c# - ALGLIB RBF は 3 を超える次元 (4D、5D、またはそれ以上の次元) をサポートしていますか?
ALGLIB RBF は 3 を超える次元 (4D、5D、またはそれ以上の次元) をサポートしていますか?
http://www.alglib.net/interpolation/fastrbf.phpは、2D と 3D をサポートすると述べています。ALGLIB 3.9 の現在のコードも同様です。
答えを確認し、将来のリリースで ALGLIB RBF が高次元の補間 (4D、5D、またはそれ以上) をサポートするかどうかを確認したいと思います。
c# - 特異値分解を使用して平面を一連の点に当てはめる
平面を 3D 空間の一連の点に合わせようとしています。最初に徹底的な最小二乗法を試みましたが、これは遅すぎることが判明しました。最も効率的な解決策は、特異値分解を実行することだと読みました。
これの計算は私にはできませんが、これを機能させるためのリソースがたくさん見つかりました。
この投稿の回答によると、ポイントの重心を計算し、すべてのポイントから重心を減算し、それらを 3xN 行列に入れ、SVD を実行する必要があります。次に、左特異ベクトルを平面の法線として使用します。
ここまでは順調ですね。
SVD 用の機能を持つ alglib という C# 数学ライブラリを見つけました。アルゴリズムの定義はここにあります。これは、データ ポイント マトリックスに加えて入力としてさらに 2 つのマトリックスが必要なため、問題が発生している場所であり、それらの中に何を入れればよいかよくわかりません。私は関係なくこのコードを実行しました:
したがって、理論的には、「w」には平面の法線が含まれると考えていましたが、残念ながらそうではありません (Unity3D で視覚化したところ、角度が間違っていました)。「u」と「t」のマトリックスは私を混乱させるものであり、それらを何に設定すればよいか本当にわかりません。
rmatrixsvd 関数の詳細な API については、こちらを参照してください。
この問題に関する知識を共有できる数学またはアルゴリズムのベテランはいますか? プロジェクトが Unity3D にあるため、C# を使用する必要があります。必要に応じて、さらに情報を提供させていただきます。
c++ - 「spline1dbuildlinear」の使用中に Alglib ライブラリがブロック catch(alglib_impl::ae_error_type) で例外を取得する
Alglib ライブラリ、特に「spline1dbuildlinear」関数の使用を開始しました。
たとえば、次のコード スクリプトのように小さなデータセット (X & Y 用) を使用すると、正常に動作します。
しかし、X & Y ベクトルを使用すると、「1995」サイズの double 要素が含まれ、ブロック catch(alglib_impl::ae_error_type) で例外がスローされます。
インターネットで解決策を見つけようとした後、次を使用する必要があるかもしれません:
状態初期化関数を使用しましたが、適切なデバッグ方法がわかりませんでした。どんな提案でも大歓迎です。
c++ - alglib を使用した線形判別分析
プロジェクトの 1 つで、一連のデータに対して線形判別分析を実行するように依頼されました。fisherlda 関数を備えた ALGLIB (C++ バージョン) を使用していますが、その使用方法を理解するための助けが必要です。
ユーザーは一連の 6 つの質問 (回答は 1 ~ 7 の数字) に答えます。これにより、例として {1,2,3,4,5,6} のデータ セットが得られます。次に、{0.765、0.895、1.345、2.456、0.789、5.678} など、それぞれ 6 つの値の 5 つのクラスがあります。fisher lda 関数は、2 次元の値の配列を取り、別の 1 次元の値の配列を返します (意味がわかりません)。
私が理解しているように、ユーザーの回答がどのクラスに最も適しているかを確認する必要がありますか?
LDA の理解や、この機能の使用方法を教えていただければ幸いです。
編集:
使用しようとしている関数の定義は次のとおりです。