現在你進入了兩難的境地。乙個是來自使用者的小的資料集,它是一種分布,而另乙個是大得多的資料集,來自另乙個分布,的外觀和你真正想要處理的並不一樣。那麼你該怎麼做呢?
這裡有一種選擇,你可以將兩種資料組合在一起,這樣你就有了21萬張,然後將這21萬張隨機分配到訓練、開發和測試集中。這麼做有一些好處,你的訓練集、開發集和測試集都來自同一分布,這樣更好管理。但壞處在於,而且壞處還不小,就是如果你觀察開發集,看看這2500個樣本,裡面很多都是網頁上的,並不是你真正關心的,你真正要處理的是來自手機的。根據分布,2500個樣本中真正來自於使用者的期望只有119。設立開發集的目標是瞄準你的目的,而採用這種方式很大程度都在優化網路,這並不是你想要的。所以,這乙個選項不推薦考慮。
第二個選項還是205000張,5000張來自於。但是開發集和測試集都是2500張使用者。這樣將資料分成訓練集、開發集和測試集的好處在於現在你瞄準的目標就是你想要處理的目標。缺點在於分布不一樣。但事實證明這樣劃分在長期能給你帶來更好的系統效能。
分析方差和偏差會讓你確定乙個方向,但當資料分布不同時,分析偏差和方差的方式可能不一樣。
同樣以貓分類問題舉例子,對於同一分布,訓練集誤差為1%而開發集誤差為10%,那麼你會說存在很大的方差問題。但是如果是不同分布,這個結論就不能輕易的下了。特別是,也許演算法在開發集上做的不錯,可能是因為訓練集很容易識別,因為訓練集都是高解析度,但開發集難識別的多。所以也許模型並沒有方差問題,這只不過反映了開發集包含更難準確分類的。所以這個分析的問題在於,當你看訓練誤差,再看開發誤差,有兩件事變了。首先演算法只見過訓練集資料,沒見過開發集資料。第二,開發集資料來自不同的分布,而且因為你同時改變了兩件事情,很難確認這增加的9%誤差,有多少是因為演算法沒看到開發集中的資料導致的,這是問題方差的部分。以及有多少是因為開發集資料就是不一樣導致的。為了弄清楚哪個因素影響更大,定義一組新的資料是有意義的,我們稱之為訓練-開發集,這是乙個新的資料子集。這個資料集來自於訓練集,與訓練集同一分布,但是不參與到訓練中。
從上圖可以看到,第一種就是屬於方差問題,第二種屬於資料不匹配的問題。因為貝葉斯誤差基本為0,所以第三種是存在偏差問題了。而第四個例子不僅有偏差還有方差問題。
你突然發現在開發集上和測試集上表現良好。如果你發現這種現象,這說明訓練集資料其實比你的開發集和測試集難識別的多,才導致了誤差 下降。
這裡以後視鏡語音識別的例子介紹一下更普適的分析。事實證明,我們可以將這些誤差放到一張表中。水平軸上放入不同的資料集,
第一項可能是來自小型智慧型音箱的語音識別問題的資料。第二項是收集的和後視鏡(rear view)有關的語音資料。
如果你的訓練集來自和開發測試集不同的分布,如果誤差分析顯示你有乙個資料不匹配的問題,該怎麼辦?這個問題沒有完全系統的解決方案,但我們可以嘗試一些東西。
機器學習4
題外話,今天導師給我安排了乙個師兄帶我,是做推理方面的,自然語言處理領域太廣,也不知道推理具體做什麼的,哈哈,努力吧 機器學習第5章走起。如果h是無限大的怎麼辦呢?h的大小我們用m表示。small m 當m小的時候,p bad 2m.自然可以說p bad 相對較小,但是當m很小的時候,也說明h的個數...
機器學習 4
十三 svm 線性可分svm原理 十四 svm 直觀理解拉格朗日乘子法 十五 svm對偶學習 十六 線性svm 間隔由硬到軟 十七 非線性svm和核函式 十八 svr 一種寬容的回歸模型 十九 直觀認識svm和svr 二十 hmm 定義和假設 二十一 hmm 三個基本問題 概率計算問題 問題 學習問...
機器學習No 4
1.也就是資料清洗的一步,最簡單的方法是刪除法 刪除列 刪除行。2.另一種是填補法 對於數值型變數 平均值填補 中位數填補等。其他的方法 1 填補上下值 2 插值法擬合出缺失的資料進行填補 for f in features 插值法填充 train data f train data f inter...