概率数据的线性回归

数据挖掘 数据集 线性回归
2021-10-14 02:32:21

我有一个本质上是概率的数据集。例如,如果一条记录有 d 个特征,那么x1, ..., xd 是这样的,它们的总和加到 1。换句话说,对于每个 xi 数据记录(行)

P(xi,1)+P(xi,2)+...+P(xi,d)=1

我想应用线性回归模型来预测变量 y.

我的问题是:

  1. 线性回归可以用于此类数据集吗?我可以使用哪些其他型号?
  2. 我应该放弃一项功能(一些 xi,d) 从每个数据记录中,因为我可以通过使用 1 - summing prob(remainingfeatures) 轻松计算丢弃特征的值。
  3. 当我使用线性回归时,所有自变量(xi,0, xi,d) 的值 < 1(因为概率),因变量不是。我应该使用log(yi) 相反(因为权重 w 为了 y^i=wxi 计算会很大)?

理想情况下,我将梯度下降应用于凸优化问题。可以是这样x0...xd属于某个未知的分布,就我而言,我知道那个分布。但是,如果他们有替代模型,请建议。

1个回答

在您的情况下,线性回归的问题不在于它是否可以使用 - 它几乎总是可以用于构建预测回归模型 - 而是生成的模型是否有用,通常是否足够准确以达到预期用途。

模型的准确性和实用性不仅仅取决于模型的性质 x. 相反,它取决于xy关系。您的测量值和模型是该关系的近似值。线性模型计算起来既快速又稳定,但如果被近似的真实关系是非线性的,则可能会受到限制。

以下是对您的问题的一些基本想法/反馈:

  1. 线性回归可以适用于此类数据集吗?

是的,它可以工作。会足够好吗?测试后就知道了。

我可以使用哪些其他型号?

几乎任何回归模型类都可以应用于这个问题。为了快速比较,看看非线性模型是否会为您做出更准确的预测,然后您可以尝试现有库中易于应用的模型,例如 XGBoost(它有一个独立的命令行版本)。

  1. 我应该放弃一项功能(一些 xi,d) 从每个数据记录中,因为我可以通过使用 1 - summing prob(remainingfeatures) 轻松计算丢弃特征的值。

对于线性模型,您的直觉是正确的,即一个特征是多余的,因为它本身就是其他特征的线性组合,因此删除它没有影响。您可以删除任何单个列。不过,您不应该这样做,如果留下一些模型类可能会更好。与往常一样,如果您不确定,请进行实验,并使用保留测试数据来验证您的想法(或者甚至更好的是之前单独的交叉验证集最终测试阶段)

  1. 当我使用线性回归时,所有自变量(xi,0, xi,d) 的值 < 1(因为概率),因变量不是。我应该使用log(yi) 相反(因为权重 W 为了 y^i=Wxi 计算会很大)?

对于线性回归,这种缩放不是很重要。但是,有一些警告:

  • 如果您通过错误度量(例如均方误差)来衡量成功,那么为了公平地比较不同的想法,您应该以相同的方式报告测试错误 - 例如,您应该缩减 log(y)-基于预测并计算相同的错误 (yy^)2 每一次。

  • 对于某些模型类,如果目标变量在一定范围内,它们可能会更好地工作。您应该为此检查文档。

  • 映射的有用程度取决于两者之间关系的真实性质 xy. 特别是对于线性模型,您已经完全改变了您要拟合的线 - 结果可能会好很多或坏很多,但这不仅仅取决于x. 因此,您将不得不再次尝试并测试结果。