ImportError: sklearn.cross_validation adlı modül yok


174

Ubuntu 14.04'te python 2.7 kullanıyorum. Scikit-learn, numpy ve matplotlib'i şu komutlarla kurdum:

sudo apt-get install build-essential python-dev python-numpy \
python-numpy-dev python-scipy libatlas-dev g++ python-matplotlib \
ipython

Ancak bu paketleri içe aktardığımda:

from sklearn.cross_validation import train_test_split

Bana şu hatayı döndürür:

ImportError: No module named sklearn.cross_validation

Ne yapmam gerekiyor?


sklearn ve anakonda'yı doğru şekilde kurduysanız modül adınız yanlış olabilir.
CKM

11
Gerçekten sadece tekrarlıyorum, ancak bundan sonra sklearn.model_selection kullanmanız gerekiyor. cross_validation, sklearn 20+ beri kullanılamaz
Michal Mikuláši

Yanıtlar:


584

cross_validationAlt modülün yeniden adlandırılması ve kullanımdan kaldırılması ile ilgili olmalıdır model_selection. Yerine deneyin cross_validationiçinmodel_selection


8
Bu kesinlikle seçilen cevap olmalıdır
rhys_jsk

Bu kabul edilen cevap olmalı. Sadece işe yaramakla kalmıyor, aynı zamanda yazıma göre oylar 200 ile 4 arasında.
Jerry Destremps

Sklearn geliştiricileri neden geriye dönük uyumluluk için bir takma ad koymadı? Ayrıca, bu eski sürümün dokümanı bu refactoru belirtmelidir: scikit-learn.org/0.16/modules/generated/… .
flow2k

charm gibi çalıştı
omah94

139

train_test_split şimdi model_selection konumunda. Sadece yaz:

from sklearn.model_selection import train_test_split

İşe yaramalı


43

Sanırım çapraz seçim artık aktif değil. Bunun yerine model seçimini kullanmalıyız. Çalıştırmak için yazabilirsiniz,from sklearn.model_selection import train_test_split

Bu kadar.


İşte cevap. Müthişsin.
Biswajit Panday

35

Anaconda'nın kurulu olduğundan emin olun ve ardından conda kullanarak bir sanal ağ oluşturun . Bu, tüm ithalatın çalışmasını sağlayacaktır

Python 2.7.9 |Anaconda 2.2.0 (64-bit)| (default, Mar  9 2015, 16:20:48) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
Anaconda is brought to you by Continuum Analytics.
Please check out: http://continuum.io/thanks and https://binstar.org
>>> from sklearn.cross_validation import train_test_split

Hayır, bende yok, Anaconda'yı kurmam gerekiyor mu?
arthurckl

Peki, yüklemenizi öneririm.Ama sudo apt-get install python-sklearn'i de deneyebilirsiniz, bu işe yaramalıdır.
Richard Rublev

7
@DimaLituiev'in yanıtı gerçekten doğru cevap. Bu sorun çoğunlukla gerçek bir eksik paketle değil, yeniden adlandırma ile ilgilidir.
Amrinder Arora

2
Bu mutlaka gerekli değildir. Sadece yeniden adlandırılan bir paket için yeni bir ortam yüklemenizi öneriyorsunuz, bu çözümün aşırıya kaçması olduğunu söyleyebilirim.
Dima'nın

Sanırım o "ithalat sklearn" ilk çalışmış ya da değil olup olmadığını ele olmalıdır. Çalışırsa, bu bir adlandırma sorunu olmayabilir.
ju.

24

sklearn.cross_validation şimdi olarak değiştirildi sklearn.model_selection

Sadece kullan

from sklearn.model_selection import train_test_split

Bunun işe yarayacağını düşünüyorum.



15

Belki de sklearn.cross_validation'ın kullanımdan kaldırılması olabilir. Lütfen sklearn.cross_validation yerine sklearn.model_selection yazın

Ref- https://github.com/amueller/scipy_2015_sklearn_tutorial/issues/60


1
Görünüşe göre cevabınız aynı evrede verilen öncekiyle aynı. Bu cevabın iyileştirilebileceğini düşünüyorsanız , aynı soruya yeni bir cevap vermek yerine cevabı düzenlemeyi düşünün .
Johan

@Johan Diğer yanıtı nasıl görmedim. İsterseniz cevabımı silebilirim.
nantitv

12

Veri kümesini Eğitim kümesine ve Test kümesine bölme

from sklearn.model_selection import train_test_split

2
Ayet ullah sony'nin cevabı ile aynı çözüm.
Eric Aya

9

Geçmiş: from sklearn.cross_validation (Bu paket 0,20 sürümünden itibaren 0,20'den itibaren kullanımdan kaldırılmıştır from sklearn import model_selection).

Mevcut: from sklearn import model_selection

Örnek 2:

Geçmiş: from sklearn.cross_validation import cross_val_score(Onaylanmamış Sürüm 0.18)

Mevcut : from sklearn.model_selection import cross_val_score


7

sklearn.cross_validation şimdi olarak değiştirildi sklearn.model_selection

Sadece değiştir

sklearn.cross_validation

için

sklearn.model_selection

4

kodu böyle değiştir

# from sklearn.cross_validation import train_test_split
from sklearn.model_selection import train_test_split

4

Çeşitli sürümleri çalıştırmak için gereken kodunuz varsa, bunun gibi bir şey yapabilirsiniz:

import sklearn
if sklearn.__version__ > '0.18':
    from sklearn.model_selection import train_test_split
else:
    from sklearn.cross_validation import train_test_split

Bu, ideal değildir, çünkü paket sürümlerini genellikle çalışır, ancak her zaman çalışmayan dizeler olarak karşılaştırırsınız. Yüklemeye hazırsanız packaging, bu çok daha iyi bir yaklaşımdır:

from packaging.version import parse
import sklearn
if parse(sklearn.__version__) > parse('0.18'):
    from sklearn.model_selection import train_test_split
else:
    from sklearn.cross_validation import train_test_split

2

cross_validation bir süre önce kullanımdan kaldırıldı, model_selection ile değiştirmeyi deneyin


daha fazla değer vermek için cevabınıza daha fazla açıklama eklemeyi deneyin.
Zeina

2

train_test_splitmodülün bir parçası olduğundan, modülü sklearn.model_selectioniçe aktarmanız gerekebilirmodel_selection

Kod:

from sklearn.model_selection import train_test_split

0

Ya scikit-learn'u en son uyumlu sürüme düşürmeliyiz. Ve bu, conda ortamını etkinleştirdikten sonra yapılabilir. Scikit-learn'u düşürmek için aşağıdaki komutları kullanın:

pip uninstall scikit-learn
pip install scikit-learn==0.19.2

VEYA

Scikit-learn'ı düşürmek istemediğimizde. Sonra hepimiz "cross_validation" adının scikit-learn'ın yeni sürümlerinde kullanımdan kaldırıldığını ve bunun yerine yeni anaconda sürümünde "model_selection" ifadesinin kullanıldığını biliyorduk. Bu nedenle bir uyarı hatta bir hata alabiliriz.

Bundan kaçınmak için sadece değiştirmemiz gerekir:

from sklearn.cross_validation import train_test_split

için

from sklearn.model_selection import train_test_split 

Umarım, bu sorunu çözmeye yardımcı olacaktır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.