LabelEncoding 시 train data 학습(fit_transform, transform)
작업형2 모의문제 풀이에서
for col in cols:
le = LabelEncoder()
train[col]=le.fit_transform(train[col])
test[col]=le.transform(test[col])
다음과 같이 코딩을 진행하셨는데,
이는 그 후 train을 split해서 학습 시 이미 fit_transfrom이 되어 데이터 누출이 되는 방법 아닌가요?
답변 2
0
결론부터 말하면 데이터 누출(Data Leakage)이 아닙니다.
데이터 누출은 test의 정보가 train 학습에 영향을 줄 때 발생합니다.
이 코드는 train은 으로 인코딩 사전만들고 test에는 적용만 했어요!!
다만 강의에서는 데이터 누출에 대해 자세히 다루지 않고 있으며, train과 test의 카테고리가 다를 경우에는 누출 문제를 무시하고 둘을 합쳐서 인코딩하는 방법을 설명하고 있습니다. 이 부분은 시험에서 크게 중요하지 않아 별도로 설명하지 않고 있으니 참고해 주세요.
화이팅입니다!
0
안녕하세요, 인프런 AI 인턴입니다. 각나닫님.
질문해주신 코드에서 fit_transform과 transform을 처리하는 방식은 머신러닝 모델에서 데이터 누출을 방지하기 위해 주의해야 할 부분입니다. LabelEncoder의 fit_transform을 데이터셋의 전체에 사용하는 것은 일반적으로 훈련과 테스트 데이터 분할 전 사전처리 단계에서만 사용하는 것이 바람직합니다. 그렇지 않으면, 데이터 누출(data leakage)이 발생할 수 있습니다.
데이터 누출이란, 모델이 테스트 데이터에 관한 정보를 모델 훈련 중에 미리 알게 되면서 일반화 성능이 실제로 과대 측정되는 문제를 의미합니다. 주로 훈련 세트에 포함되지 않은 데이터를 훈련하는 과정에서 안 보일 데이터의 일부를 누설하는 경우에 발생합니다.
이 문제를 방지하기 위해서는 다음과 같이 훈련 데이터와 테스트 데이터를 분할 후에 인코딩을 수행하는 방법이 있습니다:
from sklearn.preprocessing import LabelEncoder
from sklearn.model_selection import train_test_split
# 데이터 분리
train_df, val_df = train_test_split(train, test_size=0.2, random_state=42)
# 각 범주형 컬럼에 대해 인코딩 수행
for col in cols:
le = LabelEncoder()
train_df[col] = le.fit_transform(train_df[col])
val_df[col] = le.transform(val_df[col])
test[col] = le.transform(test[col])
이 방법은 훈련 데이터(train_df)에 대해 LabelEncoder를 처음으로 적합(fit)하고, 그 동일한 인코더를 검증 및 테스트 데이터(val_df 및 test)에 적합한 인코딩 정보로 변환하는 방식입니다.
관련된 질문은 아래 링크를 통해 추가로 확인하실 수 있습니다. 유사하거나 확장된 설명과 예제가 포함되어 있습니다:
1. 반복문 안에서 LabelEncoder() 해주는 이유가 궁금합니다
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
0
작업형 모의문제2 에서 말씀하신 대로 시도해 보았지만
y contains previously unseen labels: 'Westerleigh'
라는 오류가 떴습니다.
설명을 들어보니 train엔 없는 test의 컬럼 데이터값이 존재해서 이런 에러가 발생했다고 인지했지만, 해당 에러를 해결하기 위한 방법이 있는지 궁금합니다.
작업형 1번문제... 환경관련
0
7
1
12회 기출은 언제 업데이트 될까요??
0
7
1
8/6 작성한 연장문의 질문글에 대한 재요청
0
17
1
수강기간 연장 문의
0
21
1
수강기간 연장문의
0
21
1
수강기간 연장 요청 문의드립니다
0
25
1
수강 기간 연장 문의
0
35
1
수강연장 가능 문의 (기간 약 한달반)
0
53
2
수강기간 연장 가능할까요 선생님
0
70
2
Section15. 수업에 사용하는 데이터 주소가 다 보이지 않아서 실습을 위한 데이터를 다운 받지 못하고 있습니다.
0
47
3
수강연장요청 문의
0
83
2
아무래도 다음 시험 연장은 어렵겠죠?
0
103
2
빅분기 12회 결과 관련 문의
0
106
1
책이랑 강의랑 순서나 예제가 다른것 같네요
0
78
2
수강연장 문의
0
102
2
재검토 요청 방법 좀 알려주셔요...-.-;;
0
100
2
12회 실기 질문(작업형 2)
0
88
2
뒤로가기 버튼 같은 것이 있나요?
0
61
1
강의 연장 문의
0
97
2
출력값 질문
0
69
2
수업노트가 어디에 있나요?
0
59
1
실기시험 제출관련
0
222
3
6.20 작업형 2 과적합
0
227
3
코딩팡 장업형2 베이스 라인 인코딩 종류 질문
0
86
2





