具有双峰结果的数据的线性回归

数据挖掘 机器学习 Python scikit-学习 回归 特征选择
2022-02-25 23:32:20

我有一个包含 3,000 个特征和时间连续因变量的数据集,包含 18,000 个实例。因变量的直方图显示它们具有双峰分布。我正在构建预测时间的线性回归模型,但没有一个模型能够做出预测;R2所有模型的值都是0. 我绘制了模型的残差并验证它们是正态分布的

在 Scikit-Learn 中使用LassoCV/ LassoElasticNetCV/ ElasticNetXGBoost和来制作模型。Kernel Ridge Regression我使用系数的权重Lasso来过滤我的数据框,以便我使用预测中幅度最大的特征,但这不起作用。我使用feature_importance_XGBoost 的方法来做类似的事情,但这也没有帮助。

Kernel Ridge Regression 使用参数运行

KernelRidge(alpha=1, coef0=1, degree=3, gamma=0.001, kernel='polynomial', kernel_params=None)

但完全过拟合训练数据R2=1.

我一直在研究非参数方法,如核密度估计和高斯混合模型,但不确定如何将它们用于我的回归任务。我也一直在研究模态回归和多功能拟合,但不熟悉如何用 Python 实现它们。

我还考虑找出哪些特征对模式有贡献,并将数据集拆分为两个分布,并在两个单独的数据集上运行模型,但不确定如何为整个数据集绘制图片。

一般来说,我应该如何使用多模态因变量构建回归模型?

1个回答

一种选择是sklearn.compose.TransformedTargetRegressor 使因变量更正态分布。