분석시각화 대회 코드 공유 게시물은
내용 확인 후
좋아요(투표) 가능합니다.
Python 튜토리얼
Lv3 전처리 4/4 python 파이썬 원-핫 인코딩
이번 시간에는 “One-Hot Encoding”을 진행합니다!
컴퓨터는 “문자”로 된 데이터를 학습할 수 없습니다.
그래서 “type”같은 피쳐들은 컴퓨터가 읽어서 학습 할 수 있도록 “인코딩”을 해주어야 합니다.
그래서 인코딩의 방법 중 하나인 “One-Hot Encoding”을 소개해드려고 합니다!
One-Hot Encoding은 말 그대로, ‘하나만 Hot 하고, 나머지는 Cold한 데이터”라는 의미입니다.
즉, 자신에게 맞는 것은 1로, 나머지는 0으로 바꾸어 줍니다.
예를 들어볼게요!
아래의 “출신 지역”이라는 변수는 문자로 되어있기 때문에, 컴퓨터가 이해할 수 없습니다.
그래서 컴퓨터가 이해할 수 있도록 숫자로 바꿔줘야 하죠.
→
이렇게 말입니다.
이제 이해가 되시나요?
자신에 해당 되는 값은 1인 "Hot"한 값을 주고, 나머지는 0인 "Cold"한 값을 주는 방법입니다.
이제 실습으로 따라해보시죠.
-----------------------------------------------------------------------------------------------------------------------------------------
# "OneHotEncoder"를 "encoder"라는 변수에 저장해보세요
encoder = OneHotEncoder()
# "encoder"를 사용해 train의 "type" 피쳐를 학습시켜보세요
encoder.fit(train[['type']])
# "encoder"를 사용해 train의 "type"피쳐를 변환해 "onehot"이라는 변수에 저장해보세요
onehot = encoder.transform(train[['type']])
# "onehot"이라는 변수를 array 형태로 변환해 보세요
onehot = onehot.toarray()
# "onehot"이라는 변수를 DataFrame 형태로 변환해 보세요
onehot = pd.DataFrame(onehot)
# encoder의 "get_feature_names()"를 사용해 column 이름을 바꿔보세요
onehot.columns = encoder.get_feature_names()
# onehot을 원본데이터인 train에 병합시켜보세요
onehot = pd.concat([train, onehot], axis = 1)
# train의 "type" 변수를 제거해주세요
train = train.drop(columns = ['type'])
-----------------------------------------------------------------------------------------------------------------------------------------
이제 인코딩까지 마무리 했으니, 다음 시간부터는 Wine Data를 사용해서 모델링을 해보겠습니다
↩️ 오늘의 파이썬 리스트
#데이콘_101 #AI #머신러닝 #딥러닝 #파이썬 #파이선 #데이터분석 #데이터사이언티스트 #코랩 #Python #colab #kaggle #pandas #numpy #sckit-learn # read_csv
done
done
✅
✅
✅
✅
✅
✅
done
✅
✅
✅
✅
✅
✅
✅
done
done
done
done
✅
done
✅
✅
✅
? 이대로 따라하면 onehot column이 안 생기는 것 같은데요...제가 잘못 이해하고 있나요?
✅
✅
실습 중 이 부분이 잘못된 게 아닌가 해서 댓글 남겨봅니다.
# ------------------- 기존 코드 -------------------
# onehot을 원본데이터인 train에 병합시켜보세요
onehot = pd.concat([train, onehot], axis = 1)
onehot.head()
# ------------------- 변경 코드 -------------------
# onehot을 train에 병합하려면 다음과 같이 작성되어야 할 것 같습니다.
train = pd.concat([train, onehot], axis = 1)
train.head()
제가 잘못 이해한 것이라면 알려주세요.
감사합니다.
✅
✅
done
✅
✅
done
done
done
done
train=pd.concat([train,onehot],axis=1)
done
✅
done+
get_feature_names_out()
기존코드
onehot.columns = encoder.get_feature_names()
변경코드
onehot.columns = encoder.get_feature_names_out()
데이콘(주) | 대표 김국진 | 699-81-01021
통신판매업 신고번호: 제 2021-서울영등포-1704호
서울특별시 영등포구 은행로 3 익스콘벤처타워 901호
이메일 dacon@dacon.io | 전화번호: 070-4102-0545
Copyright ⓒ DACON Inc. All rights reserved
done!