兩個常見概念:
過擬合:是指為了得到一致假設而使假設變得過度嚴格。當機器學習把訓練樣本學習得「太好」,可能把訓練樣本自身的一些特點當成了所有潛在樣本都具有的一本性質,這樣舊會導致泛化效能下降,這種現象在機器學習中成為過擬合overfitting.
欠擬合:是指模型擬合程度不高,即模型沒有很好地捕捉到資料特徵,不能夠很好地擬合資料。通常是由於學習能力低下而造成的。
乙個直觀化的模擬,如下圖所示:
常見的三種資料集處理方法:
通常,我們在「訓練集」training set來對演算法進行訓練,在「測試集」tesing set上對演算法進行測試,通過得到的誤差,來對演算法進行評估。這就要求,測試集和訓練集互斥,用new data去測試old data上訓練處的演算法。
所以,當我們拿到乙個資料集d時,為了得到訓練集s,測試集t,通過有下面幾種做法:
1.留出法:
d=s∪t,s∩t=∅
同時,s和t的劃分也要使用「分層取樣」,使資料分布盡量平均,避免因資料劃分引起的額外誤差。
2.交叉驗證法:
將d劃分為n個大小相似的互斥子集,每次用n-1個做訓練集,剩下那個做測試集。
3.自助法:
上面兩種方法的訓練集都小於d,這樣可能會引入一下因訓練樣本規模不同而導致的估計偏差,這時可以採用自助法。
它以自主取樣法為基礎,例如資料集d中有m個樣本,則取樣m次,放入d',作為訓練集。然後拿沒在訓練集**現的資料,用於測試集。然而,自助法產生的資料集改變了初識資料集的分布,可能會引入估計偏差,因為,在資料量足夠時,前兩種方法更加常用。
reference: 西瓜書
ML中的資料預處理
如何快速讀取大量小檔案?做乙個比賽時,有上萬個很小的csv檔案,想要把他們合併起來,發現依次讀取非常慢。能想到的思路是多執行緒讀取。python多執行緒不熟,我直接寫了幾個python指令碼處理讀取不同的資料,然後同時執行,然後把每個指令碼合併的結果再進一步合併,得到最終的檔案。如何快速讀寫訓練集?...
ML 資料處理
可以不需要自己開發,使用cloudcompare的分割合併功能實現點雲標註 labeling 生成點雲訓練集資料。1 首先對點雲中的物體進行分割,分割出乙個乙個的類別。2 接著刪除所有的sf,使用add constant sf功能,新增乙個sf名字為classification,值為類別值 1,2,...
ML 資料與資料預處理
在做機器學習的一些相關工作過程中,很多任務作涉及資料的處理,資料處理的好壞也直接影響實驗的最終結果,這裡將資料處理過程中的一些方法總結一下。機器學習裡有一句名言 資料和特徵決定了機器學習的上限,而模型和演算法的應用只是讓我們逼近這個上限。樣本資料集的數量和質量是否滿足模型構建的要求?有沒有出現從未設...