train_test_split
함수 를 사용 하고 작성 하려고합니다 .
from sklearn.model_selection import train_test_split
그리고 이것은
ImportError: No module named model_selection
왜? 그리고 극복하는 방법?
답변:
나는 당신이 잘못된 버전을 가지고 있다고 생각합니다 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
수행하십시오.
pip install -U scikit-learn
(또는 pip3
Python 버전에 따라). 다른 방법으로 설치 한 경우에는 예를 들어 Anaconda를 사용할 때 다른 방법을 사용하여 업데이트해야합니다.
import sklearn
, sklearn
(예, 단어 만) 및 sklearn.__version__
? 그것은 당신을 위해 수정되었지만 문제의 출처를 아는 것은 흥미로울 것입니다.
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
scikit-learn 버전 18.0을 설치하기 위해 두 명령을 모두 사용했습니다.
conda 업데이트 scikit-learn
pip 설치 -U scikit-learn
그러나 작동하지 않습니다. " 'scikit-learn'을 설치할 수 없습니다. distutils가 설치된 프로젝트이므로 부분 제거 만 발생하는 파일이 어떤 파일에 속하는지 정확하게 확인할 수 없습니다."라는 문제가있었습니다.
마지막으로 다음 명령을 사용하여 설치할 수 있습니다.
pip install --user --upgrade scikit-learn == 0.18.0
2016 년 9 월 말 SciKit Learn 0.18이 출시되었고 코드가 약간 변경되었습니다. SciKit Learn 0.18에서는 이제 train_test_split 함수를 cross_validation 대신 model_selection에서 가져옵니다.
from sklearn.cross_validation import train_test_split
다음으로 변경되었습니다.
from sklearn.model_selection import train_test_split
GridSearchCV에서도 마찬가지입니다.
sklearn 0.20.0의 최신 안정 릴리스에는 train_test_split이 cross_validation 이 아닌 model_selection에 있습니다.
sklearn 버전을 확인하려면 :
import sklearn print (sklearn. 버전 ) 0.20.2