回答
交叉驗證是當你保留你的數據的一部分,評估模型使用。有不同的交叉驗證方法。最簡單的概念是隻需要70%的數據(只需填寫一個數字,並不一定是70%)並將其用於培訓,然後使用剩餘的30%數據來評估模型的數據性能。你需要不同的數據來訓練和評估模型的原因是爲了防止過度配合。還有其他的(稍微涉及到的)交叉驗證技術,當然就像在實踐中經常使用的k-fold交叉驗證一樣。
網格搜索意味着你有一組模型(從對方在他們的參數值,其躺在一個網格不同)。你所做的是,然後訓練每個模型並使用交叉驗證對其進行評估。然後選擇一個效果最好的。爲了舉個具體的例子,如果你使用的是支持向量機,你可以使用不同的值爲gamma
和C
。因此,例如,您可以使用以下值爲(gamma, C)
的網格:(1, 1), (0.1, 1), (1, 10), (0.1, 10)
。這是一個網格,因爲它就像[1, 0.1]
對於gamma
和[1, 10]
對於C
的產品。網格搜索基本上會針對這四對(gamma, C)
值中的每一對訓練SVM,然後使用交叉驗證對其進行評估,並選擇效果最好的一個。
交叉驗證是一種穩健估計模型的測試集性能(泛化)的方法。 網格搜索是一種選擇模型系列中最好的一種方法,通過參數網格進行參數化。
這裏的「模型」我不帶參數,如SVC(C=1, kernel='poly')
意味着一個受過訓練的情況下,更多的算法一起。
(我不知道是否有資格作爲簡單的話,我只是想給一個簡短的,consise定義除了或者尼曼的很好的解釋)
交叉驗證,只需分離試驗和訓練數據和用測試數據驗證訓練結果。我知道有兩種交叉驗證技術。
首先,測試/火車交叉驗證。將數據分解爲測試和訓練。
其次,k折交叉驗證分割數據爲k箱,使用每個倉作爲測試數據,並使用該數據作爲訓練數據的其餘部分和驗證對測試數據。重複該過程k次。並獲得平均表現。 k-fold交叉驗證特別適用於小型數據集,因爲它可以最大化測試數據和訓練數據。
網格搜索;系統地通過參數曲調的多個組合進行交叉驗證,交叉驗證每個組合,並確定哪一個能夠提供最佳性能。您可以通過多種組合來改變參數。
- 1. WSO2 ML交叉驗證和網格搜索
- 2. 交叉驗證在網格搜索(libsvm)中非常緩慢
- 3. 交叉驗證與Scikit中的網格搜索學習
- 4. 設置交叉驗證參數網格搜索
- 5. sci-kit學習SVC概率輸出的網格搜索交叉驗證
- 6. 交叉驗證
- 7. Keras和交叉驗證
- 8. GBM交叉驗證
- 9. SKLearn交叉驗證:
- 10. 交叉驗證與
- 11. 做交叉驗證
- 12. R交叉驗證
- 13. 驗證二叉搜索樹 - JavaScript的
- 14. 套索:交叉驗證用於glmnet
- 15. JSR交叉提交驗證
- 16. Scikit-learn中KNN分類器中的網格搜索參數和交叉驗證數據集
- 17. 網格網格交叉點
- 18. 二叉搜索樹相交
- 19. Matlab交叉驗證和K-NN
- 20. LDA交叉驗證和變量選擇
- 21. 功能選擇和交叉驗證
- 22. ROC曲線交叉驗證
- 23. LightGBM中的交叉驗證
- 24. K-折交叉驗證
- 25. 交叉表數據驗證
- 26. 交叉驗證錯誤
- 27. SAS中的交叉驗證
- 28. 交叉驗證過程
- 29. 與ROC交叉驗證?
- 30. 10倍交叉驗證
我明白這一點。但是在scikit-learn的例子中,首先通過執行'X_train,X_test,y_train,y_test = train_test_split( X,y,test_size = 0)來分割data_set。5,random_state = 0',然後網格中搜索'clf = GridSearchCV(SVC(C = 1),tuned_parameters,cv = 5,scoring = score)'這意味着第一步分裂爲例如1000訓練設置爲500列車和500個測試對象,然後網格搜索將500的訓練集分割爲「cv = 5」5倍交叉驗證?因此,500個對象分爲250和250或400和100等等?! – Linda
是的,沒錯。在網格搜索模型選擇(使用5倍交叉驗證)之後,一半數據保留用於評估**。原因是他們不僅想要選擇最佳模型,而且要對它的泛化程度(它在新數據上表現如何)有一個很好的估計。您不能僅僅使用網格搜索交叉驗證得分,因爲您選擇的得分最高的模型,因此可能會在其得分中加入某種選擇偏差。所以這就是爲什麼他們在網格搜索結束後保留部分數據進行測試。 –