对于工作中的一个副项目,我有一个相对较小的 .CSV 文件(约 150k 行),其中包含有关历史贷款、它们的回报率以及将它们取出的人的数据。我需要找出贷款人的哪些属性与最高回报率相关。每行包含个人信用评分、月收入和贷款期限等数字数据,以及他或她需要贷款的目的等定性数据。每个条目总共有 23 个字段,每个字段有大约 2-10 个可能的值。
我最初的想法是将 .CSV 放到 SQLite 中,然后查询每个字段的所有可能排列,并从结果中挑选出最高的回报率。然而,即使是 0.2 毫秒/查询,我意识到完成计算需要大约 400 年的时间,这显然是行不通的。我考虑的另一个解决方案是选择,比如说,历史上最有利可图的 10% 的贷款,并找出它们最常共有的特征。但是,我怀疑这只会返回“发生”还清的高风险贷款的特征——不一定是考虑承销新贷款时选择的最有效特征。
我能想到的最合理的解决方案是获取可以具有一系列值(如收入)的字段并执行类似于二分搜索的操作,例如将收入分成前 50% 和后 50%,选择带有ROR 越高,然后将其分为顶部和底部 50%,等等。我认为这不会起作用,因为 a) 具有最高 ROR 的收入组不一定包含在具有最高 ROR 的组的一半中最高的 ROR,并且 b) 对于其他值的每个排列,都必须重做这种递归检查,仍然非常昂贵。
我想像这样的问题很常见并且存在标准解决方案,但我不知道从哪里开始寻找一个。什么样的解决方案适合这个问题?我可以去哪里阅读更多关于它的信息?
我更喜欢 Python 中的解决方案,但如果有另一种工具更适合我的工作,我愿意接受。如果这是题外话,我深表歉意,但我真的不知道在哪里可以问它——我把它放在 CrossValidated 上一个半星期没有答案,然后删除它并在此处重新发布。