iPython (python 2) – ImportError: нет модуля с именем model_selection

iPython Notebook Python 2

Жалуется на эту строку:

from sklearn.model_selection import train_test_split 

Почему выбор модели не работает?

One Solution collect form web for “iPython (python 2) – ImportError: нет модуля с именем model_selection”

Чтобы исправить эту проблему, вам нужно сначала узнать, импортируете ли вы фактический пакет sklearn , а не только какой-то скрипт с именем sklearn.py сохраненным где-то в вашем рабочем каталоге. Способ импорта модулей Python несколько схож с тем, как он находит переменные в своем пространстве имен ( Local , Enclosed , Global , Built-in ). В этом случае Python начнет импортировать модуль, сначала посмотрев в текущем каталоге, а затем на site-packages . Если он выглядит в текущем рабочем каталоге и находит скрипт python с тем же именем, что и модуль, который вы пытаетесь импортировать, он импортирует этот скрипт вместо фактического модуля.

Обычно вы можете узнать, импортирован ли фактический модуль, проверяя его __file__ или __path__ :

 import sklearn print(sklearn.__file__) print(sklearn.__path__) 

Просмотр вывода этих операторов печати скажет вам, является ли импортированный пакет вашим модулем, или просто какой-то скрипт, лежащий где-то в вашем рабочем каталоге. Если в случае, если вывод не указывает на site-packages сайта вашей версии Python, вы импортировали некоторый скрипт где-то, что не является самим модулем. Быстрое исправление будет состоять в том, чтобы сначала выйти из консоли, переименовать сценарий .py и его скомпилированную версию (файл .pyc ) и вернуться на консоль и повторить попытку.

Однако, если вывод указывает на пакеты сайта python, то есть что-то не так, как был установлен пакет в первую очередь. В этом случае вам, вероятно, потребуется обновить или переустановить его.

В частности, выясняется, что проблема sklearn с используемой вами версией sklearn ; потому что модуль model_selection в sklearn доступен в версиях 0.18+ . Если вы используете номер версии ( sklearn.__version__ ) ниже 0.18 , вам придется использовать старый модуль cross_validation вместо модуля model_selection :

 from sklearn.cross_validation import train_test_split 

Вы также можете просто обновить до последней версии пакета с помощью вашей предпочтительной системы управления пакетами.

Надеюсь, это полезно.

Python - лучший язык программирования в мире.