01、数据业务的构建过程
通用的开展大数据业务的过程总结起来如下图所示。
首先是数据系统的建设,数据系统是基础。从确定要进行哪些方面的数据收集开始,需要把收集到的数据进行清洗、筛选、格式转换、存入系统中,并且按照技术平台的要求,投入人力、设备等进行大数据系统的搭建。其次是数据业务建模。有了系统,就可以基于这个系统来观察数据,可以由建模人员利用其专业知识进行基于机器学习方法理论的建模,在得到一个合适的模型之后,需要把此模型放置到大数据系统中进行运行。一般来说,这个大数据系统需要有大数据工程师一起参与,将模型转换成适合在平台上运行的代码,当然逐渐地会出现很多高效率的工具来帮助这种代码化的转换。最后是数据业务开展,需要把数据价值体现到业务上去,也就是数据业务的发展,通过分析人员对数据进行再整理、可视化呈现、洞察后来指导业务开展。而如果从中可以抽象出新的产品,那么通过产品设计来形成创新,创造出新的商业价值。
1●数据系统建设
为了把这个事情说明白,特别是对里面的要点、难点等有一个清晰的呈现,下面采用一个现实中的基础建设的例子来说明。
假设我们目前需要在一个靠近大海的地方建设一个新型设备的工厂,这个设备可以用于我们日常生活,应该会大大提高我们的生活水平,但是目前市场的前景也不是特别明朗。而建造这个设备所需要的原材料很大一部分又需要从各个分散的城市或者城镇中运送过来。
作为工厂进行生产制造的基础,我们需要建造公路来连接原料产地和工厂所在的地方,也需要建造厂房来进行生产,也就是需要基础设施的建设,那么对于大数据技术层次来说,大数据系统建设就属于基础建设要求。
依据我们对于市场的认识以及资源(资金、能力等)的准备情况,建设基础设施(以构造公路作为主要的工作为例),首先至少必须明确以下几点:
● 造路的主要目的是什么?
● 连接哪里到哪里、中间多少出入口?
● 什么时间满足多少交通流量?(阶段、造多宽的路、车辆类型、可以运载什么货物、允许最大数量等)
● 目前拥有的资源是什么?(预算、团队、时间等)
● 阶段的规划是什么?(资源、目标、实施)
这时候最主要的一点就是需要清晰造路的主要目的,也就是建设这个系统的近期、远期目标是什么?这个目的也是在图1中最上面的部分决定的。这个目标的指导下,我们需要去盘点我们的哪些城市、城镇里面有哪些需要接入到这个公路系统上面去。这些城镇就好比我们公司中不同的业务系统。对于有些公司来说,系统比较单一、异构程度不大,那么应该还好处理;对于另外一些公司而言,业务系统比较多,异构程度也比较大,这个时候难点就在于梳理下面的几个方面:
● 哪些城市需要接入(也就是需要哪些原料、生产出来的设备会运往哪里)
● 这些城市到达各个入口的支路是否建设好
● 建设这些支路对于原有系统的影响多大
● 如果影响比较大的话,如何解决
● 原料是否还需要再加工
● 原料的量是多少
对应到大数据系统,这些也就是需要回答以下问题:
● 是否确定了数据源头对应的业务系统是哪些
● 这些系统通过何种方式来准备数据
● 数据如何被接入到大数据系统
● 源数据是否已经被收集
● 数据格式是否已标准化
● 数据量是多少
在把城市通往厂房的路造好后,也并不是一劳永逸的事情,后续依然需要根据需要不断去打造、维护、升级。同时,我们也还需要建造厂房、购置生产设备、建立流水线、建造仓库用于存放原料和生产出来的设备等等。
对应到系统建设方面也就是大致下面几个:
● 数据收集系统:确定数据源,数据格式,数据传输方法,数据清洗工具等。
● 搭建存储集群:确定存储规模、服务器配置和数量、网络规划及建设、安装和调试集群、确定存储方式等
● 搭建计算集群:确定计算方式、计算规模、服务器配置和数量、网络规划及建设、安装和调试集群、任务调度机制等
● 数据安全策略设计(可以按阶段进行)
2●数据业务建模
沿着上面的过程,我们来看看数据业务建模方面需要做什么。
在我们把厂房、流水线等初步建设完成后,我们陆续把所需要的材料经过多种方式拉到工厂之后,接下去我们需要有一些专业的工程师进行以下活动:
● 为了保证后续生产的效率,我们需要对原料进行分门别类,确定存放地点和存放顺序,必要时还需要进行一定的搭配
● 从这些材料中,挑选出一些进行化验,来确定其成色和质量。最后确定哪些可以用,哪些不可以用。
● 然后进行加工工艺的设计,哪些材料什么时候通过什么方式进入生产线。哪些零件先生产出来,哪些后生产出来,如何装配。
● 对生产出来的设备需要确定调试和验证方法,确定其在质量要求范围之内。
这个工作对应到大数据技术中,就是数据建模。数据建模就是建立数据存放模型和处理,把各个数据源过来的各种数据根据一定的业务规则或者应用需求对数据重新进行规划、设计和整理。然后根据这个产品的要求,利用这些数据的样本来进行模型的建立,确定输入的数据要求,送入处理流水线,一直到产生最终的结果。
这个阶段的难点和要点在于:
● 需要有具有行业专业技能的人才,这类人才首要的能力是具有行业相关的业务知识和洞察,掌握行业内常用的建模经验。
● 特征工程,确定哪些特征可以用于业务模型。由于数据在收集过程中,数据输送方由于各种原因,事先并不一定清楚或者预见到会服务于何种业务,而在实际使用时需要进行再处理(标准化)以满足建模的需要。所以对于各种形式的数据,需要通过特征工程来进行特征筛选、特征组合、特征变换等,才能为后续的模型所使用。
● 对数据确定高效的存取模型。经过特征工程后的数据是可以作为模型的输入进行建模了,为了保证在生产环境中的模型运行效率,需要确定数据的存取模型,还需要进行宽表、数据仓库的设计和构造,否则会导致资源的浪费。
● 模型架构的确定。采用流失处理还是批量处理,采用何种调度方式,需要多少运算资源,输出结果如何存放等,也是一个难点和要点。
下面我们描述一下AI建模的方法论。
建模过程中使用 AI /机器学习技术是内核能力,所以我们来看一下这个方法论,包括其中的难点分别是什么。如下图所示:
业务理解
把业务问题理解透,理解项目目标和需求,将目标转换成问题定义。
难点: 在于需要对业务领域有比较深入的理解,而且不仅仅是业务专家,还需要具备数据和技术感觉
建立假设模型
设计出达到目标的一个初步计划。根据直觉和知识提出合理假说,如类比相关性等。
难点:在于如何设计合理的目标函数,使得能够达到业务初始设计要求。
数据收集
收集初步的数据,进行各种熟悉数据的活动。包括数据描述,数据探索和数据质量验证等。要有数据,而且的确需要足够多的数据。
难点:如何解决数据收集成本大的问题,或者说如何自动化收集数据。需要收集多少数据才够,学术界尚未有固定的理论指导,一般从成功案例中提炼经验公式。
数据准备
需要首先弄清楚数据来源,然后进行探索性数据分析 (Explore Data Analysis -EDA),去了解数据的大体情况,通过描述性统计方法,去提升数据质量,将最初的原始数据构造成最终适合建模工具处理的数据集。包括表、记录和属性的选择,数据转换(稀疏,异构)和数据清理(缺失,矛盾)等。
难点:对于优质数据的判断标准等。
建模分析
选择和应用各种建模技术,并对其参数进行优化。一般的,为了让模型更好的达到效果,在偏差和方差方面得到最优结果,常常把数据集分为两个部分,一部分用于开发训练(训练集、验证集),一部分用于预测(测试集)。
难点:在于选用算法和参数如何选择,目前看到选择是根据类比的方法,寻找与待解决工程相似的已成功的工程,并使用相似的方法,但工程相似没有统一标准。对于参数的选择,目前常用方法还是尽可能多实验,选择测试结果最好的参数。
解释和模型评估
对模型进行较为彻底的评价,并检查构建模型的每个步骤,确认其是否真正实现了预定的目的。
难点:目前还没有看到对于效果不好的原因定位方法,只能具体案例具体分析。