강의

멘토링

로드맵

Inflearn brand logo image

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

변재현님의 프로필 이미지
변재현

작성한 질문수

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

예시문제 작업형2(ver. 2023)

안녕하세요, 라벨 인코딩 후 train 전체 데이터를 학습에 사용하는 것이 적절한지 궁금하여 질문드립니다.

해결된 질문

작성

·

33

0

1)혹시 현재 범주형 컬럼에 대해 라벨인코딩 한 후, 인코딩한 컬럼만 따로 학습에 사용하는 것이 아니라, 수치형 컬럼과 함께 전체 데이터(총 10개 컬럼)를 모델에 넣어 학습했습니다. 이때 오히려 성능이 더 잘 나왔는데, 이런 방식이 괜찮은지 확인 받고 싶습니다.

from sklearn.preprocessing import LabelEncoder

cols = list(train.select_dtypes(include = 'O'))

for col in cols:

le = LabelEncoder()

train[col] = le.fit_transform(train[col])

test[col] = le.transform(test[col])

 

이후 전체 데이터를 사용해 모델 학습을 진행했습니다.

X_train, X_val, y_train, y_val = train_test_split(train.drop('성별',axis=1), train['성별'], test_size = 0.2, random_state = 0)

print(X_train.shape, X_val.shape, y_train.shape, y_val.shape) #(2800, 10) (700, 10) (2800,) (700,) 범주형데이터 인코딩한 상태로 10개 컬럼 그대로 가지고 학습

 

from sklearn.ensemble import RandomForestClassifier

from sklearn.metrics import roc_auc_score

rf = RandomForestClassifier(random_state = 0, max_depth =5)

rf.fit(X_train,y_train)

rf_predpro = rf.predict_proba(X_val)

rf_rocauc = roc_auc_score(y_val,rf_predpro[:,1])

print(rf_rocauc) # train data 전체 데이터 사용 시 약 0.63, 범주형 컬럼 두 개만 썼을 때는 약 0.60

 

감사합니다

 

 

답변 2

0

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

인코딩 후에 전체데이터(수치+범주]로 학습하는 것이 정상입니다.

인코딩 후 인코딩한 데이터로만 학습하는 것은 잘못된 방식이에요 🙂

 

변재현님의 프로필 이미지
변재현
질문자

네 감사합니다!

0

안녕하세요, 인프런 AI 인턴입니다. 변재현님께서 질문하신 내용에 대해 답변드리겠습니다.

범주형 데이터를 라벨 인코딩하여 수치형 데이터와 함께 전체 데이터를 학습에 사용하는 것은 일반적인 머신러닝 과정에서 자주 사용되는 접근 방식 중 하나입니다. 이렇게 했을 때, 성능이 더 잘 나왔다는 것은 데이터의 주요 특성을 모두 포함하여 모델을 학습시켰기 때문일 수 있습니다. 각자의 데이터를 이해하는 것이 중요하며, 성능 향상이 있었다면 이는 좋은 징조입니다.

  1. 전체 데이터 사용의 장점: 모델이 더 많은 정보를 학습할 수 있게 되어 성능이 향상될 수 있습니다. 특히 랜덤 포레스트와 같은 앙상블 모델은 다양한 피처에 대해 로버스트한 성능을 발휘할 수 있습니다.

  2. 모델 검증: 모든 피처를 사용하여 모델을 학습한 후에는 교차 검증을 통해 모델이 과적합되지 않았는지 추가적인 검토가 필요합니다.

  3. 성능 측정: 다양한 피처 조합으로 실험해 보는 것이 필요하며, 학습 데이터와 검증 데이터의 분포 차이를 최소화하여 일관된 결과를 얻을 수 있는지를 확인하는 것도 중요합니다.


관련하여 더 많은 정보를 얻고자 한다면, 다음 게시물을 참고하실 수 있습니다:

이러한 설명과 링크들이 변재현님이 실습하시는데 참고가 되셨으면 좋겠습니다.

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

변재현님의 프로필 이미지
변재현

작성한 질문수

질문하기