你的文章发人深省。
我在想,如果我们也能追踪我们所处的交易时段,会发生什么呢?
还有将分类器模型导出到 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 代码中没有固定止损?
新文章 数据科学和机器学习(第 31 部分):利用 CatBoost AI 模型进行交易已发布:
CatBoost 是一个基于决策树的梯度增强算法开源软件库,它专为解决机器学习中处理分类特征和数据的挑战而设计。
它由 Yandex 开发,并于 2017 年开源,阅读更多。
尽管与线性回归或 SVM 等机器学习技术相比,CatBoost 是最近推出的,但它在 AI 社区中获得广泛欢迎,并在如 Kaggle 这样的平台上爬升到最常用机器学习模型的榜首。
CatBoost 之所以获得如此多的关注,是因其自动处理数据集中分类特征的能力,这对许多机器学习算法来说颇具挑战性。
作者:Omega J Msigwa