Estoy trabajando con la biblioteca scikit-learn en python. En el siguiente código, estoy prediciendo la probabilidad, pero no sé cómo leer la salida.
Datos de prueba
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])
Dividir el conjunto de datos
X_train, X_test, y_train, y_test = cross_validation.train_test_split(X, y, test_size=0.5, random_state=0)
Calcular la probabilidad
clf = RF()
clf.fit(X_train,y_train)
pred_pro = clf.predict_proba(X_test)
print pred_pro
La salida
[[ 1. 0.]
[ 1. 0.]
[ 0. 1.]]
La lista X_test contiene 3 matrices (tengo 6 muestras y test_size = 0,5), por lo que la salida también tiene 3.
Pero estoy prediciendo 3 valores (0,1,2), ¿por qué obtengo solo 2 elementos en cada matriz?
¿Cómo debo leer la salida?
También noté que cuando modifico el número de valores distintos en y, el número de columnas en la salida siempre es un recuento distinto de y -1.