对数转换后线性回归不好的结果

数据挖掘 机器学习 回归 统计数据 线性回归
2021-09-17 21:05:05

我有一个包含以下列的数据集:

在此处输入图像描述

我试图预测的变量是“租金”。

我的数据集看起来与此笔记本中发生的情况非常相似我尝试使用对数转换对租金列和面积列进行归一化,因为这两个列都具有正偏度。这是对数转换前后的租金列面积列分布。

前:

在此处输入图像描述

在此处输入图像描述

后:

在此处输入图像描述 在此处输入图像描述

我认为在这些更改之后,我的回归模型会有所改进,事实上他们确实做到了,除了线性回归。

如果我不做任何类型的转换,模型就会表现不佳。当我只变换租金列时,所有模型都得到改善,包括线性回归,但是当我变换租金列面积列时,线性回归的 MAPE 为 2521729.47,结果很糟糕。

不转换区域 MAPE 结果:

在此处输入图像描述

变换区域 MAPE 结果:

在此处输入图像描述

谁能告诉我可能发生了什么或指导我完成任何类型的测试或验证以了解线性回归发生了什么?即使模型正在改进,我转换这些列是错误的吗?

编辑:

在通过删除和添加列测试模型后,我发现在插入邻域列(包含 66 个邻域)并创建虚拟列后,线性回归变得疯狂。当我创建这个虚拟变量时,列数变为 77,而数据集只有大约 3000 行。

我的想法是,在将列转换为虚拟列后,数据变得非常稀疏,并且只有 3000 行的特征太多,这就是为什么线性回归具有如此糟糕的性能而套索回归没有。除此之外,我可能仍然应该使用其他模型,因为它们在更改后表现良好。

我对么?

1个回答

确保在计算 MAPE 之前转换回您的预测值和实际值。

您可以检查哪些观察对高 MAPE 的贡献最大。MAPE 对小的实际值的预测误差非常敏感。最可能表现最差的观察结果(“从 MAPE 的角度来看”)是那些实际值较小的观察结果。

根据您的分析目标,您还可以检查其他指标(例如:MAE)。

稀疏性:是的,您的测试集中可能有一个neighborhood类别,但在您的训练集中不存在(或只有几个示例)。在这种情况下,对该类别的预测可能非常糟糕。虽然这并不能解释为什么你不转换时没有高 MAPE area