在Github 上面找到了一个信用卡诈骗数据集:
https://github.com/georgymh/ml-fraud-detection
数据源于 kaggle 的信用卡诈骗数据。
其中给出了三种大方法,分别是神经网络,kmeans,以及逻辑回归。
但是今天我想要用XGBoost 试一试。
import sklearn as sk
import xgboost as xgb
import numpy as np
import pandas as pd
from sklearn.model_selection import train_test_split # 功能:数据集按比例切分为训练集和测试集
from sklearn.metrics import precision_score
from sklearn.metrics import recall_score
from sklearn.preprocessing import scale # 数据集标准化
import matplotlib.pyplot as plt
from pandas_ml import ConfusionMatrix # 引入混淆矩阵
# https://github.com/pandas-ml/pandas-ml/
df = pd.read_csv('creditcard.csv', low_memory=False)
X = df.iloc[:,:-1] # 基于位置的纯整数索引
y = df['Class'] # 类别
X_scaled = scale(X) # 标准化
train_X, test_X, train_y, test_y = train_test_split(X, y, test_size=0.35 ,random_state = 12)
dtrain = xgb.DMatrix(train_X, labe