从零构建FLINK整合Drools动态规则实时运营系统(项目案例)第1篇(项目介绍篇)

Flink规则引擎实践分享 Flink规则引擎实践分享 文章目录Flink规则引擎实践分享一、实时规则引擎架构***二、规则抽象模型三、规则、条件查询封装**3.1规则封装3.2 查询规则封装四、使用ClickHouse来存放明细并实现查询服务支持4.1 ClickHouse从Kafka摄取数据4.2 ClickHouse查询服务中的sql设计**4.3 ClickHouse查询时间跨度问题与解决**4.4 查询路由模块**五、项目中优化的点5.1 规则匹配方式优化5.2 行为明细规则匹配查询CK并发过高的解决方案 Java、大数 阅读详情

1 整体架构

前言

项目介绍在线视频: https://www.bilibili.com/video/BV1zv41157yY

本案例是一个专注于flink动态规则计算的项目,核心技术组件涉及flink、hbase、clickhouse、drools等
项目可根据各类个性化需求进行二次开发后,直接用于实时运营,实时风控、交通监控等场景的线上生产
项目完整视频教程和资料代码等,可在易学在线 https://v.51doit.cn 获取
技术交流,可加微信: haitao-duan
在这里插入图片描述

技术架构示意图

在这里插入图片描述

2 涉及技术

  • Flink 实时流式计算王者引擎
  • Canal 数据库实时采集
  • Kafka 分布式消息缓存系统
  • Redis 内存数据库
  • Drools 规则引擎
  • Clickhouse 新秀OLAP数据库
  • Hbase 大型分布式nosql数据库
  • Java 即时编译 Java 动态类加载
  • Springboot 后端开发整合框架
  • Mybatis 后端开发DAO层框架
  • Vue 前端开发JS框架
  • Freemarker 模板引擎

3 需求举例

需求示例(一)

公司最近有一个商务休闲服装品牌的商家&平台联合促销活动,在3.25-4.25期间,只要购买该品牌的服装,则都可以使用一个50元的代金券;
市场运营人员不想把优惠券无差别地发放给平台所有用户,而是想把优惠券尽可能发给有可能产生购买行为的用户;因此,市场部定义了一个发放优惠券的促销规则:

规则触发行为条件:

  • 用户浏览男装商品

  • 受众画像属性条件:

    • 用户年龄:28-40岁之间
    • 用户性别:男性
  • 受众行为属性条件:

    • 用户在最近1个月内,有过10次男装浏览行为
    • 用户在最近1个月内,有过5次“商务休闲”关键词搜索行为

需求示例(二)

  • 规则触发条件:浏览或点击或加购奶茶类饮品

  • 受众画像属性条件:年龄(15-25),性别(女),vip等级(>=2),月消费(>=200)

  • 受众行为属性条件:周登录次数(>4),月奶茶类收藏(>3),近3天点赞(>6)
    周依次做过:轮播广告AD3点击,奶茶产品详情浏览,饮料类添加购物车

4 需求规则抽象模型

在这里插入图片描述
在这里插入图片描述

规则组成要素分析抽象

规则要素(即规则条件),其实包括4个部分:

  • 事实,即被判断的主体和属性,如上面规则的账号及登陆次数、IP和注册次数等;
  • 条件,判断的逻辑,如某事实的某属性大于某个指标;
  • 指标阈值,判断的依据,比如登陆次数的临界阈值,注册账号数的临界阈值等;
  • 时间要素(条件所涉及的时间范围)
    规则可由运营专家凭经验填写,也可由数据分析师根据历史数据发掘,但因为规则与现实需求的契合会随时间而变(如与黑产的攻防之中会被猜中导致失效),所以无一例外都需要动态调整。

规则的运算模式分析抽象

  • 原子条件(查询)
  • 与或非组合

规则的运算数据源

  • 用户行为实时明细日志
  • 用户画像数据
  • 用户行为历史统计聚合数据

3 开发模式

迭代式开发

由于系统相对复杂,细节逻辑众多,因此本项目课程将带领学员按照迭代的模式进行开发;
逐个突破关键技术点,然后逐步迭代丰富和完善系统;

模块化开发

一个复杂的系统,不可能像helloworld一样线性开发;
必须要进行恰当的模块划分,并以高内聚、低耦合作为模块设计的原则;
只有这样,才能开发出结构清晰,可维护性/可扩展性高的系统;

模块测试

每一个模块开发完成后,都要进行充分测试,这样才能尽可能降低模块整合后的故障率;

阶段联调测试

每个大的阶段开发完成,都需要进行联调测试,确保该环节之前的所有功能已经完成,所有问题已经排除;

性能压力测试

对核心环节,应该扎实做好性能压力测试;

Flink与Drools协同构建规则模型实现大数据处理 通过整合这两个强大的工具,我们可以快速定义、发布和管理规则,并将其应用于大规模数据集和实时数据流中。本文将介绍如何使用Flink和Drools联合构建规则模型来处理大数据,并提供相应的源代码。Drools是一个基于规则的业务规则管理系统,可以用于定义和管理业务规则。它提供了强大的规则引擎和商业规则管理的功能,可以帮助企业快速实现规则的定义、发布和管理。要将Flink与Drools整合到一起,我们需要使用Flink的规则引擎库flink-cep和Drools的Java API。三、Drools简介。 阅读详情

相关推荐

使用Flink和Drools构建大数据规则模型

在大数据应用程序中,规则引擎是一种重要的工具,用于根据预定义的规则进行数据处理和决策。结合使用Flink和Drools,可以构建强大的大数据规则模型,实现实时数据处理和决策。接下来,我们使用Drools的KieServices加载DRL文件中的规则,并创建一个KieSession。在flatMap方法中,我们将交易插入到Drools会话中,然后执行规则并将分类后的交易发出。Flink提供了流处理的能力,可以处理实时的大数据流,并与Drools规则引擎集成,实现基于规则的数据处理和决策。

学习使你进步。 1111

Flink整合Drools

Flink整合Drools 将drl文件转换为字符串,存入到mysql中(将drools规则字符串,构造成KieSession对象),通过canal监听此表,存入kafka中,然后通过flink,当作广播流,主流中数据得到动态规则,进行匹配。 (1)drl文件 package rules; import cn.yyds.rulemk.demos.flink_drools.DataBean import org.apache.commons.lang.StringUtils rule "demo2"

qq_44665283的博客 4373

【Flink】Flink + Drools 构建规则模型

1.概述 这个是一个付费教程,我以前搞过drools但是没有真真用起来。 https://v.51doit.cn/detail/p_606869c9e4b09890f0e05cbf/6 主要是如何将规则模型抽象成用户可以理解的,可以配置的模型。

九师兄 1349

drools 框架_由Drools和Vue.js支持的决策模型框架

drools 框架 十进制 (declab) To provide an overview of the imported model, the included decisions, inputs and business knowledge models are displayed. 为了提供导入模型的概述,将显示包括的决策,输入和业务知识模型。 强大的建设者 (Powerful B...

cuk5340的博客 1966

Java 大视界 -- 基于 Java+Flink 构建实时电商交易风控系统实战(436)

本文介绍基于Java+Flink构建实时电商交易风控系统的实战经验。系统采用分层架构设计,包含数据采集层、实时计算层、规则引擎层、数据存储层和应用服务层,实现毫秒级风险识别与拦截。核心组件包括Flink 1.17处理交易数据流、Drools规则引擎动态匹配风险规则、Redis缓存热点数据等。文章详细提供了开发环境配置清单和Maven依赖说明,确保系统具备低延迟(≤200ms)、高吞吐(10万TPS)和高可用性(99.99%)特性。该方案已通过生产环境验证,可有效应对恶意刷单、盗刷支付等电商交易风险。

【青云交】华为云云享专家 | 阿里云开发者社区专家博主 技术圈个人影响力前 9 | 博客之星 TOP12 优快云 首位四榜(原力榜 / 作者周榜 / 领军人物 / 综合热榜)榜首,破平台纪录! 苏州地区全榜霸榜,感恩全网十多万粉丝同行! 3942

大数据:金融风控系统(springboot + drools),flink流计算,mongodb

大数据:金融风控系统(springboot + drools),flink流计算,mongodb

从零构建FLINK整合Drools动态规则实时运营系统(项目案例)-第6篇(V1.0版开发篇)

前言 本案例是一个专注于flink动态规则计算的项目,核心技术组件涉及flink、hbase、clickhouse、drools等 项目可根据各类个性化需求进行二次开发后,直接用于实时运营,实时风控、交通监控等场景的线上生产 项目完整视频教程和资料代码等,可在易学在线 https://v.51doit.cn 获取 技术交流,可加微信: haitao-duan 列位看官,为了能够更好地理解后续《动态规则版实时运营系统》的设计思想和代码实现, 我们先来开发一个简化版且没有动态规则功能的实时运营系统;

涛哥大数据小屋 3660

基于flink的实时流计算web平台.zip

基于flink框架写的大数据系统, 框架:flink 适宜人群:可以作为计算机专业的课程设计或者是毕业设计

从零构建FLINK整合Drools动态规则实时运营系统(项目案例)第2篇(业务介绍篇)

项目简介 项目gitee地址: https://gitee.com/hunter_d/yinew_marketing.git 1.1背景介绍 易牛鹰眼FLINK动态规则实时智能运营系统,是基于用户行为洞察的一站式智能运营平台; 集活动创建、执行、管理、反馈、迭代为一体,能够通过用户行为、属性、标签等数据筛选受众,实现目标人群的精准触达,提升关键指标和运营效率。 1.2系统功能 精细化营销闭环方案 活动策略制定 每天都想策划行之有效的运营活动? 在易牛实时智能运营上您可以灵活创建活动计划,制定活动目标

涛哥大数据小屋 3781

案例分析|一篇文章带你看懂养鸡场智慧管理系统

养鸡场智慧管理系统是为了满足现代化养鸡业对精细化管理的需求而设计的一款专业软件。随着科技的发展和农业产业的升级,传统的手工记录和管理方式已无法满足高效、准确和实时的数据跟踪需求。本软件旨在通过集成各种功能模块,帮助养鸡场主实现从鸡苗孵化、饲养管理、饲料控制到销售结算等全链条的智能化操作。该系统的核心目标是提升养鸡场的运营效率和盈利能力,通过自动化数据处理,减少人工误差,节省时间和精力。例如,孵化报表和记录模块可以帮助管理者实时监控孵化过程,及时调整策略;

muyu2980的专栏 930

C#开发医学影像胶片打印系统(一):万能花式布局的实现思路

本篇文章将介绍开发医学影像胶片打印系统(printscu模式)遇到不规则排版时的一种思路,一般来讲,医院打印胶片时都是整张胶片打印,但有时需要将多个病人或一个病人的多个检查打印在同一张胶片上,这时候就需要不规则排版来满足打印需求,使胶片利用率最大化。

罗万科技的博客 1325

从零构建FLINK整合Drools动态规则实时运营系统(项目案例)-第5篇(用户画像篇)

画像标签体系 用户基本属性标签 用户订单属性标签 用户退换货属性标签 用户购物车属性标签 用户活跃属性标签 用户偏好属性标签 用户基本属性标签 用户属性指标主要根据业务数据来源(业务系统中的用户信息) 尽可能全面地描述用户基础属性 这些基础属性值是短期内不会有改变的,如年龄、性别、手机号归属地、身份证归属地等 字段 类型 定义 备注 user_id bigint 用户编码 login_name string 登录名称 user_name string 用户姓名

涛哥大数据小屋 2003

【WorkBuddy从入门到精通实战教程】使用手册 第 1 章 初识 WorkBuddy

腾讯推出全场景AI办公助手WorkBuddy,突破传统聊天机器人局限,实现从需求理解到结果交付的全流程自动化。该工具通过自然语言交互,可自主规划执行复杂任务,包括文件处理、数据分析、PPT制作等,支持多模型切换和技能扩展。内置权限管控机制确保本地文件操作安全,显著降低人工切换工具的成本,提升职场效率。

企鹅码农的专属播客,分享10多年的实战案例和经验解读,包含YOLO、RT-DETR、AI等各个工作领域。 1241

Flink动态规则实时智能营销系统(Flink+Clickhouse+Drools整合实现)

Flink动态规则实时智能营销系统(Flink+Clickhouse+Drools整合实现) 【下载地址】Flink动态规则实时智能营销系统FlinkClickhouseDrools整合实现分享 本资源提供了一套详细的教程,旨在教授如何构建一个集实时流处理、高性能数据存储和灵活业务规则管理于一体的实时智能营销系统。该系统...

gitblog_06623的博客 1207

Android Update Engine 分析(三四)OTA 签名都支持哪些算法?

写了几十篇还没涉及到 OTA 签名算法细节,OTA 讨论群也很少问这个,毕竟签名算法纯理论的问题,一旦实现好就极少需要改动,只需要进行一些配置,准备好签名的秘钥和证书就可以了。限于签名的算法理论太过于抽象,本篇不讨论签名算法细节,但会总结一些签名操作。以及 Android OTA 包支持的签名算法。本文主要分析 Update Engine 中支持的签名算法,以及这些算法的操作实现(不涉及原理部分),并总结签名和验签使用的 key。

洛奇看世界 713

YOLO26改进策略【YOLO和Mamba】| 2024 VM-UNet,高效的特征提取模块VSS block 二次创新提高精度

VM-UNet模型设计的出发点是解决现有CNN-based和模型在医学图像分割中的局限性,利用(SSMs)的优势,提出一种更有效的医学图像分割模型。具体来说,CNN-based模型在捕捉长距离信息方面存在不足,而模型由于自注意力机制的二次复杂度导致计算负担较重。SSMs模型如Mamba不仅在建模长距离依赖方面表现出色,还具有线性计算复杂度,这为VM-UNet的设计提供了理论基础。

Limiiiing的博客 210

从零构建FLINK整合Drools动态规则实时运营系统(项目案例)-第4篇(日志准备篇)

前言 本案例是一个专注于flink动态规则计算的项目,核心技术组件涉及flink、hbase、clickhouse、drools等 项目可根据各类个性化需求进行二次开发后,直接用于实时运营,实时风控、交通监控等场景的线上生产 项目完整视频教程和资料代码等,可在易学在线 https://v.51doit.cn 获取 技术交流,可加微信: haitao-duan 兵马未动,粮草先行 巧妇难为无米之炊,本运营系统的开发,离不开用户行为的数据记录; 各类网站、app等互联网产品上,用户的行为记录数据,往往

涛哥大数据小屋 1400

华为OD机试真题 新系统 2026-06-10 C++ 实现【设备重排SN】

通信设备SN一般是包含:字母、数字,用'-'(破折号)进行分组分割,例如:8F-3T-1G-2n是一个有效的SN地址。 现在要对已经存在的SN 按照新的规则进行重排:

MISAYAONE的博客 129

从零构建FLINK整合Drools动态规则实时运营系统(项目案例)-第3篇(需求示例篇)

列位看官,为了能够更好地理解后续《动态规则版实时运营系统》的设计思想和代码实现,我们先来开发一个简化版且没有动态规则功能的实时运营系统; 需求示例 示例一 公司最近有一个商务休闲服装品牌的商家&平台联合促销活动,在3.25-4.25期间,只要购买该品牌的服装,则都可以使用一个50元的代金券; 市场运营人员不想把优惠券无差别地发放给平台所有用户,而是想把优惠券尽可能发给有可能产生购买行为的用户;因此,市场部定义了一个发放优惠券的促销规则: 规则触发行为条件: 用户浏览男装商品 受众画像属性条件:

涛哥大数据小屋 1159

YOLO26改进策略【Neck】| 关键点检测:SDFM 表层细节融合模块,利用通道-空间注意力机制,实现深层与浅层特征融合,抑制噪声干扰

本文记录的是利用SDFM 模块改进 YOLO26 的颈部融合部分,专门用于关键点检测。SDFM模块(Surface Detail Fusion Module,表层细节融合模块) 通过在特征提取网络的浅层引入通道-空间注意力机制,动态生成深层与浅层特征融合权重。该模块可自适应保留不同模态中的独特信息,抑制背景噪声与光照干扰,实现低层细节的精准对齐与互补增强,为后续检测提供高保真度的底层特征表示,从而提升模型在复杂场景下的目标检测鲁棒性与定位准确性。Rethinking the necessity of ima

Limiiiing的博客 175

越野换了逐飞的ips200pro的屏幕后代码烧录中报错: “Cannot initialize device connection” 和 “Flashing failed” ...如何解决?

🏆 本文收录于《全栈Bug调优(实战版)》专栏,致力于分享我在项目实战过程中遇到的各类Bug及其原因,并提供切实有效的解决方案。无论你是初学者还是经验丰富的开发者,本文将为你指引出一条更高效的Bug修复之路,助你早日登顶,迈向财富自由的梦想🚀!同时,欢迎大家关注、收藏、订阅本专栏,更多精彩内容正在持续更新中。让我们一起进步,Up!Up!Up!    备注: 部分问题/难题源自互联网,经过精心筛选和整理,结合数位十多年大厂实战经验资深大佬经验总结所得,数条可行方案供所需之人参考。

**My Coding Family** 1149

flink实时项目

视频地址 简单来说,本系统,核心是一个基于事件驱动且可进行动态规则计算的实时系统; 在技术上,它是通用的;本套架构及系统内核,不仅可以用于“实时运营”,也可以用于“实时风控”,“实时推荐”,“实时交通监控”等场景。 运营场景举例:下单促付款,新品发布信息精准送达; 动态规则发布管理 本系统可以在线进行规则的灵活定制,新增,修改,发布,停用,无需停机,无需修改代码 实时效果监控 本系统,在核心规则引擎之外,也集成了大量metric及跟踪数据输出,能在系统中及系...

HANG.NIAN 1603

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

drools规则引擎可视化_基于flink和drools的实时日志处理

1、背景日志系统接入的日志种类多、格式复杂多样,主流的有以下几种日志:filebeat采集到的文本日志,格式多样winbeat采集到的操作系统日志设备上报到logstash的syslog日志接入到kafka的业务日志以上通过各种渠道接入的日志,存在2个主要的问题:格式不统一、不规范、标准化不够如何从各类日志中提取出用户关心的指标,挖掘更多的业务价值为了解决上面2个问题,我们基于flink...

weixin_39764603的博客 1690

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

大型动态规则实时市场营销系统

视频地址 简单来说,本系统,核心是一个基于事件驱动且可进行动态规则计算的实时系统; 在技术上,它是通用的;本套架构及系统内核,不仅可以用于“实时运营”,也可以用于“实时风控”,“实时推荐”,“实时交通监控”等场景。 运营场景举例:下单促付款,新品发布信息精准送达; 动态规则发布管理 本系统可以在线进行规则的灵活定制,新增,修改,发布,停用,无需停机,无需修改代码 实时效果监控 本系统,在核心规则引擎之外,也集成了大量metric及跟踪数据输出,能在系统中及系...

HANG.NIAN 885

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

drools动态配置规则_基于 Flink 和 Drools 的实时日志处理

背景日志系统接入的日志种类多、格式复杂多样,主流的有以下几种日志:filebeat采集到的文本日志,格式多样winbeat采集到的操作系统日志设备上报到logstash的syslog日志接入到kafka的业务日志以上通过各种渠道接入的日志,存在2个主要的问题:格式不统一、不规范、标准化不够如何从各类日志中提取出用户关心的指标,挖掘更多的业务价值为了解决上面2个问题,我们基于flink和d...

weixin_39542710的博客 439
上一篇: 从零构建FLINK整合Drools动态规则实时运营系统(项目案例)第2篇(业务介绍篇)
下一篇: 从零构建FLINK整合Drools动态规则实时运营系统(项目案例)-第4篇(日志准备篇)
江湖人称涛哥
博客等级 码龄14年 538粉丝 51原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值