地震数据专家[DataEQ]地震会商技术系统

DatistEQ之释放脑力

2021-10-24  本文已影响0人  了无_数据科学

1、时代的变迁

很多人对数据的理解和使用数据的习惯,还停留在Excel及其使用方法上。Excel是一个伟大的产品,它为所有人提供了输入、整理、查看和分析数据的工具,它也奠定了笔者从业多年对数据的基本理解方式。

不过,随着大数据时代的到来,在数据分析领域出现了一些深刻的变化,以至于微软也在Excel的基础上做出了很多转变和升级,推陈出新,最后整合为Power BI。

其一,随着数据从几千行到几千万行的爆炸式增长,查看明细数据的重要性已经降低,取而代之的是关注样本的整体特征,以及相互之间的关系,复杂问题还涉及多个问题之间的关联分析和结构分析,比如不同品类商品的交叉购买率、不同区域的客户购买力等。在《大数据时代》一书中就把“关心总体”视为大数据时代的关键特征。

其二,数据太多,注意力有限。数据分析师必须用直观、简洁的方式展示数据重点,传统的交叉图已经无能为力,符合直觉的可视化展示成为时代主流。

从基于明细的“小数据分析”到面向总体的“大数据分析”,是这个时代的大趋势。这个趋势的背后,是看待数据视角的根本变化——层次思维。

2、IT分析师和业务人员看待数据的不同视角

过去,我们期望的正确答案,是基于明细汇总、自下而上的聚合视角,这也是IT分析师的思考逻辑。

IT分析师眼中的数据是这样的数据库样式:数据由哪些字段构成、每个字段的数据类型、字段之间的依赖关系等。IT分析师关心如何用简洁的架构完整地描述业务,比如零售企业的数据库如何保存每分每秒的商品交易——“什么时间?哪位客户?在哪个门店?购买了什么东西?以及其具体的交易数据”。因此,IT分析师看待数据的视角是静态的。

数据模型是对物理世界的一种简化。将繁杂复杂的世界万物,以表与字段的方式模式化,通过标准化、工业化的方式把数据存储起来,以便于使用通用的方式实现数据高效查询与分析。
从数据质量控制角度,可用规则有DataRange、Enumeration、NotNull、Regexp、Timeliness、Unique等,这些是数据采集或是治理过程中,IT角度常用的技法,它们使得数据质量有了保障。
从应用的角度,这种数据模型的简化,丢弃了太多的内在关联,丢弃了太多的应用领域的概念,丢弃了太多数据应用过程中的特性与细节,使得数据失去了专业背景信息,脱离了现实世界。

相比之下,业务人员更关心问题和答案,问题通常是一连串问题的组合,寻找答案更像“剥洋葱”,比如发现“日用品”利润总额大幅下滑,于是去验证与之相关的各种假设:是“日用品”下的某个子分类利润下滑,还是某些门店的销售折扣偏高?如果是折扣偏高,那么是集中在哪些子品类或者集中在哪一段时间?业务分析的过程,都是不同维度层次之间的钻取和关联分析,简单的问题只有一个数据层次,复杂的问题则同时包含多个数据层次及其相互关系。分析的过程就是在问题对应的数据层次上,完成聚合分析。企业中不同的数据用户看待数据的视角也会明显不同。

同样一份数据,不同岗位、不同人的需求截然不同,对应问题所在的层次不同。业务分析师基本都是从一个问题到另一个问题的关联分析,对应的是数据背后的层次切换,而且业务分析师直接面向业务决策,而这明显超出了IT分析师对数据的掌握和理解。

总的来说,正因为IT部门和业务部门看待数据的视角不同,IT部门重在“维护数据”,而业务部门重在“探索问题”。IT人员关心数据明细,而业务人员关心层次,并能随着问题灵活更改数据层次。可以说,层次是从IT到业务的最本质的思维升级,也是理解复杂问题、复杂表达式的关键。

“创梦”的绝佳之处,就是释放了分析过程的想象力,可以在不断建立假设的过程中随时找到对应的数据层次,并借助可视化的方式轻松找到线索、建立解释,从而更快地辅助决策,提升业绩。“数据分析是连接数据资产和价值决策的桥梁”,而“创梦”就是这座桥梁上最便捷的交通工具。

“创梦”,数据专家里的一个新的节点。笔者感觉这个词比较合适。为什么?笔者也不知道。数据专家流程式的低代码平台,提供一个过程可视化的分析手段,一个节点一个步骤,最终帮助用户搭建起一个完善的世界。然后,它关注了太多的细节,也消耗了太多的脑力,让用户游离于业务之外。“创梦”试途采用一种层次思维模型,释放脑力,辅助用户探索业务规律。

数据分析的关键是层次,而理解层次的推荐方式是假想有一座“数据冰山”。每当要进行分析时,可以先把数据表中的所有字段想象为冰山底层的颗粒,明细数据是分析的“原料”,而把问题所在的层次比作“海平面”。

3、梦的实现

“创梦”的酝酿、原型到实现,大约经历了小半年的时间,原型、重构再重构,当前初见成效。将数据展现归纳为行、列、颜色、大小、标记、细节、提示等多种手法。以拖拽的方法,完成数据探索分析过程。

跨越了c#与js两大技术体系,js是一个相对松散的技术,对于C#这种严格的技术栈而言,在两者之间寻找共同之处,构建起一个协作环境。最核心还是释放脑力,让程序人员能够读得懂,让功能有可持续迭代的可能。通俗的地讲,一段代码,程序人员读起来都费劲,怎么可能改得好呢。用严格的思维方式,在JS松散的技术框架下,去写代码,遵循功能单一原则、一个函数不过80行代码、模块化、接口编程等多个基本规则。

类、接口、函数皆是文档,皆是文字。C#中严格化的编程过程中,通过接口、类、重载、特性等方式,极大限度地让程序人员释放脑力。js宽松的代码环境,同样需要类型的规则。

重写是一个极为痛苦的过程,从一个试验原型开始,一步步堆砌而成的功能,越是向后,程序员越是烧脑。短短500行代码,翻来覆去的看是实现了,然而可读性差,犹犹豫豫推翻之前的工作重新来过。从顶层设计,爆布式软件工程方法,强调软件工程的整体性,强调软件实现的可持续性,强调代码的基本规则。大的方向对的了,不会走偏,才会走得更远。

创梦 条形数

系统构建过程,由数据表经过一系列的转换,转化为最终可视化的图表。Table以二维数组为基本单元,并追加各种页面修饰样式。MultiBar以半结构化数据为基础,附加绘图基本参数,以统一接口的方式生成绘图元素,再合并成统计图表。

系统架构

烧脑的数据结构。

//示例:
let cData = {
"columnTitles": ["地区"],
"rowTitles": ["类别", "子类别"],
"input": [
["", "", "办公用品", "办公用品", "办公用品", "办公用品", "办公用品", "办公用品", "办公用品", "办公用品", "办公用品", "技术", "技术", "技术", "技术", "家具", "家具", "家具", "家具"],
["", "", "标签", "美术", "器具", "收纳具", "系固件", "信封", "用品", "纸张", "装订机", "电话", "复印机", "配件", "设备", "书架", "椅子", "用具", "桌子"],
["东北", "数量", "331", "323", "397", "441", "436", "394", "423", "360", "517", "370", "373", "434", "194", "384", "546", "410", "130"],
["东北", "折扣", "", "33", "17", "", "17", "", "16", "", "24", "18", "17", "18", "5", "18", "21", "17", "13"],
["华北", "数量", "211", "311", "315", "465", "282", "319", "264", "356", "497", "262", "252", "208", "205", "395", "394", "292", "118"],
["华北", "折扣", "", "8", "6", "", "7", "", "2", "", "11", "4", "2", "2", "5", "4", "9", "4", "9"],
["华东", "数量", "661", "589", "626", "874", "608", "694", "645", "597", "1,047", "622", "636", "593", "332", "766", "945", "657", "149"],
["华东", "折扣", "", "46", "23", "", "29", "", "26", "", "36", "22", "19", "24", "11", "24", "31", "20", "20"],
["西北", "数量", "106", "77", "99", "143", "85", "72", "127", "89", "172", "148", "79", "65", "55", "102", "184", "141", "41"],
["西北", "折扣", "", "7", "2", "", "2", "", "5", "", "4", "7", "2", "2", "1", "4", "6", "4", "5"],
["西南", "数量", "185", "180", "145", "233", "194", "236", "222", "156", "307", "255", "179", "188", "105", "253", "315", "208", "38"],
["西南", "折扣", "", "14", "6", "", "8", "", "9", "", "16", "11", "14", "10", "4", "12", "18", "7", "6"],
["中南", "数量", "612", "529", "552", "762", "667", "566", "585", "505", "812", "520", "620", "597", "350", "501", "788", "590", "144"],
["中南", "折扣", "", "48", "13", "", "14", "", "12", "", "21", "16", "13", "14", "9", "9", "36", "13", "14"]
]
};

改进后的数据结构。

//示例:
//let cData = {
//    "columnTitles": ["地区"],
//    "columns": [
//        ["东北", "华北", "华东", "西北", "西南", "中南"],
//        ["数量", "数量", "数量", "数量", "数量", "数量"]
//    ],
//    "rowTitles": ["类别", "子类别"],
//    "rows": [
//        ["办公用品", "办公用品", "办公用品", "办公用品", "办公用品", "办公用品", "办公用品", "办公用品", "办公用品", "技术", "技术", "技术", "技术", "家具", "家具", "家具", "家具"],
//        ["标签", "美术", "器具", "收纳具", "系固件", "信封", "用品", "纸张", "装订机", "电话", "复印机", "配件", "设备", "书架", "椅子", "用具", "桌子"]
//    ],
//    "Data": [
//        ["331", "323", "397", "441", "436", "394", "423", "360", "517", "370", "373", "434", "194", "384", "546", "410", "130"],
//        ["211", "311", "315", "465", "282", "319", "264", "356", "497", "262", "252", "208", "205", "395", "394", "292", "118"],
//        ["661", "589", "626", "874", "608", "694", "645", "597", "1047", "622", "636", "593", "332", "766", "945", "657", "149"],
//        ["106", "77", "99", "143", "85", "72", "127", "89", "172", "148", "79", "65", "55", "102", "184", "141", "41"],
//        ["185", "180", "145", "233", "194", "236", "222", "156", "307", "255", "179", "188", "105", "253", "315", "208", "38"],
//        ["612", "529", "552", "762", "667", "566", "585", "505", "812", "520", "620", "597", "350", "501", "788", "590", "144"]
//    ]
//};

参考文献:

1、喜乐君著,数据可视化分析,电子工业出版社,2020.07

上一篇下一篇

猜你喜欢

热点阅读