魏俊奎, 周順凱, 金義
(1. 國網安徽省電力有限公司, 合肥 230022; 2. 華東師范大學 計算機科學技術系, 上海 200062)
基于大數據時代背景[1-3],某省級電力公司在創新發展戰略中進行了明確部署,希望通過大數據分析實現差異化配置物資標準,全面優化采購策略,提升物資采購質量,完善優勝劣汰的策略。其中的關鍵環節是以多維度分析評估投標人綜合實力為基礎,結合具體投標情況,對合作企業的準入嚴格把關,為招標企業進行優化選擇提供參考,減少評標過程的人為干預等因素,避免層層轉包的不良現象,最大化提升招標采購效率,降低招標采購成本,增加最優供應商的命中率[4-7]。
我們通過對某省級電力公司四年間產生的真實投標數據和中標結果進行篩選、分析,從商務、技術、價格三個維度,按照供應商綜合能力的水平進行排序,依此對批次安排、分標分包策略、采購策略的方式進行優化,便于優化供應體系結構,輔助招標企業選擇最優供應商,提升物資供應鏈質量,進而保障電網物資質量。
本文內容組織如下:第1節介紹了研究平臺以及適用的相關算法模型;第2節給出了供應商評估預測方案的設計與實現,包括方案框架和流程;第3節給出了實驗結果并進行分析,將多個模型的準確率進行深入比較;第4節對本文主要工作進行了總結。
基礎平臺技術基于Hadoop架構,組件主要包括:HDFS提供數據存儲安全策略,對數據的存取訪問進行身份驗證;其對數據塊進行封裝和優化、數據切割并實現數據冗余的存儲策略,可大大提高存儲性能;擁有分布式數據批量存儲接口,支持分布式數據計算、離線計算存取等需求;也可很好地支持半結構化以及非結構化數據的存儲需求[8]。
MapReduce對數據離線計算的存取訪問進行身份驗證,從而保證集群的安全性;擁有對數據I/O操作、數據壓縮的優化策略,從而提升離線計算性能[9];提供分布式離線任務服務,能高效地實現批量離線計算[9]。
Spark提供內存計算任務接口,能實現高效實時計算;能較好地處理大規模迭代運算,其交互模式便于用戶及時獲得反饋[10]。
本文將選擇主流且經典的分類算法和回歸算法,并就它們在招投標真實歷史數據集上的適用性開展分析和比較。
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)

基于大數據分析技術,我們設計出一個可用于招標采購評估和預測的方案,其框架與流程如圖1所示。

圖1 框架流程圖
數據獲取模塊可從外網爬取數據或者從內網直接導入源數據;數據初始化模塊對源數據進行清洗,有必要時進行脫敏處理;招標采購數據的數據建模和算法分析模塊通過建立不同的模型來對招標情況進行預測分析,可選模型包括邏輯回歸、決策樹、梯度上升、線性回歸等;調優模塊通過對數據添加新的特征多項式進行預測結果的優化;準確性評估模塊通過將預測結果與實際結果相比較,評價預測模型的優劣程度。
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.調優:添加新的特征多項式對結果進行進一步優化。
本文采用Hadoop2.6.5+Spark1.6.2+Python環境開發實現對招標采購業務中供應商畫像功能:通過Hadoop和Spark平臺獲取數據源,對源數據進行清洗并去除敏感性信息,然后通過各模型的訓練得出準確率。
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 處理結果
從表中數據可以看出,通過對數據嘗試添加特征多項式進行優化,可能在一定程度上提升正確率。
實驗結果顯示:梯度上升模型在多種特征下均顯示了較高的接近90%的正確率,而邏輯回歸模型在f4特征下得到了最高正確率91.86%,這兩種模型尤其是梯度上升模型具有更好的適用性,能更準確地選擇出合適的投標人,有望提高招標采購效率并降低成本。
從商務響應、技術響應、價格等多個維度出發,本文提出了全面評估投標人綜合實力的思路,據此預測投標人未來的中標情況,并設計出一個包括數據獲取、數據脫敏以及初始化、數據建模、算法分析和調優、準確性評估等多重環節的供應商評估、預測方案。本文基于真實的較長時段歷史數據,在關鍵算法選型環節,重點對邏輯回歸、線性回歸、梯度提升樹和決策樹等模型進行了對比研究。算例表明梯度上升模型在多種特征下均顯示了較高的接近90%的正確率,而邏輯回歸模型在f4特征下得到了最高正確率91.86%,這兩種模型尤其是梯度上升模型具有更好的適用性,從一定程度上證明了利用大數據分析手段對供應商進行投標評估、預測存在可能性和可行性,具有較高的實際應用參考價值。
未來我們將進一步調整參數并添加特征多項式來深入優化,還可考慮對比更多的算法模型以獲取更高準確率。