1
智慧物流与供应链基础
1.7.3.1 任务一 数据挖掘概述
任务一 数据挖掘概述

引 例

数据挖掘无处不在

随着网络的迅猛发展,数据挖掘技术作为一种新的数据分析方法逐步应用到各行各业的分析中,获取数据、抽取规律、预测趋势、建立模式,这对促进各行业的健康、有序发展是十分有益的。

数据挖掘一般是指从大量的数据中通过算法搜索隐藏于其中信息的过程。数据挖掘通常与计算机科学有关,并通过统计、在线分析处理、情报检索、机器学习、专家系统(依靠过去的经验法则)和模式识别等诸多方法来实现既定目标。

在较浅的层次上,它利用现有数据库管理系统的查询、检索及数据挖掘功能,与多维分析、统计分析方法相结合,进行联机运算分析处理,从而得出可供决策参考的统计分析数据的一个有商业意义的结果,这个结果可以出售给需要的卖家,这就是所谓的大数据分析。

在深层次上,则从数据库中发现前所未有的、隐含的知识。例如,大街上车辆川流不息,在普通人眼里,当你通过一个十字路口时,可能看到的除了塞车就是车祸,或者是安全通行,没有其他的信息。如果是一个数据挖掘人员,就会发现其中的数据信息,一小时横向会有多少车流量,竖向会有多少车流量,这样可以得到一组数据,通过数据挖掘分析后可得到更优的结果,十字路口的红绿灯就可以根据车流量设置时间长短。而从另一个角度,如果在十字路口进行路线测绘,就可以得到类似地图的数据,手机中的导航软件就是通过这样实现的。所以在我们的生活中数据挖掘无处不在,只是在我们不认识数据挖掘时,不会去发现。

思考题:

1.什么是数据挖掘?它有何重要作用?

2.数据挖掘在智慧物流领域如何应用?

引例分析:随着科学技术的快速发展以及互联网、云计算、数据挖掘等技术的广泛应用,生产过程中的海量数据不再是一种负担,而已经成为一种资源。如果不能对海量的数据进行有效的分析、研究和应用,那将是巨大的资源浪费。如果数据挖掘技术在物流主要环节中进行应用,那么对于改良物流企业管理、提高各环节工作效率、搭建信息共享平台、充分利用零散数据、降低物流营运费用等方面将有深远的影响。

一、数据挖掘简介

视频 什么是数据挖掘?

(一)数据挖掘的概念

数据挖掘是人工智能和数据库领域研究的热点问题。所谓数据挖掘,是指从数据库的大量数据中揭示出隐含的、先前未知的并有潜在价值的信息的过程。

数据挖掘是一种决策支持过程,它主要基于人工智能、机器学习、模式识别、统计学、数据库、可视化技术等,高度自动化地分析企业的数据,做出归纳性的推理,从中挖掘出潜在的模式,帮助决策者调整市场策略,减少风险,做出正确的决策。

数据挖掘是通过分析每个数据,从大量数据中寻找其规律的技术,主要有数据准备、规律寻找和规律表示三个步骤。数据准备是从相关的数据源中选取所需的数据并整合成用于数据挖掘的数据集;规律寻找是用某种方法将数据集所含的规律找出来;规律表示是尽可能以用户可理解的方式(如可视化)将找出的规律表示出来。

(二)数据挖掘的对象

数据的类型可以是结构化的、半结构化的,甚至是异构型的。发现知识的方法可以是数学的、非数学的,也可以是归纳的。最终被发现了的知识可以用于信息管理、查询优化、决策支持及数据自身的维护等。

数据挖掘的对象可以是任何类型的数据源。它可以是关系数据库,此类包含结构化数据的数据源;也可以是数据仓库、文本、多媒体数据、空间数据、时序数据、Web数据,此类包含半结构化数据,甚至异构型数据的数据源。

(三)数据挖掘的作用

从海量数据找出潜在的知识是很难实现的事情,数据挖掘技术就是把这项任务交给计算机来处理,提取出有用信息来支持决策,这就是它的作用和意义。比如,企业可以通过预测销售额来开展新店地址选择业务,并且根据中间结果进行相应的成本投入安排以及销售额调控措施,帮助企业在降低成本的同时提升企业收益,使企业达到利益最大化。再如,制造业企业生产出来的产品需要质量检测合格之后才能投入市场,需要借助数据挖掘工具来简化或去掉现有检测环节,从而提高生产效率、生产质量,以及降低企业生产成本。

二、数据挖掘常用模型

机器学习和数据挖掘是紧密相关的,要进行数据挖掘需要掌握一些机器学习所用的方法和模型知识,通过模型的训练可以得到处理数据的最优模型。数据挖掘常用模型如下。

(一)监督学习模型

监督学习模型是指通过已有的训练样本(即已知数据及其对应的输出)去训练得到一个最优模型(这个模型属于某个函数的集合,最优则表示在某个评价准则下是最佳的),再利用这个模型将所有的输入映射为相应的输出,对输出进行简单的判断从而实现分类的目的,也就具有了对未知数据进行分类的能力。

1.神经网络

神经网络是一种应用类似于大脑神经突触连接的结构进行信息处理的数学模型。在这种模型中,大量的节点(称“神经元”)之间相互连接构成网络,即“神经网络”,以达到处理信息的目的。神经网络通常需要进行训练,训练的过程就是网络进行学习的过程。训练改变了网络节点的连接权值,使其具有分类的功能,经过训练的网络就可用于对象的识别。

目前,神经网络已有上百种不同的模型,常见的有BP神经网络、Hopfield网络、随机神经网络(Boltzmann机)等。但是当前的神经网络仍普遍存在收敛速度慢、计算量大、训练时间长和不可解释等缺点。

2.贝叶斯方法

贝叶斯(Bayes)分类算法是一类利用概率统计知识进行分类的算法,如朴素贝叶斯(Naive Bayes)算法。这些算法主要利用Bayes定理来预测一个未知类别的样本属于各个类别的可能性,选择其中可能性最大的一个类别作为该样本的最终类别。由于贝叶斯定理成立本身需要一个很强的条件独立性假设前提,而此假设在实际情况中经常是不成立的,因而其分类准确性就会下降。为此就出现了许多降低独立性假设的贝叶斯分类算法,如TAN(Tree Augmented Native Bayes)算法,它是在贝叶斯网络结构的基础上增加属性对之间的关联来实现的。

(二)半监督学习模型

半监督学习模型要求输入的数据部分被标识。如果没有被标识,该模型可以进行预测,但是模型首先需要学习数据的内在结构,以便合理进行预测。应用场景包括分类和回归,常见算法如下。

1.多视角算法(Multi-View Algorithm)

多视角算法一般用于可以进行自然特征分裂的数据集中,每一个数据点都被看成是两个特征的集合,然后利用协同训练进行处理。协同训练算法隐含地利用了聚类假设,它们使用两个或多个学习器。在学习过程中,这些学习器挑选若干个置信度高的未标记示例进行相互标记,从而使模型得以更新。

2.基于图的算法(Graph-Based Algorithm)

基于图的算法是基于图正则化框架的算法,此类算法直接或间接地利用了流形假设,它们通常先根据训练例及某种相似度度量建立一个图,图中节点对应示例,边为示例间的相似度,然后,定义所需优化的目标函数并使用决策函数在图上的光滑性作为正则化来求取最优模型参数。

(三)非监督学习模型

在非监督式学习模型中,数据并不被特别标识,它可推断出数据的一些内在结构。应用场景包括关联规则的学习以及聚类等。常见的聚类算法如下。

1.K-Means聚类算法

K-Means算法的基本思想是初始随机给定K个簇中心,按照最邻近原则把待分类样本点分到各个簇,然后按平均法重新计算各个簇的质心,从而确定新的簇心,一直迭代,直到簇心的移动距离小于某个给定的值,其过程如图12-1所示。

图12-1 K-Means聚类算法效果

图12-1 K-Means聚类算法效果(续)

2.基于密度的聚类算法

该算法根据密度完成对象的聚类。它根据对象周围的密度(如DBSCAN)不断增长聚类。典型的基于密度方法为DBSCAN(Densit-Based Spatial Clustering of Application with Noise,聚类算法)。它通过不断生长足够高密度区域来进行聚类,能从含有噪声的空间数据库中发现任意形状的聚类。

三、数据挖掘模型评价

(一)模型评价的概念

建模构建过程中会得出一系列的分析结果、模式或模型。同一个采样数据可以利用多种数据分析方法和模型进行分析。模型评价的目的之一就是从这些模型中自动找出一个最好的模型,另外就是要针对业务对模型进行解释和应用。

模型效果评价通常分两步:第一步是直接使用原来建立模型的样本数据来进行检验。假如这一步都通不过,那么所建立的决策支持信息价值就不太大了。一般来说,在这一步应得到较好的评价。这说明确实从这批数据样本中挖掘出了符合实际的规律性。第一步通过后,第二步是另外找一批数据,已知这些数据是反映客观实际的、规律性的。这次的检验效果如果比前一种差,那就要考虑第一步构建的样本数据是否具有充分的代表性,或是模型本身是否够完善。这时候可能要对前面的工作进行反思了。若这一步也得到了肯定的结果时,那所建立的数据挖掘模型就能得到很好的评价。

(二)模型评价的指标

1.准确率

预测准确率又称作精度,是检索出的相关文档数与检索出的文档总数的比率,衡量的是检索系统的查准率。取值在0和1之间,数值越接近1,查准率就越高。

计算公式如下:

准确率=提取出的正确信息条数/提取出的信息条数

2.召回率

召回率是指检索出的相关文档数和文档库中所有的相关文档数的比率,衡量的是检索系统的查全率。取值在0和1之间,数值越接近1,查全率就越高。

计算公式如下:

召回率=提取出的正确信息条数/样本中的信息条数

3.综合指标F值

F值为正确率和召回率的调和平均值,能够综合平衡地去表示模型的性能效果。

计算公式如下:

F值=正确率×召回率×2/(正确率+召回率)

4.ROC曲线

受试者工作特性(Receiver Operating Characteristic,ROC)曲线是一种非常有效的模型评价方法,可为选定临界值给出定量提示。该曲线下的积分面积大小与每种方法优劣密切相关,反映分类器正确分类的统计概率,其值越接近1,说明该算法效果越好。

案例分析

假设对数据挖掘的客户偏好信息进行分类,判断是否为垃圾信息。有两个数组,第一个数组将存储实际值,而第二个数组将存储预测值。这些预测值是从分类器模型中获得的。

# 实际值Labels=[1,0,0,1,1,1,0,1,1,1]

# 预测值Predictions=[0,1,1,1,1,0,1,0,1,0]

其中0—不是垃圾信息(负),1—是垃圾信息(正)。

思考题:

根据上述案例,计算模型预测的准确率、召回率和综合指标F值。

文档 案例思考题参考答案

四、数据分析的标准流程

本部分重点介绍KDD数据分析流程,KDD侧重于数据驱动的模式发现并对其进行可视化。KDD(Knowledge Discovery from Data)代表从数据中发现知识或在数据库中发现知识。KDD的主要目标是从大型数据库以及Web和信息存储库中提取或发现隐藏的价值。KDD流程分为七个主要阶段:数据清理、数据集成、数据选择、数据转换、数据挖掘、模型评估、知识呈现,如图12-2所示。

图12-2 KDD流程

文档 数据分析其他流程

(一)数据清理

数据清理是指发现并纠正数据文件中可识别的错误的最后一道程序,包括检查数据一致性、整理无效值和缺失值等。数据清理主要遵循以下四个原则。

(1)完整性:单条数据是否存在缺失值;统计的字段是否完善。我们可以采用以下方法:(删除)删除缺失的记录;(均值)使用当前列的均值;(高频)使用当前列出现频率最高的数据。

(2)全面性:浏览某一列的全部数值,可以通过比较最大值、最小值、平均值,数据定义等来判断数据是否全面。

(3)合法性:数值的类型、内容、大小是否符合我们设定时候的预想。例如,人类年龄超过1 000岁,这个数据就是不合法的。

(4)唯一性:数据是否重复记录。例如,一个人的数据被重复记录多次。

(二)数据集成

数据集成是指将来自不同来源的数据组合到统一视图中的过程:从摄取、清理、映射和转换到目标接收器,最后使数据对访问它的人更具可操作性和价值。建立数据集成计划,可以更有效地分析和处理数据,特别是随着数据和云技术的爆炸式发展,数据集成是现代企业改善战略决策和提高竞争优势的必要条件。数据集成主要有如下方法。

(1)手动数据集成:是个别用户通过直接访问接口手动从各种来源收集必要数据,然后根据需要清理它,并将其组合到一个仓库中的过程。此方法适用于一些小型企业,但手动集成可能会导致提取的数据记录不完整或重复、不一致或数据顺序不正确的问题。

(2)中间件数据集成:是一种集成方法,其中中间件应用程序充当中介,有助于规范化数据并将其带入主数据池(考虑使用过时连接点的旧电子设备的适配器)。当数据集成系统无法独立访问其中一个应用程序的数据时,中间件就会发挥作用。

(3)基于应用程序的集成:是一种集成方法,其中由软件应用程序定位、检索和集成数据。在集成期间,软件必须使来自不同系统的数据彼此兼容,以便它们可以从一个源传输到另一个源。

(4)统一访问集成:是一种集成方法,专注于创建前端,使数据在从不同来源访问时看起来一致。但是,数据保留在原始来源中。

使用此方法,可以使用面向对象的数据库管理系统来创建不同数据库之间的一致性外观。

(5)通用存储集成:是数据集成中最常用的存储方法。来自原始源的数据副本被保存在集成系统中,并被处理以获得统一视图。这与统一访问相反,后者在源中留下数据。通用存储是传统数据仓库解决方案背后的基本原则。

(三)数据选择

数据选择是指收集与分析任务相关的数据。常规的数据选择主要有列选择、行选择、行列同时选择三种方式。某物流公司的部分客户信息截取如表12-1所示。

表12-1 某物流公司的部分客户信息截取

(1)列选择:在Python中想获取某列只需要在表df后面的方括号中指明要选择的列名即可。如果是一列,则只需要传入一个列名;如果是同时选择多列,则需要传入多个列名,多个列名用一个list存起来。在Python中把这种通过传入列名来选择数据的方式称为普通索引。

“>>>df [ [“客户姓名”,“地址”] ]”获取客户姓名和地址信息,如表12-2所示。

除了传入具体的列名,我们还可以传入具体列的位置,即第几列,对数据进行选取。通过传入位置来获取数据时需要用到iloc方法。在Python中我们把这种通过传入具体位置来选择数据的方式称为位置索引。

“>>>df.iloc [:,[0,1] ]”获取第1列和第2列的信息,如表12-3所示。

表12-2 客户姓名和地址信息

表12-3 客户ID和客户姓名信息

(2)行选择:在Python中,获取行的方式主要有两种,一种是普通索引,即传入具体行索引的名称,需要用到loc方法;另一种是位置索引,即传入具体的行数,需要用到iloc方法。

获取第一行信息,如表12-4所示。

表12-4 获取第一行信息结果

获取第1行和第2行的信息,如表12-5所示。

表12-5 获取第1行和第2行的信息结果

(3)行列同时选择:就是选择出行和列的相交部分。为了方便理解,自定义索引名称为一、二、三、四,如表12-6所示。

表12-6 自定义索引名称

普通索引+普通索引选择指定的行和列,就是通过同时传入行和列的索引名称进行数据选择,需要用到loc方法。loc方法中的第一对方括号表示行索引的选择,传入行索引名称;loc方法中的第二对方括号表示列索引的选择,传入列索引名称。

获取第1行、第2行和第1列、第2列的信息,如表12-7所示。

位置索引+位置索引选择指定的行和列,就是通过同时传入行、列索引的位置来获取数据,需要用到iloc方法。在iloc方法中的第一对方括号表示行索引的选择,传入要选择行索引的位置;第二对方括号表示列索引的选择,传入要选择列索引的位置。行和列索引的位置都是从0开始计数。

获取第1行、第2行和第1列、第3列的信息,如表12-8所示。

表12-7 loc方法索引

表12-8 iloc方法索引

(四)数据转换

数据转换就是将数据变换成适合挖掘的形式,对于数据集成和数据管理等活动至关重要。数据转换可以包括一系列活动,如转换数据类型,通过删除空值或重复数据来清理数据,丰富数据或执行聚合,例如聚合销售数据或转换日期格式,编辑文本字符串或连接行和列。常用的数据转换方式有:脚本、内部部署ETL(Extract-Transform-Load)工具。

(1)脚本:一些公司使用SQL或Python通过脚本执行数据转换,以编写代码来提取和转换数据。

(2)内部部署ETL工具:ETL(提取、转换、加载)工具可以通过自动化流程来完成脚本转换的大部分内容。这些工具通常托管在公司的站点上,可能需要大量的专业知识和基础架构成本。

(五)数据挖掘

这里所说的数据挖掘并不是一套数据挖掘的流程,而是对数据挖掘算法的选择并建立一个合适的模型。这个阶段包括选择一种特定的技术来搜索包括多个诱导词的模式。例如,考虑到精度与可理解性,前者在神经网络中更好,而后者在决策树中更好。对于每种元学习系统,都有几种成功的可能性。元学习的重点是弄清楚是什么原因导致数据挖掘算法在特定问题上取得成功或失败。因此,该方法论试图了解一种最适合使用数据挖掘算法的情况。每种算法都有倾斜的参数和策略。例如,采用十倍交叉验证算法用于训练和测试的一部分,可能需要多次使用该算法,直到获得满意的结果。

(六)模型评估

模型建立好之后,依据上述讲到的评估模型的指标和参数来评价得到的结果、解释模型的价值。从测试集中得到的准确率只对用于建立模型的数据有意义。在实际应用中,需要进一步了解错误的类型和由此带来的相关费用的多少。经验证明,有效的模型并不一定是正确的模型。造成这一点的直接原因就是模型建立中隐含的各种假定,因此,直接在现实世界中测试模型很重要。先在小范围内应用,取得测试数据,觉得满意之后再向大范围推广。

案例分析

数据挖掘参与智慧物流治理的未来之路

数据被誉为“21世纪的黄金”,数据资源对于数字经济的重要意义不言而喻。世界各国纷纷抢抓技术发展新机遇,为数字经济的持续健康发展提供制度保障。2020年12月,国家发改委发布的《关于加快构建全国一体化大数据中心协同创新体系的指导意见》中提到,预计到2025年,全国范围内数据中心形成布局合理、绿色集约的基础设施一体化格局。全国范围内将形成一批行业数据大脑、城市数据大脑,全社会算力资源、数据资源向智力资源高效转化的态势基本形成,数据安全保障能力稳步提升。可以预见,数据资源必然会向更高阶的次级市场发展,数据资源流通将会持续加速,数据资本化将成现实。

随着世界互联网行业、云计算产业的深度发展,数据已经不仅仅停留于作为被开发资源的静态呈现,而开始通过数据挖掘等信息技术实现从资源到工具的跃升,深度参与到智慧物流治理实践的各类场景中。例如,物流作为一种新型的社会基础设施,数据挖掘能够帮助其实现智慧化:一方面挖掘消费者喜好,为消费者提供更好的消费体验,通过满足消费者更多样化的需求,促进消费升级;另一方面连接供应商,使供应链得到深度优化,拓宽智慧物流的发展前景。

“Web 3.0”时代已经到来,物流企业之间所采集、掌握和分析的数据量逐渐庞大,来源日益分散,格式更加多样,数字时代的发展需要不断更新数据挖掘技术来加工和优化原始数据,从海量数据中敏锐发现和合理预判个体、企业甚至国家物流政策的现在和未来。数据挖掘在智慧物流治理中的落地已经不再是纸上谈兵,而是在现实迫切渴求下的应有回应。

(资料来源:前瞻产业研究院)

思考题:

1.什么是数据挖掘技术?数据挖掘与智慧物流有何关系?

2.数据挖掘技术参与智慧物流治理体现在哪些方面?