机器学习:根据独立变量的影响规范化目标变量

lea*_*n10 7 python statistics machine-learning linear-regression correlation

我有一个数据集,其中包含如下所述的驾驶员旅行信息.我的目标是提出一个新的里程或调整里程,考虑到驾驶员携带的负载和他/她驾驶的车辆.因为我们发现里程和负荷之间存在负相关关系.因此,您携带的负载越多,您可能获得的里程越少.此外,车辆类型也可能影响您的表现.在某种程度上,我们正在尝试将里程标准化,以便给予重负荷且因此而获得较少里程的驾驶员可能不会因里程而受到惩罚.到目前为止,我已经使用线性回归和相关性来查看里程与驾驶员携带的负载之间的关系.相关系数为-.6.因变量是每加仑英里数,自变量是负载和车辆.

Drv Miles per Gal   Load(lbs)   Vehicle
A        7           1500   2016 Tundra
B        8           1300   2016 Tundra
C        8           1400   2016 Tundra
D        9           1200   2016 Tundra
E       10           1000   2016 Tundra
F        6           1500   2017 F150
G        6           1300   2017 F150
H        7           1400   2017 F150
I        9           1300   2017 F150
J       10           1100   2017 F150
Run Code Online (Sandbox Code Playgroud)

结果可能是这样的.

Drv Result-New Mileage
A   7.8
B   8.1
C   8.3
D   8.9
E   9.1
F   8.3
G   7.8
H   8
I   8.5
J   9
Run Code Online (Sandbox Code Playgroud)

到目前为止,我对如何使用LR的斜率来规范化这些分数持怀疑态度.关于方法的任何其他反馈都会有所帮助.

我们的最终目标是通过考虑负载和车辆的影响,根据每加仑英里数对驾驶员进行排名.

谢谢Jay

eto*_*tov 4

“标准化分数”的方法可能有很多,最好的方法很大程度上取决于您想要实现的目标(问题中尚不清楚)。然而,话虽如此,我想建议一个简单实用的方法。

从乌托邦案例开始:假设您有大量数据,所有数据都是完美线性的 - 即,显示每种车辆类型的负载和 MPG 之间的整齐线性关系。在这种情况下,在给定一定负载的情况下,您可以对每种车辆类型的预期 MPG 进行强有力的预测。您可以将实际 MPG 与预期值进行比较,并根据比率“得分”,例如实际 MPG / 预期 MPG。

然而,实际上,数据从来都不是完美的。因此,您可以根据可用数据构建模型,获得预测,但您可以使用置信区间,而不是使用点估计作为评分基础。例如:给定模型和一些负载的预期 MPG 在 9-11 MPG 之间,置信度为 95%。在某些情况下(有更多数据可用,或者更线性),置信区间可能会很窄;在其他地方,它会更宽。

然后,只有当 MPG 超出预期范围时,您才可以采取行动(例如您所说的“惩罚”)。

编辑:插图(R 中的代码):

#df contains the data above.

#generate a linear model (note that 'Vehicle' is not numerical)
md <- lm(data=df, Miles.per.Gal ~ Load + Vehicle)

#generate predictions based on the model; for this illustration, plotting only for 'Tundra' 
newx <- seq(min(df$Load), max(df$Load), length.out=100)
preds_df <- as.data.frame(predict(md, newdata = data.frame(Load=newx, model="Tundra"))

#plot
# fit + confidence
plt <- ggplot(data=preds_df) + geom_line(aes(x=x, y=fit)) + geom_ribbon(aes(x = x, ymin=lwr, ymax=upr), alpha=0.3) 
# points for illustration 
plt + geom_point(aes(x=1100, y=7.8), color="red", size=4) +geom_point(aes(x=1300, y=4), color="blue", size=4) + geom_point(aes(x=1400, y=9), color="green", size=4)   
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

因此,根据此数据,红色驾驶员的油耗(7.8 MPG,1100 负载)明显差于预期,蓝色驾驶员(9 MPG,1300 负载)在预期范围内,而绿色驾驶员(9 MPG,1400 负载) MPG 比预期好。当然,根据您拥有的数据量和拟合优度,您可以使用更复杂的模型,但想法可以保持不变。

编辑 2:修复了绿色和红色之间的混合(因为 MPG 越高越好,而不是更差)

另外,关于“评分”驱动程序的评论中的问题,一个合理的方案可能是使用比率与预测点,或者 - 也许更好 - 通过标准偏差(即与标准偏差单位中的预期差异)对其进行标准化。例如,在上面的示例中,负载为 1250 的线上方 10% 的驾驶员将比负载为 1500 的线上方 10% 的驾驶员获得更好的分数,因为不确定性更大(因此 10% 更接近于“预期的”)。