河南省實驗中學 李鈺通
隨著互聯網的發展,瀏覽網站已經成為人們生活中不可或缺的一部分。網站分為熱門網站和非熱門網站,熱門網站可以產生巨大的經濟效益,因此預測網站的熱度具有重大意義。預測網站熱度,對投資人來說,他們可以評判一個網站是否值得投資,避免在投資過程中產生資源的浪費;對管理者來說,網站熱度的預測則可以更好且較為準確地預估網站發展的趨勢,可以指導網站管理者做出相應的調整。這對網站的運營工作起到了一定的指導作用。
決策樹算法經常被應用于大數據的處理中[1]。網站熱度的預測中,需要處理大量的信息,決策樹算法可以很好地處理這個方面的問題。我們運用Spark平臺的并行計算能力實現實驗數據的高效準確處理,對網站的熱度進行預測。
決策樹分類算法是以實例為基礎的歸納學習算法,屬于數據分類方法。決策樹學習著眼于從一組無秩序、無規則的事實中推理出決策樹表示形式的分類規則,通常用來形成分類器和預測模型。
決策樹算法相比于其他算法,擁有以下幾個優點:
(1)決策樹易于理解和掌握,人們在通過解釋后都有能力去理解決策樹所表達的意思并進行應用。
(2)決策樹模型是一個白盒模型。如果給定一個觀察的模型,那么根據所產生的決策樹很容易就能推出相應的邏輯表達式。
(3)易于通過靜態測試來對模型進行評測。
(4)在相對短的時間內能夠對大型數據源做出可行且效果良好的結果。
算法是求解問題的方法和步驟,并行算法可以實現在并行系統上用多個處理器聯合求解問題。當需要處理海量信息時,利用并行算法可以極大提高運行效率和結果的質量[2]。傳統的串行化算法在面對數據量較小的情況時具有較快的運行速度和準確率。但當用串行算法計算海量數據時,就會導致計算時間長,工作效率低,預測精確度有偏差的情況。這時并行計算便體現出它的優越性來,多個處理器同時計算,既提高了效率,又提升了準確度,在大數據應用方面起到了相當廣泛且重要的作用[3]。
Spark是由加州大學伯克利分校開發的大數據處理平臺,其性能優于Hadoop,擁有更快的速度,提供了80多個高級計算符,易用性強,支持多種資源管理器[4]。本次實驗探究選用Spark平臺作為大數據處理工具,得到的實驗結果快速準確,有效地保證了實驗的正常進行[5]。
本次研究中所用數據來源為www.kaggle.com/c/stumbleupon/data。數據集中,每條記錄包括27個字段。其中,字段1-3是網站的描述字段,不作為分析時的特征屬性。字段4-26為算法分析中的特征字段,包括網站分類、網站分類的評分等。最后一個字段為label字段,代表了網站的分類信息。其中,0代表網頁為非熱門網站,1代表網站為熱門網站。
運行Spark平臺,經過數據轉換產生RDD,然后將實驗數據以8:1:1的比例隨機分成三個數據集:訓練集,校驗集和測試集,以用于實驗的下一部分[6]。其中,訓練模型使用訓練集,評估模型使用校驗集。為了提高程序的運行效率,將數據暫時存放在內存中[7]。
算法的超參數分別為:maxBins參數、maxDepth參數和Impurity參數[8]。其中,maxBins參數代表決策樹每個節點的最大分支數目,maxDepth參數表示決策樹的最大深度,Impurity參數表示評判決策樹分裂優劣的方式,其值包含兩種,分別為基尼指數(gini)和熵(entropy)。
決策樹分類模型的評估指標是AUC(精確度)[8]。AUC越高,模型的精確度越高,預測越準確;反之,AUC越低,則模型的精確度越低,與真實情況越不符合。
(1)使用2個不同的Impurity參數,其他參數保持不變,分別訓練評估模型。經過Spark平臺的處理,得到了不同參數組合下訓練出的模型的AUC和訓練時間圖像。根據圖像可以看出,對于Impurity參數而言,值為gini(基尼指數)時與值為entropy(熵)時相比,訓練得到的模型的AUC相差不大,而gini所需要的時間卻是entropy的2.5倍左右。Impurity參數值為entropy時所用的時間短,而且訓練得出的模型的AUC高,因此在這種情況之下應該將Impurity參數的值設置為entropy。
(2)使用6個不同的maxDepth參數,其他參數的值保持不變,分別訓練評估模型,得到了不同參數組合下訓練出的模型的AUC和訓練時間圖像。從訓練評估的結果來看,隨著maxDepth參數的增大,訓練模型所需要的時間也逐漸增大。當maxDepth的值為25時,訓練模型所需要的時間較少,且AUC最高。因此,這種情況下選擇5作為maxDepth參數的值訓練模型更加有效。
(3)使用6個不同的maxBins參數,其他參數保持不變,分別訓練評估模型,得到了不同參數組合下訓練出的模型的AUC和訓練時間圖像。由實驗結果圖像得出,當maxBins為10的時候,訓練模型所需要的時間較少,且AUC最高。因此,在這種情況下將max-Bins參數的值設置為10,可以花費更少的時間訓練出最優模型。
(4)將所有的參數值排列組合,得到72個不同的參數組合,使用它們分別訓練評估模型,并從得出的72個模型之中選擇出一個AUC(精確度)最高的模型,即最優模型。最優模型對應的參數組合即最優參數組合。實驗得出,最優參數組合為(Impurity:entropy,maxDepth:5,maxBins:10),最優模型的AUC值為0.797。
使用測試集測試模型,將得到的AUC和訓練評估階段得到的最優模型的AUC比較,如果兩者相差不大,就代表此模型不存在過擬合問題。實驗得出,測試階段中模型的AUC為0.756,與訓練評估階段得出的AUC相近,所以此模型不存在過擬合問題,可以用于實際的預測中。
最后,我們在實驗中使用無過擬合問題的最優模型對網站的熱門程度進行預測,得到一系列預測結果。例如,www.lynnskichenadventures.com被預測為熱門網站,www.xcelerationfitness.com被預測為非熱門網站。
我們正處于大數據時代,網絡中的數據呈“爆炸式”增長,傳統的處理方法越來越無法適應當今海量數據處理的需求,而大數據技術很好地解決了這一問題。本次研究中,利用Spark大數據處理平臺的計算能力,使用并行化的決策樹算法訓練模型,最終得出最優的預測模型。該模型可以較為精確地預測網站的熱度,具有較高的實用價值。