我們可以使用svm.SVC.score()
來評估SVM模型的準確性。我想在預測錯誤的情況下得到預期的課程和實際的課程。我如何在scikit-learn
中實現這個目標?scikit-learn中可以得到SVM評分函數中的錯誤預測列表嗎?
1
A
回答
2
這取決於你想要哪種形式的錯誤預測。對於大多數用例來說,混淆矩陣應該足夠。
混淆矩陣是實際類別與預測類別的圖表,因此圖表的對角線是所有正確的預測,其餘單元是不正確的預測。
你可以看到sklearn的Confusion Matrix example混淆矩陣的一個更好的例子。
如果您只是想要列出所有錯誤分類的值以及它們的預測類和實際類,則可以執行下列操作。
只需選擇實際類別和預測類別不相等的所有數據行。
import numpy as np
import pandas as pd
X = np.array([0.1, 0.34, 0.2, 0.98])
y = np.array(["A", "B", "A", "C"])
y_pred = np.array(["A", "C", "B", "C"])
df = pd.DataFrame(X, columns=["X"])
df["actual"] = y
df["predicted"] = y_pred
incorrect = df[df["actual"] != df["predicted"]]
在這種情況下,incorrect
將包含以下條目。
X actual predicted
1 0.34 B C
2 0.20 A B
4
最簡單的方法就是遍歷你的預測(正確分類),做任何你想要的輸出(在下面的例子中,我將只打印到標準輸出)。
讓我們假設你的數據在輸入,標籤和你訓練的SVM是CLF,那麼你可以做
predictions = clf.predict(inputs)
for input, prediction, label in zip(inputs, predictions, labels):
if prediction != label:
print(input, 'has been classified as ', prediction, 'and should be ', label)
0
您可以直接使一個混淆矩陣使用sklearn。它給出了一個(2 * 2)矩陣。
from sklearn import metrics
my_matrix = metrics.confusion_matrix(Y_test, Y_predicted)
Y_test:你的測試類的數組
Y_predicted:通過模型預測的陣列
混淆矩陣會給你的細胞:真正的正值,假陽性值,假陰性值和真負值。請致電this。
相關問題
- 1. Svm預測默認值Scikitlearn
- 2. svm預測中的錯誤
- 3. 如何從e1071包中運行svm得到預測列表
- 4. R中預測()glmnet函數的錯誤
- 5. SVM預測讀數datatest
- 6. 我如何獲得評分預測?
- 7. 我可以在已評估的Groovy腳本中獲得錯誤的行號嗎?
- 8. 無法預測MatLab中SVM的輸出
- 9. 我們可以在mysql表中得到幾列的總和嗎
- 10. 我可以獲得在Python中使用過濾器的函數列表嗎?
- 11. 瞭解Python中的scikitlearn PCA.transform函數
- 12. 在死亡測試中錯誤的函數調用評估
- 13. 我可以得到應用於函數的裝飾器列表嗎?
- 14. 如何使用MATLAB在SVM中獲得預測值?
- 15. OCaml:列表函數中的錯誤
- 16. 有人可以解釋你如何在這個函數表達式中得到錯誤嗎?
- 17. 我們可以預測R中的json數據嗎?
- 18. ROCR庫預測函數錯誤
- 19. R package'recommenderlab'預測函數輸出錯誤?
- 20. 評估Clojure中的函數列表
- 21. 我可以在異步函數中拋出錯誤嗎?
- 22. python的math.ceil函數可以從浮點表示錯誤中被欺騙嗎?
- 23. 你可以在scala中返回一個未評估函數嗎?
- 24. 測試SVM分類器進行文本分類的錯誤
- 25. svm預測函數總是返回一個大數
- 26. DBvisualizer 9.1.12在評論中以分號表示的錯誤
- 27. 任何人都可以幫我找到這個C函數中的錯誤嗎?
- 28. RecyclerView可以預加載列表中的前n項嗎?
- 29. 你可以將通用對象分組到列表中嗎?
- 30. R中的ROCR預測函數返回錯誤消息
嗨,歡迎來到Stack Overflow,請花點時間瀏覽[歡迎導覽](https://stackoverflow.com/tour),在此處瞭解您的方式(並獲取您的第一個徽章),閱讀如何創建[Minimal,Complete和Verifiable示例](https://stackoverflow.com/help/mcve)並檢查[如何提出好問題](https://stackoverflow.com/help/how-to - 問),所以你增加了獲得反饋和有用答案的機會。 – DarkCygnus