我有1960年樣本的數據集,有12個特徵,並嘗試使用980樣本訓練和980樣本測試來解決二元分類問題。對於我正在使用「svmtrain」進行培訓並對我使用「svmclassify」進行分類。是否可以繪製訓練錯誤VS訓練樣本號? 有什麼建議嗎? 我是matlab和SVM的新手。如何在Matlab中使用svmtrain繪製誤差與訓練樣本數
-1
A
回答
1
重要的是要考慮諸如SVM和神經網絡之類的方法之間的差異。當訓練一個神經網絡時,你用初始權重開始訓練,然後通過你的訓練樣本一步一步。你基本上會有一個for循環遍歷每個訓練樣本並應用任何訓練算法。因此容易評估訓練中的錯誤分類錯誤,例如,每100個樣本之後。
然而SVM的工作方式不同:訓練SVM時,您構造了一個一個方程,它描述了整個問題。這通常是
形式最小化的
||w||
規範,受y_i (w * x_i - b) >= 1
所有i
訓練樣本。
凡w
是在分離超平面的法線矢量,b
是一個超平面到原點的偏移,x_i
是訓練樣本和y_i
是訓練樣本的標籤。這是一個優化問題,因此您需要尋找一種最小化||w||
的解決方案,一旦找到這樣一個w
,算法就完成了。 但是:您所有的訓練樣本都用於訓練,因此您沒有像神經網絡那樣的逐個樣本的過程,只能在整個訓練結束後才能評估錯誤分類錯誤,所有樣本已完成。
爲了能夠繪製誤分VS在支持向量機訓練樣本的數量,你將不得不運行SVM功能svmtrain
(或者,如果你有一個新的MATLAB版本fitcsvm
)多次使用不同數量的訓練樣本並評估錯誤。
最後一個注意事項:如果您只驗證訓練錯誤,請將門打開以防過度配合。這意味着您的算法正確地學習了您的訓練數據的特徵,但不能將這些知識推廣到新數據。因此,您在訓練中的錯誤率會非常低,但在新數據上會失敗。爲了防止過度配合,您可以使用一個很小的驗證數據集(可能是您的培訓數據的5-10%),您不用它進行培訓。訓練SVM後,可以評估驗證數據集上的錯誤分類錯誤,並檢查訓練數據集和驗證數據集中的錯誤率非常相似,因此您可以確定新數據也可以正確分類。
相關問題
- 1. 如何測量使用svmtrain時的訓練錯誤
- 2. 如何在opencv中訓練樣本
- 3. 如何在MATLAB中訓練數據以便在ANFIS中使用?
- 4. 使用MATLAB svmtrain
- 5. 如何在使用Caffe訓練時獲得訓練錯誤?
- 6. Matlab(ANFIS)訓練錯誤
- 7. 如何在Logitboost中繪製r中的訓練損失與迭代次數?
- 8. 如何在MATLAB上開始SVM訓練
- 9. opennlp疾病樣本訓練數據
- 10. Inria數據集訓練matlab錯誤使用neg文件
- 11. 如何在MATLAB中訓練大數據集以進行分類
- 12. 如何在matlab R2010a中繪製水平誤差條?
- 13. 當根據訓練集訓練分類器時,如果某些訓練樣本比其他訓練樣本更值錢(更有價值),我該怎麼辦?
- 14. 在matlab中訓練神經網絡
- 15. 從定製數據訓練UBM與sidekit
- 16. 跟蹤計數在訓練中使用
- 17. Matlab:如何在3D中繪製文本
- 18. 如何在apache模型訓練後對新的訓練樣例進行分類?
- 19. 如何修復測試,並使用MATLAB的SVM訓練集?
- 20. 訓練SVM與可變大小的訓練圖像描述符(MATLAB)
- 21. matlab繪圖值與錯誤或偏差
- 22. 如何訓練matlab中的SVM用於字符識別?
- 23. 在Matlab中繪製錯誤
- 24. 如何在Matlab中逐步訓練神經網絡?
- 25. 如何在Matlab中從RGB圖像創建訓練示例?
- 26. 如何在matlab中訓練支持向量機?
- 27. 如何在MATLAB中訓練英國車牌的神經網絡?
- 28. 如何在Matlab中訓練SVM,超過2級
- 29. 誤差與MATLAB
- 30. 如何在C#中使用tesseract 3.02訓練過的數據?
什麼是「培訓錯誤」在這種情況下?你的意思是錯誤分類錯誤的基礎事實? – rayryeng
嗯...請嘗試澄清您的問題,並且有人可能會提供幫助。 – ConfusinglyCuriousTheThird
是的「訓練錯誤」我的意思是錯誤分類錯誤的基礎真相 –