决策引擎选购指南[通俗易懂]

决策引擎选购指南[通俗易懂]决策引擎选购指南决策引擎或规则引擎的概念在2015年随着互联网金融行业的发展得到了快速普及,逐渐被各大公司接纳并入到企业基础设施中,用于集中管理高频多变的业务运营策略,相对于原先的硬代码维护的方式,有着便捷、高效、低成本的特点。市面上关于决策引擎的分享不少,但主要集中在技术层面的经验分享,比如如何从0到1搭建一套决策引擎,大家如果感兴趣也可以自行进行查阅。反而从公司层面出发,如何评估以及选择决策引擎的文章十分有限,从而导致了公司在采购的时候往往因为信息不对称而十分被动。因此,本文将从一位…

大家好,又见面了,我是你们的朋友全栈君。

图片

图片

图片

决策引擎选购指南

决策引擎或规则引擎的概念在2015年随着互联网金融行业的发展得到了快速普及,逐渐被各大公司接纳并入到企业基础设施中,用于集中管理高频多变的业务运营策略,相对于原先的硬代码维护的方式,有着便捷、高效、低成本的特点。

市面上关于决策引擎的分享不少,但主要集中在技术层面的经验分享,比如如何从0到1搭建一套决策引擎,大家如果感兴趣也可以自行进行查阅。反而从公司层面出发,如何评估以及选择决策引擎的文章十分有限,从而导致了公司在采购的时候往往因为信息不对称而十分被动。因此,本文将从一位决策引擎使用者的视角出发,来分享一下我认为的公司在采购决策引擎应用考虑或者注意的事项。(注:本文中不涉及到与数据结合的十分紧密的应用型引擎产品,这类产品的可扩展性十分有限)

总的来说,市面上的决策引擎主要分两类,一类是开源引擎(如Drools)或基于开源引擎二次开发(服务层)的产品,另一类是成熟的商业化决策引擎(如FICO Blaze、 IBM ODM,、Experian SMG3、Sparkling Logic SMARTS等)。前者的优势在于高度定制化,可完全按照业务需求进行设计与开发,初期投入不高,但对公司的技术实力要求较高且后期维护成本不低。后者的优势在于成熟的产品化设计(毕竟经过多年的市场验证与迭代),但初期投入即产品采购成本较高(具体视不同厂商、产品版本与功能模块而定)且几乎不支持项目制的定制化开发,但由于后期仅需对部署在其中的策略进行维护,针对软件本身的升级与迭代可完全由厂商负责,因此维护成本相对而言比较低。

至于是选择开源的引擎产品,还是选择成熟的商业引擎,主要取决于公司的实际需求与技术实力。首先需要明确决策引擎在整个公司基础设施中的定位,并同时梳理清楚主要需求与次要需求。其次,需要综合评估好开发的前期投入,后期持续的投入与运维成本。简而言之,如果需求中有主要功能是商业引擎覆盖不到的,那么建议使用开源引擎进行定制化开发,当然前期的开发成本,后期的维护成本相当高。如果市面上的商业引擎能覆盖主要需求,那么还是建议择机选择适合的引擎厂商。毕竟就决策引擎而言,最主要的功能还是支持对业务策略进行便捷与高效的迭代。接下来我就如何选择引擎厂商进行进一步展开。

对于公司而言,选择引擎厂商或者其它任何软硬件产品,其实本质上就是在选择一位长期的合作伙伴。选择合作伙伴,首先我们会衡量他的能力。对于决策引擎而言,首先需要了解的是它的开发团队的从业经验,这往往是产品生命力的无形背书。其次需要了解清楚的是该产品的版本迭代情况,一个有生命力的产品往往几个月会进行小的更新,1-2年内会进行大版本更新,更新的内容往往涉及到技术更新,功能新增,bug修复等。如果一个引擎产品长时间没有迭代,请谨慎考虑。当然,售后服务也是不得不考虑的问题,这个可以通过与其客户沟通进行了解。最后,才是价格。

Rule 1:选择技术实力过硬,从业经验丰富的厂商,并且产品要保持生命力。

接下来我们再看下如何从用户的角度出发来进行选型。通常来讲,基于决策引擎构建数据驱动的自动化决策系统通常涉及到三类人员:业务,IT与模型。

对于业务团队而言,需要能借助决策引擎快速地将业务需求转换为自动化决策中的业务规则,这就要求产品是易用的。在简单的培训之后,能让有一定经验(熟悉EXCEL公式或者SQL)的同事快速上手进行规则编写。从这个角度出发,引擎软件应该是可视化程度高、规则编写语言清晰易懂的。并且就我过往的经验而言,还必须是支持在平台上直接进行可视化验证与测试的,比如支持制作报表展现测试结果。这点非常重要,相对于离线分析的方式,这类所见即所得的测试方法可以更高效地完成规则测试以及业务验证。并且从业务角度出发,生产环境中运行的策略版本也应该由业务团队进行管理,这就要求决策引擎支持界面化的版本管理与发布功能。

Rule 2: 选择支持可视化规则编辑和分析的低代码/弱代码的决策引擎,并且需要支持完善的版本管理功能

其次由于当前越来越多的场景中会将经验策略(可读可理解)与模型策略(大部分黑盒不易理解)相结合,共同组成实际的自动化决策。因此对于模型团队而言,需要决策引擎能够支持对算法模型的导入,导出以及调用。当然,如果能直接提供对应的模型开发和调试功能,当然更好。但这个不是必须,毕竟都有专门的工具做这事。借助于决策引擎的可视化测试功能,在决策的上下文中对模型的准确性和精确性进行验证。

Rule 3: 选择支持算法模型集成和调用的决策引擎

最后,对于大部分公司而言,IT资源都是十分紧缺的。因此,如何能快速地将业务系统与决策引擎之间的交互机制建立起来,也是需要考虑的。这要求决策引擎提供标准化的API接口,并且能适配到不同的开发平台。

Rule 4: 选择提供标准API接口,支持便捷集成的决策引擎

以上是我个人总结的一些经验,市面上满足上述条件的决策引擎产品其实不算多,大家可以逐一筛查。相对而言,就产品力与产品功能完整度而言,个人还是更推荐国外产品。也希望国内有更优秀的决策引擎产品出现。

星标我,每天多一点智慧

图片

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/149604.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 面向对象——三大基本特征

    面向对象的三大基本特征:封装、继承和多态一、封装利用抽象数据类型将数据和基于数据的操作封装在一起,使其构成一个不可分割的独立实体。数据被保护在抽象数据类型的内部,尽可能地隐藏内部的细节,只保留一些对外接口使之与外部发生联系。用户无需知道对象内部的细节,但可以通过对象对外提供的接口来访问该对象。优点:减少耦合:可以独立地开发、测试、优化、使用、理解和修改 减轻维护的负担:可以更容易…

    2022年4月15日
    33
  • c++ stringstream ss()[通俗易懂]

    c++ stringstream ss()[通俗易懂]定义了三个类:istringstream、ostringstream和stringstream,分别用来进行流的输入、输出和输入输出操作。本文以stringstream为主,介绍流的输入和输出操作。主要用来进行数据类型转换,由于使用string对象来代替字符数组(snprintf方式),就避免缓冲区溢出的危险;而且,因为传入参数和目标对象的类型会被自动推导出来,所以不存在错误的格式化符的问题。简单说,相比c库的数据类型转换而言,更加安全、自动和直接。一、从string对象str中读.

    2022年5月22日
    64
  • 在Windows XP 上 架设 FTP服务器

    在Windows XP 上 架设 FTP服务器架设一台FTP服务器其实很简单。首先,要保证你的机器能上网,而且有不低于ADSL512Kbps的网络速度。其次,硬件性能要能满足你的需要。最后,需要安装FTP服务器端的软件,这类软件很多,可以使用微软的IIS(InternetInformationServer因特网信息服务系统),也可以使用专业软件。不同的软件提供的功能不同,适应的需求和操作系统也不同。一般来说,系统最低要求如下:CPU

    2022年7月21日
    14
  • MAC双系统如何切换_mac双系统怎么进入mac系统

    MAC双系统如何切换_mac双系统怎么进入mac系统Mac上面安装双系统是一个很常见的系统选择方案。双系统之间的切换对于使用Mac的用户都不会陌生,但是对于许多初次接触Mac系统的用户而言,也有很多并不知道如何切换双系统,以及如何设置默认进入的系统。虽然只是一个很小的技巧,但是对于新接触Mac系统的用户如果不了解这个的话,那么使用中会有一定的麻烦。双系统的切换以及设置系统默认启动也有几种方法。-w+I4g$u#H#T1K一、开机按Op…

    2022年10月6日
    2
  • win10 cuda安装_查看cudnn是否安装成功

    win10 cuda安装_查看cudnn是否安装成功官方安装教程CUDA:https://docs.nvidia.com/cuda/cuda-installation-guide-microsoft-windows/index.htmlcuDNN:https://docs.nvidia.com/deeplearning/sdk/cudnn-install/index.html#installwindowsWIN10安装CUDA10CUDA…

    2022年5月3日
    86
  • BeanCopier 详解「建议收藏」

    BeanCopier 详解「建议收藏」 BeanCopier实现属性拷贝的主要代码: BeanCopierbeanCopier=BeanCopier.create(dad.getClass(),dadly.getClass(),false); beanCopier.copy(dad,dadly,null);  查看BeanCopier源码可知: abstractpublicclass…

    2025年9月15日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号