• 主页
  • 课程

    关于课程

    • 课程归档
    • 成为一名讲师
    • 讲师信息
    同等学历教学

    同等学历教学

    免费
    阅读更多
  • 特色
    • 展示
    • 关于我们
    • 问答
  • 事件
  • 个性化
  • 博客
  • 联系
  • 站点资源
    有任何问题吗?
    (00) 123 456 789
    weinfoadmin@weinformatics.cn
    注册登录
    恒诺新知
    • 主页
    • 课程

      关于课程

      • 课程归档
      • 成为一名讲师
      • 讲师信息
      同等学历教学

      同等学历教学

      免费
      阅读更多
    • 特色
      • 展示
      • 关于我们
      • 问答
    • 事件
    • 个性化
    • 博客
    • 联系
    • 站点资源

      R语言

      • 首页
      • 博客
      • R语言
      • 【R包】woeBinning:woe分箱包

      【R包】woeBinning:woe分箱包

      • 发布者 weinfoadmin
      • 分类 R语言
      • 日期 2018年6月28日
      测试开头

      【R包】woeBinning:woe分箱包


      笔者邀请您,先思考:

      1 WOE和IV怎么计算?

      2 如何对变量做分箱?

      本文介绍woe分箱包-woeBinning,利用该包实现自动分箱和计算变量的IV值。

      woeBinning包介绍

      woeBinning包使数字变量和因子相对于二元目标变量的分箱过程自动化。 此外,它可视化已实现的分箱解决方案,可以表格化和部署应用到新的数据集。所有函数都可以与单个变量或整个数据框一起使用。

      woeBinning函数

      woe.binning对数值变量或者因子变量生成一个受监督的细分和粗分类。
      woe.tree.binning对数值变量和因子变量生成监督树状分割。
      woe.binning.plot对woe.binning或者woe.tree.binning的分箱解决方案进行数据可视化。
      woe.binning.table对woe.binning或woe.tree.binning的分箱解决方案的结果进行表格化保存。
      woe.binning.deploy将把woe.binning或woe.tree.binning生成并保存的分箱解决方案部署和应用到(新)数据中。

      woe和IV计算逻辑

      【R包】woeBinning:woe分箱包

      woe 计算

      【R包】woeBinning:woe分箱包

      IV计算

      【R包】woeBinning:woe分箱包

      woe-iv计算例子

      【R包】woeBinning:woe分箱包

      思考:上述表里面的值是如何计算的?

      woeBining包应用举例

      # 加载woeBinning包,若是没有安装,请先安装
      library(woeBinning)
      # 加载dplyr包
      library(dplyr)

      # 使用包自带的数据集germancredit
      data("germancredit")

      # 数据集检视
      print(dim(germancredit))
      print(head(germancredit))

      # 数据集部分变量数据获取
      # 定性变量和定量变量
      df <- germancredit[, c('creditability', 'credit.amount', 'duration.in.month', 'savings.account.and.bonds', 'purpose')]
      print(head(df))

      # 自动分箱操作
      binning <- woe.binning(df, 'creditability', df)

      # 自动分箱后结果可视化
      woe.binning.plot(binning) 

      变量集的woe值分布情况可视化

      【R包】woeBinning:woe分箱包

      变量集的IV值分布情况可视化

      【R包】woeBinning:woe分箱包

      结论:
      变量duration.in.month的IV值最高,为0.254

      基于iv值应用的经验法则,总结如下:

      • 1) < 0.02 非常弱 不纳入到模型变量候选集

      • 2)[0.02, 0.1) 很弱 针对实际情况决定是否纳入模型变量候选集

      • 3)[0.1, 0.3) 一般 纳入模型变量候选集

      • 4)[0.3, 0.5) 强 纳入模型变量候选集

      • 5)>= 0.5 很强,具有可疑性,要进一步调查

      # 分箱解决方案表格化存储
      tabulate.binning <- woe.binning.table(binning)
      tabulate.binning
      # 分箱解决方案部署和应用到新的数据集
      df.with.binned.vars.added <- woe.binning.deploy(
        df,
        binning,
        add.woe.or.dum.var = 'woe'
      )

      View(df.with.binned.vars.added)

      woe.df <- df.with.binned.vars.added %>% dplyr::select(contains("woe."))
      View(head(woe.df))
      【R包】woeBinning:woe分箱包

      完整代码

      #加载R包
      library(woeBinning)
      library(dplyr)

      #加载数据集
      data("germancredit")
      print(dim(germancredit))
      print(head(germancredit))

      # 部分变量数据获取
      # 定性变量和定量变量
      df <- germancredit[, c('creditability', 'credit.amount', 'duration.in.month',
                             'savings.account.and.bonds', 'purpose')]
      print(head(df))

      # 自动分箱操作
      binning <- woe.binning(df, 'creditability', df)

      # 自动分箱后结果可视化
      woe.binning.plot(binning) 

      tabulate.binning <- woe.binning.table(binning)
      View(tabulate.binning)

      df.with.binned.vars.added <- woe.binning.deploy(
        df,
        binning,
        add.woe.or.dum.var = 'woe'
      )

      View(df.with.binned.vars.added)

      woe.df <- df.with.binned.vars.added %>% dplyr::select(contains("woe."))
      View(head(woe.df))

      完整代码也可以见GitHub(点击阅读原文,进入GitHub链接)。

      版权声明:作者保留权利,严禁修改,转载请注明原文链接。

      数据人网是数据人学习、交流和分享的平台http://shujuren.org 。专注于从数据中学习到有用知识。
      平台的理念:人人投稿,知识共享;人人分析,洞见驱动;智慧聚合,普惠人人。
      您在数据人网平台,可以1)学习数据知识;2)创建数据博客;3)认识数据朋友;4)寻找数据工作;5)找到其它与数据相关的干货。
      我们努力坚持做原创,聚合和分享优质的省时的数据知识!
      我们都是数据人,数据是有价值的,坚定不移地实现从数据到商业价值的转换!

      加入数据人圈子或者商务合作,请添加笔者微信。

      【R包】woeBinning:woe分箱包


      点击阅读原文,进入数据人网,获取数据知识。

      公众号推荐:

      链达君,专注于分享区块链内容。

      【R包】woeBinning:woe分箱包

      脚印英语,专注于分享英语口语内容。

      【R包】woeBinning:woe分箱包

      数据工作

      我们公司大数据风控中心部门诚招:

      1 风险分析和建模工程师(信用评分模型,反欺诈模型,额度模型|熟练常用ML算法|熟练使用R或者Python)

      2 数据开发工程师(大数据平台开发,数据采集,数据预处理)

      3 爬虫工程师(掌握爬虫技术,掌握反爬策略)

      4 数据分析或者建模实习生(研究生学历|统计学,数学,计算机专业|熟悉R或者Python|有金融数据项目可以加分)

      工作地点:深圳大冲商务中心

      薪资待遇:面议

      感兴趣者,请加小编微信。

      【R包】woeBinning:woe分箱包




      测试结尾

      请关注“恒诺新知”微信公众号,感谢“R语言“,”数据那些事儿“,”老俊俊的生信笔记“,”冷🈚️思“,“珞珈R”,“生信星球”的支持!

      • 分享:
      作者头像
      weinfoadmin

      上一篇文章

      数据格式第四篇-bed
      2018年6月28日

      下一篇文章

      数据格式第五篇-wiggle和bigwig
      2018年6月29日

      你可能也喜欢

      3-1665801675
      R语言学习:重读《R数据科学(中文版)》书籍
      28 9月, 2022
      6-1652833487
      经典铁死亡,再出新思路
      16 5月, 2022
      1-1651501980
      R语言学习:阅读《R For Everyone 》(第二版)
      1 5月, 2022

      搜索

      分类

      • R语言
      • TCGA数据挖掘
      • 单细胞RNA-seq测序
      • 在线会议直播预告与回放
      • 数据分析那些事儿分类
      • 未分类
      • 生信星球
      • 老俊俊的生信笔记

      投稿培训

      免费

      alphafold2培训

      免费

      群晖配置培训

      免费

      最新博文

      Nature | 单细胞技术揭示衰老细胞与肌肉再生
      301月2023
      lncRNA和miRNA生信分析系列讲座免费视频课和课件资源包,干货满满
      301月2023
      如何快速批量修改 Git 提交记录中的用户信息
      261月2023
      logo-eduma-the-best-lms-wordpress-theme

      (00) 123 456 789

      weinfoadmin@weinformatics.cn

      恒诺新知

      • 关于我们
      • 博客
      • 联系
      • 成为一名讲师

      链接

      • 课程
      • 事件
      • 展示
      • 问答

      支持

      • 文档
      • 论坛
      • 语言包
      • 发行状态

      推荐

      • iHub汉语代码托管
      • iLAB耗材管理
      • WooCommerce
      • 丁香园论坛

      weinformatics 即 恒诺新知。ICP备案号:粤ICP备19129767号

      • 关于我们
      • 博客
      • 联系
      • 成为一名讲师

      要成为一名讲师吗?

      加入数以千计的演讲者获得100%课时费!

      现在开始

      用你的站点账户登录

      忘记密码?

      还不是会员? 现在注册

      注册新帐户

      已经拥有注册账户? 现在登录

      close
      会员购买 你还没有登录,请先登录
      • ¥99 VIP-1个月
      • ¥199 VIP-半年
      • ¥299 VIP-1年
      在线支付 激活码

      立即支付
      支付宝
      微信支付
      请使用 支付宝 或 微信 扫码支付
      登录
      注册|忘记密码?