5

मैंने अपने बहु-वर्ग बहु-लेबल आउटपुट चर के लिए रैंडम वन क्लासिफायरफायर चलाया। मैं आउटपुट से नीचे गया।पायथन विज्ञानकिट बहु-वर्ग बहु-लेबल प्रदर्शन मीट्रिक सीखता है?

My y_test values 


    Degree Nature 
762721  1  7        
548912  0  6 
727126  1  12 
14880  1  12 
189505  1  12 
657486  1  12 
461004  1  0 
31548  0  6 
296674  1  7 
121330  0  17 


predicted output : 

[[ 1. 7.] 
[ 0. 6.] 
[ 1. 12.] 
[ 1. 12.] 
[ 1. 12.] 
[ 1. 12.] 
[ 1. 0.] 
[ 0. 6.] 
[ 1. 7.] 
[ 0. 17.]] 

अब मैं अपने वर्गीकरण के प्रदर्शन की जांच करना चाहता हूं। मैंने पाया कि मल्टीक्लास मल्टीलाबेल के लिए "हैमिंग लॉस या jaccard_similarity_score" अच्छी मेट्रिक्स है। मैंने इसकी गणना करने की कोशिश की लेकिन मुझे मूल्य त्रुटि मिल रही थी।

Error: 
ValueError: multiclass-multioutput is not supported 

रेखा के नीचे मैंने कोशिश की:

print hamming_loss(y_test, RF_predicted) 
print jaccard_similarity_score(y_test, RF_predicted) 

धन्यवाद,

+0

यह इस अपने आप को लागू करने के लिए कठिन है कि अगर यह पुस्तकालय में समर्थित नहीं है नहीं होना चाहिए। – Zafi

उत्तर

3

असमर्थित आलोचनात्मक नुकसान multiclass/multilabel के लिए गणना करने के लिए, आप कर सकते हैं:

import numpy as np 
y_true = np.array([[1, 1], [2, 3]]) 
y_pred = np.array([[0, 1], [1, 2]]) 
np.sum(np.not_equal(y_true, y_pred))/float(y_true.size) 

0.75 

तुम भी प्राप्त कर सकते हैं confusion_matrix इस तरह के दो लेबलों में से प्रत्येक के लिए:

from sklearn.metrics import confusion_matrix, precision_score 
np.random.seed(42) 

y_true = np.vstack((np.random.randint(0, 2, 10), np.random.randint(2, 5, 10))).T 

[[0 4] 
[1 4] 
[0 4] 
[0 4] 
[0 2] 
[1 4] 
[0 3] 
[0 2] 
[0 3] 
[1 3]] 

y_pred = np.vstack((np.random.randint(0, 2, 10), np.random.randint(2, 5, 10))).T 

[[1 2] 
[1 2] 
[1 4] 
[1 4] 
[0 4] 
[0 3] 
[1 4] 
[1 3] 
[1 3] 
[0 4]] 

confusion_matrix(y_true[:, 0], y_pred[:, 0]) 

[[1 6] 
[2 1]] 

confusion_matrix(y_true[:, 1], y_pred[:, 1]) 

[[0 1 1] 
[0 1 2] 
[2 1 2]] 

तुम भी तो जैसे precision_score (या एक समान तरीके से recall_score) की गणना कर सकते हैं:

precision_score(y_true[:, 0], y_pred[:, 0]) 

0.142857142857 
+0

धन्यवाद। ऐसे आउटपुट के लिए भ्रम मैट्रिक्स प्राप्त करना संभव है। – niranjan

+0

हां, अद्यतन उत्तर देखें। – Stefan

+0

यह वाक्यविन्यास multiclass-multioutput के लिए काम नहीं करता है। मुझे एक त्रुटि मिल रही है ValueError: multiclass-multioutput समर्थित नहीं है – niranjan

संबंधित मुद्दे