[Pandas] 비지도학습을 위한 Custom Binary Encoding
2019. 7. 23. 16:59ㆍProgramming Tutorial/Python
데이터 셋에 따라 데이터 분석을 위한 조건을 만족시키는 이진값을 가진 열을 반들기 위해 레이블 인코딩과 온-핫 인코딩을 섞어 사용해야 될 수도 있습니다.
예를 한번 같이 보시겠습니다.
특정 데이터 셋에 engine_type이라는 열이 있고 그 열에는 아래와 같이 몇가지 값으로 분류되어 있습니다.
obj_df["engine_type"].value_counts()
ohc 148
ohcf 15
ohcv 13
l 12
dohc 12
rotor 4
dohcv 1
Name: engine_type, dtype: int64
여기서 다른거 필요없이 분류값중에 'ohc'가 있느냐 없느냐만 금번 분석에 의미가 있다고 생각해봅시다.
전제를 깔자는 거지요.
이러한 판단을 하기 위해서는 관련 산업군이나 Tech쪽에 Domain 지식이 있는 분이 직접 혹은 그런 분과 같이 진행해야 합니다.
그러면 ohc글자가 있는 분류는 1, 그렇지 않으면 0으로 Binary화해서 Encoding하면 되겠네요.
Hula~
Python에서는 아래와 같이 한줄이면 되겠습니다.
obj_df["OHC_Code"] = np.where(obj_df["engine_type"].str.contains("ohc"), 1, other=0)
도메인 지식이 이래서 중요합니다. 복잡한 정보가 효율/단순화 되었네요. 분석에도 데이터 보존에도 용이하게 바뀌었습니다.
'Programming Tutorial > Python' 카테고리의 다른 글
파이썬 List를 편하게 가지고 노는 방법 (List Comprehensions) (0) | 2019.08.13 |
---|---|
Mutable 과 Immutable 의 의미 (1) | 2019.08.12 |
Python 쓰면서 date time 정보에 대해서 생각해본적 있나? (0) | 2019.06.27 |
[스크립팅 #1] Python으로 파일명기준 폴더만들어서 파일옮기기 (0) | 2019.06.21 |
[numpy #5] 열벡터를 만들어 봅시다. Making column vector (0) | 2019.06.05 |