多重动态逻辑回归第一次失败的尝试 - MetaTrader 5 库
对于任何不理解此库中提供的代码的人,请阅读此处链接的文章 https://www.mql5.com/en/articles/10626
我在构建两者时面临的最大挑战线性两篇文章中的逻辑回归库都是多个动态回归函数,我们可以将它们用于多个数据列,而不必为添加到模型中的每个数据进行硬编码,在上一篇文章中,我硬编码了两个同名的函数,它们之间的唯一区别是每个模型可以处理的数据数量,一个能够处理两个独立变量,另一个能够处理四个独立变量
空白 多重回归主(双倍的&预测_y[],双倍的&Y[],双倍的&A[],双倍的&B[]);空白 多重回归主(双倍的&预测_y[],双倍的&Y[],双倍的&A[],双倍的&B[],双倍的&C[],双倍的&D[]);
但是,这种方法很不方便,感觉像是一种不成熟的编码方式,它违反了干净代码和 DRY 的规则(不要重复 OOP 试图帮助我们实现的原则)
与具有灵活函数的 Python 不同,Python 可以借助 *args 和 **kwargs 获取大量函数参数,在 MQL5 中,据我所知,这只能使用字符串来实现,我相信这是我们的起点
空白CMultipleLogisticRegression::MLRInit(细绳x_列=“3,4,5,6,7,8”)
输入 x_columns 代表我们将在库中使用的所有自变量列,这些列将要求我们为每一列拥有多个独立数组,但是,我们无法动态创建数组,因此数组的使用在这里会失败
我们可以动态创建多个 CSV 文件并将它们用作数组,这是肯定的,但是与使用数组相比,这会使我们的程序在使用计算机资源时更加昂贵,尤其是在处理多个数据时,更不用说我们经常用来打开文件的 while 循环会减慢整个过程,我不是 100% 确定,所以如果我错了,请纠正我
认为我们仍然可以使用提到的方式,
我发现了使用数组的方法,我们将把所有列的所有数据存储在一个数组中,然后单独使用该数组中的数据
整数开始=0; 如果(m_调试)//如果我们处于调试模式,则打印每个数组及其行 为了(整数我=0;我数组复制(EachXDataArray,m_AllDataArray,0,开始,行总数); 开始+=行数总计; 打印(“数组编号=”,我,“从列号开始”,m_XColsArray[i]); 阵列打印(EachXDataArray); }
在 for 循环中,我们可以操作数组中的数据,并以所有列所需的方式执行模型的所有计算,我已经尝试过这种方法,但我仍然在尝试不成功,我解释这个假设的原因是为了让阅读本文的每个人都了解这一挑战,我欢迎您在评论部分就如何编写这个多重动态逻辑回归函数提出所有意见
这只是一个假设,旨在启发您编码多元动态回归算法的过程,如上面链接的数据科学和机器学习文章系列中所述
附件下载
📎 multipledynamiclogisticregression.mqh (12.75 KB)
📎 testscript.mq5 (1.29 KB)
Source: MQL5 #38894
💡 精彩内容推荐
✍️ 楼主最新发布
- •
- •
- •
- •
- •
- •
🔗 您可能感兴趣
- •
- •
- •
- •
- •
- •
