티스토리 뷰

 

안녕하세요. 죠쵸입니다.

 

Pandas, One Hot Encoding이라는 주제로 포스팅하고자 합니다.

 

One Hot Encoding 을 간단히 설명하자면, Data를 Machine Learning 알고리즘이 알기 쉽게 변환해 주는 것입니다. 즉, 카테고리성 데이터를 각 카테고리별 컬럼으로 추가생성하고 Machine Learning 알고리즘이 알기 쉽도록(?), 예측을 더 잘 할 수 있도록 1과 0 또는 (True / False)로 값을 변환해 주는 것을 의미합니다.

 

캐글의 타이타닉 경진대회의 데이터를 예시를 보여 드리겠습니다. 참고로 캐글의 타이타닉 경진대회에 대한 포스팅은 이전 포스팅을 참고 부탁 드립니다.

2020/08/29 - [Data Science] - 캐글 타이타닉 데이터 분석 및 시각화

 

타이타닉 경진대회의 여러가지 데이터 컬럼 중에 Embarked 라는 컬럼이 있습니다. Embarked 컬럼은 탑승객이 어느 항구에서 탑승했는지를 C / S / Q 의 값으로 표기하고 있습니다. 아래의 코드 및 결과를 참조 부탁 드립니다.

 

print(train["Embarked"].head())
train["Embarked"].value_counts()

 

One Hot Encoding 하는 방법이 여러가지가 있을 텐데요. 이번에는 판다스를 이용해서 One Hot Encoding 하는 방법 2가지를 공유하도록 하겠습니다.

 

#One Hot Encoding 처리방법 1

 

train["Embarked_C"] = train["Embarked"] == "C" 을 설명 드리면, Embarked 컬럼 값이 C 일 때, True를, C가 아닐 때, False 값을 train["Embarked_C"]에 넣어주게 됩니다. 

train["Embarked_C"] = train["Embarked"] == "C"
train["Embarked_S"] = train["Embarked"] == "S"
train["Embarked_Q"] = train["Embarked"] == "Q"
print(train.shape)
print(train[["Embarked", "Embarked_C", "Embarked_S", "Embarked_Q"]].head())

 

#One Hot Encoding 처리방법2

 

위의 방법은 각 값에 따라 직접 컬럼을 생성하고 값을 넣어주는 작업이 필요합니다. 하지만 판다스의 get_dummies()를 사용하면 간단히 생성할 수 있습니다.

train_embarked_dummies = pd.get_dummies(train.Embarked, prefix='Embarked')
train_embarked_dummies.head()

 

방문해 주셔서 감사합니다. 여러분의 공감하기(), 댓글과 구독은 저에게 힘이 됩니다.

이상으로 죠쵸였습니다.

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함