記事「データサイエンスとML(第31回):取引のためのCatBoost AIモデルの使用」についてのディスカッション

 

新しい記事「データサイエンスとML(第31回):取引のためのCatBoost AIモデルの使用」はパブリッシュされました:

CatBoost AIモデルは、その予測精度、効率性、散在する困難なデータセットに対する頑健性により、機械学習コミュニティの間で最近大きな人気を博しています。この記事では、外国為替市場を打ち負かすために、この種のモデルをどのように導入するかについて詳しく説明します。

CatBoostは、決定木に基づく勾配ブースティングアルゴリズムを備えたオープンソースのソフトウェアライブラリであり、機械学習におけるカテゴリ特徴量やデータ処理の課題を解決するために特化して設計されています。

CatBoostはYandexによって開発され、2017年にオープンソースとして公開されました(詳細)。

CatBoostは、線形回帰やSVMなどの従来の機械学習手法と比べて比較的新しい技術であるにもかかわらず、AIコミュニティで急速に注目を集め、Kaggleのようなプラットフォームで最も利用される機械学習モデルの1つとなっています。

CatBoostが特に評価されているのは、多くの機械学習アルゴリズムが苦手とするカテゴリ特徴量の自動処理能力にあります。

  • このモデルは、設定やチューニングにほとんど手を加えなくても、他のモデルと比較して優れたパフォーマンスを発揮することが多いです。デフォルトのパラメータを使用した場合でも高い精度を実現できる点が大きな特長です。
  • また、ニューラルネットワークのように専門知識や複雑なコーディングが必要とされることがなく、CatBoostは簡単に実装できます。

作者: Omega J Msigwa

 
あなたの文章は示唆に富んでいる。

どのセッションにいるのかも追跡したらどうなるんだろう。
 
そうですね、トレーディング・セッションは、トレーニング・データの貴重な変数です。
 
すべての分類器(catboostを 含む)は正規化された属性でのみ正しく機能する。属性としての価格は適していません。
 

また、分類器モデルをONNXにエクスポートする問題もあります。


バイナリ分類の場合、ラベルが正しく推測されません。これはonnxruntime実装の既知のバグです。バイナリ分類の場合、このパラメータの値は無視してください。

 
価格は、トレーニングデータとして使用することはできません、昨年初め、私はモデルを訓練するために金の価格を使用し、金の価格が新高値を更新し続けるとき、これらの新しい高価格のデータのモデルへの入力は、モデルは、これらのデータを認識しない、どのように変更し、トレーニングデータデータの価格の最高価格を超える方法を与える方法に関係なく、値の一定の確率を与える!
 
参考になる記事をどうもありがとう。

ちょっとした疑問や懸念があるので、共有できればと思います。

When I tried to convert the CatBoost model in a pipeline to ONNX カテゴリカル変数を使用すると 、処理が失敗し、エラーがスローさ れます。


根本的な問題は、ここに書かれていることに関連しているのではないかと思います:

https://catboost.ai/docs/en/concepts/apply-onnx-ml

具体的には

現在サポートされているのは、カテゴリカルな特徴を持たないデータセットで学習されたモデルのみです。


ダウンロードしたJupyter Notebookのcatboost-4-trading.ipynbでは、パイプラインフィッティングコードは以下のように書かれています:

pipe.fit(X_train, y_train, catboost__eval_set=(X_test, y_test))

パラメータ"catboost__cat_features=categorical_features"が省略されているので、モデルはカテゴリ特徴を指定せずにトレーニングされた可能性がある。

これは、モデルが問題なくONNXとして保存できた理由を説明するかもしれない。

もしそうであれば、CatBoostのネイティブメソッド"save_model " をこのように直接使うことができるかもしれません:

model = pipe.named_steps['catboost']

model_filename = "CatBoost.EURUSD.OHLC.D1.onnx"

model.save_model(model_filename, format='onnx')

この考察が参考になれば幸いです。

ONNX |
  • catboost.ai
ONNX is an open format to represent AI models. A quote from the Open Neural Network Exchange documentation:
 
border_count は、カテゴリカルな特徴量だけでなく、あらゆる特徴量をビン(量子セグメント)に分割する。
 
EAコードに固定ストップロスがないのはなぜですか?