任务二 数据挖掘的基本工具和分析应用
一、数据挖掘的基本工具
在当今的智能世界中,数据分析为企业和政府运营提供了有效的决策流程。数据分析是检查、预处理、探索、描述和可视化给定数据集的活动,数据分析过程的主要目标是发现决策所需的信息。数据分析提供了多种方法、工具和技术。这些方法可以应用于各个领域,例如商业、社会科学和基础科学领域。
众所周知,Python已成为最受欢迎的标准语言之一,并且是基于数据科学操作的完整软件包。Python提供了许多库,例如NumPy,Pandas,SciPy,Scikit-Learn,Matplotlib,Seaborn和Plotly。这些库提供了一个完整的数据分析生态系统,供数据分析师、数据科学家和业务分析师使用。Python具有灵活性、易于学习、开发速度快等功能特点。下面介绍Python安装、环境配置以及Python库安装。
下载Python(版本号3.6以上),操作系统Win10 64位,下载得到的Python-3.8.1-amd64.exe,开始安装Python。
Python支持两种安装方式,默认安装和自定义安装。
(1)默认安装会勾选所有组件,并安装在C盘。
(2)自定义安装可以手动选择要安装的组件,并安装到其他盘符。
尽量勾选Add Python 3.8 to PATH,这样可以将Python命令工具所在目录添加到系统Path环境变量中,以后开发程序或者运行Python命令会非常方便。
这里我们选择自定义安装,将Python安装到常用的目录,避免C盘文件过多。单击“Customize installation”进入下一步,选择要安装的Python组件,如图12-3所示。
如果没有特殊要求,保持默认即可,也就是全部勾选。单击【Next】按钮继续,选择安装目录。选择好自己常用的安装目录,单击【Install】按钮,即可完成安装,如图12-4所示。

图12-3 选择要安装的Python组件

图12-4 选择安装目录
安装完成以后,打开Windows的命令行程序(命令提示符),在窗口中输入“python”命令(注意字母p是小写的),如果出现Python的版本信息,并看到命令提示符>>>,就说明安装成功了,如图12-5所示。

图12-5 运行Python命令
常用的Python命令及用法如表12-9所示。
表12-9 常用的Python命令及用法

Python核心基础数据分析库如下:
NumPy:这是数字Python的简写形式。它是Python中最强大的科学库,用于处理多维数组、矩阵和方法,以便有效地计算数学问题。
SciPy:是一个功能强大的科学计算库,用于执行科学、数学和工程运算。
Pandas:是一个数据探索和操作库,提供表格格式的数据结构,例如DataFrames以及用于数据分析和操作的各种方法。
Scikit-Learn:代表“机器学习的科学工具包”。它是一个机器学习库,提供了各种有监督和无监督的算法,例如回归、分类、降维、聚类分析和异常检测。
Matplotlib:是一个核心的数据可视化库,并且是Python中所有其他可视化库的基础库。它提供2D和3D绘图、图形、图表以及用于数据浏览的图形。它在NumPy和SciPy之上运行。
Seaborn:是基于Matplotlib的,提供了易于绘制、高层次、互动性和更有条理的平面图。
Plotly:是一个数据可视化库。它提供了高质量的交互式图表,例如散点图、折线图、条形图、直方图、箱形图、热图和子图。
二、智慧物流项目数据分析
近年来,随着物流市场需求的快速提升,快递业务规模高速发展,如图12-6所示。2013—2021年,我国快递业务总量迅速增长,近两年增速虽有下降,但仍保持在20%以上的增长速度。2021年,全国快递服务企业业务量累计完成1 083.0亿件,同比增长29.9%。

图12-6 2013—2021年我国快递业务增长趋势
随着我国快递行业的快速发展,快递业务在邮政全行业的市场份额稳步提升,2013—2021年,我国快递业务收入占邮政全行业收入的比重由56.6%提升至2021年的81.7%。快递行业在高速发展的同时,也面临着巨大的末端压力。一边是不断攀升的快递派送量,另一边是配送员配送服务的保障。对于很多物流公司来说也面临着挑战,包括:配送服务是否存在问题,商品是否存在质量问题,是否存在尚有潜力的销售区域,快递最后100米难题亟待破解。
因此,某企业通过Python算法对其销售的商品所对应的送货及用户反馈数据进行了分析并进行了可视化。其过程如下。
1.数据清理
主要是针对重复、缺失的数据和数据格式(金额中有逗号)进行调整。
(1)首先导入数据分析所必备的Python库,如图12-7所示。这里导入了Pandas、NumPy、Matplotlib库,分别用来提供表格格式的数据,处理多维数组、矩阵和有效计算,提供2D和3D绘图、图形、图表以及用于数据浏览的图形。

图12-7 必备的Python库
(2)使用pd.read_csv( )方法导入需要分析的物流数据,如图12-8所示。

图12-8 物流数据的导入
通过info()可以看出,包括10列数据、名字、数据量、格式等,如图12-9所示。

图12-9 结果展示
①订单号、货品交货情况、数量存在缺失值,但是缺失量不大,可以删除。
②订单行对数据分析无关紧要,可以考虑删除。
③销售金额格式不对(万元/元,逗号问题),数据类型需要转换成int float类型。
(3)对无效数据进行删除操作,如图12-10所示,包括:使用drop_duplicates( )方法删除重复记录,使用dropna方法删除带有na的整行数据,使用drop()方法删除订单行数据。删除后的输出如表12-10所示。

图12-10 删除无效数据
表12-10 结果显示

根据结果显示,发现在对重复和缺失的数据执行删除之后,订单的索引发生了变化,所以需要重置一下索引。
(4)用reset_index( )方法对修改数据后的索引进行重置,如图12-11所示。

图12-11 重置索引
根据结果显示,我们发现所有重复和缺失数据的订单行都被成功删除且索引正常,如表12-11所示,接下来需要对金额的格式进行调整。
表12-11 重置索引效果展示

(5)编写自定义过滤函数data_deal( ),先删除逗号,转化为float类型数据。其次,如果是万元,则删除万元后再加上*10000,否则删除元并展示结果,如图12-12、表12-12。

图12-12 删除元操作
表12-12 金额格式调整效果展示

2.数据规整
就是在原有的基础上增加一些辅助字段,使得可视化后的数据被读者更好地理解。
比如,增加一个辅助列:月份,如图12-13、表12-13所示。

图12-13 增加月份列操作
表12-13 增加月份列的效果展示

3.数据分析并可视化
主要从三个方面对数据进行分析,包括:配送服务是否存在问题?是否存在尚有潜力的销售区域?商品是否存在质量问题?
(1)对于配送服务是否存在问题,从四个不同的维度进行分析,包括:月份维度、销售区域维度、货品维度和货品与销售区域结合的维度。这里主要通过交货率这一指标对配送服务是否存在问题进行分析。
①月份维度分析。
代码如图12-14所示,效果如表12-14所示。

图12-14 月份维度代码
表12-14 月份维度效果

②销售区域维度分析。
代码如图12-15所示,效果如表12-15所示。

图12-15 区域维度代码
表12-15 区域维度效果

③货品维度分析。
代码如图12-16所示,效果如表12-16所示。

图12-16 货品维度代码
表12-16 货品维度效果

④货品维度和货品与销售区域结合的维度分析。
代码如图12-17所示,效果如表12-17所示。

图12-17 货品、区域双维度代码
表12-17 货品、区域双维度效果

从表12-14中可以发现,第四季度交货率低于第三季度,猜测可能是气候原因造成的。
从表12-15中可以发现,中国西北地区存在突出的延时交货问题,急需解决。
从表12-16中可以发现,货品2交货情况问题非常突出,其他货品相对较好。
从表12-17中可以发现:
①从销售地区看,中国华北地区有货品1和货品3,其中,由于货品3晚交率较高导致该地区交货率降低。
②从货品的角度看,货品2的交货率最低,主要送往中国华东地区和马来西亚,其主要原因是马来西亚货物的晚交率比较高。
(2)对于是否存在尚有潜力的销售区域问题,从三个不同的维度进行分析,包括:月份维度、销售区域维度和月份与销售区域结合的维度。
①月份维度分析。
代码如图12-18所示,效果如图12-19所示。

图12-18 月份维度代码

图12-19 月份维度效果
货品2在10、12月份销量猛增,原因猜测有二:公司加大营销力度、开放了新的市场。
②销售区域维度分析。
代码如图12-20所示,效果如表12-18所示。

图12-20 销售区域维度代码
表12-18 销售区域维度效果

从销售区域看,每种货品的销售区域为1~3个。
货品1有三个销售区域,分别为中国的华北、华南和西北。货品2有两个销售区域,分别为中国华东和马来西亚。其他货品有一个销售区域。
③月份与销售区域结合的维度分析。
代码如图12-21所示,效果如表12-19所示。

图12-21 月份、区域双维度代码
表12-19 月份、区域双维度效果

货品2在10月份销量达到最高,主要销售区域为中国华东。
分析:货品2在中国华东7、8、9月份销量还有很大提升空间,可以适当增大销售力度。
(3)对于商品是否存在质量的问题,从用户的反馈进行分析,包括:拒货、返修和质量是否合格。
代码如图12-22所示,效果如表12-20所示。

图12-22 用户反馈代码
表12-20 用户反馈展示

从表12-20所呈现出的结果来看,并不能明显地看出哪些商品质量存在问题。为了解决这一问题,我们使用sort_values( )方法增加合格率、返修率和拒货率,代码如图12-23所示,结果展示如表12-21所示。

图12-23 增加合格率、返修率和拒货率
表12-21 结果展示

从表12-21可以看出,货品3在中国华北地区的合格率最高,但返修率也是最高的。货品5在泰国地区的销售在保证高合格率的基础上,返修率和拒货率相对较低,因此推测货品5的质量达到了要求。