Scikit-learn cross val score: demasiados índices para la matriz

Tengo el siguiente código

from sklearn.ensemble import ExtraTreesClassifier from sklearn.cross_validation import cross_val_score #split the dataset for train and test combnum['is_train'] = np.random.uniform(0, 1, len(combnum))  ET: {1})".format(label_columns, et_score)) 

Comprobando la forma de las matrices:

  features.shape Out[19]:(43069, 34) 

Y

 labels.shape Out[20]:(43069, 1) 

y estoy recibiendo:

 IndexError: too many indices for array 

y esta parte relevante del rastreo:

 ---> 22 et_score = cross_val_score(et, features, labels, n_jobs=-1) 

Estoy creando los datos de los marcos de datos de Pandas y busqué aquí y vi algunas referencias a posibles errores a través de este método, pero ¿no puedo averiguar cómo corregirlos? Cómo se ven las matrices de datos: características

 Out[21]: array([[ 0., 1., 1., ..., 0., 0., 1.], [ 0., 1., 1., ..., 0., 0., 1.], [ 1., 1., 1., ..., 0., 0., 1.], ..., [ 0., 0., 1., ..., 0., 0., 1.], [ 0., 0., 1., ..., 0., 0., 1.], [ 0., 0., 1., ..., 0., 0., 1.]]) 

tags

 Out[22]: array([[1], [1], [1], ..., [1], [1], [1]]) 

Related of "Scikit-learn cross val score: demasiados índices para la matriz"

Cuando hacemos una validación cruzada en scikit-learn, el proceso requiere una etiqueta de forma (R,) lugar de (R,1) . Aunque en cierta medida son lo mismo, sus mecanismos de indexación son diferentes. Así que en tu caso, solo agrega:

 c, r = labels.shape labels = labels.reshape(c,) 

Antes de pasarlo a la función de validación cruzada.

Parece que se puede corregir si especifica las tags de destino como una única columna de datos de Pandas. Si el objective tiene varias columnas, recibo un error similar. Por ejemplo prueba:

 labels = train['Y'] 

Agregar .ravel() a la variable Y / Labels que se pasa a la fórmula también ayudó a resolver este problema dentro de KNN.

intentar objective:

 y=df['Survived'] 

en su lugar, utilicé

 y=df[['Survived']] 

lo que hizo que el objective fuera de la fecha, parece que la serie estaría bien

Es posible que necesite jugar con las dimensiones un poco, por ejemplo,

 et_score = cross_val_score(et, features, labels, n_jobs=-1)[:,n] 

o

  et_score = cross_val_score(et, features, labels, n_jobs=-1)[n,:] 

siendo n la dimensión.