如何根据分类输入变量可视化(制作图)回归输出?

数据挖掘 机器学习 可视化 分类数据 线性回归
2022-02-23 15:48:36

我正在使用多个变量进行线性回归。在我的数据中,我有n = 143 个特征和m = 13000个训练示例。我的一些特征是连续(有序)变量(面积、年份、房间数量)。但我也有分类变量(区域、颜色、类型)。现在,我将我的一些功能与预测价格进行了可视化。例如,这是area针对预测的图price在此处输入图像描述

由于area是连续的序数变量,我可以毫无困难地可视化数据。但现在我想以某种方式可视化我的分类变量(例如地区)对预测价格的依赖性。对于分类变量,我使用单热(虚拟)编码。
例如那种数据:
在此处输入图像描述

变成了这种格式: 在此处输入图像描述

如果我以这种方式对区域使用序数编码:

DistrictA - 1
DistrictB - 2
DistrictC - 3
DistrictD - 4
DistrictE - 5

通过将 1-5 放在 X 轴并将价格放在 Y 轴上,我可以很容易地根据预测价格绘制这个值。

但是我使用了虚拟编码,现在我不知道如何显示(可视化)价格和分类变量“地区”之间的依赖关系,表示为一系列零和一。

在使用虚拟编码的情况下,如何绘制显示区域回归线与预测价格的图?

1个回答

一个可能的第一步是将数据转换回原始编码。这在 SQL unpivot和 R melt中被调用。

这是一个 R 示例

> my.df <- read.table(
+ text = "DistrictA     DistrictB    DistrictC    DistrictD     DistrictE     Price
+         1             0            0            0             0             10000
+         0             1            0            0             0             20000
+         0             0            1            0             0             30000
+         0             0            0            1             0             40000
+         0             0            0            0             1             50000"
+      , header = TRUE)
> my.df
  DistrictA DistrictB DistrictC DistrictD DistrictE Price
1         1         0         0         0         0 10000
2         0         1         0         0         0 20000
3         0         0         1         0         0 30000
4         0         0         0         1         0 40000
5         0         0         0         0         1 50000

> library(reshape)
> subset(melt(my.df, id="Price", variable = "District"),value == 1)[,c(1,2)]
   Price  District
1  10000 DistrictA
7  20000 DistrictB
13 30000 DistrictC
19 40000 DistrictD
25 50000 DistrictE

之后,您绘制依赖于因子变量的价格。您还可以考虑根据预测价格订购因子。

我没有提供详细信息,因为您没有标记您的工具,但我建议您在散点图中附加考虑箱线图和/或密度图 - 始终结合模型中每个因子水平的预测值。