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?
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?
Jawaban:
Saya kira Anda memiliki versi yang salah scikit-learn
, situasi serupa dijelaskan di sini di GitHub . Sebelumnya (sebelumnya v0.18
), train_test_split
terletak di cross_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:
pip install -U scikit-learn
(Atau pip3
, tergantung pada versi Python Anda). Jika Anda menginstalnya dengan cara berbeda, pastikan Anda menggunakan metode lain untuk memperbarui, misalnya saat menggunakan Anaconda.
import sklearn
, sklearn
(ya, hanya kata) dan sklearn.__version__
? Meskipun sudah diperbaiki untuk Anda, akan menarik untuk mengetahui dari mana asalnya.
conda memperbarui scikit-learn
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
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
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.
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
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!
Versi sklearn Anda terlalu rendah, model_selection
diimpor oleh 0.18.1, jadi harap perbarui versi sklearn.