農(nóng)惜玲 孟軍 伍寧芳 黃小益 甘宇健
摘要:在當(dāng)前大數(shù)據(jù)火熱的背景下,研究者都在思考如何應(yīng)用大數(shù)據(jù)解決實際問題。文章在理解大數(shù)據(jù)思維下,設(shè)計了以數(shù)碼產(chǎn)品價格預(yù)測、產(chǎn)品基本搜索功能和產(chǎn)品詳情模塊為主要功能的數(shù)碼產(chǎn)品價格預(yù)測網(wǎng)站,其中重點介紹了如何實現(xiàn)數(shù)碼產(chǎn)品價格預(yù)測功能。該功能的實現(xiàn)主要是利用分布式網(wǎng)絡(luò)爬蟲技術(shù)獲取各大知名網(wǎng)站的數(shù)碼產(chǎn)品價格,并利用模型對數(shù)碼產(chǎn)品的價格走勢進(jìn)行預(yù)測。
關(guān)鍵詞:價格預(yù)測;分布式網(wǎng)絡(luò)爬蟲;數(shù)碼產(chǎn)品網(wǎng)站;大數(shù)據(jù);數(shù)學(xué)建模
中圖分類號:TP311 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2017)17-0269-02
1概述
據(jù)《中國互聯(lián)網(wǎng)絡(luò)發(fā)展?fàn)顩r統(tǒng)計報告》顯示,截至2016年6月,我國網(wǎng)絡(luò)購物用戶規(guī)模達(dá)到4.48億,可見通過網(wǎng)上獲取信息的人很多。在互聯(lián)網(wǎng)+和大數(shù)據(jù)時代下,IT行業(yè)逐步成為人們熱議的焦點,其發(fā)展也得到愈來愈多的人關(guān)注。而目前國內(nèi)的IT類資訊網(wǎng)站大多沒有預(yù)測產(chǎn)品價格這個功能,本文將著重研究價格預(yù)測的實現(xiàn)功能的實現(xiàn)。
2網(wǎng)站設(shè)計與開發(fā)的可行性與適應(yīng)性分析
2.1從技術(shù)角度看
開發(fā)一個基于大數(shù)據(jù)的分析的數(shù)碼產(chǎn)品價格預(yù)測網(wǎng)站需要大量的數(shù)據(jù)做支撐,這些數(shù)據(jù)可以通過各大電商平臺進(jìn)行獲取。各大電商平臺往往會將這些數(shù)據(jù)按照一定的格式展現(xiàn)在網(wǎng)站上,我們可以通過分布式數(shù)據(jù)爬蟲技術(shù)將這些數(shù)據(jù)實時采集。數(shù)據(jù)爬蟲是一種非常流行的數(shù)據(jù)采集程序,目前互聯(lián)網(wǎng)上擁有大量的爬蟲框架供我們使用,我們只需編寫簡單的代碼便可以開始獲取數(shù)據(jù)。當(dāng)擁有海量數(shù)據(jù)后我們可以對各個商品進(jìn)行建模,基于hadoop框架進(jìn)行分布式運算,設(shè)計相關(guān)預(yù)測算法對數(shù)碼產(chǎn)品價格進(jìn)行分析并預(yù)測出價格的未來走勢。
2.2從資源角度看
對于數(shù)碼產(chǎn)品,互聯(lián)網(wǎng)可以提供各種各樣的信息,比如各大手機(jī)生產(chǎn)企業(yè)會在他們的網(wǎng)站上發(fā)布數(shù)碼產(chǎn)品的配置信息、評測信息等。在網(wǎng)站建立的初期我們可以從這些網(wǎng)站獲取大量的數(shù)據(jù)來填充我們的數(shù)據(jù)庫。對于部分具有版權(quán)的數(shù)據(jù),我們將采用外鏈的方式將原網(wǎng)站提供給用戶瀏覽,這樣可以節(jié)約開發(fā)資源,并讓網(wǎng)站專注于價格預(yù)測的實現(xiàn)。
2.3從商業(yè)價值角度看
一個可以有效預(yù)測價格變化的網(wǎng)站是比較有市場前景的,目前互聯(lián)網(wǎng)上充斥著各種各樣的歷史價格查看網(wǎng)站,但是大多沒有可以對價格進(jìn)行預(yù)測的網(wǎng)站。如果我們可以成功的預(yù)測價格走勢,我們就可以引導(dǎo)消費,幫助消費者省錢,這也便是網(wǎng)站最大的商業(yè)價值。
3網(wǎng)站概述
網(wǎng)站以用戶需求為出發(fā)點,利用網(wǎng)絡(luò)爬蟲、PHP、HTML5、JAVASCRIPT、MYSQL等技術(shù)設(shè)計開發(fā)。在網(wǎng)站里可以查詢到參數(shù)、評測、價格和圖片等關(guān)于數(shù)碼產(chǎn)品的詳細(xì)信息。網(wǎng)站的功能包括數(shù)碼產(chǎn)品價格預(yù)測(預(yù)測到某款數(shù)碼產(chǎn)品在未來一段時間內(nèi)的價格)、信息查詢(含有數(shù)碼產(chǎn)品名稱、各項參數(shù)、各角度拍攝圖片等信息)、價格對比(及參數(shù)對比、圖片對比和綜合對比)等,目的是為人們提供一個簡單易操作、具有現(xiàn)實意義的數(shù)碼產(chǎn)品信息查詢平臺。網(wǎng)站技術(shù)框架如下圖所示:
4網(wǎng)站設(shè)計
4.1網(wǎng)站主要功能設(shè)計
4.1.1產(chǎn)品價格預(yù)測模塊設(shè)計
產(chǎn)品降價預(yù)測模塊是網(wǎng)站的重點功能。用戶可以通過網(wǎng)站查詢某個產(chǎn)品的基本信息,并且能夠得知該產(chǎn)品的歷史價格走勢和該產(chǎn)品在未來一段時間的價格走勢,這對于比較注重價格的用戶來說,便可以綜合各類信息和自身需求,更加理性和有計劃地選擇性價比較高的產(chǎn)品。
網(wǎng)站利用分布式爬蟲采集互聯(lián)網(wǎng)各大平臺的IT產(chǎn)品價格數(shù)據(jù),形成一個較全面的價格走勢圖,再通過對產(chǎn)品價格進(jìn)行建模,從建模結(jié)果中得到IT產(chǎn)品在未來一段時間的價格走勢。需要說明的是,因為價格容易受到社會、經(jīng)濟(jì)條件以及國際等多種因素的影響,所以預(yù)測的價格走勢會有一定的波動。另外,對于不同時期的價格預(yù)測也不同,短期內(nèi)影響因素主要是數(shù)碼產(chǎn)品的市場供應(yīng),一般采用指數(shù)平滑法。這種方法預(yù)測主要是靠歷史價格數(shù)據(jù)逐步往后推導(dǎo)預(yù)測價格。對于較長時間,則采用二次指數(shù)平滑法較好,因為對于一些時間序列變化可能存在線性的趨勢,這種方法的好處在于能減少預(yù)測值的滯后性。如果數(shù)據(jù)的變化受季節(jié)影響,預(yù)測方法應(yīng)當(dāng)采用溫特線性季節(jié)性指數(shù)平滑較好,因為這個預(yù)測方法是根據(jù)季節(jié)的變化來進(jìn)行價格預(yù)測,這樣預(yù)測的價格更為準(zhǔn)確。
4.1.2產(chǎn)品基本搜索功能設(shè)計
產(chǎn)品的搜索功能也是網(wǎng)站的基本功能之一。產(chǎn)品的搜索功能不僅僅只是簡單的產(chǎn)品搜索,它是一個包括商品搜索、查看熱門產(chǎn)品、查看最新產(chǎn)品、今日推薦等多模塊組合成的一個大模塊。用戶通過這些搜索信息并結(jié)合自己需求,可以理性謹(jǐn)慎地對產(chǎn)品進(jìn)行對比選購。換言之,產(chǎn)品搜索模塊將完成對商品的導(dǎo)購功能。
4.1.3產(chǎn)品詳情模塊設(shè)計
產(chǎn)品詳情頁面包括很多內(nèi)容,其子頁面也非常多。其中包括:概覽頁面、具體參數(shù)頁面、報價頁面、點評頁面、圖片頁面以及競品對比頁面等等,每一個頁面的功能都不同,設(shè)計時將合理安排功能的布局,以方便用戶獲取自己所需要的資料。
4.2價格的采集與預(yù)測
4.2.1分布式網(wǎng)絡(luò)爬蟲
實現(xiàn)價格預(yù)測的前提是有大量的歷史價格數(shù)據(jù),所以網(wǎng)站利用分布式網(wǎng)絡(luò)爬蟲技術(shù)從各大網(wǎng)站采集數(shù)據(jù),爬蟲主要由兩個模塊組成:
爬蟲引擎:分布式運行且完成下載網(wǎng)站頁面內(nèi)容,并將數(shù)據(jù)存入數(shù)據(jù)庫的工作。
數(shù)據(jù)清洗:將下載下來的價格信息進(jìn)行清洗處理,剔除無效信息和冗余信息。
分布式爬蟲技術(shù)實現(xiàn)需要對于特定的網(wǎng)頁編寫用于分析其網(wǎng)站源碼和獲取信息的腳本代碼,數(shù)據(jù)或許后再通過數(shù)據(jù)清洗去除掉不必要的數(shù)據(jù)信息,最后把需要的數(shù)據(jù)存放到數(shù)據(jù)庫中保存。
4.2.2預(yù)測價格
在比較多種預(yù)測方法后,我們發(fā)現(xiàn)時間序列法較適合預(yù)測數(shù)碼產(chǎn)品的價格。時間序列即是某些序列按照時間的先后順序排列而成的一種特殊序列。若利用這組數(shù)列,應(yīng)用數(shù)理統(tǒng)計方法加以處理,以解決實際問題,則稱為時間序列分析法。時間序列分析是以時間序列為研究對象,分析序列的本質(zhì)波動,探究其真實規(guī)律的一種定量分析法。在實際中,通常被用于預(yù)測未來現(xiàn)象或指標(biāo)的波動情況。由于數(shù)據(jù)量龐大、涉及的商品較多,為了提高計算速度,預(yù)測模型需要構(gòu)架在Hadoop等分布式平臺之上。
5網(wǎng)站的開發(fā)
5.1數(shù)據(jù)爬蟲程序
開發(fā)一個數(shù)據(jù)爬蟲,需要用到scrapy框架,該框架是基于python語言編寫的,用python語言開發(fā)程序最大的特點那就是簡單易讀。Scrapy框架非常的簡單易用只需編寫爬蟲規(guī)則就可以開始高效獲取數(shù)據(jù),并且該框架是可分布式運行,速度可控,支持JavaScript,非常適合用來采集各大網(wǎng)站的數(shù)碼產(chǎn)品數(shù)據(jù),最重要的是該框架是免費而且開源的,故運用scrapy框架進(jìn)行開發(fā)滿足網(wǎng)站需要的爬蟲系統(tǒng)。
5.2價格數(shù)據(jù)分析系統(tǒng)
對于海量的數(shù)據(jù)傳統(tǒng)程序沒辦法很好的處理,傳統(tǒng)的win-dows系統(tǒng)也很難有效的承載。故我們選用hadoop生態(tài)體系進(jìn)行數(shù)據(jù)分析,該程序可以高可靠的運行在多臺電腦上。為了程序可以長期穩(wěn)定地運行,我們選擇在linux上進(jìn)行數(shù)據(jù)分析,這樣的好處是系統(tǒng)穩(wěn)定性強(qiáng),硬件資源可以高效利用。
5.3網(wǎng)站搭建
和大多數(shù)網(wǎng)站一樣,本網(wǎng)站采用BS(Browser/Server)架構(gòu),該架構(gòu)具備以下幾個特點:客戶端電腦負(fù)荷大大簡化、系統(tǒng)維護(hù)和升級成本低、同時也降低了用戶的總體成本。
我們運用HTML、CSS、JavaScript開發(fā)網(wǎng)站前臺頁面,用PHP開發(fā)網(wǎng)站后臺,MySQL作為后臺數(shù)據(jù)庫。網(wǎng)站運行在Linux系統(tǒng)下的Apache軟件下,網(wǎng)站的所有軟件均為免費軟件,實現(xiàn)成本較低,也符合當(dāng)下流行趨勢。
6結(jié)束語
本網(wǎng)站是在大數(shù)據(jù)背景下建立的數(shù)碼產(chǎn)品價格預(yù)測網(wǎng)站,著重在實現(xiàn)產(chǎn)品價格預(yù)測功能、提供報價資訊等內(nèi)容。網(wǎng)站依托互聯(lián)網(wǎng)數(shù)據(jù)建立,以滿足消費者對價格預(yù)測和導(dǎo)購需求,未來還將繼續(xù)完善研究工作,通過大數(shù)據(jù)分析提供個性化產(chǎn)品推薦、提供對數(shù)碼生產(chǎn)企業(yè)的大數(shù)據(jù)服務(wù)、提供對消費者的購買預(yù)測功能。