zoukankan      html  css  js  c++  java
  • 006-信用卡欺诈检测2/2

    正则化惩罚项:

    原先的回归算法算出的$Theta _{1}...Theta _{10}$

    如果有2个模型A,B

    A有$Theta _{1}...Theta _{10}$

    B也有$Theta _{1}...Theta _{10}$

    如果两个recall值都是90%,但是分布不同

    模型的参数浮动的范围越小,过拟合的程度也就越小,过拟合的意思就是在训练集表现的很好,在测试集表现很差,

    过拟合是一种非常常见的现象,我们总是希望得到B模型

    如何得到B模型?

    引入正则化惩罚项,大力度惩罚A的θ,小力度惩罚B的θ

    L2正则化:

      我们的损失函数(LOSS)应该是越低越好

      $L_{2}=LOSS+frac{1}{2}W^{2}$

      W表示θ的浮动程度

    L1正则化:

      $L_{1}=LOSS+frac{1}{2}left | W ight |$

    在$L_{1},L_{2}$前加入λ或者C

    $lambda L_{1},lambda L_{2}$

    表示惩罚力度,0.1、1、10、100

    混淆矩阵:

    上图是下采样后的混淆矩阵

    X轴表示预测值

    Y轴表示真实值

    此矩阵对应于之前的recall值的分析图

    TP = 137

    FN = 10

    则recall = 137/147 = 0.932

    那么在原始数据集上的混淆矩阵是

     

    这里存在为了找135个违规的,误杀了8581个正常的

    下采样的缺点就是误杀有些大

    可以改变sigmoid函数的阈值,进行减少误杀

    下图是将阈值从0.1~0.9设置之后的recall值

    不可能有完美的模型,如果精度和recall值达到要求即可

    过采样:

    SMOTE算法:

    找到少数类的样本,计算少数类样本到其他所有样本的一个距离,将所有计算出的距离进行排序,生成原始数据的多少倍,就选前多少个距离

    $x_{new}=x+rand(0,1) imes ( ilde{x}-x)$

    x表示样本

    x~表示距离

    SMOTE只生成训练集的数据,测试集不要生成

    过采样的混淆矩阵

    误杀值稍微降低,但是模型的精度偏高了

    经验:

      对于样本 不均衡的数据,能利用多的数据就利用多的数据,能利用生成的方式就利用生成的方式,

    整体流程:

      观察数据,

      提取特征(特征工程,今后会讲),

      标准化数据

      下采样/过采样(SMOTE算法)

      交叉验证获取最优参数

      混淆矩阵和模型评估标准

      sigmoid函数阈值改变后比较

      

  • 相关阅读:
    javaweb消息中间件——rabbitmq入门
    virtual box 桥接模式(bridge adapter)下无法获取ip(determine ip failed)的解决方法
    Apache Kylin本地启动
    git操作
    Java学习总结
    Java中同步的几种实现方式
    hibernate exception nested transactions not supported 解决方法
    vue 中解决移动端使用 js sdk 在ios 上一直报invalid signature 的问题解决
    cookie 的使用
    vue 专门为了解决修改微信标题而生的项目
  • 原文地址:https://www.cnblogs.com/Mjerry/p/9709903.html
Copyright © 2011-2022 走看看