前面提到了資料集分為訓練集和測試集,訓練集用來訓練模型,而測試集用來測試模型的好壞,那麼單一的測試是否就能很好的衡量乙個模型的效能呢?
答案自然是否定的,單一的測試集具有偶然性和隨機性。因此本文介紹一種衡量模型(比如分類器)效能的方法——十折交叉驗證(10-fold cross validation)
什麼是十折交叉驗證?
假設有個資料集,需要建立乙個分類器,如何驗證分類器的效能呢?
將資料集隨機均為為10份,依次選擇某1份作為測試集,其他9份作為訓練集,訓練出來的模型對測試集進行分類,並統計分類結果,就這樣,重複10次實驗,綜合所有分類結果,就可以得到比較穩定的評價結果(當然,由於是隨機劃分資料集,因此每次執行結果都不一致)。
附:當然也可以選擇k折交叉驗證,最極端的就是留1交叉驗證,每次只留乙個樣本做測試集,但這樣的計算規模太大。
混淆矩陣:confuse matrix
假設有n個類別,那麼分類結果的統計可以通過乙個n*n的矩陣來表示,即混淆矩陣。
對角線即為分類正確的樣本數。
十折交叉驗證
交叉驗證主要分成以下幾類 1 k folder cross validation k個子集,每個子集均做一次測試集,其餘的作為訓練集。交叉驗證重複k次,每次選擇乙個子集作為測試集,並將k次的平均交叉驗證識別正確率作為結果。優點 所有的樣本都被作為了訓練集和測試集,每個樣本都被驗證一次。10 fold...
十折交叉驗證 crossvalind函式
indices crossvalind kfold n,k 該命令返回乙個對於n個觀察樣本的k個fold 意為折,有 層 之類的含義,感覺還是英文意思更形象 的標記 indices 該標記中含有相同 或者近似相同 比例的1 k的值,將樣本分為k個相斥的子集。在k fold交叉檢驗中,k 1個fold...
深度學習 十折交叉驗證
用scikit learn來評價模型質量,為了更好地挑揀出結果的差異,採用了十折交叉驗證 10 fold cross validation 方法。本程式在輸入層和第乙個隱含層之間加入20 dropout 採用十折交叉驗證的方法進行測試。dropout in the input layer with ...