概率预测之NGBoost(Natural Gradient Boosting)回归和分位数(Quantile Regression)回归
@[TOC](概率预测之NGBoost(Natural Gradient Boosting)回归和线性分位数回归)
概率预测是一种预测方法,它不仅提供一个具体的预测值(如点预测),还提供预测值的概率分布或置信区间。这种方法能够更好地捕捉预测的不确定性,适用于需要了解预测结果可靠性的场景。
NGBoost
NGBoost(Natural Gradient Boosting)是一个用于提升树的分位数回归和概率预测的强大库。它通过自然梯度提升方法来优化分位数损失函数,从而能够提供更准确的概率预测和分位数回归。
NGBoost超参数解释
- n_estimators
含义:提升树的数量。
作用:控制模型的复杂度和拟合能力。增加树的数量可以提高模型性能,但也可能导致过拟合。
默认值:通常为50或100。 - learning_rate
含义:学习率,用于缩放每棵树的贡献。
作用:降低每棵树的影响以防止过拟合,同时通过更多的树逐步逼近目标。
默认值:0.1。 - minibatch_frac
含义:每次迭代时使用的样本比例(类似于随机梯度下降中的批量大小)。
作用:减少计算量并引入随机性,有助于防止过拟合。
默认值:1.0(使用所有样本)。 - col_sample
含义:每次迭代时使用的特征比例。
作用:通过减少特征数量引入随机性,防止过拟合。
默认值:1.0(使用所有特征)。 - base
含义:基础估计器(弱学习器),通常是决策树。
作用:指定模型的基础结构,默认为DecisionTreeRegressor。
默认值:max_depth=3 的决策树。 - Dist
含义:目标变量的概率分布类型。
作用:定义目标变量的分布形式,如正态分布 (Normal)、伯努利分布 (Bernoulli) 等。
默认值:根据任务自动选择。 - Score
含义:评分函数,用于评估当前模型的拟合效果。
作用:指导模型优化方向,例如负对数似然 (LogScore) 或偏差方差分解 (CRPScore)。
默认值:LogScore。 - natural_gradient
含义:是否使用自然梯度下降。
作用:启用自然梯度下降可以加速收敛并减少训练过程中的振荡。
默认值:True。 - verbose
含义:控制训练过程中的日志输出。
作用:调试和监控模型训练过程。
默认值:True。 - random_state
含义:随机种子,确保结果可复现。
作用:设置随机数生成器的种子。
默认值:None。
1 | |
NGBoost.fit
X
类型:array-like 或 pandas.DataFrame
含义:训练数据的特征矩阵,形状为 (n_samples, n_features)。
作用:模型将基于这些特征进行学习。Y
类型:array-like
含义:目标变量(标签),形状为 (n_samples,)。
作用:模型的目标是拟合这些标签值。X_val=None
类型:array-like 或 pandas.DataFrame
含义:验证集的特征矩阵。
作用:如果提供验证集,则可以在训练过程中监控模型在验证集上的表现。Y_val=None
类型:array-like
含义:验证集的目标变量。
作用:与 X_val 配合使用,用于评估模型的泛化能力。early_stopping_rounds=None
类型:int
含义:早停轮数。
作用:如果在连续 early_stopping_rounds 轮中,验证集上的性能没有提升,则提前停止训练。用于防止过拟合。sample_weight=None
类型:array-like
含义:样本权重,形状为 (n_samples,)。
作用:为每个样本分配不同的权重,影响模型的学习过程。
score(X, Y)
- 含义:计算模型在给定数据上的评分。
- 返回值:负对数似然(Negative Log-Likelihood, NLL)或其他指定的评分函数值。
staged_predict(X)
- 含义:逐步生成预测结果,类似于梯度提升中的逐轮预测。
- 参数:
- X:特征矩阵。
- 返回值:一个生成器,逐步返回每轮迭代后的预测结果。
- 适用场景:观察模型在不同迭代次数下的表现。
1 | |
feature_importances_
- 含义:返回特征的重要性(基于基学习器的贡献)。
- 返回值:一个数组,表示每个特征的重要性。
- 注意:仅当基学习器为决策树时有效。
pred_dist 方法来获取概率分布对象
- mean(): 获取均值。
- median(): 获取中位数。
- interval(alpha): 获取指定置信水平的置信区间。
- pdf(x): 获取概率密度函数(PDF)在 x 处的值。
- cdf(x): 获取累积分布函数(CDF)在 x 处的值。
- ppf(q): 获取分位数函数(PPF)在 q 处的值。
1 | |
分位数回归(Quantile Regression)
分位数回归(Quantile Regression)是一种统计方法,用于估计目标变量在不同分位数上的条件分布。
smf.quantreg 对多变量数据进行分位数回归分析
smf.quantreg 是 statsmodels 库中的一个模块,用于进行分位数回归(Quantile Regression)。
1 | |
概率预测指标
1 | |
参考
1.https://github.com/statsmodels/statsmodels
2.新能源电力系统概率预测:基本概念与数学原理_万灿.pdf
3.新能源电力系统概率预测理论与方法=Theory and Methodology of Probabilistic Forecasting for Renewable Power Systems_万灿,宋永华.pdf
4.https://github.com/stanfordmlgroup/ngboost