após atualização bem-sucedida com
conda update scikit-learn
no computador Windows
de sklearn.model_selection import GridSearchCV
ou
de sklearn.model_selection import train_test_split
dá
ImportError: Nenhum módulo denominado model_selection
MAS, o scikit-learn começou a funcionar após a atualização somente após
conda install -f scipy
por
http://stackoverflow.com/questions/31012216/updated-anaconda-why-arent-my-ipython-notebooks-working-anymore
a propósito, este exemplo está rodando ok
http://scikit-learn.org/stable/auto_examples/text/document_classification_20newsgroups.html#example -text-documento-classificação-20newsgroups-py
O módulo model_selection
estará disponível apenas a partir da próxima versão (0,18). Você terá que usar o antigo módulo cross_validation
!
Fechando, pois isso não é um bug.
ok, mas por favor, ajude a obter o código de trabalho para o arquivo exercise_02_sentiment.py
de http://scikit-learn.org/stable/tutorial/text_analytics/working_with_text_data.html
como escrito
A fonte deste tutorial pode ser encontrada na pasta scikit-learn:
scikit-learn / doc / tutorial / text_analytics /
você pode baixar o código do site da stable doc ou verificar o branch 0.17.X em seu repo.
Esta edição foi encerrada em janeiro de 2016, mas ainda é relevante (outubro de 2016). Solução:
## [2016-Out-19] Ambiente virtual Python 3.5 (py35) [victoria @victoria ~] $ conda install scikit-learn ... Os seguintes NOVOS pacotes serão INSTALADOS: scikit-learn: 0.18-np111py35_0 ... (py35) [victoria @victoria ~] lista $ conda | grep scikit scikit-learn 0.18 np111py35_0 ## Python 3.5: >>> de sklearn.model_selection import train_test_split Traceback (última chamada mais recente): Arquivo "", linha 1, em ImportError: Nenhum módulo denominado 'sklearn.model_selection' ## Concha: $ conda install -f scipy ... Os seguintes NOVOS pacotes serão INSTALADOS: scipy: 0.18.1-np111py35_0 ... ## Python: mesmo erro de importação !! Grrrrrrr ....... ## http://scikit-learn.org/stable/install.html "Se você já tem uma instalação funcional do numpy e scipy, a maneira mais fácil de instalar o scikit-learn é usando o pip pip install -U scikit-learn ou conda: conda install scikit-learn " $ pip install -U scikit-learn Coletando scikit-learn Fazendo download de scikit_learn-0.18-cp35-cp35m-manylinux1_x86_64.whl (11,3 MB) 100% | ████████████████████████████████ | 11,3 MB 162 kB / s Instalando pacotes coletados: scikit-learn Instalação existente encontrada: scikit-learn 0.17.1 REMOÇÃO: a desinstalação de um projeto instalado do distutils (scikit-learn) foi descontinuada e será removida em uma versão futura. Isso se deve ao fato de que a desinstalação de um projeto distutils desinstalará apenas parcialmente o projeto. Desinstalando scikit-learn-0.17.1: Scikit-learn-0.17.1 desinstalado com sucesso Scikit-learn-0.18 instalado com sucesso ## AGORA pode importar com sucesso: (py35) [victoria @victoria ~] $ P [P: python] Python 3.5.2 (padrão, 28 de junho de 2016, 08:46:01) [GCC 6.1.1 20160602] no Linux Digite "ajuda", "direitos autorais", "créditos" ou "licença" para obter mais informações. >>> de sklearn.model_selection import train_test_split >>> >>> [Ctrl-D / sair] (py35) [victoria @victoria ~] $ ## :-D QED
hmm, parece que não tenho o problema que você tem @victoriastuart . Tem certeza de que está ativando o ambiente / tem python no ambiente em que conda install scikit-learn
?
nfliu at kilauea in ~
$ conda create -n test python=3
Fetching package metadata .......
Solving package specifications: ..........
Package plan for installation in environment /Users/nfliu/miniconda2/envs/test:
The following NEW packages will be INSTALLED:
openssl: 1.0.2j-0
pip: 8.1.2-py35_0
python: 3.5.2-0
readline: 6.2-2
setuptools: 27.2.0-py35_0
sqlite: 3.13.0-0
tk: 8.5.18-0
wheel: 0.29.0-py35_0
xz: 5.2.2-0
zlib: 1.2.8-3
Proceed ([y]/n)? y
Linking packages ...
[ COMPLETE ]|###################################################| 100%
#
# To activate this environment, use:
# > source activate test
#
# To deactivate this environment, use:
# > source deactivate test
#
nfliu at kilauea in ~
$ source activate test
(test) nfliu at kilauea in ~
$ conda install scikit-learn
Fetching package metadata .......
Solving package specifications: ..........
Package plan for installation in environment /Users/nfliu/miniconda2/envs/test:
The following packages will be downloaded:
package | build
---------------------------|-----------------
numpy-1.11.2 | py35_0 2.7 MB
scipy-0.18.1 | np111py35_0 12.3 MB
scikit-learn-0.18 | np111py35_0 4.6 MB
------------------------------------------------------------
Total: 19.6 MB
The following NEW packages will be INSTALLED:
mkl: 11.3.3-0
numpy: 1.11.2-py35_0
scikit-learn: 0.18-np111py35_0
scipy: 0.18.1-np111py35_0
Proceed ([y]/n)? y
Fetching packages ...
numpy-1.11.2-p 100% |#############################################################################################################################################################################################| Time: 0:00:01 1.57 MB/s
scipy-0.18.1-n 100% |#############################################################################################################################################################################################| Time: 0:00:02 6.30 MB/s
scikit-learn-0 100% |#############################################################################################################################################################################################| Time: 0:00:01 2.66 MB/s
Extracting packages ...
[ COMPLETE ]|################################################################################################################################################################################################################| 100%
Linking packages ...
[ COMPLETE ]|################################################################################################################################################################################################################| 100%
(test) nfliu at kilauea in ~
$ python
Python 3.5.2 |Continuum Analytics, Inc.| (default, Jul 2 2016, 17:52:12)
[GCC 4.2.1 Compatible Apple LLVM 4.2 (clang-425.0.28)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> from sklearn.model_selection import train_test_split
>>>
@ nelson-liu: obrigado por sua sugestão ... Sim: eu estava trabalhando no meu ambiente virtual Python 3.5 o tempo todo (terminal; Python). Trabalhando agora, pela minha resposta. :-)
@victoriastuart Tenho certeza de que isso aconteceu com você (veja a grande caixa vermelha):
http://scikit-learn.org/dev/install.html#canopy -and-anaconda-for-all-supported-platform
Não tente atualizar um pacote com conda que você instalou com pip. isso não vai funcionar. É um bug de setuptools.
@amueller - O negócio é o seguinte: estou em um venv com CONDA instalado: no início, tenho quase certeza de que o sklearn não estava presente (não o usei anteriormente neste venv, então não teria sido instalado anteriormente , por exemplo, via pip; independentemente, eu sempre prefiro conda a pip - primeiro, no meu venv - usando pip como último recurso):
(py35) [victoria @victoria ~] $ conda install scikit-learn Buscando metadados do pacote ....... Resolvendo as especificações do pacote: .......... Plano de pacote para instalação em environment / home / victoria / anaconda3 / envs / py35: Os seguintes pacotes serão baixados: pacote | construir --------------------------- | ----------------- numpy-1.11.2 | py35_0 6,1 MB scipy-0.18.1 | np111py35_0 30,4 MB scikit-learn-0.18 | np111py35_0 10,8 MB theano-0.8.2 | py35_0 3,7 MB -------------------------------------------------- ---------- Total: 51,0 MB Os seguintes NOVOS pacotes serão INSTALADOS: scikit-learn: 0.18-np111py35_0 Os seguintes pacotes serão ATUALIZADOS: astropy: 1.1.2-np110py35_0 -> 1.2.1-np111py35_0 gargalo: 1.0.0-np110py35_1 -> 1.1.0-np111py35_0 matplotlib: 1.5.1-np110py35_0 -> 1.5.1-np111py35_0 numpy: 1.10.4-py35_2 -> 1.11.2-py35_0 scipy: 0.17.1-np110py35_1 -> 0.18.1-np111py35_0 theano: 0.7.0-np110py35_0 -> 0.8.2-py35_0 Continuar ([s] / n)? [... recorte ...]
Nota acima:
Os seguintes NOVOS pacotes serão INSTALADOS: scikit-learn: 0.18-np111py35_0
Portanto, em resumo: de acordo com os procedimentos padrão e recomendados pelo sklearn (http://scikit-learn.org/stable/install.html), eu instalo o sklearn - aparentemente instala OK (sem avisos) e, em seguida, tento usá-lo: falha para importar com mensagem de erro esotérica >> pesquisa do Google >> esta página. Agradeço todas as minúcias sobre isso ou aquilo (sklearn viz-a-viz NumPy ou SciPy, ...), mas o ponto principal é que, como usuário, eu precisava trabalhar para resolver esse problema, que aparentemente (topo de thread) em andamento para alguns usuários.
na verdade, o problema era que uma resposta stackoverflow referenciava um código que ainda não havia sido publicado no conda / pip (apenas fizemos isso 2 semanas atrás, então, naturalmente, o código não funcionava em versões instaladas com conda / pip até então). Seu problema parece um pouco não relacionado, mas fico feliz que você o tenha feito funcionar de qualquer maneira.
@ nelson-liu: lol obrigado - e todas as pessoas envolvidas neste projeto / desenvolvimento. Eu sei que é extremamente complicado e que complicações como as relatadas aqui são um fato inevitável da vida. De qualquer forma, minha instalação do sklearn parece estar funcionando agora, conforme resumido acima. [Vou começar a usá-lo em algumas horas.] Espero que a discussão acima informe / ajude outras pessoas. Mais uma vez, muito obrigado! :-)
@victoriastuart, presumo que você não tenha mais o ambiente conda por perto / não posso reproduzi-lo novamente, mas estou curioso para ver o que:
>>> import sklearn
>>> sklearn.__version__
iria render (espero que não seja o que pensamos, ou seja, não 0,18).
Suspeito que seja um problema com o $ PYTHONPATH e talvez com o desenho do scikit-learn de algum outro local; a correção de tal erro evitaria, com sorte, tais erros com outros pacotes.
@ nelson-liu: claro, sem problemas! ;-)
---------------------------- PYTHON 3.5 VENV (py35 | p3): ---------------------------- [victoria @victoria Vancouver] $ p3 [Anaconda Python 3.5 venv (ativação da fonte py35)] (py35) [victoria @victoria Vancouver] $ which python / home / victoria / anaconda3 / envs / py35 / bin / python (py35) [victoria @victoria Vancouver] lista $ conda | egrep -wi 'scikit | numpy | scipy' numpy 1.11.2 py35_0 scikit-learn 0.18 np111py35_0 scipy 0.18.1 np111py35_0 (py35) [victoria @victoria Vancouver] $ pip list | egrep -wi 'scikit | numpy | scipy' entorpecido (1.11.1) imagem scikit (0.12.3) scikit-learn (0,18) scipy (0.17.0) (py35) [victoria @victoria Vancouver] $ P [P: python] Python 3.5.2 (padrão, 28 de junho de 2016, 08:46:01) [GCC 6.1.1 20160602] no Linux Digite "ajuda", "direitos autorais", "créditos" ou "licença" para obter mais informações. >>> de sklearn.model_selection import train_test_split >>> importar sklearn >>> sklearn .__ version__ '0,18' >>> sair () (py35) [victoria @victoria Vancouver] $ sd [Desativar Anaconda venv (desativar fonte)] [victoria @victoria Vancouver] $ --------------------------------------------- AMBIENTE HOST (NÃO VIRTUAL) (PYTHON 3.5): --------------------------------------------- [victoria @victoria Vancouver] $ which python / usr / bin / python [victoria @victoria Vancouver] lista $ conda | egrep -wi 'scikit | numpy | scipy' numpy 1.11.1numpy 1.10.4 py35_1 scikit-image 0.12.3 np110py35_0 scikit-learn 0.18 scikit-learn 0.17.1 np110py35_0 scipy 0.17.0 np110py35_2 [victoria @victoria Vancouver] lista de $ pip | egrep -wi 'scikit | numpy | scipy' [victoria @victoria Vancouver] $ P [P: python] Python 3.5.2 (padrão, 28 de junho de 2016, 08:46:01) [GCC 6.1.1 20160602] no Linux Digite "ajuda", "direitos autorais", "créditos" ou "licença" para obter mais informações. >>> sklearn .__ version__ Traceback (última chamada mais recente): Arquivo " ", linha 1, em NameError: o nome 'sklearn' não foi definido >>> importar sklearn Traceback (última chamada mais recente): Arquivo " ", linha 1, em ImportError: Nenhum módulo chamado 'sklearn' >>> ---------------------------- Python 2.7 VENV (py27 | p2): ---------------------------- [victoria @victoria Vancouver] $ p2 [Anaconda Python 2.7 venv (fonte ativar py27)] (py27) [victoria @victoria Vancouver] $ lista conda | egrep -wi 'scikit | numpy | scipy' numpy 1.11.1 numpy 1.10.4 py27_1 scikit-image 0.12.3 np110py27_0 scikit-learn 0.17.1 np110py27_0 scipy 0.17.1 scipy 0.17.0 np110py27_0 (py27) [victoria @victoria Vancouver] $ pip list | egrep -wi 'scikit | numpy | scipy' entorpecido (1.11.1) imagem scikit (0.12.3) scikit-learn (0.17.1) scipy (0.17.1) (py27) [victoria @victoria Vancouver] $ P [P: python] Python 2.7.12 | Anaconda customizado (64 bits) | (padrão, 2 de julho de 2016, 17:42:40) [GCC 4.4.7 20120313 (Red Hat 4.4.7-1)] no linux2 Digite "ajuda", "direitos autorais", "créditos" ou "licença" para obter mais informações. O Anaconda é oferecido a você pela Continuum Analytics. Verifique: http://continuum.io/thanks e https://anaconda.org >>> importar sklearn >>> sklearn .__ version__ '0.17.1' >>> (py27) [victoria @victoria Vancouver] $
AFAIK, meu Python 2.7 venv teria sido "semelhante" ao meu Python 3.5 venv, ontem, antes de minha instalação naquele (py35) venv.
desculpe, eu quis dizer o scikit-learn instalado pelo conda com o qual você estava tendo problemas anteriormente. Este é o pip instalado que você coloca sobre ele para resolver seus problemas. Já que parece que você pode importar train_test_split
aqui, o python provavelmente está desenhando do pip. Estou curioso para ver como seria se você desinstalasse as coisas que instalou via pip (revertendo assim para o estado em que tinha o ImportError).
@ nelson-liu: sim / ops! Percebi isso, imediatamente após postar aquela saída. Atualizado, agora, acima. ;-)
O env python3.5 em que você estava desenhando ainda tem o scikit-learn from pip, o que turva as águas consideravelmente. Não tenho muita certeza do que está acontecendo em sua máquina, especialmente porque você não pode nem importar scikit-learn em seu env root; Acho que o scikit-learn no env py35 está sendo retirado de outro lugar que você não quer. Eu checaria seu $ PATH e $ PYTHONPATH se você quiser evitar problemas futuros como este com outros pacotes, mas é bom ver que está "funcionando" de qualquer maneira.
Ahhh .. bons pontos! ;-)
Atualização: Ei - boa pegada (pessoas espertas e espertas lá fora; ;-) !! Tive problemas com meu $ PYTHONPATH, decorrentes do uso do PyCharm no início deste ano como meu Python IDE. Para resolver isso, criei um my_script.pth em meu diretório raiz PyCharm, que listava meus PYTHONPATHS, com links simbólicos para esse arquivo * .pth em minhas pastas de pacote Pyhton instaladas por conda; por exemplo
/home/victoria/.local/lib/python3.5/site-packages/my_scripts.pth
# symlink to: /home/victoria/PycharmProjects/scripts/my_scripts.pth
[Eu sei: é complicado, mas eu precisava fazer isso.] Resumindo, na verdade, prefiro o Geany como meu IDE / editor (multiplataforma), então, mais tarde, repliquei / atualizei esses caminhos, por exemplo,
/home/victoria/.local/lib/python3.5/site-packages/my_scripts.pth
# symlink (now!) to: /home/victoria/GeanyProjects/Victoria/scripts/my_scripts.pth
Meu arquivo (Geany) my_scripts.pth ($ PYTHONPATH) estava apontando para
/home/victoria/.local/lib/python2.7
... qual, creio eu, pode ter sido o problema?
Comentários muito úteis
O módulo
model_selection
estará disponível apenas a partir da próxima versão (0,18). Você terá que usar o antigo módulocross_validation
!