APP下载

基于大数据分析的电力供应商投标评估预测方案研究

2019-10-23魏俊奎周顺凯金义

微型电脑应用 2019年10期
关键词:决策树梯度线性

魏俊奎, 周顺凯, 金义

(1. 国网安徽省电力有限公司, 合肥 230022; 2. 华东师范大学 计算机科学技术系, 上海 200062)

0 引言

基于大数据时代背景[1-3],某省级电力公司在创新发展战略中进行了明确部署,希望通过大数据分析实现差异化配置物资标准,全面优化采购策略,提升物资采购质量,完善优胜劣汰的策略。其中的关键环节是以多维度分析评估投标人综合实力为基础,结合具体投标情况,对合作企业的准入严格把关,为招标企业进行优化选择提供参考,减少评标过程的人为干预等因素,避免层层转包的不良现象,最大化提升招标采购效率,降低招标采购成本,增加最优供应商的命中率[4-7]。

我们通过对某省级电力公司四年间产生的真实投标数据和中标结果进行筛选、分析,从商务、技术、价格三个维度,按照供应商综合能力的水平进行排序,依此对批次安排、分标分包策略、采购策略的方式进行优化,便于优化供应体系结构,辅助招标企业选择最优供应商,提升物资供应链质量,进而保障电网物资质量。

本文内容组织如下:第1节介绍了研究平台以及适用的相关算法模型;第2节给出了供应商评估预测方案的设计与实现,包括方案框架和流程;第3节给出了实验结果并进行分析,将多个模型的准确率进行深入比较;第4节对本文主要工作进行了总结。

1 相关工作

1.1 开发、实验平台

基础平台技术基于Hadoop架构,组件主要包括:HDFS提供数据存储安全策略,对数据的存取访问进行身份验证;其对数据块进行封装和优化、数据切割并实现数据冗余的存储策略,可大大提高存储性能;拥有分布式数据批量存储接口,支持分布式数据计算、离线计算存取等需求;也可很好地支持半结构化以及非结构化数据的存储需求[8]。

MapReduce对数据离线计算的存取访问进行身份验证,从而保证集群的安全性;拥有对数据I/O操作、数据压缩的优化策略,从而提升离线计算性能[9];提供分布式离线任务服务,能高效地实现批量离线计算[9]。

Spark提供内存计算任务接口,能实现高效实时计算;能较好地处理大规模迭代运算,其交互模式便于用户及时获得反馈[10]。

1.2 相关算法

本文将选择主流且经典的分类算法和回归算法,并就它们在招投标真实历史数据集上的适用性开展分析和比较。

1.2.1 线性回归算法

统计学中,“线性回归”[11,12]是指利用线性回归方程对一个或多个自变量和因变量之间关系建模的一种回归分析。若样本X=(x1,x2,…,xn)由n个属性描述,其中xi是X在第i个属性上的取值,则线性回归的关键是得到一个可用于预测的线性函数,形如式(1)。

(1)

其中θ为待训练的参数。线性回归模型形式简单,易于建模。另外θ直观表达了各属性相对预测目标值的重要程度,使得线性回归模型具有很好的可解释性。

线性模型形式虽然简单,但却有丰富的变化。考虑单调可微函数g(·),令h(x)=g-1(θTx),可得“广义线性模型”[13]。

1.2.2 决策树模型

决策树是一种基本的分类和回归方法。它以概率统计方法为基础,模型呈树形结构。在分类任务中,从根节点开始,根据样本的属性取值,将样本分配到子节点。如此递归并将样本逐级分配,直至归到叶节点对应的类中。

决策树的主要优点是模型可读性高,预测速度快。学习时利用训练数据,根据损失函数最小化原则建立模型。学习过程通常包括特征选择,决策树生成和剪枝[14-16]。

1.2.3 逻辑回归模型

逻辑回归属于上述的广义线性模型,模型函数如下式(2)。

(2)

1.2.4 梯度上升算法

梯度上升算法遵循小幅度前进,调整方向,继续小幅度前进,不断接近最优解的过程[19]。梯度上升即函数增大的方向,算法迭代公式为式(3)。

(3)

2 方案的设计和实现

2.1 框架

基于大数据分析技术,我们设计出一个可用于招标采购评估和预测的方案,其框架与流程如图1所示。

图1 框架流程图

数据获取模块可从外网爬取数据或者从内网直接导入源数据;数据初始化模块对源数据进行清洗,有必要时进行脱敏处理;招标采购数据的数据建模和算法分析模块通过建立不同的模型来对招标情况进行预测分析,可选模型包括逻辑回归、决策树、梯度上升、线性回归等;调优模块通过对数据添加新的特征多项式进行预测结果的优化;准确性评估模块通过将预测结果与实际结果相比较,评价预测模型的优劣程度。

2.2 步骤

1.数据导入:使用sc.textFile(“filename”)函数,对源数据文件进行读取。

2.数据抽取:使用map()函数即data.map(lamda x:x.split(“,”)),将csv文件中的数据以逗号分隔开,得到一个经过初步处理的数据集。

3.将数据转换为二元向量:使用自定义的get_mapping(rdd,idx)函数,如图2所示,将数据转换为二元向量,如图2所示。

图2 数据的二元向量

4.创建特征向量:使用自定义的extract_features(record)函数,如图3所示。利用上述get_mapping(rdd,idx)函数对各列数据进行特征提取。

图3 特征提取

5.提取标签:使用自定义的extract_label(record)函数进行标签提取,如图4所示。

图4 标签提取

6.数据特征化:使用上述extract_features(record)与extract_label(record)对数据集进行特征化处理,如图5所示。

图5 数据特征化

7.训练模型并且测试预测效果:使用各模型的训练函数以及预测函数得出预测结果,并将其与实际结果进行对比分析,如图6所示。

图6 训练预测线性模型

8.调优:添加新的特征多项式对结果进行进一步优化。

3 实验结果分析

3.1 实验环境

本文采用Hadoop2.6.5+Spark1.6.2+Python环境开发实现对招标采购业务中供应商画像功能:通过Hadoop和Spark平台获取数据源,对源数据进行清洗并去除敏感性信息,然后通过各模型的训练得出准确率。

3.2 多个模型的分析和比较

3.2.1 数据概览和分析

数据来源于某省级电力公司2014至2017四年的实际招标活动。在使用数据前对原始数据进行了清洗,包括缺失值处理等。此外还进行了数据脱敏,将招标公司的名称映射为数字编号以保护隐私。部分数据,如表1所示。

表1 部分原始数据

查看数据可知,训练集11073个样本,其中“中标”为“是”的样本仅124个,数据严重偏斜。随机取中标为“否”的样本200条,中标为“是”的样本124条(全部取出),组成新的训练数据集。

查看各个特征的相关性,计算Pearson相关系数如表2所示。没有发现强相关特征。

表2 Pearson相关系数

3.2.2 各模型的参数设置

在各个模型上开展测试,评测标准为准确率,即预测正确的企业数与企业总数的比值。

(1) 逻辑回归模型

逻辑回归模型设置参数为:

LogisticRegression(C=1.0, class_weight=None, dual=False, fit_intercept=True,intercept_scaling=1, max_iter=100, multi_class='ovr', n_jobs=1,penalty='l2', random_state=None, solver='liblinear', tol =0.0001,verbose=0, warm_start=False)。

特征为技术加权分、商务加权分、价格加权分和商务加权分开方,取得最高准确率91.86%。

(2) 线性回归模型(取所得结果的中位数为分割点)

线性回归模型设置参数为:

LinearRegressionWithSGD.train(data, iterations=10, step=0.1, intercept=False)。

特征为技术加权分、商务加权分、价格加权分和价格加权分开方,取得最高准确率83.92%。

(3) 决策树模型(取所得结果的中位数为分割点)

决策树模型设置参数为:

DecisionTree.trainRegressor(data_dt,categoricalFeaturesInfo=cat_features)

特征为技术加权分、商务加权分、价格加权分和商务加权分开方,取得最高准确率81.93%。

(4) 梯度上升模型

梯度上升模型设置参数为:

GradientBoostingClassifier(criterion='friedman_mse',init=None, learning_rate=0.1, loss='deviance', max_depth=30,max_features=None,max_leaf_nodes=None,min_impurity_decrease=0.0, min_impurity_split=None,min_samples_leaf=1,min_samples_split=2,min_weight_fraction_leaf=0,n_estimators=100,presort='auto',random_state=None,subsample=1.0,verbose=0,warm_start=False)

特征为技术加权分、商务加权分和价格加权分,取得最高准确率89.79%。

3.2.3 各模型准确率

处理结果如表3所示。

表3 处理结果

从表中数据可以看出,通过对数据尝试添加特征多项式进行优化,可能在一定程度上提升正确率。

3.3 正确率评估

实验结果显示:梯度上升模型在多种特征下均显示了较高的接近90%的正确率,而逻辑回归模型在f4特征下得到了最高正确率91.86%,这两种模型尤其是梯度上升模型具有更好的适用性,能更准确地选择出合适的投标人,有望提高招标采购效率并降低成本。

4 总结

从商务响应、技术响应、价格等多个维度出发,本文提出了全面评估投标人综合实力的思路,据此预测投标人未来的中标情况,并设计出一个包括数据获取、数据脱敏以及初始化、数据建模、算法分析和调优、准确性评估等多重环节的供应商评估、预测方案。本文基于真实的较长时段历史数据,在关键算法选型环节,重点对逻辑回归、线性回归、梯度提升树和决策树等模型进行了对比研究。算例表明梯度上升模型在多种特征下均显示了较高的接近90%的正确率,而逻辑回归模型在f4特征下得到了最高正确率91.86%,这两种模型尤其是梯度上升模型具有更好的适用性,从一定程度上证明了利用大数据分析手段对供应商进行投标评估、预测存在可能性和可行性,具有较高的实际应用参考价值。

未来我们将进一步调整参数并添加特征多项式来深入优化,还可考虑对比更多的算法模型以获取更高准确率。

猜你喜欢

决策树梯度线性
磁共振梯度伪影及常见故障排除探讨
基于应变梯度的微尺度金属塑性行为研究
二阶整线性递归数列的性质及应用
线性回归方程的求解与应用
信息时代基于决策树对大学生情绪的分类
简述一种基于C4.5的随机决策树集成分类算法设计
一个具梯度项的p-Laplace 方程弱解的存在性
非齐次线性微分方程的常数变易法
线性回归方程知识点剖析
基于数字虚拟飞行的民机复飞爬升梯度评估