Pearson product-moment correlation matrix | //| INPUT PARAMETERS: | //| X - array[N,M], sample matrix: | //| * J-th column corresponds to J-th variable | //| * I-th row corresponds to I-th observation | //| N - N>=0, number of observations: | //| * if given, only leading N rows of X are used | //| * if not given, automatically determined from input | //| size | //| M - M>0, number of variables: | //| * if given, only leading M columns of X are used | //| * if not given, automatically determined from input | //| size | //| OUTPUT PARAMETERS: | //| C - array[M,M], correlation matrix (zero if N=0 or N=1) | //+------------------------------------------------------------------+ static bool CBaseStat::PearsonCorrM(const CMatrixDouble &cx,const int n, const int m,CMatrixDouble &c)
Корреляционная матрица между строками заданных признаков. берется статистика по всем строкам как было в будущем в среднем. в тестере ищем корреляцию текущих значений с эталоном. Но я делаю в питоне и считаю корреляцию сразу для всех возможных пар
SQLを読むのは効率的ですか?
人生で一度も
....
apache ArrowかDuckDBを使ってみてください。
それでもRAMが一番速い。
.....
問題そのものは、G...醜いを介して解決され、あなたの問題は、必要のないcor.行列です。
alglibには二重相関計算関数がある。変数をすべてchar/ucharに変えればすべてうまくいくと思う。 他にも使い古された関数が何十個もあるので、それも作り直すべきだ。そしてCMatrixDoubleから動的配列か何かに切り替えるべきだ。
//| INPUT PARAMETERS: |
//| X - array[N,M], sample matrix: |
//| * J-th column corresponds to J-th variable |
//| * I-th row corresponds to I-th observation |
//| N - N>=0, number of observations: |
//| * if given, only leading N rows of X are used |
//| * if not given, automatically determined from input |
//| size |
//| M - M>0, number of variables: |
//| * if given, only leading M columns of X are used |
//| * if not given, automatically determined from input |
//| size |
//| OUTPUT PARAMETERS: |
//| C - array[M,M], correlation matrix (zero if N=0 or N=1) |
//+------------------------------------------------------------------+
static bool CBaseStat::PearsonCorrM(const CMatrixDouble &cx,const int n,
const int m,CMatrixDouble &c)
そして、もし自作のプログラムがあるのなら、もしそれを行う既製のパッケージがないのなら、量子化も行わなければならないだろう。
ナンパイで計算すると速いのに、パンダで計算すると長いし、メモリも食う。後で再確認します。
パターンなし、パターンは相関行列で検索される。
何か理解できないことがあるのかもしれない。
私が理解していないことがあるのかもしれない。
パターン=互いに高い相関関係を持つサンプルの集合全体。
データセット全体には、このようなパターンがいくつも存在しうる。
行列がなければ、何も見つからないか、断片的な部分を選ぶことになる。
だから、それぞれの行を取り出し、他のすべての行との相関を計算しなければならない。パターン=互いに高い相関を持つサンプルの集合全体
データセット全体には、このような集合が多数存在する可能性がある
行列がないと何も見つからないか、断片的な部分を選ぶことになる。
だから、それぞれの行を取り出し、他のすべての行との相関を計算しなければならない。一般的には、クラスタリングに似ている。
ここでは、例の類似性が最大化される。
.
木における分類/回帰は、これらの例の将来の類似性を最大化する。それは過去の類似性を悪くする。
昔、同じようなことをしたことがある。
パターン = 相互に高い相関を持つサンプルの全セット
データセット全体には、このようなパターンが多数存在する可能性があり、履歴のマッチ数はそれぞれ異なる
行列がなければ、何も見つからないか、断片的な部分を選ぶことになる。
だから、それぞれの行を取り出し、他のすべての行との相関を計算しなければならない。我々は3次元のデータを持っている。
行は観察で、列は形質です。
最初の行は最新のデータです。
最後の行と他の行の相関を計算することができる。
そして、最後/現在の行と履歴の間の「類似性パターン」を得ることができる。
クラスタリングをしてこのようなものを得ることもできる。
しかし、現在/最後の行に関する状態だけが必要なのに、なぜ相関行列 全体を 数える必要があるのか、私には理解できない。
ここで何を深く考えているのだろうか?
すべてのパターンを一度に見つけるということなのだろうか? すべてのパターンが必要なのだろうか? それとも、現在の状況と最後の観測に対応するものが必要なのだろうか?
三次元データはあるのか?
行は観察であり、列は特徴である。
最初の行は最新のデータのようだ。
最後の行から他の各行への相関を計算できる。
そして、最後の行/現在の行と履歴との間に、このような「類似性パターン」が得られる。
クラスタリングをして、このようなものを得ることもできる。
しかし、現在/最後の行に関する状態だけが必要なのに、なぜ相関行列 全体を 計算する必要があるのか理解できない。
ここでの思考の深さは何なのだろうか?
すべてのパターンを一度に見つけるから、すべてのパターンが必要なのか、それとも現状と最後の観測に対応するものが必要なのか。
現状はなく、ただの履歴検索だ。
そして、パターンをメトリクスでソートし、最適なものをボットに縫い付ける。
履歴を検索するだけだ。
一度に1つのパターンを検索すれば、RAMの使用料はほとんどかかりません。ある瞬間には1つのパターンにしか入れないのに、なぜ全履歴の全パターンを見たいのでしょうか?
それとも、私が何かを理解していないのでしょうか?
一度に1つのパターンを検索することができ、RAMはほとんど無料だ。ある瞬間には1つのパターンにしか入れないのに、なぜ全履歴のすべてのパターンを見たいのだろう?
それとも、私が何かを理解していないのでしょうか?
まだ、それらをすべて調べて、新しいデータでチェックするのに最適なものを選択する必要があります。
#32456