问题:
我有一个回归问题,我决定使用 Gradient Boosting Regression Trees 来解决它。在所有预处理之后,我最终拥有大约 130 个属性、70K 行,并且我的交叉验证 R 平方为 0.62。
到目前为止的工作:
为了增加我的 R 平方(并收紧我的预测间隔),我尝试使用将目标划分为线性组的提示功能(我手动决定 4 个组并将目标放入 4 个箱中, - 为什么是 4 个?不是太小不是大而不聪明地决定。)。
我知道这不是通常的方法,但这对我的应用程序是可行的,因为最终,我将从用户那里收集这些提示。(我将询问该用户的目标值,并根据他/她的数据向他/她建议另一个目标值。)
因此,我可以将每个用户放入这样的组中,因为似乎并非所有用户的行为都相同,并且他们需要为目标值极高/极低的用户单独建模,而且分布非常正确-倾斜。
使用此作弊提示功能后,我的交叉验证 R 平方变为 0.81。然而,显然,将目标分成这样的线性组,带来了一个阶梯式模型的缺点,该模型在这些组之间有一个明确的分隔,而这并不一定总是如此(用户最有可能给出他的目标值,但不一定应该属于该组),这种分箱的边界值不应该手动确定,这个模型肯定需要平滑。
下一步?
在看到这种方法可能会有所帮助(并且我真的可以利用用户给定的值)之后,我现在正在考虑更聪明的方法来区分用户之间关于这些提示的问题。我正在考虑应用层次聚类并将聚类信息用作提示功能,但不确定这是否是最好的方法。
对于这种方法(论文会很棒)或统计方法来计算这种边界值(基于密度的方法除外),您可能会对我有什么建议吗?