解决了之前的问题,成功使用 sklearn API

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 # 引入混淆矩阵
from xgboost.sklearn import XGBClassifierdf = 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, label = train_y)
# dtest = xgb.DMatrix(test_X, label = test_y)XGBC = xgb.XGBClassifier(gamma = 0.1,                      # Gamma指定了节点分裂所需的最小损失函数下降值,值越大,算法越保守。learning_rate = 0.3,              # 学习速率max_delta_step = 0,               # 限制每棵树权重改变的最大步长。0为没有限制,越大越保守。可用于样本不平衡的时候。max_depth = 5,                    # 树的最大深度min_child_weight = 6,             # 最小叶子节点样本权重和。低避免过拟合,太高导致欠拟合。missing = None,                   # 如果有缺失值则替换。默认 None 就是 np.nann_estimators = 250,               # 树的数量nthread = 8,                      # 并行线程数量objective = 'binary:logistic',    # 指定学习任务和相应的学习目标或要使用的自定义目标函数#'objective':'multi:softprob',    # 定义学习任务及相应的学习目标#'objective':'reg:linear',        # 线性回归#'objective':'reg:logistic',      # 逻辑回归#'objective':'binary:logistic',   # 二分类的逻辑回归问题,输出为概率#'objective':'binary:logitraw',   # 二分类的逻辑回归问题,输出结果为 wTx,wTx指机器学习线性模型f(x)=wTx+b#'objective':'count:poisson'      # 计数问题的poisson回归,输出结果为poisson分布#'objective':'multi:softmax'      # 让XGBoost采用softmax目标函数处理多分类问题,同时需要设置参数num_class#'objective':'multi:softprob'     # 和softmax一样,但是输出的是ndata * nclass的向量,# 可以将该向量reshape成ndata行nclass列的矩阵。# 每行数据表示样本所属于每个类别的概率。reg_alpha = 1,                    # 权重的L1正则化项。默认1reg_lambda = 1,                   # 权重的L2正则化项。默认1scale_pos_weight = 10000,         # 数字变大,会增加对少量诈骗样本的学习权重,这里10000比较好seed = 0,                         # 随机种子silent = True,                    # 静默模式开启,不会输出任何信息subsample = 0.9,                  # 控制对于每棵树,随机采样的比例。减小会更加保守,避免过拟,过小会导致欠拟合。base_score = 0.5)                 # 所有实例的初始预测评分,全局偏差 bst = XGBC.fit(train_X, train_y)
preds = bst.predict(test_X) # 对测试集作出预测
print("训练完成")# 精确度(Precision):
# P = TP/(TP+FP) ;  反映了被分类器判定的正例中真正的正例样本的比重
print("精确度(Precision):", precision_score(test_y, preds, average='macro')) # ?? %
print("召回率(Recall):", recall_score(test_y, preds, average='macro')) # ?? %predicted_y = np.array(preds)
right_y = np.array(test_y)# 混淆矩阵的每一列代表了预测类别,
# 每一列的总数表示预测为该类别的数据的数目;
# 每一行代表了数据的真实归属类别,
# 每一行的数据总数表示该类别的数据实例的数目。
confusion_matrix = ConfusionMatrix(right_y, predicted_y)
# print("Confusion matrix:\n%s" % confusion_matrix)
# confusion_matrix.plot(normalized=True)
# plt.show()
confusion_matrix.print_stats()'''
population: 99683
P: 176
N: 99507
PositiveTest: 170
NegativeTest: 99513
TP: 147
TN: 99484
FP: 23
FN: 29
TPR: 0.835227272727
TNR: 0.999768860482
PPV: 0.864705882353
NPV: 0.999708580788
FPR: 0.000231139517823
FDR: 0.135294117647
FNR: 0.164772727273
ACC: 0.999478346358
F1_score: 0.849710982659
MCC: 0.849577974181
informedness: 0.834996133209
markedness: 0.864414463141
prevalence: 0.00176559694231
LRP: 3613.52000988
LRN: 0.164810821567
DOR: 21925.2593703
FOR: 0.00029141921156s
'''

可以看出,增加了诈骗样本的学习权重,但是改进效果不是很好。

XGBoost 与 信用卡诈骗数据集 二相关推荐

  1. ML之xgboost:利用xgboost算法对breast_cancer数据集实现二分类预测并进行graphviz二叉树节点图可视化

    ML之xgboost:利用xgboost算法对breast_cancer数据集实现二分类预测并进行graphviz二叉树节点图可视化 目录 实现结果 实现代码 实现结果

  2. ML之XGBoost:利用XGBoost算法对波士顿数据集回归预测(模型调参【2种方法,ShuffleSplit+GridSearchCV、TimeSeriesSplitGSCV】、模型评估)

    ML之XGBoost:利用XGBoost算法对波士顿数据集回归预测(模型调参[2种方法,ShuffleSplit+GridSearchCV.TimeSeriesSplitGSCV].模型评估) 目录 ...

  3. ML之FE之FS:特征工程/数据预处理—特征选择之利用过滤式filter、包装式wrapper、嵌入式Embedded方法(RF/SF)进行特征选择(mushroom蘑菇数据集二分类预测)最全案例应用

    ML之FE之FS:特征工程/数据预处理-特征选择之利用过滤式filter.包装式wrapper.嵌入式Embedded方法(RF/SF)进行特征选择(mushroom蘑菇数据集二分类预测)案例应用 利 ...

  4. 鸢尾花数据集、月亮数据集二分类可视化分析

    鸢尾花数据集.月亮数据集二分类可视化分析 目录 鸢尾花数据集.月亮数据集二分类可视化分析 一.线性LDA算法 1.LDA算法 2.鸢尾花数据集 2.月亮数据集 二.K-Means算法 1.K-Mean ...

  5. 机器学习:基于XGBoost对信用卡欺诈行为的识别

    机器学习:基于XGBoost对信用卡欺诈行为的识别 作者:i阿极 作者简介:Python领域新星作者.多项比赛获奖者:博主个人首页

  6. (!详解 Pytorch实战:①)kaggle猫狗数据集二分类:加载(集成/自定义)数据集

    这系列的文章是我对Pytorch入门之后的一个总结,特别是对数据集生成加载这一块加强学习 另外,这里有一些比较常用的数据集,大家可以进行下载: 需要注意的是,本篇文章使用的PyTorch的版本是v0. ...

  7. XGBoost调参技巧(二)Titanic实战Top9%

    学习Kaggle的第一个比赛就是Titanic,断断续续的半年时间,从小白到杀入9%.XGBoost果真是Kaggle杀器,帮我在Titanic中进入9%.zillow进入22%. 简介 Titani ...

  8. 网购切莫小看1毛钱 暗藏信用卡诈骗玄机

    淘宝.京东.团购网吸引了大量网民,网购的火爆的同时也乐翻了那些职业网上骗子.在百度知道.淘宝网控诉购物被骗的帖子比比皆是.钓鱼欺诈网站 严重威胁网购安全,网民在线购物时,可使用金山卫士.金山网盾防骗. ...

  9. 机器学习项目实战----信用卡欺诈检测(二)

    六.混淆矩阵: 混淆矩阵是由一个坐标系组成的,有x轴以及y轴,在x轴里面有0和1,在y轴里面有0和1.x轴表达的是预测的值,y轴表达的是真实的值.可以对比真实值与预测值之间的差异,可以计算当前模型衡量 ...

  10. 使用Dundas控件在web应用上展现多维数据集(二)

    摘要: [20111014批注]此文所讲述的内容已过期,Dundas现在已不提供相关组件,详细情况请参考Dundas官方网站. 上一篇中描述了使用Dundas OLAP构建简单的多维数据集展现,此文简 ...

最新文章

  1. c#程序设定使用期限_C# 给某个方法设定执行超时时间
  2. RabbitMQ高可用方案总结
  3. springCloud学习笔记系列(1)-负载均衡Ribbon
  4. mysql千万级大数据SQL查询优化
  5. 一日一技:在Ocelot网关中实现IdentityServer4密码模式(password)
  6. php常用linux命令httpd,Linux常用的100个命令
  7. python加入中小学课程_【python即将进入中学课堂,编程从小抓起,竟然在这几点上应验了】- 环球网校...
  8. filewriter判断是否关闭_IO流详解
  9. mysql 时间chuo格式化_mysql格式化日期
  10. IDF 实验室 初探乾坤
  11. Qt学习笔记——打开并显示图片
  12. linux系统装好后优化,CentOS 5.6 Linux安装系统后的基本优化
  13. linux下的二进制文件查看器
  14. linux rhel 7系统启动过程
  15. ApacheCN 计算机视觉译文集 20210218 更新
  16. 图文详解如何将书签bookmarks导回到chrome?
  17. 春种秋收—朴素的道理
  18. c语言链表复数实验,十字复数链表在机电暂态仿真程序中的应用.pdf
  19. 【miscellaneous】各种音视频编解码学习详解
  20. pythonweb视频播放器_干货分享,Python与PyQT制作视频播放器

热门文章

  1. 塞班系统服务器,在Symbian系统邮件应用程序中使用IMAP服务
  2. 菜鸟和计算机高手的差别
  3. apache mediawiki 安装_mediawiki安装使用
  4. 修改远程git仓库密码 - 报错 fatal: Authentication failed for
  5. wifi动不动就断开_笔记本Wifi上网经常间歇性断网的修复
  6. m基于迫零ZF准则的通信均衡器的matlab仿真
  7. FusionGAN解读2:跑起来
  8. Oracle linux7.2安装11g RAC
  9. 几何公差基础知识之平行度
  10. hive3之执行计划(Explain)、Fetch 抓取、本地模式、表的优化、Group By、笛卡尔积、行列过滤