Saya mencoba menggunakan train_test_split
fungsi dan menulis:
from sklearn.model_selection import train_test_split
dan ini menyebabkan
ImportError: No module named model_selection
Mengapa? Dan bagaimana cara mengatasinya?
python
scikit-learn
Redup
sumber
sumber
Jawaban:
Saya kira Anda memiliki versi yang salah
scikit-learn
, situasi serupa dijelaskan di sini di GitHub . Sebelumnya (sebelumnyav0.18
),train_test_split
terletak dicross_validation
modul:from sklearn.cross_validation import train_test_split
Namun, sekarang ada di
model_selection
modul:from sklearn.model_selection import train_test_split
jadi Anda memerlukan versi terbaru.
Untuk mengupgrade ke setidaknya versi
0.18
, lakukan:(Atau
pip3
, tergantung pada versi Python Anda). Jika Anda menginstalnya dengan cara berbeda, pastikan Anda menggunakan metode lain untuk memperbarui, misalnya saat menggunakan Anaconda.sumber
import sklearn
,sklearn
(ya, hanya kata) dansklearn.__version__
? Meskipun sudah diperbaiki untuk Anda, akan menarik untuk mengetahui dari mana asalnya.Perbarui sklearn
sumber
Saya mengalami masalah ini saat mengimpor
GridSearchCV
.Baru saja berubah
sklearn.model_selection
menjadisklearn.grid_search
.sumber
Saya memiliki masalah yang sama saat menggunakan Jupyter Notebook, tidak peduli apa yang saya perbarui dengan Python 3, conda, saya tidak bisa mendapatkan di Jupyter:
import sklearn print (sklearn.__version__) 0.17.1
untuk MENAMPILKAN scikit-learn-0.18.1
Akhirnya, saya menghapus Anaconda3 dan Jupyter Notebook dan menginstal ulang segar. Saya mendapatkannya untuk bekerja.
http://ukitech.blogspot.com/2017/02/sklearnmodelselection.html
sumber
apakah kamu punya sklearn? jika tidak, lakukan hal berikut:
Setelah memasang sklearn
from sklearn.model_selection import train_test_split
bekerja dengan baik
sumber
Untuk menginstal scikit-learn versi 18.0, saya menggunakan kedua perintah:
conda memperbarui scikit-learn
pip install -U scikit-learn
Tapi itu tidak berhasil. Ada masalah "Tidak dapat menginstal 'scikit-learn'. Ini adalah proyek yang diinstal distutils dan oleh karena itu kami tidak dapat secara akurat menentukan file mana yang menjadi miliknya yang hanya akan menyebabkan penghapusan sebagian".
Akhirnya, saya dapat menginstalnya dengan menggunakan perintah berikut:
pip install --user --upgrade scikit-learn == 0.18.0
sumber
Pada Akhir September 2016, SciKit Learn 0.18 dirilis dan ada sedikit perubahan pada kode. Dengan SciKit Learn 0.18, fungsi train_test_split sekarang diimpor dari model_selection alih-alih cross_validation.
from sklearn.cross_validation import train_test_split
telah diubah menjadi:
from sklearn.model_selection import train_test_split
Hal yang sama juga terjadi untuk GridSearchCV.
sumber
Seperti yang dikatakan @linusg, salah satu opsinya hanya mengimpor crossvalidation sebagai berikut:
from sklearn import cross_validation X_train,X_test,y_train,y_test = cross_validation.train_test_split(X,y,test_size=0.3)
sumber
Rilis Stabil terbaru dari sklearn 0.20.0 memiliki train_test_split di bawah model_selection tidak dalam cross_validation
Untuk memeriksa versi sklearn Anda:
impor sklearn print (sklearn. version ) 0.20.2
sumber
Menambahkan beberapa info ke jawaban sebelumnya dari @linusg:
sklearn
menyimpan riwayat rilis semua perubahannya. Pikirkan untuk memeriksanya dari waktu ke waktu. Berikut tautan ke dokumentasinya.Seperti yang Anda lihat di dokumentasi untuk versi 0.18 , modul baru telah dibuat bernama
model_selection
. Oleh karena itu tidak ada di versi sebelumnya.Perbarui
sklearn
dan itu akan berhasil!sumber
Versi sklearn Anda terlalu rendah,
model_selection
diimpor oleh 0.18.1, jadi harap perbarui versi sklearn.sumber