トレーディングにおける機械学習:理論、モデル、実践、アルゴトレーディング - ページ 2808

 
Aleksey Vyazmikin #:

あなたのスクリプトは1日以上稼動していますが、まだ審査結果に基づいてファイルを1つも作成していません。どうでしょう、そろそろスイッチを切る時期ではないでしょうか?

ゼクルスとサンプルサイズによります。あなたのプロセッサーがマルチコアなら、実行を並列化する。以下は並列実行の一例です。

##----parallel--------------------------
library("doFuture")
registerDoFuture()
plan(multisession)
require(foreach)
bench::bench_time(
foreach(i = 1:length(cor.test.range))%dopar%{
    get.findCor(dt, cor.coef = cor.test.range[i])
}-> res
)
#  process     real
# 140.62 ms    2.95 m
#
 bench::bench_time(
for(i in 1:length(cor.test.range)){
    paste0("train1_" , cor.test.range[i]*10 , ".csv") %>%
        paste0(patch , .) %>% fwrite(res[[i]], .)
}
)
#  process    real
# 156 ms   157 ms

シリアルより4倍速い。ハードウェアとソフトウェア

sessionInfo()
#  AMD FX-8370 Eight-Core Processor
#  R version 4.1.3 (2022-03-10)
#  Platform: x86_64-w64-mingw32/x64 (64-bit)
#  Running under: Windows 10 x64 (build 19044)
#
#  Matrix products: default
#
#  locale:
#     [1] LC_COLLATE=Russian_Russia.1251  LC_CTYPE=Russian_Russia.1251    LC_MONETARY=Russian_Russia.1251
# [4] LC_NUMERIC=C                    LC_TIME=Russian_Russia.1251
#
#  attached base packages:
#     [1] stats     graphics  grDevices utils     datasets  methods   base
#
#  other attached packages:
#     [1] doFuture_0.12.2 future_1.28.0   foreach_1.5.2   fstcore_0.9.12  tidyft_0.4.5
#
#  loaded via a namespace (and not attached):
#     [1] Rcpp_1.0.9        codetools_0.2-18  listenv_0.8.0     digest_0.6.30     parallelly_1.32.1 magrittr_2.0.3
# [7] bench_1.1.2       stringi_1.7.8     data.table_1.14.4 fst_0.9.8         iterators_1.0.14  tools_4.1.3
# [13] stringr_1.4.1     import_1.3.0.9003 parallel_4.1.3    compiler_4.1.3    globals_0.16.1

幸運

 
Maxim Dmitrievsky #:

それがすべてだ。スピードは壊滅的な影響を受けるだろう。データフレームは大きなオーバーヘッドを持つ最も遅い獣だ。

ビデオカードがどうこうではなく、そんなものは地味な状態ではデータフレームを通してカウントされないことを理解することだ。

データフレーム」とはどういう意味なのか、無知な人にこの言葉で説明してあげてください。

 
mytarmailS #:

ヒント: それらの間の相関を見るために、100,000オブザベーションのベクトルを使う必要がありますか?

私は、相関の高いベクトル、すなわち、相関が0.9より大きいベクトルを探しています。

それが必要かどうかはわかりません - 実験してみてください。サンプルの半分は相関がなかったのに、あるとき突然相関が現れた。

それに、私はすべての係数を0.1刻みで試しました。

mytarmailS#:
どういたしまして。

これは魂の叫びですか?

 
Vladimir Perervenko #:

zhekezとサンプルサイズに依存する。プロセッサがマルチコアの場合、並列実行を行う。以下は並列実行の一例である。

シリアル実行より4倍速い。ハードウェアとソフトウェア

幸運

並列実行はRAM消費を増加させないのですね?

mytarmailSの コードはよりRAMを消費しますが、それは50倍速く、多分あなたが使用するライブラリのいくつかの制限があります - スクリプトは30時間以上動作し、単一のファイルを作成しませんでした。

複雑なコード例をありがとう - Rでは、私はむしろ単なる消費者です。

 
mytarmailS #:
データ型ごとにcorrを計算するメソッドがあるはずだということですか?

matrixはRに組み込まれているデータ型で、matrix.corr() vectorのようなものがあります。

 
Aleksey Vyazmikin #:

データフレーム "とは何を意味するのか、この言葉を知らない人に説明しよう。

これはむしろRを書く人へのメッセージです :) これはデータを便利に表示するためのテーブルであり、(SQLのように)サブサンプルを抽出するような典型的な操作を行うためのものです。

あなたが持っているような大きなデータをループでレースするようには設計されていません。メモリによって、あなたはすでに自分で理解しています。

ここは大丈夫だと思う:

#  чтобы прочитать как работает функция и примеры  ?caret::findCorrelation
#  находим колонки которые не коррелированы с порогом корреляции 0,9    "cutoff = 0.9"
not_corr_colums <- caret::findCorrelation(as.matrix(df), cutoff = 0.9, exact = F,names = F)

組み込み型の "matrix "がどれくらい速いかは知らないが、キャレットを使うので遅くなることもある。ビルトイン型には相関を計算するためのベクトル演算がない。

 
これらの考えはどこから来るのか
 
mytarmailS #:
これらの考えはどこから来るのか?

左葉に内蔵されたタイプは、それ自体がコーラ計算を持っているはずなのに、なぜそれを可能な限り遅くするのか?

 
Maxim Dmitrievsky #:

Korrの計算が可能な限り高速であるべきビルトインタイプを、なぜ遅くするのか?

リブは型を考慮しないのか?データ型は最も安い計算のためのデータのようなものだ。同じマトリックスが計算用に設計されているはずだ。

 
mytarmailS #:
過去にバカになることなく未来に賢くなるには? アルゴリズム的に...テラバイトの知識を作ることなく。

それは無理だ。

理由: