语境
我正在研究一个回归问题,试图预测可负担性。我的数据集包含以合同形式偿还购买的每日分期付款。本质上,客户必须为其购买支付的最低每日费率。使用这些数据,我想预测每个客户的承受能力。我的目标变量是最后一次购买的每日费率,并且这些功能考虑了该时间点之前的所有付款和类似购买。在这个问题中,可负担性是:客户可以添加到他们现有的每日费率并且可以持续偿还的额外每日费率的数量。问题当客户预先支付大量资金(有时是全部金额)并且合同的每日费率非常低时,就会出现假设问题。该客户将具有相同的目标
例子
客户ID | 总支付 | previous_daily_rate | days_since_first_purchase | last_purchase_daily_rate(目标) |
---|---|---|---|---|
123 | 200 | 0.2 | 5 | 0.1 |
321 | 200 | 0.2 | 1100 | 0.1 |
还有更多功能,但我只是为了简单起见
从上面的示例数据中我们可以看到,customer 123
前 5 天支付了 200,而预期只支付了 1$(days*daily_rate)。The customer 321
另一方面,他在 1100 天内支付了相同的金额,但他实际上预计支付 220。
- 这是回归的问题吗?
- 关于如何解决这个问题的任何线索?
潜在的解决方案
为了解决这个问题,我正在研究一种夸大目标变量的方法,以应对可能的购买力明显高于我们在数据中看到的情况。但是,我只能想出任意的硬编码公式。我现有解决方案的逻辑如下:
if total_paid/days_since_purchase(aka *contract performance%*) >= 200
and last_daily_rate(target) < some_value
then
if last_daily_rate(target) * inflation >= cap
inflated_target = cap
else inflated_target = last_daily_rate(target) * inflation
与保持目标变量不变相比,这已经给出了更好的结果。然而,所有的阈值和逻辑都是任意的。我想知道社区是否遇到过任何类似的问题,如果有,是否有更强大的方法来解决这些类型的问题。
编辑:
客户的替代解决方案,例如customer_id 123
:
- 将它们视为异常值并删除它们
- 将其转换为分类问题并手动将这些客户分配到更高的可负担性等级(类别)