Sto lavorando con la libreria scikit-learn in Python. Nel codice seguente, sto predicendo la probabilità ma non so come leggere l'output.
Test dei dati
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])
Dividi il set di dati
X_train, X_test, y_train, y_test = cross_validation.train_test_split(X, y, test_size=0.5, random_state=0)
Calcola la probabilità
clf = RF()
clf.fit(X_train,y_train)
pred_pro = clf.predict_proba(X_test)
print pred_pro
Il risultato
[[ 1. 0.]
[ 1. 0.]
[ 0. 1.]]
L'elenco X_test contiene 3 array (ho 6 campioni e test_size = 0,5), quindi anche l'output ne ha 3.
Ma sto prevedendo 3 valori (0,1,2), quindi perché ottengo solo 2 elementi in ciascun array?
Come devo leggere l'output?
Ho anche notato, quando modifico il numero di valori distinti in y, il numero di colonne nell'output è sempre un conteggio distinto di y -1.