인프런 커뮤니티 질문&답변

김가람님의 프로필 이미지

작성한 질문수

한 방에 끝! 빅데이터분석기사 실기 작업형

질문드립니다.

해결된 질문

작성

·

287

0

안녕하세요. 유익한 강의 감사드립니다.

ML실전압축코드 관련해서 한국데이터산업진흥원의 시험환경 체험에서 시도해봤는데

코드 실행에 실패했다면서 아래 같은 내용이 나오더라구요...

혹시 코드 작성이 잘못돼서 이런 내용이 뜨는 걸까요...?

공부가 부족해 영문을 몰라 부득이 질문드려봅니다...

 

답변 3

0

안녕하세요.
강사님 말씀처럼 xgboost패키지 관련 warning인것 같습니다.

제가 이번 4회 실기 시험 중  다른 모델을 사용하면 warning 없이 잘 실행되는데
xgboost 모델을 사용하면 위와 똑같은 warning이 발생했었습니다.
저는 이 강의를 수강 및 실습하면서 xgboost가 성능이 가장 좋은 것을 경험하였으므로
warning이 있어도 xgboost 라이브러리를 사용하여 csv파일을 제출했습니다.
(결과적으로는 40점 만점 취득함. 역시 강사님이 실제압축코드로 추천해 주신 xgboost 짱입니다.)

시험 결과가 나오기 전에 진흥원에 문의했던 내용 소개해 드릴께요.(내용 약간 편집함)

<문의>

4 빅데이터분석기사 실기 작업형 2유형 xgboost패키지 오류 관련

안녕하세요

저는 4 빅데이터분석기사 실기에 응시하였습니다.

시험안내에 xgboost패키지는 사용가능 목록에 포함되어 있고, 시험당일 공지내용에도 xgboost 패키지에 대해서 warning 에러발생에 양해바란다는 안내문을 확인하였습니다.

 

제가 이번 시험  작업형 2유형에서 xgboost패키지의 XGBClassifier 모델을 사용해서 파일을 제출했는데 warning 에러가 발생한 부분에 대해서는 괜찮을까요?

(저는 수험번호.csv 파일로 저장 다시 불러와서 자료 ( 0~2012)  컬럼(Segmentation_pred) 1~4 저장되어 있는 것은 확인하였습니다.) 

 

<답변>

 

데이터자격검정센터입니다.

안내드린 바와 같이 warning 메세지의 경우 코드 실행에는 영향이 없으니 참고바랍니다.

감사합니다

 

0

DQ K님의 프로필 이미지
DQ K
지식공유자

안녕하세요, 가람님.

확인해본 결과 위의 코드는 크게 두 가지 부분에서 경고가 발생한 것인데요.

 

첫 번째는 6번째 줄 y_test = X_test[['cust_id']]를 하는 부분에서 발생한 경고입니다.

이후 로직에서 이로 인한 문제가 발생할 여지는 없으나, 만일 해당 이유를 알고 싶으시다면

[섹션4] 머신러닝 강의 중간의 부록으로 만들어진 깊은 복사와 얕은 복사 라는 제목의 강의를 통해 확인하시면 됩니다.

또한 이러한 경고창은 기존의 코드를 다음과 같이 수정하면 뜨지 않게 됩니다.

<기존>  y_test = X_test[['cust_id']]

<수정>  y_test = X_test[['cust_id']].copy()

이에 대해서는 노션의 실압코 부분에도 수정해놓았습니다.

 

두 번째로는 해당 환경에서 xgboost가 정상적으로 설치되지 않아 발생한 오류입니다.

분명 제가 강의를 기획하고 테스트해볼 때까지는 정상적으로 실행되었던 코드이나, 아무래도 중간에 업데이트를 했거나 혹은 해야할 것을 하지 않아 발생한 오류로 보입니다.

이를 개선하기 위해서는 xgboost 라이브러리를 재설치하거나, 버전 업그레이드를 해야하는데 이는 수험자 입장에서 진행할 수 없는 부분이기 때문에 해당 환경에서 당장 xgboost를 테스트해보긴 어려울 것 같습니다.

실제 시험환경에서는 이와 같은 일이 없도록 아래와 같이 공식적으로 문의를 넣어놓은 상태이며, 다른 환경에서 테스트해본 결과 전체 코드의 로직이나 결과에는 문제가 없음을 확인하였습니다. 감사합니다.

0

DQ K님의 프로필 이미지
DQ K
지식공유자

안녕하세요, 김가람님!

우선 코드 실행에 있어 어떤 문제가 있다며 뜨는 경우는 크게 두 가지가 있는데요

하나는 에러(Error), 하나는 경고(Warning)입니다.

에러(Error)의 경우엔, 반드시 고쳐야 하는 경우로써 정상적으로 코드가 실행되지 않음을 의미합니다.

반면 경고(Warning)의 경우엔, 고치는 것을 권장하는 사항에 대해 언급될뿐 코드는 정상적으로 작동함을 의미합니다.

 

또한 위에 뜬 경고문을 읽어보건데, 미래의 버전에서는 해당 방식의 인덱싱이 없어질 것이기에 지금 당장은 괜찮지만 만약 버전이 바뀐다면 이를 수정해야 한다고 합니다.

즉, 이후의 버전에서는 지금의 경고가 에러로 바뀔 수 있음을 의미하는 것입니다.

작성하신 전체 코드를 확인할 수 없어 구체적으로 어떤 부분에서 경고가 발생했는지는 어려우나, 아무래도 스케일링이나 학습 데이터로 나누는 과정에서 해당 경고가 발생하지 않았나 싶습니다.

만일 해당 경고가 왜 발생했는지 자세히 알고 싶으시다면 작성하신 전체 코드와 경고창을 찍어 주시면 답변드리도록 하겠습니다.

 

감사합니다.

김가람님의 프로필 이미지
김가람
질문자

빠른 답변 감사드립니다^^

작성한 코드는 아래와 같습니다.

그리고 아래는 실행 결과 창입니다.

확인 부탁드리겠습니다 감사합니다^^

DQ K님의 프로필 이미지
DQ K
지식공유자

아래 답변에서 진행한 문의 결과 다음과 같이 비록 실행 오류라는 출력이 뜨지만 정상적으로 코드는 작동하며, Warning을 무시하고 진행하라는 답변을 받았습니다.

 

또한 이와 관련해 실제 테스트해본 결과 아래 이미지와 같이 경고창과 별개로 이후 코드 실행이 정상적으로 이뤄지는 것 또한 확인하였습니다.

 

이외 다른 사항에 대해 질문 사항이 있다면 질문 주시면 최대한 빠르게 답변드리도록 하겠습니다.

감사합니다.

김가람님의 프로필 이미지
김가람
질문자

빠르고 세심한 답변 감사드립니다!!