APP下载

一种基于方差分析的电子商务销售数据分析系统

2021-03-07叶长青

电脑知识与技术 2021年36期
关键词:方差分析分布式

叶长青

摘要:该系统为电子商务网站提供一个销售数据分析解决方案。系统保存电子商务网站的销售数据,可以随时对数据进行统计计算,快速获得结果。系统采用方差分析算法对数据进行分析,利用分布式结构和内存数据库进行算法的计算,提高了计算的速度和便利性。

关键词: 商务统计;分布式;方差分析

中图分类号:TP311.5        文献标识码:A

文章编号:1009-3044(2021)36-0048-03

开放科学(资源服务)标识码(OSID):

1 现状和本系统的特点

随着电子商务的发展,对分析工具的需求也在快速增长。本文通过分析销售数据,电子商务网站可以分析顾客的偏好,从而决定开发、营销何种产品,反过来用户可以随时随地查看、分析自己的数据,并且可以通过电脑、手机、平板等各种终端。只要能连上网络,用户就可以使用分析工具的功能。

尽管存在很多销售数据分析工具,但是一般只是对某个数据的纵向比较,例如,将过去一年的销售量以折线图、饼图等形式表示,仅可以将不同数据显示在一张图表上,不能指示各个数据间的关系。市面上缺少一种可以将各个数据横向比较、分析各个销售数据间关系的工具。目前,如果要做这样的分析,分析人员只能将销售数据导出,借助于专门的数学工具进行计算。这种方法非常不便,而且门槛过高,该系统致力于简化步骤、拉低门槛。

现有方法的另一个缺点是,统计学分析软件如SPSS是桌面程序,计算过程需要在本机实现,因此计算速度受到用户计算机性能的限制。并且,它只能在特定的操作系统下运行,没有平台扩展性,更不必说在手机、平板等移动设备上运行。

该系统是一个便于使用的、一站式的销售數据横向比较工具。用户通过系统提供的API,将该系统与电子商务网站整合,当用户需要分析时,指定需要分析的相关数据,系统就在后台计算出结果。通过分布式的结构,将算法的计算工作分发到多个节点进行同时运行,提高同一时间能运行的计算数量。响应速度则对算法本身进行优化,提高单个算法的运行速度。

2 系统架构与开发技术介绍

2.1 系统架构设计

系统大致分为三个部分:Web部分、计算部分、数据库部分。Web部分提供对外(客户端)的接口,计算部分处理算法的运算操作,数据库部分存储电子商务网站的原始销售数据和分析后的数据。每个部分可以是单个服务器,也可以是服务器集群,如图1所示。

客户端调用Web服务器提供的接口,导入、添加数据,并且发出数据分析请求。Web服务器将原始数据写入数据库,并且将计算任务交给计算服务器。计算服务器从数据库获取数据,计算完成后,再将结果写入数据库。计算服务器不通知Web服务器计算完成,客户端向Web服务器请求结果时,Web服务器向数据库查询,如果有结果则返回给客户端,否则返回提示信息正在计算中。

2.2 开发环境介绍

2.2.1 Python

本系统主要采用Python语言开发,Python是一种解释型、面向对象、动态数据类型的高级程序设计语言,它具有很多专用的科学计算库,比如:NumPy、SciPy和matplotlib,它们分别为Python提供了快速数组处理、数值运算以及绘图功能,十分适合本系统的开发和维护[1]。Python语言及其众多的扩展库所构成的开发环境十分适合工程技术、科研人员处理实验数据、制作图表,甚至开发科学计算应用程序[2]。

2.2.2 MongoDB

MongoDB是一个开源的、高性能、无模式的文档型数据库,它是介于关系数据库和非关系数据库之间的产品,是非关系数据库中功能最丰富的。它支持的数据结构非常松散,是类似json的json格式,因此可以存储比较复杂的数据类型。它在许多场景下键/值可用于替代传统的关系型数据库或存储方式[3]。Mongo是使用C++开发,特点有高性能、易部署、易使用,存储数据非常方便。Mongo最大的特点是它支持的查询语言非常强大,其语法类似于面向对象的查询语言,可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。

3 系统总体结构设计

3.1 系统流程

系统流程如图2:

(1)客户端通过HTTP Basic方式提交密码信息。

(2)Web服务器查询数据库,验证密码是否正确。

(3)如正确,返回一个token,否则返回错误信息,后续的请求都要包含这个token。

(4)客户端发出请求,指定要分析的数据。

(5)Web服务器立刻返回一个地址,客户端稍后可以去这个地址查询结果。同时,Web服务器对计算服务器发出计算请求。

(6)计算服务器计算完成后,将结果写入数据库。

3.2 计算结构图

计算服务器由一个控制器和若干个节点组成,如图3,节点从控制器获取任务后,计算并将结果写入数据库。同时,节点会记录每个算法的运行时间,包括CPU时间与IO时间,以便于以后的调度。

控制器起到桥梁的作用,用来连接Web服务器和计算节点。其本身不进行运算,它将Web服务器发来的计算请求,分发给各个运算节点,由各个节点进行具体运算。

计算节点将包括两个功能:

(1)任务调度(节点内)。

(2)对算法进程使用资源情况进行记录。

控制器起到桥梁的作用,用来连接Web服务器和计算节点。其本身不进行运算,它将Web服务器发来的计算请求分发给各个运算节点,由各个节点进行具体运算。分发任务时,控制器需要考虑各个节点间的负载平衡,并且要保证实时要求比较高的任务先得到执行。控制器和节点、Web服务器之间的接口使用RMI的方式实现。控制器发布一个Control对象,节点和Web服务器可以连接到这个对象。

计算节点将包括两个功能:

(1)任务调度(节点内)。由于算法可能涉及很大的数据量传输和计算,要充分利用计算节点的资源,把算法分为CPU密集型和I/O密集型。当CPU空闲,优先调度CPU密集型算法;当CPU负载不高,调度I/O密集型算法;当CPU负载过高,等待已有算法计算结束。

(2)对算法进程使用资源情况进行记录。

4 数据分析算法

根据数据类型,算法需要分成很多种类,虽然目的类似,但算法完成过程不同。影响算法种类的因素很多,如参数的个数、参数的属性(独立的或是不独立的,可衡量的或是不可衡量的)、数据的丢失等,目前该系统实现了一种算法,方差分析(Anova)[5]。

4.1 方差分析原理

本系统采用了方差分析来进行销售数据的计算分析,其原理阐述如下:

数据说明:数据有二列,第一列为固定因素A,第二列为观察值Y,固定因素A有p个水平,每个水平重复试验了m次。

计算中间值PQR:

[P=1pm(i=1pl=1my2il)],[Q=1mi=1p(l=1my2il)],[R=i=1pl=1my2il]

計算SA、SE和ST:

[SA=Q-P],[SE=R-Q],[ST=R-P]

计算自由度和显著性:

[fa=p-1],[fe=p(m-1)],[ft=pm-1],[Se=Se/fe],[Sa=SA/fa]

[F=Sa/Se],[p=1-fcdf(F,fa,fe)]

返回结果(result):

[来源 平方和 自由度 均方 F值 显著性 A [SA] [fa] [Sa] [F] [p] Error [Se] [fe] [Se] Total [ST] [ft] ]

4.2 算法实现

本系统首先数据存储在MongoDB数据库,依靠数据库自身携带的查询函数,快速准确地计算出中间变量。最后,再对中间结果进行运算,计算出最终结果,并且存入数据库,然后让服务器处理用户请求。MongDB数据库自身带有find、distinct、count函数,尤其是mapReduce函数,这是计算中间变量的关键,该算法在计算中间变量P、Q、R时,并不将数据读取到本地计算,而是采用数据库的mapReduce方法,直接由数据库计算出这三个中间变量。

5 小结

本系统目的是为电子商务网站提供一个一站式、易于使用的销售数据分析工具。用户可以向系统中导入过往的销售数据、实时添加新的数据,并且能发出数据计算请求,分析某几项数据中的内在关系。用户还可以指定监控某个分析结果,系统会定时根据新数据重新计算,一旦结果达到用户的要求,便通知用户。当系统的运算力不足时,可以添加一台或多台服务器作为运算节点,通过分布式计算的方式提高响应速度。采用方差分析作为数据分析的算法,并使用MongDB来进行方差分析计算,提高系统的速度。

参考文献:

[1] Wes McKinney.利用Python进行数据分析[M].北京:机械工业出版社,2010.

[2] Eric Matthes,Bradley N Miller. Python编程从入门到实践[M].北京:人民邮电出版社,2012.

[3] 张雯杰,蔡佳玲.MongoDB从入门到商业实战[M].北京:电子工业出版社,2019.

[4] 李智慧.大型网站技术架构核心原理与案例分析[M].北京:电子工业出版社,2013.

[5] 王松桂.线性统计模型线性回归与方差分析[M].北京:高等教育出版社,2009.

【通联编辑:代影】

猜你喜欢

方差分析分布式
基于预处理MUSIC算法的分布式阵列DOA估计
Excel在《生物统计学》双因素有重复方差分析中的应用与探讨
高校二手书市场细分研究
应用统计学课堂教学组织实践与探索
金华市大学生幸福感调查研究
“互联网+”时代的出租车资源配置
西门子 分布式I/O Simatic ET 200AL
家庭分布式储能的发展前景