徐楓 陳輝

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