강의

멘토링

커뮤니티

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

lovesy116님의 프로필 이미지
lovesy116

작성한 질문수

[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)

[작업형2] 연습문제 섹션 4

# Section 4. 이직 여부 예측 _concat여부

작성

·

22

0

 

안녕하세요. 혹시 '이직 여부 예측'예제처럼

Train데이터와 Test데이터의 컬럼수의 차이가 클때, 강사님의 풀이법처럼 concat하지않고 basetline대로 진행하면 평가지표가 많이차이날까요? cocat없이 저는 진행하니 ROC-AUC가 아래와같이 나옵니다.

0.6487124056282382
# ROC-AUC
from sklearn.metrics import roc_auc_score
roc_auc= roc_auc_score(y_val,pred)
print('roc_auc:', roc_auc) # roc_auc: 0.6487124056282382

답변 3

0

퇴근후딴짓님의 프로필 이미지
퇴근후딴짓
지식공유자

그냥 보기에도 64점(0.64)와 77점(0.77)은 점수차이가 꽤 많이 나 보이지 않나요?

감점이 꽤 있을 것 같습니다. 인코딩은 포기하지 말고 반드시 해주세요 👏👏

 

 

0

lovesy116님의 프로필 이미지
lovesy116
질문자

train= train.drop('city', axis= 1)
test= test.drop('city', axis= 1)

 

city컬럼이 서로 달라서 먼저 삭제한후에, 원핫인코딩을 해도 cocat의 방법을 시도해야하는 걸까요?

퇴근후딴짓님의 프로필 이미지
퇴근후딴짓
지식공유자

합쳐서 인코딩 하면 됩니다!! 풀이코드 참고 부탁드려요!

0

안녕하세요, 인프런 AI 인턴입니다. lovesy116님, 질문에 답변드리겠습니다.

Train과 Test 데이터의 컬럼 수가 다를 때, concat을 사용하여 데이터를 병합 후 전처리하는 방식은 흔히 사용되는 방법입니다. 이는 주로 feature의 불일치 문제를 해결하기 위한 것이며, 이는 모델의 성능 및 일반화 능력에 직결될 수 있습니다. concat을 사용하지 않고 처리했을 때 ROC-AUC가 떨어진다면, 이는 모델이 테스트 데이터에 필요한 정보를 충분히 학습하지 못했음을 의미할 수 있습니다.

왜 concatenation이 중요한가?
1. Feature 불일치 문제 해결: Train 및 Test 데이터셋 간에 feature 수가 다를 경우, 예를 들어 어떤 카테고리 변수들이 한 데이터셋에서만 발생한다면, 모델이 예측 시에 혼란스러워질 수 있습니다. Concatenate 후 One-Hot Encoding을 하면, 모든 카테고리의 열을 동일하게 만들어주는 장점이 있습니다.

  1. 일관된 전처리: 데이터 전처리를 동시에 실시할 수 있습니다. 이렇게 하면 scaling, encoding 등의 작업이 일관되게 진행되어 모델이 Train과 Test 데이터를 일관되게 다룰 수 있습니다.

  2. ROC-AUC의 중요성: ROC-AUC는 모델의 성능을 평가하는데 유용한 지표입니다. 이 값이 낮다면, 데이터셋의 전처리와 모델 성능을 개선할 필요가 있습니다.

추천하는 방법들:
- 데이터 병합 후 전처리 수행을 추천드립니다. 이는 실무에서 흔히 사용되는 방법으로, Train과 Test 데이터의 feature 일치를 보장합니다.
- 예를 들면 작업형2 빅데이터 분석기사 2회 실기 질문와 같은 게시물에서 데이터 전처리 및 모델링의 문제를 다룹니다. 해당 질문에서는 feature names의 일치 여부가 문제의 핵심이므로 참고하실 수 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

lovesy116님의 프로필 이미지
lovesy116

작성한 질문수

질문하기