10회 작업형 2 인코딩 질의
2
작성한 질문수 2
작업형 2에서 업로드해주신 자료에서는 원핫인코딩을 진행했는데요.
원핫인코딩을 진행한 사유가 있나요?
저는 시군구명만 레이블인코딩을 사용했는데 , 인코딩 종류를 결정하는 것이 헷갈립니다,
제가 사용한인코딩 코드를 첨부합니다!
from sklearn.preprocessing import LabelEncoder
cols=train.columns[train.dtypes=='O']
for col in cols:
le=LabelEncoder()
train[col]=le.fit_transform(train[col])
test[col]=le.fit(test[col])
이렇게만 했더니, train 만 object ->int로 바뀌고 test는 바뀌지 않아서
랜덤포레스트를 활용할수 없다는 에러가나와 아래를 추가했습니다..!
from sklearn.preprocessing import LabelEncoder
cols=test.columns[test.dtypes=='O']
for col in cols:
le=LabelEncoder()
test[col]=le.fit_transform(test[col])
이렇게 해도 되나요..?? dtypes로 마지막에 점검했을 때는, 둘다 int로 바뀌어 있기는 했습니다.
답변 1
0
안녕하세요, 인프런 AI 인턴입니다. 지호 이님,
질문 주신 원핫인코딩과 레이블인코딩의 활용에 대한 의문에 대해 설명드리겠습니다.
원핫인코딩과 레이블인코딩 선택의 기준
원핫인코딩은 범주형 변수 값이 순서가 없는 경우 주로 사용됩니다. 각 고유한 범주에 대해 별도의 이진 열을 생성하여 데이터의 차원이 증가하지만, 범주 간의 거리 또는 크기가 중요한 역할을 하지 않는 경우 효과적입니다. 머신러닝 모델에서 특정 범주의 중요성 없이 모든 범주에 고유한 값을 부여할 때 사용됩니다.
레이블인코딩은 범주형 변수 값이 순서가 있을 때 사용됩니다. 범주형 데이터를 정수로 변환하는 방법으로, 각 범주에 대해 고유한 숫자를 할당합니다. 하지만 범주의 숫자 값이 모델에 의해 크거나 작은 것으로 오도될 수 있어 주의해야 합니다.
적용 사례:
시군구명과 같은 경우: 순서보다는 특정 고유 명칭들이 있는 경우라면, 원핫인코딩이 일반적인 선택입니다. 이를 통해 거리나 차원이 모델에 영향을 미치지 않게 됩니다.
범주의 순서가 의미가 있는 경우: 이때는 레이블인코딩이 더 적합할 수 있습니다. 예를 들어, ‘low’, ‘medium’, ‘high’와 같은 순서가 있는 데이터에서 사용하기 좋습니다.
해당 질문과 유사한 다른 사용자분들의 경험을 공유한 게시글 또한 참고해 보시면 도움이 될 수 있습니다:
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
f1 score 질문
0
0
0
53번 강의에서 갑자기 수업노트가 없어졌습니다.
0
6
2
28:19 roc_auc이유
0
8
2
수강연장문의
0
11
2
전체적인 머신러닝 순서
0
7
1
빅분기 실기 유형2질문
0
13
1
ID 전처리 이유
0
24
2
데이터제공
0
21
2
예시문제 작업형3 꼬리질문2번
0
11
0
데이터 개수를 구할 때, len과 value_counts 차이
0
17
2
작업형 2 제출방
0
15
2
인코딩 스케일링 순서
0
18
2
실제 시험에서도 공식을 문제에서 주는지
0
17
2
수강 연장 문의
0
16
2
작업형2 정리한 내용 확인 부탁드립니다 ㅜㅜ
0
20
1
14강 "" 사용 관련 질문
0
22
2
캐글 제출 점수
0
26
2
기출 마무리 방법
0
50
2
빅이시 작업형2 기초 - 케이스 1~3 관련 문의
0
31
6
데이터프레임 슬라이싱 인덱싱 질문2
0
27
2
단일표본검정, 샤피로검정, 윌콕슨검정
0
38
2
강의자료 다운로드 여부
0
39
2
문제에 첨부된 예시와 실제 출력된 샘플 비교
0
30
2
원핫 인코딩 관련
0
40
2





