train_test_split
Fonksiyonu kullanmaya ve yazmaya çalışıyorum :
from sklearn.model_selection import train_test_split
ve bu sebepler
ImportError: No module named model_selection
Neden? Ve nasıl üstesinden gelinir?
train_test_split
Fonksiyonu kullanmaya ve yazmaya çalışıyorum :
from sklearn.model_selection import train_test_split
ve bu sebepler
ImportError: No module named model_selection
Neden? Ve nasıl üstesinden gelinir?
Yanıtlar:
Sanırım yanlış sürümüne sahipsiniz, scikit-learn
benzer bir durum burada GitHub'da anlatılmıştır . Daha önce (daha önce v0.18
), train_test_split
içinde bulunan cross_validation
modül:
from sklearn.cross_validation import train_test_split
Ancak, şimdi model_selection
modülde:
from sklearn.model_selection import train_test_split
bu yüzden en yeni sürüme ihtiyacınız olacak.
En az sürüme yükseltmek için 0.18
şunları yapın:
pip install -U scikit-learn
(Veya pip3
Python sürümünüze bağlı olarak). Farklı bir şekilde yüklediyseniz, örneğin Anaconda'yı kullanırken, güncelleme için başka bir yöntem kullandığınızdan emin olun.
import sklearn
, sklearn
(evet, sadece kelime) ve koyabilir sklearn.__version__
misin? Sizin için düzeltilmiş olsa da, sorunun nereden geldiğini bilmek ilginç olacaktır.
conda güncellemesi scikit-learn
Jupyter Notebook'u kullanırken aynı sorunu yaşadım, Python 3'te ne güncellediğim önemli değil, conda, Jupyter'e giremedim:
import sklearn
print (sklearn.__version__)
0.17.1
scikit-learn-0.18.1'İ GÖSTERMEK için
Son olarak, Anaconda3 ve Jupyter Notebook'u kaldırdım ve yeniden yükledim. Çalışmasını sağladım.
http://ukitech.blogspot.com/2017/02/sklearnmodelselection.html
Scikit-learn 18.0 sürümünü yüklemek için her iki komutu da kullandım:
conda güncellemesi scikit-learn
pip install -U scikit-learn
Ama bu çalışmıyor. "Scikit-learn" yüklenemiyor. Bu bir distutils projesidir ve bu nedenle hangi dosyaların ona ait olduğunu doğru bir şekilde belirleyemiyoruz, bu da yalnızca kısmi bir kaldırmaya yol açacaktır ".
Son olarak, aşağıdaki komutu kullanarak kurabilirim:
pip install --user --upgrade scikit-learn == 0.18.0
Eylül 2016'nın sonlarında, SciKit Learn 0.18 yayınlandı ve kodda küçük bir değişiklik oldu. SciKit Learn 0.18 ile train_test_split işlevi artık cross_validation yerine model_selection'dan içe aktarılıyor.
from sklearn.cross_validation import train_test_split
şu şekilde değiştirildi:
from sklearn.model_selection import train_test_split
Aynısı GridSearchCV için de oldu.
Sklearn 0.20.0'ın son Kararlı sürümünde train_test_split, cross_validation altında değil model_selection altında
Sklearn versiyonunuzu kontrol etmek için:
sklearn baskısını içe aktar (sklearn. sürüm ) 0.20.2
@Linusg'dan önceki yanıta bazı bilgiler eklemek :
sklearn
tüm değişikliklerinin yayın geçmişini tutar. Zaman zaman kontrol etmeyi düşünün. İşte dokümantasyonun bağlantısı.
0.18 sürümünün belgelerinde görebileceğiniz gibi, adında yeni bir modül oluşturuldu model_selection
. Bu nedenle önceki sürümlerde mevcut değildi.
Güncelleme sklearn
ve işe yarayacak!
Sklearn sürümünüz çok düşük, model_selection
0.18.1 itibarıyla içe aktarıldı, bu nedenle lütfen sklearn sürümünü güncelleyin.