vectores una operaciones matriz matrices llenar imprimir guardar ejemplos datos con como bidimensionales arreglos python pandas numpy scikit-learn

python - operaciones - Se pasó una columna-vector y cuando se esperaba una matriz 1d



operaciones con matrices en python (5)

Necesito encajar RandomForestRegressor de sklearn.ensemble .

forest = ensemble.RandomForestRegressor(**RF_tuned_parameters) model = forest.fit(train_fold, train_y) yhat = model.predict(test_fold)

Este código siempre funcionó hasta que hice un preprocesamiento de datos ( train_y ). El mensaje de error dice:

DataConversionWarning: se pasó una columna-vector y cuando se esperaba una matriz 1d. Cambie la forma de y a (n_samples,), por ejemplo usando ravel ().

model = forest.fit (pliegue_entre, tren_y)

Anteriormente train_y era una Serie, ahora es una matriz numpy (es un vector de columna). Si aplico train_y.ravel() , se convierte en un vector de fila y no aparece ningún mensaje de error, a través del paso de predicción lleva mucho tiempo (en realidad nunca termina ...).

En los documentos de RandomForestRegressor descubrí que train_y debería definirse como y : array-like, shape = [n_samples] or [n_samples, n_outputs] Alguna idea de cómo resolver este problema?


Cambia esta línea:

model = forest.fit(train_fold, train_y)

a:

model = forest.fit(train_fold, train_y.values.ravel())


Otra forma de hacer esto es usar ravel

model = forest.fit(train_fold, train_y.values.reshape(-1,))


También me encontré con esta situación cuando estaba tratando de entrenar un clasificador KNN . pero parece que la advertencia se fue después de que cambié:
knn.fit(X_train,y_train)
a
knn.fit(X_train, np.ravel(y_train,order=''C''))

Antes de esta línea, utilicé import numpy as np .


Yo tuve el mismo problema. El problema era que las etiquetas estaban en formato de columna mientras lo esperaba en una fila. use np.ravel()

knn.score(training_set, np.ravel(training_labels))

Espero que esto lo resuelva.


use el siguiente código:

model = forest.fit(train_fold, train_y.ravel())

si todavía recibe una bofetada por error tan idéntica como a continuación?

Unknown label type: %r" % y

usa este código:

y = train_y.ravel() train_y = np.array(y).astype(int) model = forest.fit(train_fold, train_y)