机器学习 knn adaboost xgboost lgbm 的用户信用违约预测 完整代码数据
时间: 2023-11-23 15:02:51 浏览: 68
下面是使用机器学习算法KNN, Adaboost, XGBoost, LightGBM进行用户信用违约预测的完整代码和数据示例:
```python
# 导入必要的库
import pandas as pd
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.neighbors import KNeighborsClassifier
from sklearn.ensemble import AdaBoostClassifier
import xgboost as xgb
import lightgbm as lgb
from sklearn.metrics import accuracy_score, classification_report
# 读取数据
data = pd.read_csv('credit_default_data.csv')
# 数据预处理
X = data.drop('default', axis=1)
y = data['default']
scaler = StandardScaler()
X = scaler.fit_transform(X)
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# KNN模型训练和预测
knn = KNeighborsClassifier(n_neighbors=5)
knn.fit(X_train, y_train)
knn_pred = knn.predict(X_test)
# Adaboost模型训练和预测
adb = AdaBoostClassifier(n_estimators=50, learning_rate=1)
adb.fit(X_train, y_train)
adb_pred = adb.predict(X_test)
# XGBoost模型训练和预测
xg_train = xgb.DMatrix(X_train, label=y_train)
xg_test = xgb.DMatrix(X_test, label=y_test)
params = {
'max_depth': 3,
'eta': 0.1,
'objective': 'binary:logistic'
}
num_round = 100
xg_model = xgb.train(params, xg_train, num_round)
xg_pred = xg_model.predict(xg_test)
# LightGBM模型训练和预测
train_data = lgb.Dataset(X_train, label=y_train)
test_data = lgb.Dataset(X_test, label=y_test)
param = {'num_leaves': 31, 'objective': 'binary'}
num_round = 100
lgb_model = lgb.train(param, train_data, num_round)
lgb_pred = lgb_model.predict(X_test)
# 评估模型性能
print("KNN模型准确率: ", accuracy_score(y_test, knn_pred))
print("Adaboost模型准确率: ", accuracy_score(y_test, adb_pred))
print("XGBoost模型准确率: ", accuracy_score(y_test, (xg_pred > 0.5).astype(int)))
print("LightGBM模型准确率: ", accuracy_score(y_test, (lgb_pred > 0.5).astype(int))
# 输出分类报告
print("KNN模型分类报告: \n", classification_report(y_test, knn_pred))
print("Adaboost模型分类报告: \n", classification_report(y_test, adb_pred))
print("XGBoost模型分类报告: \n", classification_report(y_test, (xg_pred > 0.5).astype(int)))
print("LightGBM模型分类报告: \n", classification_report(y_test, (lgb_pred > 0.5).astype(int)))
```
以上是一个简单的使用KNN, Adaboost, XGBoost, LightGBM模型进行用户信用违约预测的示例代码。在实际应用中,可以根据需要调优模型参数以及进行交叉验证等进一步优化模型性能。