1. 程式人生 > >機器學習(評估方法)

機器學習(評估方法)

2.留出法:將資料集D劃分為兩個互斥的集合,其中一個集合作為訓練集S,另一個作為測試集T,隨機劃分,重複實驗產生多個訓練/測試集,取實驗平均值。(注:通常,會將D中大約2/3−4/5的樣本作為訓練集,其餘的作為測試集,不然,可能會導致評估結果不夠準確穩定。)

3.交叉驗證法:將資料集D劃分為k個大小相似的互斥子集,每個子集儘可能保持資料分佈的一致性,每次用k-1個子集的並集作為訓練集,剩餘的那個子集作為測試集,這樣就可以獲得k組訓練/測試集,取k個測試結果的均值。

3.1交叉驗證法特例(留一法):當資料集D中包含m個樣本,令k=m,則得到交叉驗證法的一個特例,顯然留一法是不受隨機樣本劃分方式的影響。(缺點:當資料集樣本比較大時,計算量就會很大)

3.1.0 NFL(No Free Lunch Theorem)定理:無論演算法多聰明或笨拙,它們的期望效能是相同的。

比如西瓜問題,考慮{假設1:好瓜(色澤=*)^(根蒂=蜷縮)^(敲聲=濁響)}和{假設2:好瓜(色澤=*)^(根蒂=堅硬)^(敲聲=清脆)}。從NFL定理可知,這兩個假設同樣好。我們可以想到例子,對好瓜(色澤青綠、根底蜷縮、敲聲濁響)是假設1更好,而對好瓜(色澤烏黑、根蒂硬挺、敲聲清脆)則是假設2更好。看上去的確如此。但實際上(根蒂蜷縮敲聲濁響)的好瓜很常見,而(根蒂硬挺敲聲清脆)的好瓜罕見,甚至不存在。

    所以NFL最重要的意義,是讓我們清楚的認識到,脫離具體問題,空泛地談“什麼學習演算法更好”毫無意義。因為若考慮所有潛在問題,那麼所有學習演算法一樣好,要談論演算法優劣性,必須針對具體的學習問題。

總結:只要能達到期望,無論演算法的快慢,但是我們應該根據具體的問題去具體分析,

4.自助法:即我們每次從資料集D中取一個樣本作為訓練集中的元素,然後把該樣本放回,重複該行為m次,這樣我們就可以得到大小為m的訓練集,在這裡面有的樣本重複出現,有的樣本則沒有出現過,我們把那些沒有出現過的樣本作為測試集。進行這樣取樣的原因是每個樣本不被採到的概率為1−1m1−1m,那麼經過m次取樣,該樣本都不會被採到的概率為(1−1m)m(1−1m)m,那麼取極限有limm→∞(1−1m)m→1e≈0.368limm→∞(1−1m)m→1e≈0.368,因此我們可以認為在D中約有36.8%的資料沒有在訓練集中出現過 這種方法對於那些資料集小、難以有效劃分訓練/測試集時很有用,但是由於該方法改變了資料的初始分佈導致會引入估計偏差。

總結

  1. 對於資料量充足的時候,通常採用留出法或者k折交叉驗證法來進行訓練/測試集的劃分;
  2. 對於資料集小且難以有效劃分訓練/測試集時使用自助法
  3. 對於資料集小且可有效劃分的時候最好使用留一法來進行劃分,因為這種方法最為準確