張帥
(天津財(cái)經(jīng)大學(xué),天津 300222)
?
統(tǒng)計(jì)學(xué)習(xí)方法概述以及部分分類算法的R實(shí)現(xiàn)
張帥
(天津財(cái)經(jīng)大學(xué),天津 300222)
首先本文簡單地概述了統(tǒng)計(jì)學(xué)習(xí)的一些基本理論,然后對(duì)于統(tǒng)計(jì)學(xué)習(xí)中一些常見的方法我們探索性地使用了R軟件來進(jìn)行了實(shí)現(xiàn),統(tǒng)計(jì)學(xué)習(xí)方法是我們?cè)跈C(jī)器學(xué)習(xí)領(lǐng)域的入門知識(shí),比起其它的機(jī)器學(xué)習(xí)方面的書籍和理論,這是更適合初學(xué)者的,統(tǒng)計(jì)學(xué)習(xí)方法是機(jī)器學(xué)習(xí)領(lǐng)域的一個(gè)重要的分支,它是計(jì)算機(jī)基于數(shù)據(jù)構(gòu)建概率統(tǒng)計(jì)模型并用統(tǒng)計(jì)模型進(jìn)行預(yù)測分析的學(xué)科。我們用統(tǒng)計(jì)學(xué)習(xí)方法進(jìn)行預(yù)測分析。書中主要提到了各種不同的分類算法,包括感知機(jī),決策樹,樸素貝葉斯,k近鄰等,本文對(duì)統(tǒng)計(jì)學(xué)習(xí)方法的基本內(nèi)容進(jìn)行了概述,并對(duì)部分分類算法作了簡單介紹和R軟件的實(shí)現(xiàn)。
統(tǒng)計(jì)學(xué)習(xí)方法;分類算法;R實(shí)現(xiàn)
對(duì)象:統(tǒng)計(jì)學(xué)習(xí)的對(duì)象是數(shù)據(jù)。我們從數(shù)據(jù)中提取特征,抽象出數(shù)據(jù)的模型,從數(shù)據(jù)中發(fā)現(xiàn)知識(shí),利用得到的知識(shí)對(duì)新的數(shù)據(jù)進(jìn)行預(yù)測、分析。這就是我們的機(jī)器學(xué)習(xí)算法經(jīng)常做的事。然而這一切是有一個(gè)前提的,數(shù)據(jù)中存在一定的統(tǒng)計(jì)規(guī)律性。這是我們進(jìn)行機(jī)器學(xué)習(xí)、數(shù)據(jù)挖掘的先決條件。倘若數(shù)據(jù)中不存在規(guī)律性,那我們就沒有挖掘、學(xué)習(xí)的必要。當(dāng)然這個(gè)所謂的規(guī)律也有一個(gè)特點(diǎn)——我們知道它存在但是很難準(zhǔn)確描述或者根本沒法描述出它到底是什么樣的。我們只能用模型來近似表達(dá)它。當(dāng)然這就會(huì)牽扯到一些概率統(tǒng)計(jì)方面的知識(shí),所以我們?cè)趯W(xué)習(xí)統(tǒng)計(jì)學(xué)習(xí)方法是需要具備一定的概率知識(shí)。
方法:這里所說的統(tǒng)計(jì)學(xué)習(xí)方法,不單單指某一個(gè)模型、某一個(gè)學(xué)習(xí)算法。這里的方法指的是一個(gè)機(jī)器學(xué)習(xí)解決方法。統(tǒng)計(jì)學(xué)習(xí)方法可以分為監(jiān)督學(xué)習(xí)、無監(jiān)督學(xué)習(xí)、半監(jiān)督學(xué)習(xí)、強(qiáng)化學(xué)習(xí)等類型。主要的兩類是監(jiān)督學(xué)習(xí)和無監(jiān)督學(xué)習(xí)。我們?cè)诮y(tǒng)計(jì)學(xué)習(xí)中討論的主要都是監(jiān)督學(xué)習(xí)的問題。監(jiān)督學(xué)習(xí)是統(tǒng)計(jì)學(xué)習(xí)極其重要的分支,也是統(tǒng)計(jì)學(xué)習(xí)中內(nèi)容最豐富、應(yīng)用最廣泛的部分。
下面給出一些定義:
* 假設(shè)要學(xué)習(xí)的模型為某個(gè)函數(shù)空間,將這個(gè)空間稱為假設(shè)空間
* 我們應(yīng)用某個(gè)準(zhǔn)則,從假設(shè)空間中選取一個(gè)最優(yōu)的函數(shù) f(x) 作為模型(最優(yōu)的函數(shù)意味著在給定的準(zhǔn)則下有最優(yōu)的結(jié)果)
實(shí)現(xiàn)統(tǒng)計(jì)學(xué)習(xí)方法的步驟:
* 得到數(shù)據(jù)集,并對(duì)數(shù)據(jù)進(jìn)行預(yù)處理
* 確定假設(shè)空間,即確定模型的集合
* 確定模型選擇的準(zhǔn)則,即確定模型選擇的策略
* 確定、實(shí)現(xiàn)模型最優(yōu)解的求解方法,即確定求解模型的算法
* 得到最優(yōu)模型
* 用得到的模型進(jìn)行預(yù)測、分析,并評(píng)估模型
* 輸入空間:輸入空間是指我們的輸入數(shù)據(jù)的空間,它應(yīng)當(dāng)包含所有可能出現(xiàn)的輸入數(shù)據(jù)(即使在你暫時(shí)給定的輸入數(shù)據(jù)中有些值還沒有出現(xiàn))。我們把一條輸入數(shù)據(jù)稱為一個(gè)樣本或?qū)嵗?,通常我們用x來表示輸入數(shù)據(jù)。此處x是一個(gè)n維向量。
* 輸出空間:輸出空間取決于預(yù)測任務(wù)。若是分類問題,往往輸出空間是一個(gè)離散值的集合,特別的,如果是二分類問題,我們通常有{+1,-1}集合和{1,0}集合。選取其中的哪種視具體情況而定,在實(shí)際意義上來說這兩者沒區(qū)別。如果是回歸問題,輸出空間往往是R,即一個(gè)實(shí)數(shù)空間。對(duì)于生成模型,則要復(fù)雜一些,例如決策樹,輸出的就是一棵樹。
* 假設(shè)空間:這個(gè)前面有提到,指的是模型的空間?;蛘吒鼜V泛一點(diǎn)的,我們說是從輸入空間到輸出空間的映射的空間。
三要素
對(duì)于統(tǒng)計(jì)學(xué)習(xí)方法李航先生有個(gè)很精煉的描述:
統(tǒng)計(jì)學(xué)習(xí)方法=模型+策略+算法
模型:模型是一個(gè)抽象概念,同時(shí)它又是事物的抽象表示。當(dāng)然這是比較具體的模型。它是對(duì)實(shí)物的簡化、縮小化。但是我們說的模型,是對(duì)事物本身和事物之間的聯(lián)系的一個(gè)描述。通常我們?cè)诮y(tǒng)計(jì)學(xué)習(xí)中所說的模型指的是一個(gè)函數(shù)或者是一組函數(shù),以及各種各樣的相關(guān)信息。這些都是數(shù)學(xué)模型。模型描述的是輸入空間到輸出空間的映射。而且模型基本都是有參數(shù)的,拿一個(gè)我們最熟悉的模型來說:y=x。它的原型是y=kx+b,它的參數(shù)是:k和b。
我們所謂的學(xué)習(xí),說是學(xué)習(xí)模型,其實(shí)真正學(xué)習(xí)的是學(xué)習(xí)模型參數(shù)。在我們通過訓(xùn)練數(shù)據(jù)得到一個(gè)假設(shè)空間后,通過訓(xùn)練規(guī)則確定了模型參數(shù),也就確定了一個(gè)唯一的最優(yōu)模型。在統(tǒng)計(jì)學(xué)習(xí)方法中,模型分為兩類。一種是概率模型,通常由條件概率表示。一種是決策模型,它是非概率模型。
算法:在統(tǒng)計(jì)學(xué)習(xí)方法中,我們可以看到,在我們通過思路構(gòu)建出模型,在用我們的策略——求出經(jīng)驗(yàn)損失后,我們需要去優(yōu)化我們的經(jīng)驗(yàn)損失函數(shù)。即使得經(jīng)驗(yàn)損失函數(shù)最小化,來逐步降低我們的訓(xùn)練誤差,使模型逐步逼近真實(shí)模型。通常我們?cè)诘玫狡谕麚p失的時(shí)候,都會(huì)提出一個(gè)最優(yōu)化目標(biāo),我們的優(yōu)化目標(biāo)就是最優(yōu)化期望損失。接下來要做的就是求解這個(gè)最優(yōu)化問題(在推導(dǎo)過程中一般都會(huì)用到最優(yōu)化理論的知識(shí))。很多情況下,我們的問題并沒有解析解。我們無法通過直接解析問題得到一個(gè)解的表達(dá)式。這時(shí)候我們的算法就該幫助我們求解問題。由于計(jì)算機(jī)的特性——計(jì)算速度快、可以并行計(jì)算。為了充分發(fā)揮我們計(jì)算機(jī)的長處,我們的算法通常都具有迭代若干次這一特點(diǎn)。
下面我們介紹一下機(jī)器學(xué)習(xí)里面一種簡單并且廣泛使用的分類技術(shù):
決策樹
機(jī)器學(xué)習(xí)中,決策樹是一個(gè)預(yù)測模型;他代表的是對(duì)象屬性與對(duì)象值之間的一種映射關(guān)系。樹中每個(gè)節(jié)點(diǎn)表示某個(gè)對(duì)象,而每個(gè)分叉路徑則代表的某個(gè)可能的屬性值,而每個(gè)葉結(jié)點(diǎn)則對(duì)應(yīng)從根節(jié)點(diǎn)到該葉節(jié)點(diǎn)所經(jīng)歷的路徑所表示的對(duì)象的值。決策樹僅有單一輸出,若欲有復(fù)數(shù)輸出,可以建立獨(dú)立的決策樹以處理不同輸出。
我們用R中比較經(jīng)典的數(shù)據(jù)集iris來建立一個(gè)決策樹,對(duì)于iris這里就不做過多介紹了。
首先我們需要調(diào)用party包中的ctree( )函數(shù),并且將iris數(shù)據(jù)集分為兩部分,70%用于訓(xùn)練,30%用于預(yù)測
代碼如下:
>set.seed(1,2,3,4)
ind<-sample(2,nrow(iris),replace=TRUE,prob=c(0.7,0.3))
traindata<-iris[ind==1,]
testdata<-iris[ind==2,]
2加載party包來建立一個(gè)決策樹,并進(jìn)行預(yù)測。
代碼如下:
myformula<-Species~Sepal.Length+Sepal.Width+Petal.Length+Petal.Width
iris_tree<-ctree(myformula,data=traindata)
table(predict(iris_tree),traindata$Species)
3下一步打印決策樹
代碼如下:
print(iris_tree)
plot(iris_tree)
plot(iris_tree,type=“simple”)
這兩個(gè)plot函數(shù)代表分別畫出兩種不一樣的圖
(3)加強(qiáng)風(fēng)險(xiǎn)規(guī)范管理。強(qiáng)化數(shù)據(jù)分析應(yīng)用,推進(jìn)財(cái)產(chǎn)行為稅風(fēng)險(xiǎn)管理,加強(qiáng)信息比對(duì),完善各稅種風(fēng)險(xiǎn)特征庫、管理模型和指標(biāo)體系,建立財(cái)產(chǎn)行為稅風(fēng)險(xiǎn)管理機(jī)制,不斷提高風(fēng)險(xiǎn)管理的規(guī)范化水平。
4在測試集上測試決策樹
代碼如下:
testpred<-predict(iris_tree,newdata=testdata)
table(testpred,testdata$Species)
隨機(jī)森林
隨機(jī)森林,指的是利用多棵樹對(duì)樣本進(jìn)行訓(xùn)練并預(yù)測的一種分類器。該分類器最早由Leo Breiman和Adele Cutler提出。簡單來說,隨機(jī)森林就是由多棵CART構(gòu)成的。對(duì)于每棵樹,它們使用的訓(xùn)練集是從總的訓(xùn)練集中有放回采樣出來的,這意味著,總的訓(xùn)練集中的有些樣本可能多次出現(xiàn)在一棵樹的訓(xùn)練集中,也可能從未出現(xiàn)在一棵樹的訓(xùn)練集中。在訓(xùn)練每棵樹的節(jié)點(diǎn)時(shí),使用的特征是從所有特征中按照一定比例隨機(jī)地?zé)o放回的抽取的。
我們?nèi)匀皇褂螟S尾花數(shù)據(jù)集iris,并調(diào)用R中的randomForest()包
代碼如下:
ind<-sample(2,nrow(iris),prob=c(0.7,0.3),replace=TRUE)
trainData<-iris[ind==1,]
testData<-iris[ind==2,]
library(randomForest)
fit<-randomForest(Species~.,data=trainData,ntree=100,proximate=TRUE)
table(predict(fit),trainData$Species)
最后在測試集上進(jìn)行測試
IrisPred<-predict(fit,newdata=testData)
table(IrisPred,testData$Species)
繪制每一個(gè)觀測值被判斷正確的概率
plot(margin(fit,testData$Species))
[1]毛國君等編著.數(shù)據(jù)挖掘原理與算法[M].清華大學(xué)出版社,2005.
[2]李志強(qiáng),宋曉兵.小樣本統(tǒng)計(jì)決策理論,統(tǒng)計(jì)學(xué)習(xí)理論[J].統(tǒng)計(jì)教育,2005(08).
[3]Michael Steinbach.Introduction to Data Mining.
張帥(1991-),男,漢族,山東濟(jì)南人,統(tǒng)計(jì)學(xué)碩士,天津財(cái)經(jīng)大學(xué)研究生院統(tǒng)計(jì)學(xué)專業(yè),研究方向:經(jīng)濟(jì)統(tǒng)計(jì)。
C31
A
1671-1602(2016)18-0202-02