当前位置: 首页 > news >正文

摘下数据分析的皇冠:机器学习,InfiniSynapse 金融评分卡案例

终于,InfiniSynapse 最新版本正式推出了机器学习功能。

InfiniSynapse 在此之前具备访问各种数据源,支持对不同数据源的数据做join关联,同时具备特征工程的能力,在此基础上,机器学习的到来也就水到渠成。

InfiniSynapse 涵盖了主流算法,比如线性回归类算法LinearRegressionr, 分类算法诸如随机森林,XGBoost, 时序类算法 ARIMA 等。

今天我以金融领域的评分卡为例,来介绍在 InfiniSynapse 中如何使用机器学习来完成金融评分卡。

我们会使用UCI信用卡违约数据集,这是一个高质量的融评分卡数据集。根据用户的年龄,还贷等各种特征,来判断用户下一个是否会违约。

准备数据

首先我们要连接数据,点击 数据源/创建数据库:

新建数据库 UCI_Credit_Card:

接着上传我们的UCI信用卡违约数据集:

了解数据和算法

然后我们先了解下当前数据集的情况:

询问下 InfiniSynapse 有没有和评分卡相关的机器学习算法:

可以看到,InfiniSynapse 会告诉你,我们有专门的一个 ScoreCard算法(该算法内部使用了线性回归来做预测),并且说明了该算法的用途和场景。

开始工作

不过我自己实测,发现ScoreCard 依赖的 Binning 算法在当前的这个版本效率有点差,所以我决定直接采用SQL 做特这个特征工程,然后使用随机森林之类的分类算法来做预测。

InfiniSynapse 开始做特征工程:

接着使用训练模型:

评估模型效果:

测试集效果:

如果你觉得效果不好 ,可以让 InfiniSynapse 调整参数再次训练模型即可,让他必须达到多好的准确率才能停止。

模型部署

现在,我们将模型做个部署:

在 InfiniSynapse 里,一个模型可以被注册成一个SQL函数,所以接着你就可以用该SQL函数做预测了:

然后统计准确率,或者对数据做预测保存起来。

外部使用特征工程和模型

你可能会有疑问,特征工程以及训练好的模型能否被外部使用?当然 InfiniSynapse 对外提供 Rest 接口,你可以通过如下方式访问:

curl -X POST "http://localhost:9003/model/predict" \ -H "Content-Type: application/x-www-form-urlencoded" \ --data-urlencode "dataType=row" \ --data-urlencode "owner=<你的用户id>" \ --data-urlencode "sessionPerUser=true" \ --data-urlencode 'data=[{"LIMIT_BAL":80000,"SEX":2,"EDUCATION":2,"MARRIAGE":1,"AGE":35,"PAY_0":0,"PAY_2":0,"PAY_3":0,"PAY_4":0,"PAY_5":0,"PAY_6":0,"BILL_AMT1":25000,"BILL_AMT2":22000,"BILL_AMT3":18000,"BILL_AMT4":15000,"BILL_AMT5":12000,"BILL_AMT6":10000,"PAY_AMT1":5000,"PAY_AMT2":4000,"PAY_AMT3":3000,"PAY_AMT4":2000,"PAY_AMT5":1500,"PAY_AMT6":1000}]' \ --data-urlencode 'sql=vec_argmax(predict_credit_risk(vec_dense(array(CAST(LIMIT_BAL AS DOUBLE) / 10000.0, CAST(SEX AS DOUBLE), CAST(EDUCATION AS DOUBLE), CAST(MARRIAGE AS DOUBLE), CAST(AGE AS DOUBLE) / 100.0, CAST((CASE WHEN PAY_0 > 0 THEN 1 ELSE 0 END) + (CASE WHEN PAY_2 > 0 THEN 1 ELSE 0 END) + (CASE WHEN PAY_3 > 0 THEN 1 ELSE 0 END) + (CASE WHEN PAY_4 > 0 THEN 1 ELSE 0 END) + (CASE WHEN PAY_5 > 0 THEN 1 ELSE 0 END) + (CASE WHEN PAY_6 > 0 THEN 1 ELSE 0 END) AS DOUBLE), (CAST(BILL_AMT1 AS DOUBLE) + CAST(BILL_AMT2 AS DOUBLE) + CAST(BILL_AMT3 AS DOUBLE) + CAST(BILL_AMT4 AS DOUBLE) + CAST(BILL_AMT5 AS DOUBLE) + CAST(BILL_AMT6 AS DOUBLE)) / 60000.0, (CAST(PAY_AMT1 AS DOUBLE) + CAST(PAY_AMT2 AS DOUBLE) + CAST(PAY_AMT3 AS DOUBLE) + CAST(PAY_AMT4 AS DOUBLE) + CAST(PAY_AMT5 AS DOUBLE) + CAST(PAY_AMT6 AS DOUBLE)) / 6000.0, CASE WHEN CAST(LIMIT_BAL AS DOUBLE) > 0 THEN ((CAST(BILL_AMT1 AS DOUBLE) + CAST(BILL_AMT2 AS DOUBLE) + CAST(BILL_AMT3 AS DOUBLE) + CAST(BILL_AMT4 AS DOUBLE) + CAST(BILL_AMT5 AS DOUBLE) + CAST(BILL_AMT6 AS DOUBLE)) / 6.0) / CAST(LIMIT_BAL AS DOUBLE) ELSE 0.0 END, CASE WHEN (CAST(BILL_AMT1 AS DOUBLE) + CAST(BILL_AMT2 AS DOUBLE) + CAST(BILL_AMT3 AS DOUBLE) + CAST(BILL_AMT4 AS DOUBLE) + CAST(BILL_AMT5 AS DOUBLE) + CAST(BILL_AMT6 AS DOUBLE)) > 0 THEN (CAST(PAY_AMT1 AS DOUBLE) + CAST(PAY_AMT2 AS DOUBLE) + CAST(PAY_AMT3 AS DOUBLE) + CAST(PAY_AMT4 AS DOUBLE) + CAST(PAY_AMT5 AS DOUBLE) + CAST(PAY_AMT6 AS DOUBLE)) / (CAST(BILL_AMT1 AS DOUBLE) + CAST(BILL_AMT2 AS DOUBLE) + CAST(BILL_AMT3 AS DOUBLE) + CAST(BILL_AMT4 AS DOUBLE) + CAST(BILL_AMT5 AS DOUBLE) + CAST(BILL_AMT6 AS DOUBLE)) ELSE 0.0 END, CAST(CASE WHEN AGE < 25 THEN 0 WHEN AGE < 35 THEN 1 WHEN AGE < 50 THEN 2 ELSE 3 END AS DOUBLE))))) as prediction'

其中 owner 设置为你的用户ID:

然后data 是要预测的数据。 sql 是对要预测数据先做特征工程然后加模型预测。

下面是预测结果:

总结

尽管当前ML功能还处于Beta 阶段, 但我们可以看到,数据特征工程,模型训练,模型部署(内部或者外部使用),都可以让InfiniSynapse 自主完成,我相信,我们离摘下数据分析的皇冠已经很近,我们将数据分析和传统机器学习算法的成本大幅度降低,让世界所有个人和企业,都可以真正意义上被数据驱动。

http://www.cnnetsun.cn/news/77770.html

相关文章:

  • Linly-Talker结合OpenCV实现更自然的面部动作捕捉
  • 7、无线网络与复杂网络配置全解析
  • 企业数字化转型新引擎:yudao-cloud v2.4.2如何用IoT与工作流重塑业务流程
  • SM3算法PHP实战手册:构建国产加密应用的全流程指南
  • Element Plus Notification组件HTML渲染失效的深度诊断与修复指南
  • 3大集成方案:让iTerm2与VS Code成为你的开发黄金搭档
  • Unitree RL Gym 从零到实战:构建智能四足机器人的完整指南
  • Stressapptest:免费开源系统压力测试工具完整使用指南
  • 5个理由告诉你为什么PostgreSQL数据库设计应该选择可视化建模工具
  • React SoybeanAdmin:现代化中后台管理系统终极指南
  • Snipe-IT开源资产管理系统完整实战指南
  • AhabAssistantLimbusCompany终极指南:3步掌握游戏自动化,彻底解放双手
  • Flyby11终极指南:如何绕过Win11硬件限制轻松升级
  • OpCore Simplify终极指南:5分钟创建完美Hackintosh EFI配置
  • 百度网盘秒传工具深度评测:3大核心功能实战解析
  • SM3算法PHP实现完整指南:从入门到企业级应用
  • 突破Android布局瓶颈:FlexboxLayoutManager动态流式布局全解析
  • 永久在线CRM网站背后的AI力量:集成Linly-Talker实现智能客服数字人
  • Obsidian终极实战宝典:5步打造你的高效知识管理系统
  • 微信小游戏自动化工具终极指南:快速上手游戏助手完整教程
  • Langchain-Chatchat能否处理超大文件?
  • Virtio-win驱动深度解析:解锁KVM Windows虚拟机性能新高度
  • 3步搞定DataEase一键部署:开源数据可视化工具的极简安装指南
  • 5分钟搞定IFrame自适应!iframe-resizer终极使用指南
  • .NET智能视觉:从技术困境到业务破局的实战解码
  • LobeChat在Ensp下载官网场景下的智能客服应用
  • 16、Linux 系统字体与图像使用指南
  • 17、Linux 图像编辑全攻略
  • QtScrcpy终极画质优化指南:三步解决手机投屏模糊问题
  • 如何快速掌握BongoCat:新手完整入门指南