匹配贷款还款的机器学习解决方案方法

数据挖掘 机器学习 神经网络 预测建模 算法 模型选择
2022-03-12 18:07:25

我对 AI/ML 领域比较陌生,但来自编程背景。

问题:我有一个用户交易数据集,他们从单个贷款提供商那里获得了短期贷款,我需要将贷款还款与特定的贷款收据相匹配。
示例数据集如下:


交易日期 | 金额 | 贷记借记

2017-09-01 | 500 | 信用
2017-09-08 | 250 | 借记
2017-09-17 | 294 | 借记
2017-12-11 | 300 | 信用
2017-12-15 | 150 | 借记
2018-01-07 | 200 | 信用
2018-01-12 | 398.8 | 借记
2018-01-19 | 200 | 借记
2018-02-02 | 150 | 借方

这里 creditDebit 列的“Credit”值表示收到的贷款,“Debit”表示之前收到的一些贷款的偿还。

如您所见,前 3 行很容易匹配,因为有 1 个贷方(金额为 500),然后是 2 个借方(金额为 250 和 294)。

从第 4 行开始,我无法弄清楚如何最好地匹配。

  1. 2017-12-11 有一笔贷款的信用交易
  2. 2017-12-15 已部分偿还这笔贷款
  3. 然后是新贷款的另一个信用
  4. 2018-01-12 是之前2笔贷款的部分还款
  5. 最后的2个借记也是部分还款

我已经能够手动确定哪种还款对哪种贷款最有意义,但是在我看来,尝试将其写到 if-else 函数中会非常困难,而且不是最好的。例如,最难的部分是确定 2018 年 1 月 12 日的借方,这是先前收到的两笔贷款的合并还款交易。对于 2017 年 12 月 11 日收到的贷款和 228 年 2018 年 1 月 11 日收到的贷款,我手动计算了此借方的合理拆分。

是否有一些模型/算法可以用来匹配哪些借方交易最有可能偿还哪些信用交易,以及如果还款交易看起来像是对多个先前贷款的复合还款 - 那么借方的合理分割是什么?满足信用交易?

我不知道这对你是否有意义..

我尝试考虑如何使用聚类算法,但我不能,因为聚类不会指示贷记交易和借记交易的匹配,尤其是复合还款借记。

任何关于如何解决这个问题的想法都非常感谢!

1个回答

我不认为机器学习是正确的工具。很难(至少对我而言)将此表述为一个学习问题。

您可以将遗传算法视为一种替代方法。根据您对如何手动进行匹配的描述,似乎以下假设成立:

  • 您正在寻找对贷款的付款分配,使得(本金 + 利息)和debits被最小化
  • 您喜欢将贷款和还款之间的时间缩短到最短的解决方案。

如果上述情况属实,您可能需要考虑将遗传算法作为一种方法。对于 GA,您需要指定表示、目标函数和变异/交叉操作。我认为以下方法会起作用:

总体中的个体(即候选解决方案)表示为长度向量N, 在哪里N是借方的总数。此向量中的每个条目都将借方分配给贷方。例如,个人[1,1,2,3,2,3]表示前两个借方与第一个贷方相关联,第三个借方与第二个贷方相关联,第四个借方与第三个贷方相关联,依此类推。

您希望最小化的目标函数由上面的两个要点描述。我认为以编程方式计算这个函数应该很容易。对于每个学分,计算(原则 + 利息)和debits. 将这些差异相加,然后对信贷和还款之间的时间分离添加惩罚。实现惩罚的一种简单方法是在解决方案之间添加编辑距离V及其排序的对应物sort(V). 你会想要承担时间惩罚的权重,以便允许贷记和借记之间的一些延迟,但你仍然喜欢快速还款。

您需要选择合适的变异和交叉操作。对于这种表示,传统的两点交叉可能会很好地工作,而统一变异可能会很好地工作。


顺便说一句,我当然希望这不是贷款还款匹配的现实方法。当借记不可避免地被分配到不正确的贷记时,您最终会遇到一些愤怒的客户。