基于LightGBM的信用卡使用意图预测模型
基于LightGBM的信用卡使用意图预测模型
本代码展示了如何使用LightGBM模型对信用卡使用意图进行预测,并通过随机搜索和交叉验证等方法优化模型性能。pythonimport lightgbm as lgbfrom sklearn.model_selection import RandomizedSearchCVfrom sklearn.metrics import roc_auc_score, classification_report, confusion_matrixfrom scipy.stats import randint as sp_randint
创建LGBMClassifier对象lg = lgb.LGBMClassifier()
定义参数字典params = { 'boosting_type': ['gdbt', 'dart', 'rf'], 'max_depth': sp_randint(-1, 20), 'learning_rate': [0.1, 0.2, 0.3, 0.4, 0.5], 'n_estimators': sp_randint(50, 400)}
使用RandomizedSearchCV进行随机搜索调参rscv = RandomizedSearchCV(lg, param_distributions=params, cv=5, scoring='roc_auc', n_iter=10, n_jobs=-1)rscv.fit(x, y)
获取最佳参数print('Best parameters found by RandomizedSearchCV:', rscv.best_params_)
使用最佳参数创建LGBMClassifier对象lg = lgb.LGBMClassifier(**rscv.best_params_)
训练模型lg.fit(x_train, y_train)
预测训练集结果y_train_pred = lg.predict(x_train)y_train_prob = lg.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 = lg.predict(x_test)y_test_prob = lg.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))
代码说明:
- 导入必要的库,包括
lightgbm、RandomizedSearchCV、roc_auc_score、classification_report和confusion_matrix。2. 创建一个LGBMClassifier对象,并定义一个包含待调参数的字典params。3. 使用RandomizedSearchCV函数进行随机搜索调参,找到最佳参数组合。4. 使用最佳参数创建新的LGBMClassifier对象,并使用训练数据进行模型训练。5. 使用训练好的模型对训练集和测试集进行预测,并计算相应的评估指标,包括ROC得分、分类报告和混淆矩阵。
结果分析:
通过比较训练集和测试集的评估指标,可以评估模型的泛化能力。如果模型在训练集上表现良好,但在测试集上表现较差,则可能存在过拟合问题。
结论:
该代码提供了一个使用LightGBM模型预测信用卡使用意图的示例,并展示了如何通过随机搜索和交叉验证等方法优化模型性能。
原文地址: https://www.cveoy.top/t/topic/fVPt 著作权归作者所有。请勿转载和采集!