信用卡欺诈检测

信用卡欺诈检测逻辑回归算法是基于python 3.7.0、numpy 1.16.2、pandas 0.24.1、scikit-learn 0.20.3版本实现的。
**总结:**基于逻辑回归算法的信用卡欺诈检测的主要步骤为:①从数据集中导入数据,并对样本数据进行分析和预处理(过、下采样,增、删特征等),使得各类标签所对应的样本数量相等,避免因数量相差过大导致训练模型泛化能弱的问题;②将预处理得到的数据分为训练集和测试集;③将训练集中的数据分为K折,每次利用K-1折数据进行训练,另1个用来评估模型,并计算出召回率,总共进行K次,将K次的召回率求平均值,即为该参数下模型的召回率,根据召回率选取最优参数;④根据确定的参数值,对下采样中的整体训练集进行训练,产生最终的模型;⑤利用该模型对下采样中的测试集数据进行预测,得到预测值;⑥利用混淆矩阵,将预测值与测试集对应的标签进行统计,并进行可视化输出。

step 1.导入第三方库:
在这里插入图片描述

step 2.读取样本.csv中的数据,了解数据的整体分步
在这里插入图片描述
行5:按照"Class"列统计每种标记的数量,返回一个Series
行6:输出Class列的条形图

step 3.对数据进行预处理
#不均衡样本处理办法:下采样,过采样
#下采样:使得两个样本同样少
#过采样:使得两个样本同样多
在这里插入图片描述
行15:导入标准化模块
行16:对数据中与其他特征数据相差较大的数据(“Amout"标准化后生成“normAmount”特征)进行标准化处理
#StandardScaler().fit_transform()对样本的"Amount"列进行标准化,防止在机器学习的过程中因数值相差过大对结果产生误导
行17:删除数据中的无关特征(“Time”,“Amount”)
行28:随机抽取与"Class”==1的样本数相等的"Class"==0的样本索引
行31:将"Class"==1与"Class"==0的样本进行拼接

在这里插入图片描述
行45:导入数据集分割模块
行48:对原始数据进行分割
行54:对处理后的下采样数据进行分割

step 4.模型评估方法&&导入相应的库
在这里插入图片描述
在这里插入图片描述
行72:对数据集K折分割函数进行初始化
行82:对训练集数据进行分割,返回K折交叉验证的训练集和测试集索引
行84:建立模型,penalty表示正则化,默认为l2正则化
行85:函数fit(X,y,sample_weight=None) 根据给定的训练数据拟合模型,【X:shape为(n_samples,n_features)的训练矢量; y:相对于X的shape为(n_samples,)的目标向量;sample_weight:分配给每个样本的权重,shape为(n_samples,)】,模型的权重向量和常数项可通过 .coef_ , .intercept_ 来输出
行86:predict(X) 预测X中样本的类标签,对K折交叉验证中的数据集进行评估
行88:模型评估方法(召回率):recall_score(y_true, y_pred, labels=None, pos_label=1, average=‘binary’, sample_weight=None)
行92:iloc,即index locate 用index索引进行定位,所以参数是整型; loc,则可以使用column名和index名进行定位
行92:numpy.mean(a, axis, dtype, out,keepdims ):axis默认值,对mn个数求均值,返回一个实数;axis=0:对各列求均值,返回1n矩阵;axis=1:对各行求均值,返回m*1矩阵
行99:注意:使用idmax()函数时,应用astype()方法将数据类型进行转换

step 5.产生最优的最优的正则化惩罚项&&定义混淆矩阵函数
在这里插入图片描述
行103:利用数据预处理中下采样数据中的训练数据得到的最优正则惩罚项

step 6.利用下采样数据中的训练集数据重新训练数据,并用下采样数据中的测试集数据对模型进行评估
在这里插入图片描述
行128:下采样数据训练集训练模型
行129:模型对下采样数据测试集进行预测
行131:计算混淆矩阵以评估分类的准确性,函数confusion_matrix(y_true, y_pred, labels=None, sample_weight=None)相当于统计【sample_weight:样本权重】

other 1.使用逻辑回归返回的概率进行预测
在这里插入图片描述

other 2.对原数据集直接建模
在这里插入图片描述

other 3.数据预处理(过采样)
在这里插入图片描述

  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值