許鴻森 陳松林 李紅梅 劉張
摘要:該文利用機器學習算法對隨機序列數(shù)據(jù)進行了實證研究。首先對比了常見機器學習算法模型在該數(shù)據(jù)上的預測性能,發(fā)現(xiàn)決策樹算法效果較好。其次,對決策樹算法模型進行了參數(shù)調(diào)優(yōu),提升了該模型的預測準確率。參數(shù)調(diào)優(yōu)后的算法模型的預測效果較好。
關(guān)鍵詞: 機器學習;隨機序列;實證分析;參數(shù)調(diào)優(yōu)
中圖分類號:TP302 文獻標識碼:A 文章編號:1009-3044(2018)26-0166-03
Abstract: This paper makes use of machine learning algorithm to do empirical research on random sequences. First, the prediction performance of common machine learning algorithms on the data is compared, and it is found that the decision tree works well. Secondly, the parameter optimization of the decision tree algorithm model improves the prediction accuracy of the model. The parameter optimization algorithm model predicts better.
Key words: machine learning;random sequence;empirical analysis;parameter tuning
近年來,越來越多的人研究隨機序列數(shù)據(jù),因此隨機序列的應用研究和預測未來隨機序列具有一定的理論意義與實際應用價值。預測隨機序列的方法比較多,如:概率與統(tǒng)計法模型1,理論成熟,但準確率低;BP算法模型2雖然能預測隨機序列中的隨機規(guī)律,但是網(wǎng)絡的初始權(quán)值和閥值都是隨機給出的沒有考慮歷史數(shù)據(jù)經(jīng)驗;遺傳算法模型3雖然能較好的隨機化搜索,但是它的搜索是隨機的,帶有一定的盲目性不能得到最優(yōu)的隨機序列預測。
本文基于真實的隨機序列數(shù)據(jù)利用機器學習算法對隨機序列數(shù)據(jù)進行分析,并對決策樹算法模型進行了參數(shù)調(diào)優(yōu),提升了該模型的預測性能。參數(shù)調(diào)優(yōu)后的算法模型的預測效果較好。
1 理論基礎
1.1 機器學習
機器學習是研究如何利用經(jīng)驗來學習,能夠較好的研究分析數(shù)據(jù)信息和從樣本變量中做出高精度的預測。機器學習通過學習數(shù)據(jù)中潛在的信息和數(shù)據(jù)間的關(guān)系,根據(jù)數(shù)據(jù)的概率分布做出分類決策。機器學習通過某種模型訓練歷史數(shù)據(jù),對任意給定輸入盡量準確地進行輸出預測4。
1.2 決策樹
決策樹是用來劃分物體的類屬,樹中每一節(jié)點對應一個物體屬性,而每一邊對應于這些屬性的可選值,樹的葉節(jié)點則對應于物體的每個基本分類本文有7個類屬。決策樹:從根節(jié)點開始一步步走到葉子節(jié)點(決策)決策樹,所有的數(shù)據(jù)最終都會落到葉子節(jié)點,既可以做分類也可以做回歸。決策樹分類原理:一棵決策樹的生成過程主要分為以下3個部分:(1)特征選擇:特征選擇是指從訓練數(shù)據(jù)中眾多的特征中選擇一個特征作為當前節(jié)點的分裂標準,如何選擇特征有著很多不同量化評估標準,從而衍生出不同的決策樹算法。(2)決策樹生成:根據(jù)選擇的特征評估標準,從上至下遞歸地生成子節(jié)點,直到數(shù)據(jù)集不可分則停止決策樹停止生長。樹結(jié)構(gòu)來說,遞歸結(jié)構(gòu)是最容易理解的方式。(3)剪枝:決策樹容易過擬合,一般來需要剪枝,縮小樹結(jié)構(gòu)規(guī)模、緩解過擬合決策樹過擬合風險很大,理論上可以完全分得開數(shù)據(jù)5。如果不剪樹枝足夠龐大,每個葉子節(jié)點就只有一個數(shù)據(jù)。剪枝技術(shù)有預剪枝和后剪枝兩種。決策樹節(jié)點代表數(shù)據(jù)特征,每個節(jié)點下的分支代表對應特征值的分類,而決策樹所有葉子節(jié)點則顯示所有模型的決策結(jié)果6。常用的度量方式包括信息熵(InformationGain)和基尼不純性(Gini Impurity)7。,熵是信息論中的概念,用來表示集合的無序程度,熵越大表示集合越混亂,反之則表示集合越有序。熵的計算公式為式(1)8?;岵患冃员硎镜氖菙?shù)據(jù)總體類別越多,GINI指數(shù)越大?;嶂笖?shù)的計算公式為式(2) 9:
[E =-P * log2P] (1)
[GiniP=1-k=1k|Ck||D|2] (2)
決策樹分類又分為CART分類、ID3分類、C4.5分類,由于本文所用隨機序列數(shù)據(jù)特征,在算法預測過程中,CART分類使用基尼指數(shù)來劃分屬性,在劃分后選擇最小屬性用為優(yōu)先劃分屬性,ID3分類在分支過程中喜歡偏向取值較多的屬性,C4.5分類需要對數(shù)據(jù)進行多次排序和掃描,耗時較大,本文采用CART決策樹分類算法模型對隨機序列進行預測分析。
1.3 隨機序列
一般的如果用X1,X2…Xn(表示n下標與X)代表隨機標量,隨機變量的出現(xiàn)就形成隨機序列,隨機序列的特征是序列和序列中的變量是隨機的。統(tǒng)計學家證明:采樣分析的準確性隨著采樣隨機性的增加而大幅提高,但與樣本數(shù)量的增加關(guān)系不大10。人們隨機猜,每位概率是10%,每個序列概率不到萬分之一。
1.4 Python
Python具有強大且豐富的庫,是一種高級程序設計語言能較好的進行數(shù)據(jù)處理。Python語言具有簡潔、易讀以及可擴展性, Python里的numpy、pandas、scipy、matplotlib、sklearn庫為其提供了快速的數(shù)組處理、科學計算、可視化、機器學習。
2 實證分析
2.1 數(shù)據(jù)
論文利用爬蟲技術(shù)爬取中某網(wǎng)站的歷史數(shù)據(jù),用Python中的Request函數(shù)從網(wǎng)站獲取html格式的數(shù)據(jù)(json)格式,再將json格式的數(shù)據(jù)轉(zhuǎn)換成DataFrame結(jié)構(gòu),最后把每個頁面的數(shù)據(jù)進行合并。接著用Beautiful Soup進行數(shù)據(jù)轉(zhuǎn)換和清洗接著進行本地存儲。
2.2 常用機器學習算法實證分析
常用預測模型實證分析機器學習分為監(jiān)督學習與非監(jiān)督學習,而監(jiān)督學習又分為分類學習、回歸、聚類,分類學習中又分為二分類問題、多分類問題和多標簽分類問題。隨機序列預測屬于多分類問題。本文首先利用機器學習中分類器中常見的7種算法模型對隨機序列數(shù)據(jù)進行預測分析,所得結(jié)果如圖1所示。
圖1中,橫坐標為常見7種機器學習算法模型,縱坐標為各算法模型的預測準確率??梢钥闯鯯VM(支持向量機)模型準確率最低,為8%;Decision Tree(決策樹)模型準確率最高,為14%,明顯高于每位數(shù)字的隨機概率10%。下面將通過參數(shù)調(diào)優(yōu)技術(shù)進一步提升預測的準確性。
2.3 決策樹參數(shù)調(diào)優(yōu)
2.3.1 固定參數(shù)設置
固定參數(shù)設置如表1所示,criterion為特征選擇標準,本文由于采用數(shù)據(jù)類別較多,為降低誤分類可能性的標準,因此選用基尼指數(shù)作為固定參數(shù)。splitter為特征劃分選擇標準,由于數(shù)據(jù)樣本不大,故選擇最優(yōu)標準作為固定參數(shù),目的找出所有特征劃分時的最優(yōu)劃分點。random_state為隨機種子,隨機種子會隨機拆分訓練集和測試集,因此固定隨機種子參數(shù)一致能夠保證每次輸出結(jié)果的一致性,固定隨機種子為常用的默認值。min_weight_fraction_leaf為葉子節(jié)點最小樣本權(quán)重,本文所用數(shù)據(jù)無缺失值,因此在使用葉子節(jié)點所有樣本權(quán)重的最小值參數(shù)時不做變化,因這個值限制了葉子節(jié)點所有樣本權(quán)重和的最小值,如果小于這個值,則會和兄弟節(jié)點一起被剪枝。因此固定為參數(shù)中的默認值零。
為了提高該模型的準確性能,引入了交叉驗證評估,選用了10折交叉驗證,在交叉驗證中,不重復隨機將訓練數(shù)據(jù)集劃分為10個,其中9個用于模型訓練,1個用于測試,重復10迭代,每次迭代所得到一個性能評價指標,最終求出平均的一個值,以降低模型評估結(jié)果的方差。
2.3.2 變動參數(shù)設置
本文中模型使用的變動參數(shù)如表2所示。
Max_depth為最大深度,決策樹最大深度決定了樹的增長。Min_samples_leaf為葉子節(jié)點最少樣本數(shù),它限制了分支葉子上面的最小樣本數(shù)量,如果在生成過程中某葉子節(jié)點數(shù)目小于樣本數(shù),則會和兄弟節(jié)點一起被剪枝。Min_samples_split為內(nèi)部節(jié)點再劃分所需最小樣本數(shù),它限制了子數(shù)繼續(xù)劃分的條件,如果某節(jié)點的樣本數(shù)少于內(nèi)部節(jié)點最小樣本數(shù),則不會繼續(xù)選擇最優(yōu)特征來繼續(xù)劃分。
2.3.3 參數(shù)調(diào)優(yōu)結(jié)果分析
如圖2所示,橫坐標為Max_depth最大深度,縱坐標Min_samples_leaf為葉子節(jié)點最少樣本,豎坐標Accuracy為準確率。當Min_samples_split =4時,隨著Max_depth的變化,準確率變化不大,但是隨著Min_samples_leaf的增加,準確率逐漸增大。特別的,當Min_samples_leaf=11或者12時,準確率取得最大值0.2。
同理,如圖3所示。當Min_samples_split =6時,隨著參數(shù)的變化,準確率有一定的起伏波動,特別的,當Min_samples_leaf=1,Max_depth=6時,準確率取得最大值0.213。
當Min_samples_split=8時,結(jié)果如圖4所示。當Min_samples_leaf=1時,Max_depth=7時獲取局部最優(yōu)準確率為0.2。在Min_samples_leaf=11或者12時時獲取局部最優(yōu)準確率為0.2。
綜上所述,在Min_samples_split取不同值的情況下,通過調(diào)節(jié)參數(shù)Min_samples_leaf和Max_depth,將模型的預測準確率從14%提高到了21.3%,這說明調(diào)參優(yōu)化對于提高模型預測準確率是有效的。
3 總結(jié)
本文運用機器學習算法模型對隨機序列數(shù)據(jù)進行分析,對比了常見的機器學習算法在隨機序列數(shù)據(jù)上的預測準確率,并對效果針對較好的算法模型進行了參數(shù)調(diào)優(yōu),進一步提高了模型的預測效果。結(jié)果表明模型預測效果大大高于隨機猜想概率,并能夠在一定的程度上提高正確率。
參考文獻:
[1] 李德勝,張才仙.淺議概率統(tǒng)計學在彩票中獎技巧方面的應用[J].科技資訊,2006(32).
[2] 朱武亭,劉以建. BP網(wǎng)絡應用中的問題及其解決[J].上海海事大學學報,2005(2).
[3] 薛愈潔.基于非隨機初始種群遺傳算法的學習分類器系統(tǒng)[J].計算機時代,2018(3)
[4] 曾華軍,張銀奎,等,譯.機器學習[M].北京:機械工業(yè)出版社,2003.
[5] http://blog.csdn.net/suipingsp機器學習經(jīng)典算法詳解及Python實現(xiàn)—決策(Decision Tree).
[6] 范淼 李超. Python機器學習及實踐[M].清華大學出版社,2016.
[7] Gavin hackeling.Mastering Machine Learning withscikit-learn. 2014 Packt Publishing.
[8] Peter Harrington. Machine Learning in Action機器學習實戰(zhàn)[M].李銳,李鵬,曲亞東,王斌,譯.人民郵電出版社,2013.
[9] [美] Sebastian Raschka. Python機器學習[M].高明,徐瑩,陶虎成,譯.機械工業(yè)出版社,2017.
[10] [英]維克托·邁而-舍恩伯格,肯尼思·庫克耶.大數(shù)據(jù)時代[M].盛楊燕,周濤,譯.浙江人民出版社,2012.
[通聯(lián)編輯:代影]