摘要:2021年,D公司經(jīng)營狀況步履維艱,累計新簽合同額偏離預(yù)計指標。為響應(yīng)上級部署,拓寬經(jīng)營渠道,利用Python語言,圍繞國家新型重點建設(shè)領(lǐng)域相關(guān)數(shù)據(jù)的進行收集,篩選出符合D公司經(jīng)營期望值的數(shù)據(jù)并進行預(yù)處理,運用概率論及統(tǒng)計學(xué)知識構(gòu)建多元線性回歸模型,進行大數(shù)據(jù)分析,實現(xiàn)數(shù)據(jù)可視化,最終為D公司下一步投標工作重點和投標決策提供參考依據(jù)。
關(guān)鍵詞: Python語言;多元線性回歸模型;大數(shù)據(jù)分析;可視化
大數(shù)據(jù)時代的到來,為工程建設(shè)項目的招投標帶來了新的機遇與挑戰(zhàn),大數(shù)據(jù)帶來了海量的信息,具體體現(xiàn)出的特征有數(shù)據(jù)量大,類型繁多,價值密度低,速度快、時效高,在商業(yè)、經(jīng)濟和其他領(lǐng)域,決策正日益基于數(shù)據(jù)和計算作出,而非傳統(tǒng)意義上的經(jīng)驗和直覺。
2021年,我國多地在“十四五”規(guī)劃中指出,要加快智慧城市、新基建等規(guī)模部署,推進新技術(shù)等基礎(chǔ)設(shè)施建設(shè),推動傳統(tǒng)基礎(chǔ)設(shè)施升級,建設(shè)新一代信息基礎(chǔ)設(shè)施體系。智慧城市建設(shè)成為經(jīng)濟建設(shè)領(lǐng)域的重點。
Python語言簡單易用,具備直觀的語法,在探索性計算、數(shù)據(jù)分析和交互、和數(shù)據(jù)的可視化等方面十分有優(yōu)勢,這是本文將Python語言作為智慧城市大數(shù)據(jù)分析工具的原因之一。
1 使用Python進行智慧城市大數(shù)據(jù)分析的流程
智慧城市大數(shù)據(jù)分析流程包括:Python環(huán)境搭建,數(shù)據(jù)獲取,數(shù)據(jù)預(yù)處理,建模與分析,數(shù)據(jù)可視化,為投標決策提供依據(jù)。
Python是跨平臺的代碼(CrossPlatform),但特定的函數(shù)方法只能在對應(yīng)的操作系統(tǒng)下實現(xiàn),因此需要判別操作系統(tǒng)的類型(Windows系統(tǒng)、OS X系統(tǒng)、Lunix系統(tǒng))并作對應(yīng)安裝。
智慧城市尚屬新興產(chǎn)業(yè),通過人與瀏覽器的交互獲取數(shù)據(jù)費時費力,而通過API交互的方式又很難找到方便可用的API,因此智慧城市大數(shù)據(jù)分析需要利用Python語言設(shè)計一個自動化程序向網(wǎng)絡(luò)服務(wù)器請求數(shù)據(jù),編寫Python代碼爬取相關(guān)網(wǎng)站里諸如智慧城市試點數(shù)目、PPP項目成交數(shù)目、智慧城市招標項目、財政收入、智慧企業(yè)、日期等有關(guān)數(shù)據(jù),并創(chuàng)建數(shù)據(jù)庫,以方便查詢調(diào)用。
由于在不同的網(wǎng)站、不同的鏈接抓取的數(shù)據(jù)標準不統(tǒng)一,導(dǎo)致數(shù)據(jù)庫包含很多含有噪聲、不完整(missing)、不一致(inconsisitent)的數(shù)據(jù),必須對數(shù)據(jù)對象進行預(yù)處理,處理后進行數(shù)據(jù)集成,標準化規(guī)范化后才能進行建模分析。
本文將預(yù)處理后的2021年智慧化工程相關(guān)數(shù)據(jù)建立數(shù)據(jù)集,并轉(zhuǎn)換為CSV格式,構(gòu)建多元線性回歸模型,并對模型進行顯著性檢驗,利用Python進行數(shù)據(jù)的逆向選擇,剔除統(tǒng)計意義最小的變量。流程見圖1。
通過對多元線性回歸模型的計算分析,以及對大數(shù)據(jù)分析結(jié)果的診斷,得出結(jié)論:智慧城市市場活躍程度與智慧城市試點數(shù)目、城市基建計劃投資額、累計成交PPP項目數(shù)、財政收入、建材漲跌指數(shù)具有顯著的線性關(guān)系。
采用數(shù)據(jù)可視化技術(shù)可以直觀地表達經(jīng)過分析處理的數(shù)據(jù),也更方便決策者對數(shù)據(jù)的解讀。Python有很多可視化工具,在進行智慧城市大數(shù)據(jù)分析時,本文調(diào)用Python中的pyecharts工具包,加載中國省級地圖包,以熱力圖的形式展現(xiàn)2021年中國智慧城市市場活躍程度。
以智慧城市試點數(shù)目為例,根據(jù)2021年《住房和城鄉(xiāng)建設(shè)部工業(yè)和信息化部關(guān)于確定智慧城市基礎(chǔ)設(shè)施與智能網(wǎng)聯(lián)汽車協(xié)同發(fā)展第一批試點城市的通知》,確定北京、上海、廣州、武漢、長沙、無錫等6個城市為智慧城市基礎(chǔ)設(shè)施與智能網(wǎng)聯(lián)汽車協(xié)同發(fā)展第一批試點城市。對比前文的市場熱力圖,北京、上海、廣州、無錫與智慧城市市場活躍省份高度重合,說明市場成型已久,基建設(shè)施完善,但相對市場趨于固化,競爭壓力較大,不易進入;武漢、長沙兩市地處的湖北、湖南兩省,對比熱力圖可見智慧城市建設(shè)方興未艾,較易進入,但智慧城市基建設(shè)施相對薄弱。不同分析結(jié)果可以作為不同投標決策參考的依據(jù)。
2 應(yīng)對反爬取機制
在智慧城市建設(shè)大數(shù)據(jù)分析中,當(dāng)爬取網(wǎng)頁的時候,輸出信息中會出現(xiàn)諸如“HTTP Error 403: Forbidden”“URLError”等字眼,翻譯過來就是訪問被拒絕,禁止爬取。這是由于爬蟲技術(shù)會造成大量IP訪問和占用帶寬資源,部分網(wǎng)站會采用反爬取機制。面對此類問題,需要采取相應(yīng)的反爬機制應(yīng)對。如降低爬取速度,減少對服務(wù)器的影響,文明爬取;或隱藏身份,使用代理服務(wù)器,應(yīng)對封鎖IP機制;或構(gòu)造合理的HTTP請求頭(headers),偽裝成瀏覽器,應(yīng)對封鎖User-Agent機制。
3 數(shù)據(jù)預(yù)處理
在智慧城市建設(shè)大數(shù)據(jù)分析中,通過爬取相關(guān)數(shù)據(jù)來源網(wǎng)站,采集出2021年國內(nèi)各省份“智慧城市建設(shè)”相關(guān)數(shù)據(jù),并創(chuàng)建數(shù)據(jù)集。面對不完整、冗余、異常的數(shù)據(jù),采取不同的應(yīng)對策略以使數(shù)據(jù)標準化。
對于數(shù)據(jù)的缺失值,有三種處理缺失值的方法,分別是刪除、插補、不處理。常采用插補法處理。使用Python中的df.isnull()函數(shù),顯示數(shù)據(jù)集情況,缺失值返回結(jié)果為“True”,調(diào)用df.fillna()或Imputer()函數(shù),在缺失值中填充數(shù)據(jù)。
對于數(shù)據(jù)的重復(fù)值,需要導(dǎo)入Pandas工具包,使用duplicated()找出重復(fù)的行(默認全部列),返回布爾類型的運算結(jié)果:沒有重復(fù)的行,返回False,有重復(fù)的行,在重復(fù)數(shù)據(jù)首次出現(xiàn)的行返回False,其余返回True。
對于數(shù)據(jù)的異常值,處理時需要視情況而定,尤其包含特俗信息的數(shù)據(jù),要慎重處理,常用刪除記錄、視為缺失、平均值修正的處理方法。
對數(shù)據(jù)集進行預(yù)處理,其中,y是因變量,代表2021年國內(nèi)智慧城市預(yù)測投資規(guī)模;x1至x9都是自變量,x1是智慧城市試點數(shù)目;x2是2021年城市基建計劃投資額;x3是2021年累計成交PPP項目數(shù);x4 是2021年智慧城市招標項目數(shù);x5 是2021年上半年財政收入;x6 是2021年人口比重統(tǒng)計;x7是一級資質(zhì)智能化企業(yè)統(tǒng)計數(shù)目;x8是2021年上半年耗電總量;x9是2021年建材漲跌指數(shù)。其中y、x2、x5的單位是億元;x8的單位是億千瓦時;x1 、x3 、x4 、x7 的單位都是個;x6、 x9是指數(shù),沒有單位。其內(nèi)容如表1所示。
4 創(chuàng)建多元線性回歸模型
多元線性回歸分析考慮幾個自變量同因變量的線性關(guān)系,其公式如下:
y=β0+β1x1i+β2x2i+…+βkxki+ei
這里y是因變量,xki是自變量,βn是回歸系數(shù),β0是回歸常數(shù),ei是隨機誤差。
我們獲得了k組觀察數(shù)據(jù),矩陣形式如下所示:
模型寫作:y=Xβ+ε
根據(jù)原理,利用ptyhon生成多元線性回歸模型,返回結(jié)果見圖2。
在結(jié)果中,回歸系數(shù)是coef的值,回歸常數(shù)是const的值,我們生成的回歸模型為:
y=10.8346-5.1654x1+0.0372x2+0.2776x3+0.0061x4+0.0182x5-1026.5773x6+0.0497x7+0.0327x8-3422.4688?x9
返回結(jié)果中R-squared是0.718,根據(jù)方差膨脹因子(Variance Inflation Factor,以下簡稱VIF)計算公式:
可以得出結(jié)論:模型的精度較低,存在線性關(guān)系不顯著的變量,需要建立逆向逐步回歸,篩選自變量。
在智慧城市建設(shè)大數(shù)據(jù)分析中我們采用P檢驗,即“P>|t|”判斷每個自變量和y的線性顯著關(guān)系,統(tǒng)計學(xué)常用系數(shù)0.05、0.02或0.01作為檢驗標準,這里我們采用0.05。P>|t|列中,數(shù)值大于0.05的自變量,顯示和y線性關(guān)系不顯著,逐個篩選去除,并重復(fù)上述建模過程,直到所有P值都小于等于0.05。得到最終建模結(jié)果見圖3。
得出多元線性回歸方程如下:
y=10.1598-5.1441x1+0.039x2+0.28x3+0.0229x5-3215.0963x9
由此可以推導(dǎo)出,與因變量y具有顯著線性關(guān)系的自變量是x1、x2、x3、x5、x9。
5 結(jié)語
本文旨在研究智慧城市市場中Python語言對于投標決策者們的支持。文中利用Python強大的開源庫,根據(jù)爬取到的數(shù)據(jù)建立多元線性回歸模型,通過對模型系數(shù)的定量分析,推論出與市場密切相關(guān)的因素,并實現(xiàn)分析結(jié)果的可視化。作為一門集合了函數(shù)式編程的腳本語言,Python在對數(shù)據(jù)集進行回歸性分析時,取得了較好成果,論證了Python作為招投標市場分析的工具是可行的。
參考文獻:
[1]?趙勇,徐軻,等. 大數(shù)據(jù)在招投標領(lǐng)域大有可為[N].政府采購信息,2015:8-31
[2]?[美]Eric Matthes.Python編程從入門到實踐[M].袁國忠,譯.北京:人民郵電出版社,2016:7
[3]?GB/T 36333 – 2018,智慧城市頂層設(shè)計指南[S].北京:國家市場監(jiān)督管理總局中國國家標準化管理委員會,2018:6-7
[4]?住房和城鄉(xiāng)建設(shè)部、工業(yè)和信息化部.住房和城鄉(xiāng)建設(shè)部工業(yè)和信息化部關(guān)于確定智慧城市基礎(chǔ)設(shè)施與智能網(wǎng)聯(lián)汽車協(xié)同發(fā)展第一批試點城市的通知[EB/OL].2021:4-28
[5] Ryan,Mitchell.Web Scraping With Python[M]. New York: O'Reilly Media. 2015:7-24
[6] Michael Bowles.Python機器學(xué)習(xí)預(yù)測分析核心算法[M].沙嬴,李鵬,等,譯.?北京:人民郵電出版社,2017:1
作者簡介:宋迪(1987-),男,漢族,遼寧沈陽人。主要研究方向:經(jīng)營開發(fā)招投標工作。