स्किकिट भविष्यवाणी_प्रोबा आउटपुट व्याख्या


12

मैं अजगर में स्किटिट-लर्न लाइब्रेरी के साथ काम कर रहा हूं। नीचे दिए गए कोड में, मैं संभावना का अनुमान लगा रहा हूं लेकिन मुझे नहीं पता कि आउटपुट कैसे पढ़ा जाए।

परीक्षण डेटा

from sklearn.ensemble import RandomForestClassifier as RF
from sklearn import cross_validation

X = np.array([[5,5,5,5],[10,10,10,10],[1,1,1,1],[6,6,6,6],[13,13,13,13],[2,2,2,2]])
y = np.array([0,1,1,0,1,2])

डेटासेट विभाजित करें

X_train, X_test, y_train, y_test = cross_validation.train_test_split(X, y, test_size=0.5, random_state=0) 

संभावना की गणना करें

clf = RF()
clf.fit(X_train,y_train)
pred_pro = clf.predict_proba(X_test)
print pred_pro

उत्पादन

[[ 1.  0.]
 [ 1.  0.]
 [ 0.  1.]]

X_test सूची में 3 सरणियाँ हैं (मेरे पास 6 नमूने हैं और test_size = 0,5) इसलिए आउटपुट में 3 भी हैं।

लेकिन मैं 3 मानों (0,1,2) की भविष्यवाणी कर रहा हूं, इसलिए मुझे प्रत्येक सरणी में केवल 2 तत्व क्यों मिल रहे हैं?

मुझे आउटपुट कैसे पढ़ना चाहिए?

मैंने यह भी देखा, जब मैं y में अलग-अलग मूल्यों की संख्या को संशोधित करता हूं, तो आउटपुट में स्तंभों की संख्या हमेशा y -1 की विशिष्ट गणना होती है।


CrossValidated में आपका स्वागत है। क्या आपने मेरा जवाब नीचे देखा? यदि इसने आपके प्रश्न को हल कर दिया है, तो आगे बढ़ें और इसे सही उत्तर के रूप में चिह्नित करें। अन्यथा, मुझे बताएं कि क्या गायब है और मैं इसे आपके लिए स्पष्ट करने की कोशिश करूंगा।
बेन

जवाबों:


5

देख लेना y_train। यह है array([0, 0, 1])। इसका मतलब यह है कि आपके विभाजन ने नमूना नहीं उठाया जहां y = 2। तो, आपके मॉडल को पता नहीं है कि कक्षा y = 2 मौजूद है।

सार्थक कुछ वापस करने के लिए आपको अधिक नमूनों की आवश्यकता है।

आउटपुट की व्याख्या कैसे करें, यह समझने के लिए डॉक्स भी देखें ।


1
यह सही है। यदि आप सेट करते हैं y = np.array([0,2,1,0,1,2])और random_state=2अब आपको आउटपुट के 3 कॉलम दिखाई देंगे
tdc

जवाब ने मेरा सवाल हल कर दिया। आपका बहुत बहुत धन्यवाद। और कॉलम किस क्रम में हैं? इसका हमेशा चढ़ना?
HonzaB

भागो clf.classes_। उस क्रम में कॉलम होंगे।
बेन

ऐसे ही clf.fit(X_train,y_train).classes_:?
होनज़ाब

1
मुझे लगता है कि यह काम करेगा लेकिन आप चलाने के clf.classes_ बाद बस चला सकते हैंclf.fit(X_train,y_train)
बेन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.