数据中台建设(六):数据体系建设

数据中台建设(七)——数据体系建设 数据中台是企业数据汇集地,但并不是简单的数据堆积,而是进行分层建模,数据体系建设最终呈现一套完整、规范、准确的数据。数据体系建设就是大数据中数据仓库建设。 阅读详情

数据体系建设

数据中台是企业数据汇集地,但并不是简单的数据堆积,而是进行分层建模,数据体系建设最终呈现一套完整、规范、准确的数据。数据体系建设就是大数据中数据仓库建设。如下图:

  • 贴源数据层 ODS(Operational Data Store):贴源层又称操作数据层,对各业务系统数据进行采集、汇集,尽可能保留原始业务流程数据,与业务系统基本保持一致,仅做简单整合、非结构化数据结构化处理,或者增加标识数据等,不做深度清洗加工。

  • 统一数仓层 DW(Data Warehouse):数据仓库层又细分为很多层,大致为:明细数据层 DWD(Data Warehouse Detail)和汇总数据层 DWS(Data Warehouse Service),与传统数据仓库构建一样,对全历史业务过程数据进行建模存储。

  • 标签数据层 TDM(Tag Data Model):面相对象建模,对跨业务板块、跨数据域的特定对象数据进行整合,把各个业务板块、各个业务过程中同一对象的数据打通,形成对象的全域标签体系,方便深度分析、挖掘、应用。

  • 应用数据层 ADS(Application Data Store):本层也可以叫 DM(Data Market)数据集市层,按照业务需要从统一数仓层、标签数据层抽取数据,并面向业务提供特定数据,以满足业务及性能需求。

以上数据体系建设过程中数据的读取也有严格的规范要求,按照规范,贴源数据层直接从业务系统或日志系统中获取数据。贴源数据层的数据只被统一数仓层使用,统一数仓层数据只被标签层和应用数据层使用,最终所有业务使用的数据均来自于标签层和应用层。

在大数据数据仓库课程中我们详细学习了数据仓库的分层与构建,当时不涉及数据标签层,这里我们详细介绍数据标签层。

一、数据标签层

统一数仓中的数据时按照数仓的维度规范建模,对业务数据按照主题域进行组织,但是同一个对象的各种指标信息分散在不同的数据域并且有不同的数据粒度。例如:

  • 用户数据,用户注册宽表信息中有用户注册渠道、性别、手机号码等信息。

  • 用户登录信息宽表中有用户连续登录天数、用户最后登录时间、用户累计在线时长等信息。

  • 用户订单信息宽表中有用户下单量、用户累计消费、用户最后下单金额等信息。

以上各种宽表中的各种信息涉及到了各个主题域,想要了解一个用户的全面信息,例如:了解用户手机号码、连续登录天数、累计消费金额信息,需要通过各种关联关系才能满足业务需要,数据使用成本高。而有时获取、分析用户的全面数据是多个业务的共同需求,例如:运营人员需要知道每个用户的年龄段、消费金额信息来制定营销活动,机器学习部门需要知道每个用户的年龄段、消费金额信息来训练模型等等。

那么在企业数据中台构建中,各个业务部门需要用到的这些共性数据(描述对象的全面数据)就可以通过标签数据层来满足,通过构建标签数据层可以做到企业精细化运营,例如:精准营销、精准推荐、用户画像、用户维护(针对用户群体进行研发用户偏好产品,吸引用户)等。注意:很多个业务部门经常共同使用到的指标就可以构建成标签数据。

标签数据层建设一方面让数据变的可阅读、易理解,方便业务使用,另一方面通过标签类目体系将标签组织排布,以一种适用性更好的组织方式来匹配未来变化的业务场景。

二、如何构建数据标签层

1、确定构建标签对象

进行标签建设首先要清楚对哪些对象建设标签,也就是明确对象,例如:对用户、对产品、订单等。经过对多个行业,多个标签体系建设来看可以把对象分为“人”,“物”,“关系”三大类。

“人”包括自然人、法人、消费者、消费者协会、电商企业等,表示可以主动发起行为的主体。

“物”包括物品、物体、仓库等,表示行为中被施与对象。

“关系”包括购物、运货、聊天、监管等,表示人物关系、人人关系、物物关系,包括行为关系、归属关系等。

明确了企业中对哪些对象进行构建标签就可以进行标签体系建设。企业中的对象非常多,不会对所有的对象都构建标签体系,企业需要什么对象的标签就构建什么对象的标签,常见构建标签体系的对象有客户、员工、用户、产品、设备等。一种对象标签体系的建设不会影响另外一种对象标签体系建设,可以同时对多个对象进行标签体系建设。

2、设计标签类目

企业业务需要使用的标签项一般都会非常之多,当标签项超过 50 个时,业务人员要使用或者查找标签变得非常麻烦,所以标签一旦多了之后,我们就需要设计标签类目,根目录就是前面提到到“人”、“物”、“关系”。根目录也叫一级目录,除了一级目录之外,按照所属关系还可以分为“二级目录”、“三级目录”,一般标签类目结构分为三级分层结构即可。

类目体系的层级构建尽量以用户最容易理解的方式进行展开,也可以根据各自业务来设计“一级目录”、“二级目录”、“三级目录”,这样可以方便数据开发者或者数据库管理员快速找到所需要的标签数据。

以下为标签类目设计示例:

以上表中对应的红色数字字符串可以存储在 mysql 关系型数据库中,如果企业数据标签量大,可以以每级别目录创建表,以 K,V 方式存储标签数据,存储目的主要是为了方便数据开发者或者数据库管理员快速找到所需要的标签数据,另外企业中如果构建了标签系统,也可以在标签系统中查询对应表进行级联展示。

以上表中对应的蓝色字体为在数据体系中标签层中对应的表名和每张表中对应的字段名称。标签表的建立可以和最后一级标签目录对应,也就是说最后一级标签目录对应一张标签表,当然这也不是固定死的,也可以非最后一级目录对应一张标签表,但是要避免一些标签表中标签字段过多,不均衡问题。这些标签字段对应的结果值都是从 DWS 层中进行跨主题域进行分析得到。

通常来说构建标签体系是指对象的标签类目+标签,标签体系设计的核心是标签类目设计(一级、二级、三级等目录),标签类目设计完成,整个标签体系的框架就有了,后面就是往每个叶类目下填充通过数仓 DWS 层可以加载出来的标签,进而完成整个标签体系的建设。

3、标签表实现

设计好标签类目之后,对应的标签表中的数据就是通过查询数据体系中的 DWS 层的数据,这个过程中涉及到跨多张业务宽表、多主题域的查询,将多个表结果按照全局统一的 ID 进行融合(例如:用户 ID,用户身份证 ID,手机号等),根据获取各个宽表中的数据,进一步按照业务规则判断,找到相应标签对应的值,存入标签表中。实际上一般的标签表中除了有对应的标签值之外都还会有全局统一的 ID,这样方便后期查询使用标签表中的数据,为业务方赋能,提供更多的数据价值。

大数据之路—数据架构体系及模型设计 大数据之路,模型篇汇总 阅读详情

相关推荐

数据体系建设-ODS|DW|TDM|ADS介绍

ODS|DW|TDM|ADS介绍

weixin_47198715的博客 2457

数据中台 第7章 数据体系建设:数仓分层设计、数据建模

数据中台数据体系是在全域原始数据的基础上,进行标准定义及分层建 模,数据体系建设最终呈现的结果是一套完整、规范、准确的数据体 系,可以方便支撑数据应用。 中台数据体系应具备以下特征:·覆盖全域数据:数据集中建设,覆盖所有业务过程数据,业务在中台 数据体系中总能找到需要的数据。·结构层次清晰:纵向的数据分层,横向主题域、业务过程划分,让整 个层次结构清晰易理解。 ·数据准确一致:定义一致性指标,统一命名、统一业务含义、统一计 算口径,并有专业团队负责建模,保证数据的准确一致。 ·性能提升:统一的规划设计,选用

. 1万+

数据中台【建设步骤】

1.组织规划 1.1 制定战略规划 1.2 完善组织结构 1.3 建立制度体系 1.4 设置审计机制 1.5 进行培训宣贯 2.现状梳理 2.1 组织现状 2.2 业务现状 2.3 技术现状 2.4 数据资源现状 2.4.1 数据资源的分类 2.4.2 数据资源的梳理步骤 3.应用服务规划 3.1 数据应用规划 3.1.1 数据应用分类 3.1.2 数据应用规划步骤 3.1.3 数据应用评估模型 3.2 数据服务规划 3.2.1 数据服务分类 3.2.2 数据服务的核心价值 3.2.3 数据服务类型

程序员学习圈 6731

数据中台(读书笔记)-4-体系建设

建设过程种需要一个体系化的数据层次架构,这个架构定义了数据分层和每一层的模型建设规范。 下面是某一个地产公司的案例: 该案例涉及到以下几个分层: 贴源数据层ODS 对业务数据进行汇聚、采集,尽可能的保留原始业务流程数据,与业务系统基本保持一致。仅做简单的整合、非结构化数据处理或者增加一些标识数据和日期,不做深度数据清洗。 统一数仓层DW 又分为【明细数据层DWD】和【汇总数据层DWS】 DWD:data warehouse detail 细节数据层,有的也称为 ODS层,是bai业务层与数据仓

allensandy的博客 2505

企业数据中台建设思路

企业数据中台建设思路

从知识输入到知识输出 2376

企业数据中台整体介绍及建设方案:文件全文51页,附下载

数据中台建设的核心是平台化建设。这些服务跟企业的业务有较强的关联性,是这个企业独有的且能复用的,它是企业业务和数据的沉淀,其不仅能降低重复建设、减少烟囱式协作的成本,也是差异化竞争优势所在。数据中台是一套可持续让企业的数据用起来的机制,是依据企业特有的业务模式和组织架构,通过有形的产品和实施方法论支撑,构建一套把数据变成资产并服务于业务的机制。企业应该建立部门间协调机制,尤其是需要技术和业务部门间密切协作,充分发挥各部门的优势,建立统一的数据标准和流程,从而保证数据的质量和准确性,提高数据资产的价值。

byte58的博客 1509

数据中台(六)数据体系建设

数据中台(六)数据体系建设 1、数据体系规划 中台数据体系具备特征: 覆盖全域数据 结构层次清晰:纵向数据分层,横向主题域与业务划分 数据准确性一致:定义一致性指标、统一命名、统一计算口径 性能提升 降低成本 方便易用 数据中台体系架构数据分层 贴源数据层ODS:操作数据层,对各个业务数据进行采集、汇聚、整合、增加数据标识、非结构转化为结构数据等,不做深度清洗加工——数据汇聚接入,例如:东方国信爬虫、新大陆数据汇聚接入 统一数仓层DW:细分为DWD(明细数据层)与DWS(汇总数.

形而上者谓之道 形而下者谓之器 1627

数据中台(七) 数据中台架构

总体架构图 数据存储 计算引擎 数据汇聚 数据汇聚是把数据资源通过实时、批量的方式存储到数据中台。基本是按照数据的原始状态堆砌在一起的,是企业对过往所有IT信息化建设积累的成果的融合。 数据开发 数据开发是数据资产内容建设的主战场,是数据价值生产过程中核心环节。数据资源是原材料,数据资产是商品,数据开发就是商品生产流水线,通过这条流水线将数据资源转换成数据资产。 为了降低开发难度,提高开发效率,需要一个可视化的开发平台,主要包括以下产品功能: 数据体系 数据体系是在

知行合一 1万+

数据中台-架构、构建与体系建设

数据中台要求全企业共用一个数据技术平台、共建数据体系、共享数据服务能力。实际上一个企业中由于各个业务线发展不均衡,各自都有独立的数据处理架构,导致共享数据非常困难,所以要构建数据中台不仅是对技术架构的改变,同时还是对整个企业业务运转模式的改变,需要企业在组织架构和资源方面给予支持。数据中台是一个企业战略行动,绝非一个项目组或者一个小团队就能做的,需要了解整个企业的业务情况,对业务进行梳理,还需要技术支撑、组织的支撑,否则很难推行下去。数据中台的建设内容包含技术体系、数据体系、服务体系、运营体系四大体系。技术

m0_46690280的博客 7513

数据中台建设(三):数据中台架构介绍

数据中台要求全企业共用一个数据技术平台、共建数据体系、共享数据服务能力。实际上一个企业中由于各个业务线发展不均衡,各自都有独立的数据处理架构,导致共享数据非常困难,所以要构建数据中台不仅是对技术架构的改变,同时还是对整个企业业务运转模式的改变,需要企业在组织架构和资源方面给予支持。数据中台是一个企业战略行动,绝非一个项目组或者一个小团队就能做的,需要了解整个企业的业务情况,对业务进行梳理,还需要技术支撑、组织的支撑,否则很难推行下去

Lansonli(蓝深李)的博客 5801

ARM的CI-700和Arteris的NoC对比

设计理念:CI-700注重于为移动和客户端SoC提供定制化的互连解决方案,而Arteris的NoC更侧重于提供灵活、可配置的网络互连技术,适用于多种应用场景。性能与功耗:CI-700通过系统级缓存和网状拓扑结构优化性能和功耗,而Arteris的NoC通过物理感知和多协议支持来提升性能和降低功耗。功能安全:Arteris的NoC提供了功能安全支持,这对于汽车和工业应用尤为重要,而CI-700虽然也关注安全性,但未明确提及功能安全支持。互操作性。

ygyglg的专栏 2622

“慢”增长时代的企业数据体系建设:超越数据中台

随着互联网的发展,宏观经济环境和行业竞争环境发生了巨大变化,互联网企业对内部数据体系的需求也发生了很大变化。本文将从相对宏观的角度,分享关于互联网企业数据体系建设如何变革的一些思考和总结。

京东零售技术的博客 4720

AS5600磁编码器选型与安装避坑指南:磁铁形状、间隙距离到底怎么选?(附实测数据)

本文详细解析了AS5600磁编码器的选型与安装要点,包括磁铁形状、间隙距离等关键参数的选择,并附有实测数据支持。特别针对Arduino和I2C接口的应用场景,提供了硬件选型和机械安装的实用指南,帮助开发者避免常见陷阱,提升系统精度和稳定性。

weixin_27038245的博客 287

数据中台 第3章:数据中台建设与架构

3.1 持续让数据用起来的价值框架 数据中台的使命就是持续让数据用起来,它的一个根本性创新就是 把“数据资产”作为一个基础要素独立出来,让成为资产的数据作为生产 资料融入业务价值创造过程,持续产生价值。 数据中台作为整个企业各个业务所需数据服务的提供方,通过自身的平 台能力和业务对数据的不断滋养(业务数据化),会形成一套高效可靠 的数据资产体系和数据服务能力(数据资产化和资产服务化)。这样一 来,当出现新的市场变化,需要构建新的前台应用时,数据中台可以迅速提供数据服务(服务业务化),从而敏捷地响应企业的创

. 2628

Visual Tracker Benchamark傻瓜式教程(二)

问题  1 1  在调用main.m跑TRE和SRE时,因为会生成相应的.mat数据文件,如果跑完以后发现自己算法生成的.mat文件有问题,那么要把该文件删除,待找到错误原因后,重新生成相应的.mat文件。因为程序中写的是如果已经存在了.mat文件,例如已经存在car4_STC.mat文件,即使该文件中的数据有错误,但是重新跑时会默认该文件中的数据写完,不会重新写入数据 问题  2  b

mingbujingren的专栏 9928

基于新张量核范数的TRPCA:多维数据低秩稀疏分解的理论与实践

本文深入探讨了基于新张量核范数的TRPCA(张量鲁棒主成分分析)技术。该技术通过t-product运算和新定义的张量核范数,能有效从多维数据(如视频、彩色图像)中分离低秩背景与稀疏前景/噪声。文章结合理论、核心算法(ADMM、t-SVT)及图像恢复、视频背景建模等实战案例,展示了其在处理复杂多维数据分解任务中的强大优势。

weixin_29173777的博客 269

数据体系建设实例:从理论到实践

案例展示了数据中台建设从理论到实践的全过程,为不同企业的数据产品经理提供了可借鉴的工作框架和方法思路。数据分类:人力/行政/财务大类下细分(如行政数据分为办公地点类、固定资产类等)职能数据分散在多个系统(eHR、OA、供应商管理等)和线下表格中。示例:财务和行政的HC需求合并为HR数据域的员工HC主题。数据样表:收集字段信息,注明来源、更新频率和口径。数据中台建设会暴露被忽视的场景,产生衍生开发需求。数据获取周期长、口径不统一、沟通成本高。数据来源(系统/线下)、提供方。临时方案:数据中台提供上传入口。

坚持输出,记录成长。 809

NVIDIA驱动装好了,Gazebo为啥还是卡?手把手教你用optirun搞定GPU加速

本文详细解析了NVIDIA驱动安装后Gazebo仍卡顿的原因,并提供三步精准诊断与GPU加速实战方案。通过optirun快速启用GPU加速,解决OpenGL与显示服务器的配置问题,显著提升仿真性能。适用于ROS、PX4等开发环境,帮助用户充分利用显卡性能。

weixin_30379531的博客 465

多图详解数据中台建设框架(建议收藏)

导读:近日,舞动数字·2021数字化转型系列论坛由机械工业出版社华章公司成功举办。在数字化能力与平台构建专场中,《数据中台》的核心作者、数澜咨询及解决方案的负责人铁平老师发表了主题演讲。铁...

大数据 3767

selenium绕过检测,规避检测

现在不少大网站有对selenium采取了监测机制。比如正常情况下我们用浏览器访问淘宝等网站的 window.navigator.webdriver的值为 undefined或者为false。而使用selenium访问则该值为true。那么如何解决这个问题呢?我们正常浏览器登录查看,window.navigator.webdriver的值为false我们通过selenium打开的网页,测试,可见window.navigator.webdriver的值为true。

景天科技苑 1万+

RT-DETR改进策略【卷积层】| CGblock 内容引导网络 利用不同层次信息,提高多类别分类能力 (含二次创新)

本文记录的是利用中的模块优化的目标检测网络模型。通过局部特征提取器、周围环境提取器、联合特征提取器和全局环境提取器来提取局部特征、周围环境和全局环境信息,充分利用不同层次的信息。本文将其应用到中,并进行二次创新,使网络能够更好的处理多类别目标的分类能力。CGNet: A Light-Weight Context Guided Network for Semantic Segmentation1️⃣ 首先通过局部特征提取器floc(∗)floc(*)floc(∗)和周围环境提取器fsur(∗)f_{sur }

Limiiiing的博客 1349

数据中台建设方法论

数据中台建设方法论体系, 需要从组织 保障 准则 内容 步骤 几个层面考虑 ,确保 数据中台建设 和实施能如期完成 一种战略 把用数据中台驱动业务发展定位成企业级战略 全局谋划 2项保障 通过宣导统一组织间数据认识,通过刘车行加速 组织变革 3条目标准则 将数据的可见 可用 可运营3个核心准则始终贯穿于中台建设的全过程 保障建设在正确轨道上 4套建设内容 通过技术体系 数据体系 服务体系 运营体系建设 保证中台建设的全面性 和可持续性 5个关键步骤 通过理现状 立架构 建资产 用数据 做运营 5个

jiganbz的博客 1658

OpenClaw实战-行政与HR必备:AI驱动的办公自动化

智能会议纪要自动生成会议时间智能协调自动提醒和跟进简历智能筛选和匹配度分析面试安排自动化入职办理流程化通知公告一键发布发票识别和报销辅助资产管理数字化让AI处理繁杂的事务性工作,让您有更多时间专注于更有价值的战略和管理任务。

gaoxiang_120的专栏 217

数据中台详解

各种信息系统大多是独立建设的,无法做到信息的互联互通,导致形成了多个数据孤岛。数据中台的作用是融合新老信息,整合各个孤岛上的信息,快速形成数据服务能力,为企业经营决策、精细化运营提供支持。 数据中台和业务中台的区别: 业务中台是抽象业务流程的共性形成通用业务服务能力,数据中泰是抽象数据能力的共性形成通用数据服务能力。数据仓库的主要场景是支持管理决策和业务分析,而数据中台则是将数据服务化之后提供给业务系统,目标是将数据能力渗透到各个业务环节,不限于决策分析类场景。数据中台的建设包含数据仓库的完整内容,数据中

weixin_46002001的博客 2万+

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

7.数据中台 --- 数据开发:数据体系建设

7.1 数据体系规划 各种系统产生的原始数据堆积在一起导致使用成本非常高,这类数据只能在某些数据技术基础非常好的部门使用,而且会经常出现 命名不一、口径不一的问题,从而导致整个企业的数据无法真正用起来。数据中台数据体系是在全域原始数据的基础上,进行标准定义 及分层建模,数据体系建设最终呈现的结果是一套完整、规范、准确的数据体系,可以方便的支撑数据应用。 中台数据体系应具备以下特征: 1.覆盖全域数据 数据集中建设,覆盖所有业务过程数据,业务在中台数据体系中总能找到需要的数据。 .

enlyhua的专栏 2453

深度学习工具包 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")

上一篇: 数据中台建设(七):数据资产管理
下一篇: 数据中台建设(五):打破企业数据孤岛和提取数据价值
wrr-cat
博客等级 码龄9年 128粉丝 302原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值