• 信用卡欺诈案例——机器学习实战


    在上一篇转载的博客:从重采样到数据合成:如何处理机器学习中的不平衡分类问题?

    http://www.cnblogs.com/huanjing/p/6789731.html讲述了不均衡样本处理方法

    信用卡欺诈检测就是不平衡分类实例,问题处理思路:

    1.查看数据分布,欺诈样本数相对正常样本数少于5%,确定为不平衡分类为题

    2.采用随机欠采样方法对数据进行处理,建立随机欠采样数据集,并将其分为训练集和测试集

    Under sample dataset
    under_sample_data = data.iloc[under_sample_indices,:]

    3.利用under sample dataset 建立训练随机欠采样模型,并选择合适的惩罚项系数

    4.利用under sample dataset 中测试数据集测试随机欠采样模型,得到较高recall值

    5.利用未处理过原始不平衡分类数据集中测试集测试随机欠采样模型,得到较高recall值,同时发现虽然将137个欺诈样本找出,但是同时将八千多个正常交易判定为欺诈样本,误差率较高,实际应用中会造成较大麻烦

    6.利用原始不平衡分类数据集训练逻辑回归模型,选择合适的惩罚项系数,测试集中得到的recall值较低,但是误差率却不高

    7.选择合适的逻辑回归阈值,逻辑回归算法中,默认概率大于0.5,则被判定为1,欺诈样本,概率小于0.5,则被判定为0,即正常样本,现在研究阈值对随机欠采样模型的影响

    从结果可以看出,阈值越高,recall值越低,同时误杀率越低,不难想象,阈值越高,被判定为欺诈样本的“门槛”越高,因此相对recall值较低,阈值越低,则有宁可错杀一千不可放过一个的意思,显然是不太合适的

    8.利用信息性过采样:合成少数类过采样技术(SMOTE)对数据集进行处理,构造过采样数据集

    oversampler=SMOTE(random_state=0)
    os_features,os_labels=oversampler.fit_sample(features_train,labels_train)

    如图便是smote将少量数据生成多个数据的方法

    9.对smote方法构造的数据集进行建模测试,发现其recall值较高,同时误杀较少

  • 相关阅读:
    CodeForces 408E Curious Array(组合数学+差分)
    CodeForces 519E A and B and Lecture Rooms(倍增)
    洛谷 4051 [JSOI2007]字符加密(后缀数组)
    哇,两门学考都是A(〃'▽'〃)
    BZOJ 1977 严格次小生成树
    XJOI 3606 最大子矩形面积/LightOJ 1083 Histogram(单调栈/笛卡尔树)
    XJOI 3629 非严格次小生成树(pqq的礼物)
    XJOI 3363 树4/ Codeforces 739B Alyona and a tree(树上差分+路径倍增)
    [转载]别让用户发呆—设计中的防呆策略
    Linux下的链接文件
  • 原文地址:https://www.cnblogs.com/huanjing/p/6793268.html
Copyright © 2020-2023  润新知