XGBoost 与 信用卡诈骗数据集 二
解决了之前的问题,成功使用 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 与 信用卡诈骗数据集 二相关推荐
- ML之xgboost:利用xgboost算法对breast_cancer数据集实现二分类预测并进行graphviz二叉树节点图可视化
ML之xgboost:利用xgboost算法对breast_cancer数据集实现二分类预测并进行graphviz二叉树节点图可视化 目录 实现结果 实现代码 实现结果
- ML之XGBoost:利用XGBoost算法对波士顿数据集回归预测(模型调参【2种方法,ShuffleSplit+GridSearchCV、TimeSeriesSplitGSCV】、模型评估)
ML之XGBoost:利用XGBoost算法对波士顿数据集回归预测(模型调参[2种方法,ShuffleSplit+GridSearchCV.TimeSeriesSplitGSCV].模型评估) 目录 ...
- ML之FE之FS:特征工程/数据预处理—特征选择之利用过滤式filter、包装式wrapper、嵌入式Embedded方法(RF/SF)进行特征选择(mushroom蘑菇数据集二分类预测)最全案例应用
ML之FE之FS:特征工程/数据预处理-特征选择之利用过滤式filter.包装式wrapper.嵌入式Embedded方法(RF/SF)进行特征选择(mushroom蘑菇数据集二分类预测)案例应用 利 ...
- 鸢尾花数据集、月亮数据集二分类可视化分析
鸢尾花数据集.月亮数据集二分类可视化分析 目录 鸢尾花数据集.月亮数据集二分类可视化分析 一.线性LDA算法 1.LDA算法 2.鸢尾花数据集 2.月亮数据集 二.K-Means算法 1.K-Mean ...
- 机器学习:基于XGBoost对信用卡欺诈行为的识别
机器学习:基于XGBoost对信用卡欺诈行为的识别 作者:i阿极 作者简介:Python领域新星作者.多项比赛获奖者:博主个人首页
- (!详解 Pytorch实战:①)kaggle猫狗数据集二分类:加载(集成/自定义)数据集
这系列的文章是我对Pytorch入门之后的一个总结,特别是对数据集生成加载这一块加强学习 另外,这里有一些比较常用的数据集,大家可以进行下载: 需要注意的是,本篇文章使用的PyTorch的版本是v0. ...
- XGBoost调参技巧(二)Titanic实战Top9%
学习Kaggle的第一个比赛就是Titanic,断断续续的半年时间,从小白到杀入9%.XGBoost果真是Kaggle杀器,帮我在Titanic中进入9%.zillow进入22%. 简介 Titani ...
- 网购切莫小看1毛钱 暗藏信用卡诈骗玄机
淘宝.京东.团购网吸引了大量网民,网购的火爆的同时也乐翻了那些职业网上骗子.在百度知道.淘宝网控诉购物被骗的帖子比比皆是.钓鱼欺诈网站 严重威胁网购安全,网民在线购物时,可使用金山卫士.金山网盾防骗. ...
- 机器学习项目实战----信用卡欺诈检测(二)
六.混淆矩阵: 混淆矩阵是由一个坐标系组成的,有x轴以及y轴,在x轴里面有0和1,在y轴里面有0和1.x轴表达的是预测的值,y轴表达的是真实的值.可以对比真实值与预测值之间的差异,可以计算当前模型衡量 ...
- 使用Dundas控件在web应用上展现多维数据集(二)
摘要: [20111014批注]此文所讲述的内容已过期,Dundas现在已不提供相关组件,详细情况请参考Dundas官方网站. 上一篇中描述了使用Dundas OLAP构建简单的多维数据集展现,此文简 ...
最新文章
- c#程序设定使用期限_C# 给某个方法设定执行超时时间
- RabbitMQ高可用方案总结
- springCloud学习笔记系列(1)-负载均衡Ribbon
- mysql千万级大数据SQL查询优化
- 一日一技:在Ocelot网关中实现IdentityServer4密码模式(password)
- php常用linux命令httpd,Linux常用的100个命令
- python加入中小学课程_【python即将进入中学课堂,编程从小抓起,竟然在这几点上应验了】- 环球网校...
- filewriter判断是否关闭_IO流详解
- mysql 时间chuo格式化_mysql格式化日期
- IDF 实验室 初探乾坤
- Qt学习笔记——打开并显示图片
- linux系统装好后优化,CentOS 5.6 Linux安装系统后的基本优化
- linux下的二进制文件查看器
- linux rhel 7系统启动过程
- ApacheCN 计算机视觉译文集 20210218 更新
- 图文详解如何将书签bookmarks导回到chrome?
- 春种秋收—朴素的道理
- c语言链表复数实验,十字复数链表在机电暂态仿真程序中的应用.pdf
- 【miscellaneous】各种音视频编解码学习详解
- pythonweb视频播放器_干货分享,Python与PyQT制作视频播放器
热门文章
- 塞班系统服务器,在Symbian系统邮件应用程序中使用IMAP服务
- 菜鸟和计算机高手的差别
- apache mediawiki 安装_mediawiki安装使用
- 修改远程git仓库密码 - 报错 fatal: Authentication failed for
- wifi动不动就断开_笔记本Wifi上网经常间歇性断网的修复
- m基于迫零ZF准则的通信均衡器的matlab仿真
- FusionGAN解读2:跑起来
- Oracle linux7.2安装11g RAC
- 几何公差基础知识之平行度
- hive3之执行计划(Explain)、Fetch 抓取、本地模式、表的优化、Group By、笛卡尔积、行列过滤