风险评分(risk scores)是利用简单的分类模型使用户能够简单地通加、减、乘少量的数字就能快速地评估风险,这样的模型广泛应用在了医疗保健、金融风险等领域中,在"Optimized Risk Scores"这篇论文中,提出了一个非常重要的方法去学习风险评分,将风险评分问题抽象为了混合整数非线性规划的问题,这种方法最大的好处是得到的评分是整数而不是小数,这就大大降低了在很多领域应用时的可解释性,在我现在复现的双层可加风险模型的论文中就提到了未来的工作,提出了将双层可加风险模型与RiskSlim结合,得到具有更强可解释性的金融风险预测模型,刚好顺着这个思路才找到的RiskSlim这篇论文,这篇论文的作者也实现了论文中的方法并共享到了github:https://github.com/ustunb/risk-slim;但是原作者的开发环境等可能和我有些不同(原作者应该是在linux下开发的),中间遇到了不少的坑才得以将example demo程序跑起来。

1、将代码克隆到本地压缩后,导入Pycharm,同时在目录下创建本项目用到的虚拟环境(venv)

2、在根目录下命令台打开,安装相关依赖包:

3、安装riskslim:

这里在安装riskslim时,windows环境下会提示找不到"m.lib"文件,这时候打开setup.py,删除48行、55行的代码,不用管它,删除后在此执行python setup.py install,riskslim可以正常安装

4、安装完成后现在如果运行demo程序:examples/ex_01_quickstart.py,会提示找不到log_loss.py模块,这个地方到现在我也不明白为什么只知道解决的办法,而且如果在控制台直接通过 python ex_01_quickstart.py执行的话是不会报任何错误的:

这边因为我已经解决了就不再去复现那个错误了,具体报的就是ModuleNotFoundError,找了很多资料论坛还是没有一个正确的解决方案,不管是环境变量、解释器路径都是换了又换,也在不同的电脑上测试过依然不行;

最后发现了一个规律性的敷衍解决办法,就是打开项目的时候,不要打开这个项目文件本身,而是打开项目文件上一级文件,比如你的risk-slim-master项目是存放在父文件夹test中,那么就用pycharm去打开test文件夹不要打开risk-slim-master本身,这样再通过pycharm直接运行,就不会报任何错误,可以运行成功

5、到第四步其实这个代码的demo示例代码就已经跑起来了,但是其实我们通过pip安装的CPLEX(IBM的一个线性规划求解器)是社区免费版的,对于变量个数等都有限制的,需要用到学术版才能对一些比较复杂的问题求解,在这里给出CPLEX学术版的windows安装包,这是我个人通过校园邮箱下载到的,也有linux安装包,这里就不提供了:

链接:https://pan.baidu.com/s/19Ks05T_RiN5nUQ38bXkhPw 
提取码:emb8 
复制这段内容后打开百度网盘手机App,操作更方便哦--来自百度网盘超级会员V4的分享

这个安装后会是一个CPLEX的IDE,比较大,不过我们只需要里面的cplex python包,之后可以把IDE删掉,也不用担心占用太大空间

在把项目中的cplex替换为学术版cplex之前,先需要删除掉原本的cplex

pip uninstall cplex

之后开始安装CPLEX IDE,安装目录建议就保留默认值这样好找一些,安装完成后在这个路径下(因为我这里已经把CPLEX IDE删了所以借用别人的一张图):

将这个cplex文件夹直接复制粘贴到虚拟环境下的site-packages中即可,这时候再运行比较大规模的问题时也不会提示社区版变量限制错误了,到此结束。

运行起了这个程序后,下一步要做的事情需要对单个变量分别设置上下界,因为目前程序中对于变量中的上下界设定都是一刀切的,

这样就不太灵活,需要阅读源码后再去做一些修改。

《Optimized Risk Scores》论文附带代码运行记录相关推荐

  1. Memory-Associated Differential Learning论文及代码解读

    Memory-Associated Differential Learning论文及代码解读 论文来源: 论文PDF: Memory-Associated Differential Learning论 ...

  2. CVPR2019目标分割论文推荐(附论文及代码链接)

    点上方蓝字计算机视觉联盟获取更多干货 在右上方 ··· 设为星标 ★,与你不见不散 本文来源于联盟成员学习笔记 今天推荐几篇CVPR2019目标分割论文,附带论文及代码链接 1.论文题目 <Du ...

  3. 关于Transformer你需要知道的都在这里------从论文到代码深入理解BERT类模型基石(包含极致详尽的代码解析!)

    UPDATE 2.26.2020 为代码解析部分配上了Jay Ammar The Illustrated GPT-2 的图示,为想阅读源码的朋友缓解疼痛! 深入理解Transformer------从 ...

  4. [细读经典]Megatron论文和代码详细分析(1)

    [细读经典]Megatron论文和代码详细分析(1) 导航: 迷途小书僮:[细读经典]Megatron论文和代码详细分析(2)102 赞同 · 41 评论文章正在上传-重新上传取消 前言 作为一款支持 ...

  5. NLP最新资源:论文、代码、博客、视频一应俱全

    整理 | Rachel 出品 | AI 科技大本营(ID:rgznai100) [导读]在近几年,NLP 领域得到了快速的发展,包括 ELMo ,BERT 在内的新方法不断涌现,显著提高了模型在一系列 ...

  6. 总结 | 2020年TOP 10计算机视觉论文:代码,解读,还有demo视频!

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者:louisfb01 编译:ronghuaiyang 来源:AI公园 导读 论文,代码,解读,还有 ...

  7. CVPR2020最新15篇论文开源代码!!!

    关注上方"深度学习技术前沿",选择"星标公众号", 资源干货,第一时间送达! 全球计算机视觉顶级会议CVPR2020 (IEEE Conference on C ...

  8. ssd网络结构_SSD论文与代码详解

    1.前言 目标检测领域,从FasterRCNN的实战,Anchor,从loss到全局解析到YOLO V1,YOLO V2,YOLO V3的网络讲解,YOLO V3的anchor和loss都已经讲完了. ...

  9. faster rcnn的源码理解(一)SmoothL1LossLayer论文与代码的结合理解

    转载自:faster rcnn的源码理解(一)SmoothL1LossLayer论文与代码的结合理解 - 野孩子的专栏 - 博客频道 - CSDN.NET http://blog.csdn.net/u ...

最新文章

  1. 【原创】字符串工具类--找出单元字符串
  2. java并发编程(2)——wait和notify解析
  3. ALV程序checkbox全选及取消全选
  4. 工业级光纤收发器的单多模光纤?单多光模块及其用法?
  5. java 文件下载,中文表名,中文内容
  6. 会议 | CCKS 2019 全国知识图谱与语义计算大会在杭州隆重召开
  7. spring-security登录和权限管理
  8. Linux启动和退出系统的方法,实验二 Linux的启动与关闭
  9. 20170124L07-03-01老男孩linux运维实战培训-生产环境大于254台机器网段划分及路由解决方案案例...
  10. java添加组件不显示不出来_java – jScrollPane无法添加组件
  11. java处理excel的读写
  12. redis zset底层数据结构
  13. json字符串转json对象
  14. 泽众AutoRunner软件的使用方法,以测试win10环境下系统自带的计算器为例
  15. 第三十一篇 -- 学习第六十八天打卡20190911
  16. 游戏主机系统,破旧老电脑秒变高性能儿时复古游戏主机
  17. vue3+tsx封装组件
  18. EXCEL学习笔记----EXCEL操作
  19. 电脑所有的文件打开很慢
  20. 记一次物理服务器磁盘故障修复过程

热门文章

  1. Android蓝牙服务
  2. android多媒体框架学习 详解
  3. tar 整个linux系统,linux下tar解压
  4. 怎么看待传菜机器人_比拼食材原料、使用机器人传菜,餐饮业如何把握大消费时代的机遇...
  5. python怎么加锁_Python开发【笔记】:加锁的最佳方案
  6. 访问量100万的网站服务器,100万访问量 服务器配置
  7. 盛科交换机配置命令_cisco2960交换机 清除配置的命令
  8. JAVA实现二叉树带权路径长度和_哈夫曼树的构建与最小带权路径长度
  9. jwt 长度_跟我一起学.NetCore之WebApi接口裸奔有风险(Jwt)
  10. html5 list 拖拽排序,vue实现可拖拽排序的列表