预测财务数据(选择模型)

数据挖掘 分类 随机森林 逻辑回归 金融
2022-02-24 10:08:52

这是我第一次对财务数据做一些事情。我有一个包含帐号和有关每个客户的其他一些信息的数据集(有些客户跨越多行,因为我们每个月的信息都在不同的行中)。我设法清理并创建了一些模型,以下是混淆矩阵、分类报告和 AUC:

逻辑回归

[[185847  62897]
 [     1   1061]]


             precision    recall  f1-score   support

     not buy       1.00      0.75      0.86    248744
         buy       0.02      1.00      0.03      1062

    accuracy                           0.75    249806
   macro avg       0.51      0.87      0.44    249806
weighted avg       1.00      0.75      0.85    249806

AUC train = 0.9168592981611143
AUC test = 0.9150300677458543

随机森林分类器:

[[245503   3241]
 [   960    102]]


              precision    recall  f1-score   support

     not buy       1.00      0.99      0.99    248744
         buy       0.03      0.10      0.05      1062

    accuracy                           0.98    249806
   macro avg       0.51      0.54      0.52    249806
weighted avg       0.99      0.98      0.99    249806

AUC train = 0.9996866568080237
AUC test = 0.9139101966925902

梯度提升分类器:

[[184940  63804]
 [     3   1059]]


              precision    recall  f1-score   support

     not buy       1.00      0.74      0.85    248744
         buy       0.02      1.00      0.03      1062

    accuracy                           0.74    249806
   macro avg       0.51      0.87      0.44    249806
weighted avg       1.00      0.74      0.85    249806

AUC train = 0.8800353734759541
AUC test = 0.8657829269466372

投票分类器(来自上述所有三个):

[[211316  37428]
 [   213    849]]


              precision    recall  f1-score   support

     not buy       1.00      0.85      0.92    248744
         buy       0.02      0.80      0.04      1062

    accuracy                           0.85    249806
   macro avg       0.51      0.82      0.48    249806
weighted avg       0.99      0.85      0.91    249806

AUC train = 0.9987531510931085
AUC test = 0.9160262741936392

由于我没有任何经验,我不确定哪种模型会产生更好的结果。你能帮我理解哪一个以及为什么吗?谢谢!

2个回答

好吧,仅通过比较矩阵来评估您的模型可能非常困难。在您的情况下,您的矩阵不是使用分类为 1 或 0 的相同数量的行完成的,因此比较它们真的很困难。举个例子:您的逻辑回归将大约 64000 分类为 1,而您的 RandomForest 仅分类大约 4500,因此通过该矩阵比较这些数据非常困难。

我建议您使用 ROC AUC 指标,这对于比较模型非常有用。您可能会在 Internet 上找到许多关于此主题的信息。AUC 越接近 1,模型越好。如果小于或等于 0.5,则您的模型效率低于随机分类器。

您可以使用一些不同的方法来测量模型的准确性。正如@BeamsAdept 在他自己的回答中提到的,您可以使用 ROC AUC 指标。或者,您介意发现优势比很有用,如果您的数据集足够大,我强烈建议您研究K-fold 交叉验证之类的东西,以获得更具代表性的结果。当训练准确度明显高于您的测试准确度时,我也会谨慎,这是过度拟合的结果。也许找到特征的P 值可以帮助您过滤掉可能无用的信息,从而提高您在新观察中的准确性。希望这可以帮助!