KNN模型在信用卡使用意图预测中的应用及评估
KNN模型用于基于信用卡使用意图预测的情况下,可以帮助我们识别信用卡使用者的行为模式,进而预测他们是否会逾期或欺诈。具体来说,KNN模型可以根据用户的历史数据,比如交易金额,交易时间,交易地点等,来预测用户的信用卡使用情况。在这个模型中,KNN算法会根据用户历史数据的相似性,将用户分为不同的类别,并根据这些类别来预测用户的信用卡使用情况。
代码中,我们使用KNN模型来对信用卡使用意图进行预测,并输出模型的评估结果。具体来说,我们使用KNeighborsClassifier来训练模型,设置n_neighbors为5。然后,我们使用模型对训练数据和测试数据进行预测,并计算ROC score、classification report和confusion matrix等评估指标,以评估模型的性能。
print('****************************************************')
print('Results for model : KNN')
from sklearn import neighbors
KNN=neighbors.KNeighborsClassifier(n_neighbors=5)
KNN.fit(x_train, y_train)
y_train_pred = KNN.predict(x_train)
y_train_prob = KNN.predict_proba(x_train)[:, 1]
print('ROC score for train is :', roc_auc_score(y_train, y_train_prob))
print('Classification report for train:
')
print(classification_report(y_train, y_train_pred))
print(confusion_matrix(y_train, y_train_pred))
y_test_pred = KNN.predict(x_test)
y_test_prob = KNN.predict_proba(x_test)[:, 1]
print('ROC score for test is :', roc_auc_score(y_test, y_test_prob))
print('Classification report for test :
')
print(classification_report(y_test, y_test_pred))
print(confusion_matrix(y_test, y_test_pred))
在结果中,我们可以看到KNN模型在训练集上的ROC score为0.8777,表明模型的性能较好。同时,我们也可以看到模型在预测欺诈类别(1)时的precision和recall较低,说明模型在识别欺诈交易方面还有一定的误差。在测试集上,模型的ROC score为0.7099,表明模型的性能略低于训练集。同时,模型在预测欺诈类别时的precision和recall也较低,说明模型在测试集上的性能也存在一定的误差。因此,我们需要进一步优化模型,提高其性能,以更好地预测信用卡使用意图。
原文地址: https://www.cveoy.top/t/topic/fVLZ 著作权归作者所有。请勿转载和采集!