Estou tentando usar a train_test_split
função e escrever:
from sklearn.model_selection import train_test_split
e isso causa
ImportError: No module named model_selection
Por quê? E como superar?
python
scikit-learn
Escurece
fonte
fonte
Respostas:
Acho que você tem a versão errada do
scikit-learn
, uma situação semelhante foi descrita aqui no GitHub . Anteriormente (antesv0.18
),train_test_split
estava localizado nocross_validation
módulo:No entanto, agora está no
model_selection
módulo:então você precisará da versão mais recente.
Para atualizar para pelo menos uma versão
0.18
, faça:(Ou
pip3
, dependendo da sua versão do Python). Se você instalou de uma maneira diferente, certifique-se de usar outro método para atualizar, por exemplo, ao usar o Anaconda.fonte
import sklearn
,sklearn
(sim, apenas a palavra) esklearn.__version__
? Mesmo que tenha sido corrigido para você, seria interessante saber de onde veio o problema.Atualizar sklearn
fonte
Eu encontrei esse problema ao importar
GridSearchCV
.Apenas alterado
sklearn.model_selection
parasklearn.grid_search
.fonte
Eu tive o mesmo problema ao usar o Jupyter Notebook, não importa o que atualizei no Python 3, conda, não consegui obter no Jupyter:
para MOSTRAR scikit-learn-0.18.1
Finalmente, removi o Anaconda3 e o Jupyter Notebook e reinstalei do zero. Eu tenho que trabalhar.
http://ukitech.blogspot.com/2017/02/sklearnmodelselection.html
fonte
você tem sklearn? se não, faça o seguinte:
Depois de instalar o sklearn
funciona bem
fonte
Para instalar o scikit-learn versão 18.0, usei os dois comandos:
conda update scikit-learn
pip install -U scikit-learn
Mas não funciona. Houve um problema "Não é possível instalar o 'scikit-learn'. É um projeto instalado do distutils e, portanto, não podemos determinar com precisão quais arquivos pertencem a ele, o que levaria a apenas uma desinstalação parcial".
Finalmente, posso instalá-lo usando o seguinte comando:
pip install --user --upgrade scikit-learn == 0.18.0
fonte
No final de setembro de 2016, o SciKit Learn 0.18 foi lançado e houve uma pequena mudança no código. Com o SciKit Learn 0.18, a função train_test_split agora é importada de model_selection em vez de cross_validation.
foi alterado para:
O mesmo também aconteceu com GridSearchCV.
fonte
Como disse @linusg, uma opção é apenas importar validação cruzada da seguinte maneira:
fonte
A última versão estável do sklearn 0.20.0 tem train_test_split em model_selection e não em cross_validation
Para verificar sua versão do sklearn:
import sklearn print ( versão sklearn. ) 0.20.2
fonte
Adicionando algumas informações à resposta anterior de @linusg:
sklearn
mantém um histórico de lançamento de todas as suas alterações. Pense em verificar de vez em quando. Aqui está o link para a documentação.Como você pode ver na documentação da versão 0.18 , foi criado um novo módulo chamado
model_selection
. Portanto, ele não existia nas versões anteriores.Atualize
sklearn
e funcionará!fonte
Sua versão do sklearn é muito baixa,
model_selection
foi importada pela 0.18.1, então atualize a versão do sklearn.fonte