inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[개정판] 파이썬 머신러닝 완벽 가이드

GridSearchCV 로 교차검증 및 하이퍼 파라미터 튜닝시 오류

1305

hoh

작성한 질문수 5

0

랜덤포레스트로 GridSearchCV 로 파라미터 튜닝 후 학습을 돌리면 codec 오류가 발생합니다. 제공해 주신 소스를 그대로 실행해도 똑같은 오류가 납니다.
- 소스
params = { 'n_estimators':[100], 'max_depth' : [6, 8, 10, 12], 'min_samples_leaf' : [8, 12, 18 ], 'min_samples_split' : [8, 16, 20] } # RandomForestClassifier 객체 생성 후 GridSearchCV 수행 rf_clf = RandomForestClassifier(random_state=0, n_jobs=-1) grid_cv = GridSearchCV(rf_clf , param_grid=params , cv=2, n_jobs=-1 ) grid_cv.fit(X_train , y_train) - 에러로그
UnicodeEncodeError: 'ascii' codec can't encode characters in position 18-19: ordinal not in range(128)

python 머신러닝 배워볼래요? 통계

답변 1

0

권 철민

안녕하십니까, 

해당 오류가 강의에 나오는 예제를 돌렸을 때 나오는 오류는 아닌것 같습니다만 맞는지요? 

그렇다면, 강의 예제가 아니고, 또한 전체 소스코드도 올려주지 않으셨기 때문에 뭐가 오류인지는 확실히 모르겠지만 해당 오류는 ordinal encoding 과정에서 발생하는 것 같습니다. 원본 데이터와 encoding 부분을 다시 한번 확인해 보십시요. 

감사합니다. 

0

hoh

안녕하세요. 빠른 답변 감사드립니다.

소스는 제공해 주신 파일(4.3_앙상블학습_4.4_랜덤포레스트_4.5_GBM_Ver01.ipynb)을 수행하였고, 하나씩 에러 나는 부분을 찾아보니, 아래 GridSearchCV 함수에서 n_jobs=-1 을 삭제하면 에러가 나지 않습니다. processor 관련된 파라미터 같은데, 설치환경이나 OS 에 따른 문제인지 모르겠습니다.

소스코드 첨부가 안되서 주피터노트북의 해당 Cell을 카피하여 아래 페이스트하였습니다.

grid_cv = GridSearchCV(rf_clf , param_grid=params , cv=2, n_jobs=-1 )

from sklearn.model_selection import GridSearchCV

params = {
    'n_estimators':[100],
    'max_depth' : [6, 8, 10, 12], 
    'min_samples_leaf' : [8, 12, 18 ],
    'min_samples_split' : [8, 16, 20]
}
# RandomForestClassifier 객체 생성 후 GridSearchCV 수행
rf_clf = RandomForestClassifier(random_state=0, n_jobs=-1)
grid_cv = GridSearchCV(rf_clf , param_grid=params , cv=2, n_jobs=-1 )
grid_cv.fit(X_train , y_train)

print('최적 하이퍼 파라미터:\n', grid_cv.best_params_)
print('최고 예측 정확도: {0:.4f}'.format(grid_cv.best_score_))

감사합니다.

0

권 철민

음, 저는 별 문제없이 수행이 됩니다만,,, 강의 예제에 있는 human activity dataset으로 된 데이터로 학습을 한건가요? 아님 다른 데이터 세트로 학습을 한건가요?

0

hoh

네. 강의 예제에 있는 human activity dataset으로 된 데이터로 학습을 하였습니다. 아, 데이터는 제가 강의에서 알려주신대로 UCIML에서 human activity dataset을 다운 받아서 사용했고, 소스는 제공해주신 소스를 그대로 수행해보았습니다. 

다른 예제에서 n_jobs=-1 을 적용해보고 확인해보도록 하겠습니다.

감사합니다.

0

hoh

구글링을 해보니, 이런 경우가 가끔 발생하나봅니다.

해결책은 아래와 같이 나와 있네요.

GridSearchCv에서 n_jobs 값을 1외의 다른 값으로 바꾸려 할때, UnicodeEncodeError: 'ascii' codec can't encode characters in position 18-21: ordinal not in range(18) 에러가 발생하는 경우,

C:\anaconda3\Lib\site-packages\joblib\externals\loky\backend\resource_tracker.py 의

           def _send(self, cmd, name, rtype):
                   msg = '{0}:{1}:{2}\n'.format(cmd, name, rtype).encode('ascii') 에서 ascii를 utf8로 바꾸면 해결됩니다.

 

위의 안내대로 해당 파일 수정 후 해결하였습니다.  감사합니다.

0

권 철민

좋은 정보 감사합니다. 

모델 서빙과 관련된 강좌가 출시되는지 질문드립니다.

0

50

2

안녕하세요 열심히 수강중인 학생입니다

0

86

2

정수 인덱싱

0

86

2

넘파이 오류

0

108

2

11강 numpy의 axis 축 질문 드립니다.

0

106

2

Kaggle 에서 Santander customer satisfaction data 를 다운로드 되지가 않습니다.

0

93

2

Feature importances 를 보여주는 barplot 이 그래프로 안보여져요.

0

76

2

타이타닉 csv 파일이 주피터 화면에 보이지 않습니다.

0

83

2

타이타닉 csv 파일이 주피터 화면에 보이지 않습니다.

0

73

2

5강 강의 오류가 있어요.

0

90

1

실무에서 LTV 관련 모델 선택 질문입니다!

0

81

2

14강 강의 듣는중에 궁금한게 있어서 질문합니다~

0

75

3

파이썬 다운그레이 후 사이킷런 재설치

0

128

2

좋은 강의 감사합니다.

0

79

2

scoring 함수 음수값

0

72

2

6번 강의에 사이킷런, 파이썬, 아나콘다 각각 버전 일치 안 시키고 진행해도 강의 따라가 지나요?

0

108

2

분류 평가 정확도 예측

0

87

2

안녕하세요. 강의 들으면서 업무에 적용하고 싶은 수강생입니다.

0

114

1

카카오톡 채널 있나요

0

118

1

혹시 강의에서 사용하시는 ppt 받을 수 있는건가요

0

193

2

pca 스케일링 관련하여 질문드립니다.

0

109

2

주피터 대신 구글 코랩

0

184

2

강의에서 사용하는 pdf or ppt자료는 따로 없는 건가요?

0

155

2

실루엣 스코어..

0

91

2