從統計學中學習機器學習的基本知識梳理
前言:
本文從統計學入手,梳理統計學中機器學習的基本知識,從概念和思想上理解統計學的基礎以及監督學習,非監督學習,半監督學習和強化學習。
一、統計學框架
統計學:研究隨機現象和統計規律性的一門學科。研究如何以有效的方式收集、整理和分析受隨機因素影響的數據。它以概率論爲基礎推斷或預測受隨機因素影響的數據。本文講解統計學內容如下:
二、描述性統計
1、總體、個體、樣品、樣本、樣本容量之間的關係
個體組成總體,總體抽取若干個體形成樣本,樣本由樣品組成,因此樣品一定是個體,而個體不一定是樣品,樣本的數量稱爲樣本容量。他們之間關係的示意圖如下:
2、樣本表示爲x(1) ,x(2) ,… ,x(n) ,其中x(i)=(xi1,xi2,…,xip)T
3、樣本矩陣表示爲
4、設x(1) ,x(2) ,… ,x(n)是總體X的樣本,T(x(1) ,x(2) ,… ,x(n))是樣本的實值函數,且不包含任何位置參數,則成T(x(1) ,x(2) ,… ,x(n))爲統計量。對於單總體常見的統計量有:
5、對於多總體情況:k個總體 G1,G2,…,Gk
對於每個總體Gα(α=1,2,…,k),都有相應的樣本矩陣Xα=(xij(α)),維數:nα*p
把k個樣本矩陣拼在一起(上下疊在一起)構成一個總的樣本矩陣
三、監督學習
1、對於樣本數據x有對應標記y的監督學習,根據研究對象y爲定性或者定量數據的情況,分別進行判別或者回歸分析。
2、定性數據是連續量,取值無限且數據有大小;定性數據是離散量,取值很少(一般2-10個),通常數據無大小。其實定性和定量並沒有一個明確的界限。
3、迴歸分析是研究自變量和因變量之間的關係,迴歸模型如下:
4、經驗迴歸方程用於對模型進行估計,方程如下:
四、線性迴歸
1、線性迴歸模型如下
2、線性迴歸工作流程:
1、參數估計,解出β0,β1,β2,…,βp
2、假設檢驗迴歸函數是否爲線性(通過F統計量檢驗)
3、得到經驗迴歸方程y尖,進行估計
4、變量選擇
5、模型評價
3、迴歸模型誤差平方和Q公式如下:
4、最小二乘估計
1、使得誤差平方和Q達到最小值的方法就是最小二乘估計,推導得最小二乘估計公式如下
2、最小二乘估計的優點是公式簡單顯示,直接套公式就可以得到結果且是無偏估計;缺點是公式中一旦|ZTZ|=0,則無法得到結果。
3、|ZTZ|=0的常見情況有兩種,一種是樣本數量n<<p(高維數據),另一種是自變量之間存在自相關;如果樣本數據存在上述情況,就需要用其它方法進行參數估計。
5、最小一乘估計和嶺估計
1、誤差絕對值之和公式如下:
2、使得誤差絕對值之和達到最小的方法稱爲最小一乘估計
3、嶺估計是對最小二乘估計缺點的優化,其減少了|ZTZ|=0的情況,公式如下:
6、線性迴歸模型效果評價(檢驗)
1、對於迴歸模型效果的評價,差用誤差平方和的方法進行評價。若訓練出的迴歸模型在樣本數據中計算的誤差平方和越小,則表明該模型越好。
2、但僅僅使用訓練樣本計算誤差平方和去評價模型的好壞很明顯有所有不足,因爲訓練樣本計算的誤差平方和值僅僅表明迴帶效果或擬合效果,而不能表明預測效果的好壞。因此需要將樣本數據在使用前劃分爲兩個樣本,一個用於訓練模型和檢驗擬合效果,這個樣本稱爲訓練樣本;另一個用於檢驗預測效果,這個樣本稱爲測試樣本。
3、那麼如何在訓練模型之前將樣本數據劃分爲訓練樣本和測試樣本兩個部分呢?
如果樣本數據充足,那麼一般按照8:2的比例將樣本數據分別劃分爲訓練樣本和測試樣本;
如果樣本數據太少,那麼可以使用K折法,或者留一法(K折法中的k取1)進行樣本數據的劃分。
總之,模型更注重的是預測效果的好壞,在保證擬合效果和預測效果的同時,需要更加註重預測效果,可以參照此原則進行樣本數據的劃分。
7、線性迴歸模型函數中變量的選擇
1、如果模型中變量過多會導致計算複雜、預測y值很複雜(就像醫生檢查病一樣,如果指標太多了,那麼檢查的程序就很複雜)並且很可能導致高維數據(正常線性迴歸模型要求n>5p,即樣本數量是變量的5倍)
2、傳統的變量選擇有
向前法:一個一個的加入變量,同時一個一個的計算誤差平方和進行評價,最終得到合適數量的變量。
向後法:先得到一個考慮所有變量的複雜模型,再一個一個的刪除變量,同時一個一個的計算誤差平方和進行評價,最終得到合適數量的變量。
逐步法:是爲了解決向前或向後存在的增加或者刪除變量後就無法再將其刪除或者增加進模型中的問題。逐步法及考慮在模型中加入變量又考慮刪除變量
全部法:衡量和評價所有變量組合模型的好壞(全局最優),但一般計算量太大,目前幾乎不能在現實中運用。
3、採用參數估計與變量選擇同時進行的方法
比如LASSO方法,在參數估計的同時,結果得到的解中很多變量的參數爲0(稀疏解),其中參數爲0的變量就可以捨去,這就起到了變量選擇的作用。
五、非參數迴歸
1、對於一個迴歸模型,如果並不知道迴歸函數的形式,那麼這種情況下,我們及不必考慮迴歸函數形式,而是直奔主題,直接估計待估計yn+1的值。
2、非參數迴歸的思想是: 通過確定樣本數據中每個標記yi對於所需求的yn+1所造成的影響大小即權重wi,進而將各個yi與權重wi相乘並求和得到的結果就是yn+1的估計值。
舉個例子:比如有一個樣本數據是某班級所有女同學的體重和身高數據,那麼某一天一個漂亮的妹子轉入本班,妹紙知道自己的體重但並不知道自己的身高,那麼如何得知她的身高是多少呢?這種情況我就可以採取權重求和來解決,首先將班級中體重與她相近的女同學的身高賦予較大的權重,相差較大的賦予較小的權重,之後進行加權求和求平均,就可以得到這個妹子的大概身高。這種思路就是非參數迴歸思想。
3、非參數迴歸模型的經驗迴歸方程如下
4、那麼有兩個問題
第一、如何選擇權重函數呢?
基本原則是xi與xn+1關係越接近,那麼權重值越大
第二、用什麼衡量xi與xn+1的關係呢?
大部分用xi與xn+1之間的距離來衡量,距離越小,則相關越大。因此可以理解核函數中k(u)中的(xi – x)是x與xi之間的距離。
5、基於第一個問題的原則,那麼核函數k(u)應滿足以下條件:
6、常用的核函數有高斯核和均勻核
7、因此非參數迴歸必須要確定三件事
首先,確定核函數k(u)
其次,確定窗寬hn
最後,確定如何計算xi與x之間的距離
根據研究結果表明,核函數的選擇不是很重要,關鍵是窗寬的選擇對結果影響很大。所以,我們大可不必糾結用什麼核函數(大多是用高斯核),而應該把重心放在如何確定自己的窗寬
六、判別分析
1、距離判別
距離判別的思想就是樣品x距離哪個總體Gα最近,那麼就把這個樣品判別爲總體Gα。即對於任一樣品x,若D(x,Gi)=minD(x,Gα)其中,1=<α<=k,則判定x屬於Gi
根據上面距離判別思想的解釋,我們可以知道距離判別關鍵在於距離的求解,那麼距離是什麼呢?又如何求距離呢?
1.1、首先,只要滿足三個公理就是距離
第一、非負性 D(x,y)>=0
第二、對稱性 D(x,y)=D(y,x)
第三、滿足三角不等式 D(x,y)<=D(x,z)+D(z,y)
滿足這三個條件的情況很多,因此距離也有很多,常見的距離有:
1.2、每個樣品都是一個p維向量,我們可以把樣品看作p維空間上的一個點。具體距離包括如下:
1.3、具體距離計算公式如下:
樣品與樣品之間的距離,設樣品x1,x2來自總體G={x1,x2,…,xn}
樣品與總體之間的距離,設樣品爲x,總體爲G={x1,x2,…,xn},總體的均值爲 μ,方差爲∑。
總體與總體之間的距離,總體1爲G1={x1,x2,…,xn},總體1的均值μ1,方差爲∑1;總體2爲G2={y1,y2,…,ym},總體1的均值爲μ2,方差爲∑2。
1.4、判別方法評價
使用正確率來評價判別方法的好壞,正確率是經判別方法,正確樣本個數m與總樣品個數n之比,即m/n;
回代正確率:用訓練樣本計算的正確率,表明回代效果(擬合效果)
預測正確率:用測試樣本計算的正確率,表明預測效果
1.5、距離判別優缺點
優點:簡單直觀
缺點:不知如何確定距離(距離類型很多);把總體等同看待,沒有考慮到總體會以不同的概率出現,認爲判別方法與總體各自出現的概率大小無關,判別方法與判錯之後所造成的損失無關,沒有考慮誤判之後所造成的損失差異。
2、Bayes判別
1、Bayes判別準則I
對任一樣品x,計算樣品判給Gα所造成的損失Dα(x),判給哪個總體的損失越小,就把該樣品判給哪個總體,即若Dt(x)=min Dα(x) (1=<α<=k),則判定x屬於Gt,Dα(x)計算公式如下:
2、Bayes判別準則II
如果損失函數L(j|i)在i不等於j時都相同,則採用概率最大原則,即對任一樣品x,若qtft(x) = max qαfα(x) 其中1=<α<=k,則判定x屬於Gt,這種判別方法不要將損失函數計算其中了。
3、Bayes判別準則III
待更新…
3、Fisher判別
待更新…
4、支持向量機
待更新…
5、隨機深林
5.1、集成學習思想
5.2、自助法
5.3、bagging
5.4、決策樹
待更新…
七、非監督學習
1、主成分分析
1.1、理論思想、算法和相關注意
1.2、簡單例子
某中學生身體四項指標數據
2、聚類分析
1、聚類分析整體框架圖
2、系統聚類法(譜系聚類法)知識結構圖
2.1、基本算法:
基本算法:用k表示剩下的總類數,用i表示聚類的次數。
(1)每個樣品自成一類,計算樣品兩兩之間的距離,得到樣品之間的距離矩陣 D(0) =(d(0)ij)n*n ,這時i=1,k=n;
(2)合併距離最小的兩類成爲新的一類,並取消合併的那兩個類,這時剩下的總類數k=n-i;
(3)計算距離矩陣D(i) =(d(i)ij)k*k:對矩陣 D(i-1) ,刪除合併的那兩個類所在的行和列,再增加一行一列,即新類與剩餘的其它類之間的距離,就得到D(i);
(4) i=i+1;
(5) 重複步驟(2)~(4),直到 k=1 ;
(6) 繪製聚類圖。
2.2 、簡單例子
3、動態聚類(k-means)知識結構圖
3.1、k-means(關注中心點)的簡單例子