2013-04-18 44 views
0

我在Python中使用LibSVM。在構建分類器之前,我想繪製dC的不同值的交叉驗證的平均誤差,以找到最佳(d, C)組合的平均準確度。我編寫了一個Python腳本來交叉驗證特定的值,並且交叉驗證十次迭代中的每一次的輸出都出現在屏幕上。我現在有2個問題:使用Python在LibSVM中交叉驗證多項式內核

  1. 如何編寫Python腳本,需要在變量dC值作爲svm_parameter功能參數。 svm_parameter('-d dval')給出了錯誤:

    ValueError : invalid literal for int() with base 10:dval 
    
  2. 如何記錄輸出數據 - 我無法找到一個方法來保存每個分類的準確性,除非我手動從UNIX屏幕複製。有沒有辦法訪問和保存輸出文件?

謝謝。我是Python的新手。

+0

解決了第1部分使用svm_predict返回的值並將它們寫入Python中的文件。仍然需要幫助處理ValueError – ame

回答

1

我強烈建議您使用優秀的sklearn庫來完成您的任務。它還具有LibSVM的封裝(請參見svm.SVC),但此外還爲您提供cross-validation的所有必要工具,通過度量模塊和大量其他有用工具來簡單測量準確度,從而找到最佳的d和C.

關於值的錯誤,python嘗試將字符串dval轉換爲整數。如果dval是保存值爲d的變量,那麼您可能想要執行類似svm_parameter('-d %s' % dval)的操作。

+0

恐怕我現在沒有時間弄清楚新的環境。對ValueError的修復將會解決我目前的問題。我將在未來的sklearn圖書館考慮,謝謝! – ame

+0

在答案中添加了對評估錯誤的解釋,希望對您有所幫助 –