Aku harus sesuai RandomForestRegressor
dari sklearn.ensemble
.
forest = ensemble.RandomForestRegressor(**RF_tuned_parameters)
model = forest.fit(train_fold, train_y)
yhat = model.predict(test_fold)
Kode ini selalu berfungsi sampai saya membuat beberapa preprocessing data ( train_y
). Pesan kesalahan mengatakan:
DataConversionWarning: Kolom-vektor y dilewatkan saat array 1d diharapkan. Silahkan rubah bentuk y menjadi (n_samples,), misalnya menggunakan ravel ().
model = forest.fit (train_fold, train_y)
Sebelumnya train_y
adalah Seri, sekarang menjadi array numpy (itu adalah vektor kolom). Jika saya terapkan train_y.ravel()
, maka menjadi vektor baris dan tidak muncul pesan error, melalui langkah prediksi membutuhkan waktu yang sangat lama (sebenarnya tidak pernah selesai ...).
Dalam dokumen RandomForestRegressor
saya menemukan bahwa train_y
harus didefinisikan sebagai y : array-like, shape = [n_samples] or [n_samples, n_outputs]
Ada ide bagaimana mengatasi masalah ini?
sumber
train_fold.shape
dantrain_y.shape
?train_y
sudahkah Anda memeriksa konten data Anda untuk memastikan pra-pemrosesan tidak merusaknya?RF_tuned_parameters
Tolong cetak untuk kami.Jawaban:
Ubah baris ini:
untuk:
Edit:
.values
akan memberikan nilai dalam array. (bentuk: (n, 1).ravel
akan mengonversi bentuk array itu menjadi (n,)sumber
ravel()
dilakukan adalah: ketika Anda memilikiy.shape == (10, 1)
, menggunakany.ravel().shape == (10, )
. Dengan kata lain ... itu meratakan array.Saya juga mengalami situasi ini saat mencoba melatih pengklasifikasi KNN . tapi sepertinya peringatan itu hilang setelah saya ubah:
knn.fit(X_train,y_train)
menjadi
knn.fit(X_train, np.ravel(y_train,order='C'))
Di depan garis ini saya gunakan
import numpy as np
.sumber
.ravel()
pendekatan vektor kolom saya adalah konverter ke vektor baris daripada array, tetapi perbaikan ini berhasil untuk saya.Saya memiliki masalah yang sama. Masalahnya adalah bahwa label berada dalam format kolom seperti yang diharapkan dalam satu baris. menggunakan
np.ravel()
Semoga ini menyelesaikannya.
sumber
np.ravel()
?gunakan kode di bawah ini:
apakah Anda masih mendapatkan slap by error seperti di bawah ini?
gunakan kode ini:
sumber
Cara lain untuk melakukan ini adalah dengan menggunakan
ravel
sumber
Dengan neuraxle , Anda dapat dengan mudah menyelesaikan ini:
Neuraxle adalah kerangka kerja mirip sklearn untuk penyetelan hyperparameter dan AutoML dalam proyek pembelajaran mendalam!
sumber
sumber
Y = y.values [:, 0]
Y - formated_train_y
y - train_y
sumber