將原始資料(dataset)分組:
一部分為訓練集(train set)
一部分為驗證集(validation set)
用訓練集對分類器進行訓練,再利用驗證集來測試訓練得到的模型(model),以此來做為評價分類器的效能指標.
將原始資料隨機分為兩組,一組做為訓練集,一組做為驗證集,利用訓練集訓練分類器,然後利用驗證集驗證模型,記錄最後的分類準確率為此hold-outmethod下分類器的效能指標.
優缺點優點:處理簡單,只需隨機把原始資料分為兩組即可
缺點:嚴格意義來說hold-out method並不能算是cv,因為這種方法沒有達到交叉的思想,由於是隨機的將原始資料分組,所以最後驗證集分類準確率的高低與原始資料的分組有很大的關係,所以得到的結果並不具有說服性.
將原始資料分成k組(一般是均分),將每個子集資料分別做一次驗證集,其餘的k-1組子集資料作為訓練集,這樣會得到k個模型,用這k個模型最終的驗證集的分類準確率的平均數作為此k-cv下分類器的效能指標.
k一般大於等於2,實際操作時一般從3開始取,只有在原始資料集合資料量小的時候才會嘗試取2.
優缺點可以有效的避免過學習以及欠學習狀態的發生,得到的結果也較具有說服性.
如果設原始資料有n個樣本,那麼loo-cv就是n-cv,即每個樣本單獨作為驗證集,其餘的n-1個樣本作為訓練集,所以loo-cv會得到n個模型,用這n個模型最終的驗證集的分類準確率的平均數作為此下loo-cv分類器的效能指標.
優缺點優點:
1.每一回合中幾乎所有的樣本皆用於訓練模型,因此最接近原始樣本的分布,這樣評估所得的結果比較可靠。
2.實驗過程中沒有隨機因素會影響實驗資料,確保實驗過程是可以被複製的。
缺點:
計算成本高,因為需要建立的模型數量與原始資料樣本數量相同,當原始資料樣本數量相當多時,除非每次訓練分類器得到模型的速度很快,或是可以用並行化計算減少計算所需的時間
scikit learning 交叉驗證
import numpy as np from sklearn import datasets from sklearn.cross validation import train test split from sklearn.neighbors import kneighborsclassifi...
交叉驗證(cross validation)
交叉驗證是資料分析時模型選擇的方法之一,將資料集分為三份,分別為訓練集 training set 驗證集 valication set 和測試集 test set 分別功能為訓練模型,選擇模型和對學習方法的評估。其演算法的思想為重複的使用資料,使得模型的精度越來越高。交叉驗證的方法有以下三種 1.簡...
交叉驗證(Cross validation
交叉驗證 cross validation 交叉驗證用於防止模型過於複雜而引起的過擬合 作用 如何交叉驗證 我這裡主要介紹k交叉驗證 1 將資料集分成k份 2 對於每乙個模型 拿多項式回歸舉例,m 2為乙個模型,m 3為乙個模型。我們主要就是尋找最好的m for j 1,2,k 將除第j份的所有資料...