徐楓 陳輝
【摘 要】隨著信息技術(shù)的發(fā)展以及數(shù)據(jù)庫管理系統(tǒng)的廣泛應(yīng)用,作為系統(tǒng)數(shù)據(jù)支撐的數(shù)據(jù)庫,其存儲的數(shù)據(jù)量急劇增大。運用網(wǎng)絡(luò)爬蟲技術(shù)和BP神經(jīng)網(wǎng)絡(luò)技術(shù),可以提取到這些海量的數(shù)據(jù)背后隱藏著的許多重要信息。本文闡述了一種網(wǎng)絡(luò)爬蟲技術(shù)和增加動量因子的BP神經(jīng)網(wǎng)絡(luò)算法在數(shù)據(jù)挖掘中的應(yīng)用及實現(xiàn)方法。
【關(guān)鍵詞】數(shù)據(jù)挖掘;網(wǎng)絡(luò)爬蟲;BP神經(jīng)網(wǎng)絡(luò)
中圖分類號: TP399 文獻(xiàn)標(biāo)識碼: A 文章編號: 2095-2457(2019)11-0240-002
DOI:10.19694/j.cnki.issn2095-2457.2019.11.115
【Abstract】With the development of information technology and the extensive application of database management system, the amount of data stored by database, which is the support of system data, increases dramatically. Using network reptile technology and BP neural network technology, we can extract many important information hidden behind these massive data. This paper describes the application and implementation of a network reptile technique and BP neural network algorithm to increase momentum factor in data mining.
【Key words】Data mining; Network Reptiles; BP neural network
1 數(shù)據(jù)挖掘技術(shù)
1.1 數(shù)據(jù)挖掘的概念
隨著計算機(jī)技術(shù)的不斷發(fā)展,數(shù)據(jù)庫管理系統(tǒng)在各個行業(yè)得到廣泛應(yīng)用。隨著數(shù)據(jù)庫中存儲的數(shù)據(jù)量的快速增長,從海量數(shù)據(jù)中挖掘提取可能有潛在價值信息的技術(shù),稱為數(shù)據(jù)挖掘。數(shù)據(jù)挖掘是一種新的商業(yè)信息處理技術(shù),對商業(yè)數(shù)據(jù)庫中的大量業(yè)務(wù)數(shù)據(jù)進(jìn)行抽取、轉(zhuǎn)換、分析處理,從中提取輔助商業(yè)決策的關(guān)鍵性數(shù)據(jù)。
1.2 商業(yè)數(shù)據(jù)挖掘的步驟
基于數(shù)據(jù)挖掘的商業(yè)問題的解決一般過程包括定義目標(biāo)、選擇數(shù)據(jù)、準(zhǔn)備數(shù)據(jù)、選擇及轉(zhuǎn)換變量、處理模型、驗證模型和實現(xiàn)模型這7個步驟。其中選擇數(shù)據(jù)就是抽取商業(yè)信用業(yè)務(wù)歷史數(shù)據(jù)樣本,準(zhǔn)備數(shù)據(jù)是對所選擇的數(shù)據(jù)進(jìn)行預(yù)處理,選擇及轉(zhuǎn)換變量就是選擇初始變量進(jìn)行模型的建立,處理模型、驗證模型和實現(xiàn)模型就是通過建立數(shù)據(jù)挖掘模型,并根據(jù)處理后的結(jié)果改進(jìn)模型方案,最后對實際應(yīng)用中出現(xiàn)的新問題進(jìn)行反饋的過程。當(dāng)前數(shù)據(jù)挖掘過程中采用比較多的處理模型是人工神經(jīng)網(wǎng)絡(luò)技術(shù),BP神經(jīng)網(wǎng)絡(luò)是人工神經(jīng)網(wǎng)絡(luò)技術(shù)中比較典型的一種網(wǎng)絡(luò)結(jié)構(gòu),也是常用的數(shù)據(jù)挖掘技術(shù)之一。
2 商業(yè)數(shù)據(jù)的選擇
本文介紹的商業(yè)模型以。為例,采用數(shù)據(jù)爬蟲技術(shù)獲取需要的商業(yè)數(shù)據(jù),并存放在mysql數(shù)據(jù)庫中,該業(yè)務(wù)實現(xiàn)過程采用python語言實現(xiàn)。
網(wǎng)絡(luò)蜘蛛(Web spider)也叫網(wǎng)絡(luò)爬蟲(Web crawler),是一種“自動化瀏覽網(wǎng)絡(luò)”的程序,或者說是一種網(wǎng)絡(luò)機(jī)器人。它們被廣泛用于互聯(lián)網(wǎng)搜索引擎或其他類似網(wǎng)站,以獲取或更新這些網(wǎng)站的內(nèi)容和檢索方式。它們可以自動采集所有其能夠訪問到的頁面內(nèi)容,以供搜索引擎做進(jìn)一步處理(分檢整理下載的頁面),而使得用戶能更快的檢索到他們需要的信息。
2.1 網(wǎng)絡(luò)爬蟲的設(shè)計流程
首先通過URL獲取說要爬取的頁面的響應(yīng)信息(Requests庫的使用),然后使用python中的解析庫來對response進(jìn)行結(jié)構(gòu)化解析(BeautifulSoup庫的使用),隨后對解析庫的使用和對所需要的信息的定位從response中獲取需要的數(shù)據(jù)(selecter和xpath的使用),并將數(shù)據(jù)組織成一定的格式進(jìn)行保存,最后對數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行篩選和組織。
2.2 網(wǎng)絡(luò)爬蟲的設(shè)計實現(xiàn)
使用BeautifulSoup庫對所需要的網(wǎng)頁進(jìn)行請求并解析返回的數(shù)據(jù),典型的python代碼是soup=BeautifulSoup(web_data.text, lxml);對爬取到的數(shù)據(jù)進(jìn)行存儲和初步的可視化顯示,數(shù)據(jù)的存儲使用文本數(shù)據(jù)庫的方式。數(shù)據(jù)的可視化使用了HighCharts,可以直接在網(wǎng)頁上顯示出數(shù)據(jù)結(jié)果,鏈接數(shù)據(jù)庫的代碼為client=pymongo.MongoClient(localhost, 27017),可視化顯示數(shù)據(jù)的代碼為charts.plot(seroes,show=inline,options=dict(title=dict(text=最近7日的數(shù)據(jù)統(tǒng)計圖)))。
3 人工神經(jīng)網(wǎng)絡(luò)
3.1 人工神經(jīng)網(wǎng)絡(luò)的含義
人工神經(jīng)網(wǎng)絡(luò),簡稱神經(jīng)網(wǎng)絡(luò),是一種模仿生物神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)和功能的數(shù)學(xué)模型或者計算模型。
3.2 BP神經(jīng)網(wǎng)絡(luò)
BP神經(jīng)網(wǎng)絡(luò)是目前為止最為成功的神經(jīng)網(wǎng)絡(luò)模型之一,其學(xué)習(xí)方式采用標(biāo)準(zhǔn)梯度下降的誤差逆?zhèn)鞑ィ╡rror BackPropagation)的方式,基本BP神經(jīng)網(wǎng)絡(luò)為3層前饋神經(jīng)網(wǎng)絡(luò)。BP神經(jīng)網(wǎng)絡(luò)實質(zhì)上實現(xiàn)了一個從輸入到輸出的映射功能,而數(shù)學(xué)理論已證明它具有實現(xiàn)任何復(fù)雜非線性映射的功能。這使得它特別適合于求解內(nèi)部機(jī)制復(fù)雜的問題;同時網(wǎng)絡(luò)能通過學(xué)習(xí)帶正確答案的實例集自動提取“合理的”求解規(guī)則,即具有自學(xué)習(xí)能力;網(wǎng)絡(luò)具有一定的推廣、概括能力。
雖然BP神經(jīng)網(wǎng)絡(luò)具有以上優(yōu)點,但是BP算法的缺點也是不可避免的,例如該網(wǎng)絡(luò)學(xué)習(xí)速度很慢;從數(shù)學(xué)角度看,BP算法為一種局部搜索的優(yōu)化方法,但它要解決的問題為求解復(fù)雜非線性函數(shù)的全局極值,因此,算法很有可能陷入局部極值,使訓(xùn)練失敗。
3.3 改進(jìn)的BP神經(jīng)網(wǎng)絡(luò)算法
針對上述BP算法的缺陷,國內(nèi)外已經(jīng)有不少的改進(jìn)算法,本文提出的增加關(guān)鍵因子的改進(jìn)方法,該方法簡單有效,效果也比較明顯。
基本的BP算法在調(diào)整權(quán)值時,只按第n次迭代是誤差的梯度下降方向調(diào)整,而沒有考慮第n次迭代前的梯度方向,因此使得訓(xùn)練過程發(fā)生震蕩,收斂速度較慢。為了提高訓(xùn)練速度,可以在權(quán)值調(diào)整時增加一個動量因子,具體實現(xiàn)方法是:將上一次權(quán)值調(diào)整量的一部分加到本次誤差計算所得到的權(quán)值上,并作為本次實際權(quán)值調(diào)整量。增加動量因子后的公式為:
其中M為動量因子項,取值范圍為(0,1),通常取0.9左右,ΔWij(n)為本次應(yīng)得權(quán)值修正量,ΔWij(n-1)為上次應(yīng)得權(quán)值修正量。增加了M項降低了網(wǎng)絡(luò)對誤差曲面局部調(diào)節(jié)的敏感性,進(jìn)而有效避免網(wǎng)絡(luò)陷入局部極值。
3.4 改進(jìn)的BP神經(jīng)網(wǎng)絡(luò)數(shù)據(jù)挖掘的實現(xiàn)
BP算法的程序?qū)崿F(xiàn)的主要步驟如下:
(1)用隨機(jī)數(shù)對每一層的權(quán)值W和偏差B初始化,同時進(jìn)行以下參數(shù)的設(shè)定和初始化,最大循環(huán)次數(shù),期望誤差最小值和修正權(quán)值的學(xué)習(xí)速率等。
(2)計算網(wǎng)絡(luò)各層輸出矢量y1和y2以及網(wǎng)絡(luò)誤差E,首先計算從輸入層到隱層,然后再計算從隱層到輸出層。
(3)計算各層反傳的誤差變化D1和D2并計算各層權(quán)值,同時對輸入訓(xùn)練樣本重新計算訓(xùn)練。按照增加動量因子的訓(xùn)練公式進(jìn)行樣本訓(xùn)練。
(4)檢查網(wǎng)絡(luò)蹤誤差是否小于期望的植,如果滿足擇訓(xùn)練結(jié)束。
常規(guī)BP算法與增加動量項算法的實驗比較如圖1所示。
4 結(jié)束語
本文提出了網(wǎng)絡(luò)爬蟲技術(shù)和增加動量項的BP神經(jīng)網(wǎng)絡(luò)技術(shù)在商務(wù)數(shù)據(jù)挖掘中的一般操作步驟和方法。網(wǎng)絡(luò)爬蟲技術(shù)對數(shù)據(jù)的獲取帶來了方便的操縱機(jī)制,再結(jié)合不同的數(shù)據(jù)庫系統(tǒng),能夠?qū)Λ@取到的數(shù)據(jù)進(jìn)行篩選和整合。而增加動量項的BP神經(jīng)網(wǎng)絡(luò)技術(shù)對于后續(xù)的數(shù)據(jù)分析提供了智能的數(shù)據(jù)挖掘手段,同時加入動量項的BP算法簡單實用,具有很好的應(yīng)用前景。
【參考文獻(xiàn)】
[1]崔慶才.Python3網(wǎng)絡(luò)爬蟲開發(fā)實戰(zhàn)[M].北京:人民郵電出版社,2018.
[2]韓力群.人工神經(jīng)網(wǎng)絡(luò)教程[M].北京:北京郵電大學(xué)出版社,2006.
[3]張良均.神經(jīng)網(wǎng)絡(luò)實用教程[M].北京:機(jī)械工業(yè)出版社,2008.
[4]王靜為.BP神經(jīng)網(wǎng)絡(luò)改進(jìn)算法的研究[J].中國水運,2008,8(1):157-158.
[5]彭玲玲,楊媛,周慧慧.一種基于改進(jìn)的BP神經(jīng)網(wǎng)絡(luò)[J].科教導(dǎo)刊,2013,3(下):133-134.
作者簡介:徐楓(1973—),男,漢族,安徽安慶人,浙江省杭州市浙江商業(yè)職業(yè)技術(shù)學(xué)院講師,主要從事計算機(jī)軟件設(shè)計開發(fā)研究。
陳輝(1973—),男,漢族,湖北武漢人,講師,浙江省杭州市浙江商業(yè)職業(yè)技術(shù)學(xué)院講師。主要從事計算機(jī)軟件設(shè)計開發(fā)研究。