ImportError: sklearn.cross_validation नाम का कोई मॉड्यूल नहीं


174

मैं Ubuntu 14.04 में अजगर 2.7 का उपयोग कर रहा हूं। मैंने इन आदेशों के साथ scikit-learn, numpy और matplotlib स्थापित किया है:

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

लेकिन जब मैं इन पैकेजों को आयात करता हूं:

from sklearn.cross_validation import train_test_split

यह मुझे यह त्रुटि देता है:

ImportError: No module named sklearn.cross_validation

मुझे क्या करना है?


शायद आपके मॉड्यूल का नाम गलत है यदि आपने स्केलेर और एनाकोंडा को सही ढंग से स्थापित किया है।
CKM

11
मैं वास्तव में इसे दोहरा रहा हूं, लेकिन आपको अभी से sklearn.model_selection का उपयोग करना होगा। cross_validation स्केलेर 20+ के बाद से उपयोग करने योग्य नहीं है
मिशाल मिकालिसी

जवाबों:


582

यह cross_validationउप-मॉड्यूल के नामकरण और पदावनयन से संबंधित होना चाहिए model_selection। को प्रतिस्थापित cross_validationकरने का प्रयास करेंmodel_selection


8
यह निश्चित रूप से चयनित उत्तर होना चाहिए
rhys_jsk

यह स्वीकृत उत्तर होना चाहिए। न केवल यह काम करता है, बल्कि मेरे पोस्ट के समय के अनुसार वोट 200 से 4 से अधिक हैं।
जेरी डेस्टरेम्प्स

स्केलेनर डेवलपर्स ने पिछड़े संगतता के लिए एक उपनाम में क्यों नहीं रखा? इसके अलावा, उस पुराने संस्करण के लिए डॉक्टर को इस रिफ्लेक्टर को इंगित करना चाहिए: scikit-learn.org/0.16/modules/generated/…
flow2k

आकर्षण की तरह काम किया
omah94


43

मुझे लगता है कि क्रॉस चयन अब सक्रिय नहीं है। हमें मॉडल चयन के बजाय उपयोग करना चाहिए। आप इसे चलाने के लिए लिख सकते हैं,from sklearn.model_selection import train_test_split

बस।


यह उत्तर है। आप कमाल के है।
बिस्वजीत पांडेय

35

सुनिश्चित करें कि आपके पास एनाकोंडा स्थापित है और फिर कॉन्डा का उपयोग करके एक वर्चुअन बनाएं । यह सभी आयात कार्य सुनिश्चित करेगा

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

नहीं, मेरे पास नहीं है, मुझे एनाकोंडा स्थापित करने की आवश्यकता है?
आर्थरक्ल

ठीक है, मैं आपको इसे स्थापित करने का सुझाव दूंगा। लेकिन आप भी कोशिश कर सकते हैं कि आप एपो-स्केलेर को स्थापित कर सकें, जो काम करना चाहिए।
रिचर्ड रुबलेव

7
@DimaLituiev का उत्तर वास्तव में यहाँ सही उत्तर है। यह समस्या ज्यादातर नाम बदलने से संबंधित है, न कि एक सच्चे लापता पैकेज से।
अमरिंदर अरोड़ा

2
यह जरूरी नहीं है। आप केवल एक पैकेज के लिए एक नया वातावरण स्थापित करने का सुझाव दे रहे हैं जिसका नाम बदल दिया गया था, मैं कहूंगा कि यह समाधान एक ओवरकिल है। दीमा के समाधान को सही उत्तर के रूप में चिह्नित किया जाना चाहिए
मुहसिनफतिह

मुझे लगता है कि सवाल का जवाब देना चाहिए कि क्या उसके पास "आयात स्केलेरन" काम है या नहीं। यदि यह काम करता है, तो शायद यह नामकरण का मुद्दा नहीं है।
जू।

24

sklearn.cross_validation अब इसे बदल दिया गया है sklearn.model_selection

महज प्रयोग करें

from sklearn.model_selection import train_test_split

मुझे लगता है कि काम करेगा।



15

हो सकता है कि यह sklearn.cross_validation के अपव्यय के कारण हो। कृपया sklearn.cross_validation को sklearn.model_selection से बदलें

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


1
ऐसा प्रतीत होता है कि आपका उत्तर उसी धागे में दिए गए पिछले के समान है। यदि आपको लगता है कि उत्तर में सुधार किया जा सकता है, तो उसी प्रश्न का नया उत्तर बनाने के बजाय उसे संपादित करने पर विचार करें ।
जोहान

@ जोहान कुछ मैंने दूसरे उत्तर को कैसे नहीं देखा। यदि आप चाहें तो मैं अपना उत्तर हटा सकता हूं।
नंदितव

12

प्रशिक्षण सेट और टेस्ट सेट में डेटासेट विभाजित करना

from sklearn.model_selection import train_test_split

2
आयत उलाह सोनी के जवाब के रूप में एक ही समाधान।
एरिक आया

9

अतीत: from sklearn.cross_validation (यह पैकेज 0.18 संस्करण में 0.20 से घटाया गया है और बाद में इसे बदल दिया गया है from sklearn import model_selection)।

वर्तमान: from sklearn import model_selection

उदाहरण 2:

विगत: from sklearn.cross_validation import cross_val_score(संस्करण ०.१18 जो पदावनत है)

वर्तमान: from sklearn.model_selection import cross_val_score


7

sklearn.cross_validation अब इसे बदल दिया गया है sklearn.model_selection

बस बदल दो

sklearn.cross_validation

सेवा

sklearn.model_selection


4

यदि आपके पास ऐसा कोड है जिसे विभिन्न संस्करणों को चलाने की आवश्यकता है तो आप कुछ इस तरह से कर सकते हैं:

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

यह आदर्श नहीं है, क्योंकि आप पैकेज संस्करणों को तार के रूप में तुलना कर रहे हैं, जो आमतौर पर काम करता है लेकिन हमेशा नहीं होता है। यदि आप स्थापित करने के लिए तैयार हैं packaging, तो यह एक बेहतर तरीका है:

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 कुछ समय पहले हटा दिया गया था, इसे model_selection के साथ स्विच करने का प्रयास करें


इसे और अधिक मूल्य देने के लिए अपने उत्तर में और स्पष्टीकरण जोड़ने का प्रयास करें।
ज़ीना

2

train_test_splitमॉड्यूल का हिस्सा है sklearn.model_selection, इसलिए, आपको मॉड्यूल को आयात करने की आवश्यकता हो सकती हैmodel_selection

कोड:

from sklearn.model_selection import train_test_split

0

या तो हम scikit को डाउनग्रेड करना चाहते हैं-सबसे हाल ही में संगत संस्करण में जानें। और यह कोंडा पर्यावरण को सक्रिय करने के बाद किया जा सकता है। निम्नलिखित आदेशों का उपयोग करके स्कोर-डाउन को सीखें:

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

या

जब हम scikit-learn को डाउनग्रेड नहीं करना चाहते हैं। तब हम सभी जानते थे कि "cross_validation" नाम को scikit-learn के नए संस्करणों में चित्रित किया गया है और इसे नए एनाकोंडा संस्करण के अंदर "model_selection" से बदल दिया गया। इसलिए हमें एक चेतावनी या एक त्रुटि भी मिल सकती है।

इससे बचने के लिए, हमें बस प्रतिस्थापित करने की आवश्यकता है:

from sklearn.cross_validation import train_test_split

सेवा

from sklearn.model_selection import train_test_split 

आशा है, यह समस्या को हल करने में मदद करेगा।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.