一、开篇
上篇文章详细介绍了Panda AI线性模型工作流的完整流程,同时也阐述了策略回测分析与因子相关性分析的具体步骤。正如我们之前所强调的——任何任务都能拆解为清晰可控的工作流,因此我们将进一步把机器学习相关工作流应用到量化分析场景中。
在下面连接中可以看到关于Panda AI 工作流的详细介绍和多因子模型等线性模型、策略回测和因子相关性分析的工作流说明。
https://www.pandaai.online/community/article/135
接下来,我们将通过实操演示机器学习节点的工作流:分别以单模型和多模型为例,解析简单机器学习单模型的基础工作流,以及复杂多机器学习模型的协同工作流,帮助大家直观理解不同场景下的实现逻辑。
二、机器学习介绍
机器学习是人工智能的重要子领域,核心是让计算机从数据中学习规律、优化自身,最终实现对新数据的预测。其核心逻辑与人类学习类似:通过归纳历史数据得到规律(模型),再用新数据验证并迭代优化模型,本质可抽象为 “输入数据 x→模型 f (x)→输出预测结果 y” 的过程。
(一)、机器学习基本流程
机器学习(含深度学习)的核心流程可概括为 “数据→模型→评估→应用” 的闭环,其本质是通过数据训练模型,让机器从数据中自主学习规律。
从学习方式来看,机器学习通常分为监督学习与无监督学习,而我们当前提供的模型均为监督式机器学习模型。这类模型的标准流程可拆解为:
数据收集与预处理→数据分割(训练集与测试集)→模型选择与训练→模型调优→模型评估
下面,我们将结合这一流程,具体说明各步骤节点的衔接方式。
(二)、介绍Panda AI工作流的机器学习模型节点
目前我们支持7个机器学习相关节点,均属于监督学习模型范畴。监督学习包含分类与回归两大任务类型,而这7个模型节点均专注于回归任务——即用于预测数值的模型。
由于不同模型往往存在其特有的参数设置,因此深入理解每个模型的核心参数至关重要。
模型类型 | 模型节点 | 简介 | 工作流节点关键参数 |
---|---|---|---|
深度学习(时序模型) | GRU | Gated Recurrent Unit,通过更新门和重置门缓解梯度消失问题,计算效率高于LSTM。 | time_step(时间步长)、units(LSTM单元数参数)、batch_size(批大小)、epoch(训练轮数)、dropout(dropout比例)、learning_rate(学习率) |
深度学习(时序模型) | LSTM | Long Short-Term Memory,通过遗忘门、输入门和输出门控制信息流动,有效处理长序列依赖。 | time_step(时间步长)、units(LSTM单元数参数)、batch_size(批大小)、epoch(训练轮数)、dropout(dropout比例)、learning_rate(学习率) |
集成学习 | LightGBM | 微软开发的梯度提升框架,采用直方图算法和Leaf-wise生长策略,支持高效训练和高精度预测。 | 训练时间区间、n_estimators(决策树数量)、learning_rate(学习率)、num_leaves(叶子节点数量)、subsample(子样本比例)、colsample_bytree(列采样比例)、lambda_l1(L1正则化)、lambda_l2(L2正则化) |
集成学习 | XGBoost | 高效梯度提升框架,支持并行计算、正则化及缺失值处理,广泛应用于结构化数据建模。 | 训练时间区间、n_estimators(决策树数量)、max_depth(最大深度)、learning_rate(学习率)、min_child_weight(最小子权重)、Gamma(正则化参数)、subsample(子样本比例)、colsample_bytree(列采样比例)、lambda_l1(L1正则化)、lambda_l2(L2正则化) |
集成学习 | 随机森林 | 基于决策树的集成方法,通过Bagging和特征随机选择减少过拟合,适用于高维分类/回归任务。 | 训练时间区间、n_estimators(决策树数量)、max_depth(最大深度)、min_samples_split(最小分裂样本数)、min_samples_leaf(叶节点最小样本数)、max_features(最大特征值)、bootstrap(自助采样)、oob_score(OOB评分)、random_state(随机种子)、n_jobs(并行任务数) |
机器学习 | SVM | 支持向量机,通过最大化分类间隔找到最优超平面,适用于小样本和高维数据分类。 | 训练时间区间、kernel(核函数类型)、degree(多项式函数次数)、gamma(核函数系数)、coef0(核函数独立项)、C(正则化参数)、epsilon(SVR模型中的Epsilon值)、shrinking(是否使用收缩启发式)、cache_size(核缓存大小)、max_iter(最大迭代次数)、tol(停止准则容差) |
深度学习 | 多任务神经网络 | 共享底层特征的神经网络架构,不同输出层处理多目标任务,适用于多目标协同学习。 | 特征工程(最多5个)、训练时间区间、epoch(训练轮数)、hidden_size(隐藏层维度)、learning_rate(学习率) |
三、PandaAI机器学习工作流实操
在目前支持的7个模型节点中,若逐一展开解析每个模型的细节,会占用大量篇幅,且本文不涉及数学公式的推导。因此,关于各模型的具体原理及数学公式,建议参考相关专业书籍与资料。
本文的核心目的是为大家说明这些模型节点在工作流中的具体使用方法。
在连接节点时,需要注意的是选择训练和测试的时间区间。因为机器学习需要选择训练区间和测试区间,训练区间是样本内的,测试区间是样本外的。因此不能有重叠的部分。
(一)、单模型的工作流
1、集成模型
在机器学习中,集成模型(Ensemble Model) 是一种通过组合多个基础模型(基评估器)的预测结果来提升整体性能的技术。主要的集成方法包括装袋法(Bagging)、提升法(Boosting)和堆叠法(Stacking)。我们目前支持的模型有装袋法中的随机森林(Random Forest),以及提升法中的 XGBoost 和 LightGBM。
下面以 LightGBM 为例进行说明,展示其在集成框架中如何通过梯度提升策略优化基模型,提升因子构建的稳定性。
需要注意的是,连接 “因子构建” 节点时,输入节点要连接两个节点:机器学习模型和特征工程。二者的协同作用是确保因子有效性的关键,特征工程提供高质量输入,模型则负责挖掘特征间的深层关联。
下面的例子是 XGBoost + PCA 的工作流:先通过 XGBoost 对原始特征进行初步的非线性特征提取与映射,再用 PCA 对其输出结果做降维处理以减少冗余,这种顺序既能保留模型捕捉到的关键非线性信息,又能通过降维提升后续分析的效率,兼顾特征的深度挖掘与处理的简洁性。
PCA(主成分分析)是一种常用的降维方法,核心是通过线性变换将高维数据映射到低维空间,在保留数据主要信息(方差最大方向)的同时减少特征维度。比如将 100 个相关的特征压缩为 10 个新特征,新特征是原始特征的线性组合,既能简化数据复杂度,又尽可能保留原始数据的关键规律,广泛用于数据预处理、可视化等场景。
2、时序模型
GRU 和 LSTM 是深度学习中专门用于处理时序数据的循环神经网络(RNN)变体,二者通过门控机制有效缓解了传统 RNN 的长期依赖问题,在时序预测、序列建模等任务中应用广泛。
下面以 GRU 为例进行说明,重点展示其如何捕捉因子在时间维度上的动态变化。
3、神经网络
神经网络进行回归任务时,核心是通过多层神经元的非线性变换,学习输入特征与连续目标值之间的映射关系。其结构包含接收特征的输入层、负责特征加工的隐藏层(通过激活函数实现非线性转换)和输出连续预测值的输出层;训练过程中以均方误差(MSE)等为损失函数,通过反向传播调整各层权重以最小化预测误差,最终实现对新数据的连续值预测。
下面以神经网络为例进行说明,展示其在处理高维、非线性特征时的灵活性,以及如何通过调整隐藏层结构优化因子表达。
4、SVM
SVM(支持向量机)做回归任务的核心逻辑是:在特征空间中找到一个超平面,让所有样本到该超平面的距离(误差)不超过指定阈值 ε,同时最大化超平面两侧的 “间隔”。
下面以 SVM 为例进行说明,侧重于其在小样本、高维特征场景下的稳定性,适合对因子进行精细化拟合。
(二)、多个机器学习模型
接下来我们实操一下更复杂一点的工作流 —— 多个机器学习模型的协同工作流。这一工作流的灵活性在于,既可以同时使用多个相同模型(通过调整参数形成差异化输出),也可以组合不同类型的模型;同时,还能将前篇提到的简单线性模型与复杂机器学习模型结合使用,以此挖掘因子更深层的信息。
1、多个机器学习工作流
(1)3个XGBoost
我们尝试分别用 3 个模型(比如都是 XGBoost,但参数不同,如树深、学习率存在差异;或者混合使用 XGBoost、LightGBM、SVM 等不同模型)对这 3个特征做了训练。这边举例使用 3 个模型来说明:通过设置不同参数,让每个 XGBoost 模型聚焦特征的不同维度(如有的侧重捕捉高频波动,有的侧重长期趋势),最终将它们的输出作为新的因子输入下一步分析。
(2)GRU模型和Xgboost模型
我们再尝试一下不同模型之间的合并。GRU 作为时序模型擅长捕捉特征的时间序列依赖,XGBoost 则在处理非线性特征交互上更具优势,两者结合可以同时覆盖时序规律与横截面特征关系,让因子同时具备时间和空间维度的信息。
2、非线性模型+线性模型工作流
这次尝试一下两个线性和两个非线性的模型。线性模型相关部分可以参考上一篇的文章,比如用线性回归和岭回归负责提取特征的线性趋势,而非线性模型(如 XGBoost 和神经网络)则专注挖掘特征间的复杂交互,通过这种 “线性 + 非线性” 的组合,既能保留基础规律,又能捕捉隐藏模式。
所有的因子分析结果可视化解析请参考下面链接,可辅助判断工作流的优化方向。
https://www.pandaai.online/community/article/135
四、总结
Panda AI 工作流支持丰富的复杂机器学习相关模型,可灵活搭建多模型协同的工作流 —— 既支持多个相同模型(如参数不同的 XGBoost)或不同模型(如 GRU 与 XGBoost)的组合,也能融合线性模型与非线性模型,还涵盖集成模型(随机森林、XGBoost、LightGBM 等,可结合 PCA 等降维方法)、时序模型(GRU、LSTM)、神经网络、SVM 等。未来,Panda AI 将持续迭代工作流功能,不断拓展模型支持范围与协同能力,致力于推动 “量化大众化”,让复杂的量化分析更易上手、更贴近大众需求。