Я пытаюсь использовать train_test_split
функцию и пишу:
from sklearn.model_selection import train_test_split
и это вызывает
ImportError: No module named model_selection
Зачем? А как побороть?
python
scikit-learn
Тускнеет
источник
источник
Ответы:
Я думаю, у вас неправильная версия
scikit-learn
, похожая ситуация описывалась здесь, на GitHub . Раньше (раньшеv0.18
)train_test_split
находился вcross_validation
модуле:from sklearn.cross_validation import train_test_split
Однако теперь это в
model_selection
модуле:from sklearn.model_selection import train_test_split
поэтому вам понадобится самая новая версия.
Для обновления хотя бы до версии
0.18
выполните:(Или
pip3
, в зависимости от вашей версии Python). Если вы установили его другим способом, убедитесь, что вы используете другой метод обновления, например, при использовании Anaconda.источник
import sklearn
,sklearn
(да, просто слово) иsklearn.__version__
? Несмотря на то, что это исправлено для вас, было бы интересно узнать, откуда возникла проблема.Обновить sklearn
источник
Я столкнулся с этой проблемой при импорте
GridSearchCV
.Просто изменил
sklearn.model_selection
наsklearn.grid_search
.источник
У меня была такая же проблема при использовании Jupyter Notebook, независимо от того, что я обновлял в Python 3, conda, я не мог получить в Jupyter:
import sklearn print (sklearn.__version__) 0.17.1
ПОКАЗАТЬ scikit-learn-0.18.1
Наконец, я удалил Anaconda3 и Jupyter Notebook и переустановил заново. Я заставил его работать.
http://ukitech.blogspot.com/2017/02/sklearnmodelselection.html
источник
у тебя есть склеарн? в противном случае сделайте следующее:
После установки sklearn
from sklearn.model_selection import train_test_split
работает отлично
источник
Чтобы установить scikit-learn версии 18.0, я использовал обе команды:
conda update scikit-learn
pip install -U scikit-learn
Но это не работает. Возникла проблема «Невозможно установить 'scikit-learn'. Это проект, установленный distutils, и поэтому мы не можем точно определить, какие файлы ему принадлежат, что привело бы только к частичному удалению».
Наконец, я могу установить его, используя следующую команду:
pip install --user --upgrade scikit-learn == 0.18.0
источник
В конце сентября 2016 года был выпущен SciKit Learn 0.18, в код которого были внесены небольшие изменения. В SciKit Learn 0.18 функция train_test_split теперь импортируется из model_selection вместо cross_validation.
from sklearn.cross_validation import train_test_split
был изменен на:
from sklearn.model_selection import train_test_split
То же самое произошло и с GridSearchCV.
источник
Как сказал @linusg, одним из вариантов является просто перекрестная проверка импорта следующим образом:
from sklearn import cross_validation X_train,X_test,y_train,y_test = cross_validation.train_test_split(X,y,test_size=0.3)
источник
В последней стабильной версии sklearn 0.20.0 train_test_split находится под model_selection, а не под cross_validation
Чтобы проверить свою версию sklearn:
импорт sklearn print ( версия sklearn. ) 0.20.2
источник
Добавление информации к предыдущему ответу от @linusg:
sklearn
хранит историю выпусков всех своих изменений. Подумайте о том, чтобы проверять его время от времени. Вот ссылка на документацию.Как видно из документации к версии 0.18 , был создан новый модуль с именем
model_selection
. Поэтому его не было в предыдущих версиях.Обновите
sklearn
и все заработает!источник
У вас слишком низкая версия sklearn,
model_selection
она импортирована 0.18.1, поэтому обновите версию sklearn.источник