如何判断性能不好是不是数据质量造成的?

数据挖掘 机器学习
2022-02-13 18:03:32

我正在使用一组功能,说X1,X2,...,Xm, 预测目标值Y,这是一个从零到一的连续值。

起初,我尝试使用线性回归模型进行预测,但效果不佳。均方根误差约为 0.35,对于从 0 到 1 的值的预测,这相当高。

然后,我尝试了不同的模型,例如基于决策树的回归、基于随机森林的回归、梯度提升树回归等。但是,所有这些模型也都表现不佳。(RMSE0.35,与线性回归没有显着差异)

我理解这个问题有很多可能的原因,比如:特征选择或模型的选择,但也许更根本的是,数据集的质量不好。

我的问题是:如何检查它是否是由不良数据质量引起的?

顺便说一句,对于数据集的大小,有超过 10K 个数据点,每个数据点与 105 个特征相关联。

我还尝试使用基于决策树的回归来研究每个特征的重要性,结果表明,只有一个特征(据我所知,这不应该是这个问题最突出的特征)的重要性为 0.2,而其余的只有小于 0.1 的重要性。

2个回答

首先,听起来您对模型选择的选择在这里是个问题。您的输出是二进制值的,而不是连续的。具体来说,您手头可能有分类问题,而不是传统的回归问题。我的第一个建议是尝试一种简单的分类方法,例如逻辑回归或线性判别分析。

关于您对不良数据的怀疑,这种情况下,不良数据会是什么样子?你有理由怀疑你的X值嘈杂或您的y价值被贴错标签?您的任何功能与目标之间也可能没有密切的关系。由于您的目标是二元的,您应该查看每个特征的直方图以粗略了解类条件分布,即p(X1|y=1)对比p(X1|y=0). 但总的来说,您需要更具体地了解“不良数据”对您意味着什么。

你有多少功能?

不太可能所有功能都不好。因此,您可以使用不同数量的特征进行回归。

例如,对所有特征做一次传递,然后取出一个(通常是 X_m),这样你就有了 m-1 个特征。继续这样做,这样您就可以删除无信息的功能。

另外,我建议您计算 P 值,以查看您的回归量是否有意义。