본문 바로가기
데이터관련공부/Python

더미변수 (원핫인코딩) 및 바이닝

by 자유롭고 싶은 키털트 2023. 1. 30.

출처: Coursera Data Analysis with Python

 

Coursera | Online Courses & Credentials From Top Educators. Join for Free | Coursera

Learn online and earn valuable credentials from top universities like Yale, Michigan, Stanford, and leading companies like Google and IBM. Join Coursera for free and transform your career with degrees, certificates, Specializations, & MOOCs in data science

www.coursera.org

 

1. Dummy Variable (Categorical -> Numerical)

우선, 범주형 변수를 숫자 변수 처럼 변환하는 과정에 대해 배워보겠다. 대체로 대부분의 통계 모델들은 범주형 변수의 텍스트 (text, string) 를 인자 (input) 로 받지 못하기 때문에 (머신러닝 알고리즘에 바로 사용 불가) 이를 숫자형 변수 (Numerical Variable) 로 변환하는 과정이 필요한데, 이를 더미 변수, Dummy Variable 이라고도 한다. (또는 원핫인코딩 (One-hot-encoding 이라고 한다)

 

예를 들면 하기와 같다...

 

gas, diesel 이라는 범주형 변수로 구성된 Fuel 열을 숫자형 변수로 변환 하고 싶다고 가정하자. 이 때, gas, diesel 칼럼을 오른쪽 칼럼 처럼 각각 만들고 0, 1 여부로 표시하여 컴퓨터가 인식할 수 있도록 0 과 1로 구성되는 원핫벡터로 변환하는 작업이 원핫인코딩 이다. 

 

Pandas 에는 pd.get_dummies() 를 활용하여 더미 변수를 쉽게 생성할 수 있다. 

 

dummy_variable_1 = pd.get_dummies(df["fuel-type"])
dummy_variable_1.head()

 

2. Binning 

Numerical Variable 을 일종의 Grouping 을 하는 작업이다. 연속적인 숫자 변수를 이산적인 범주형 변수로 변환하는 작업으로 이해할 수 있다. (Binning is a process of transforming continuous numerical variables into discrete categorical 'bins' for grouped analysis)

 

- 예를 들어, Price 를 High, Low, Middle 등의 그룹으로 쪼개는 것도 일종의 Binning 작업이다. 

-  Binning 을 할 때는 np.linspace, pd.cut() 을 이용한다. 

 

bins np.linspace(min(df["horsepower"]), max(df["horsepower"]), 4)

 

group_names = ['Low', 'Medium', 'High']

 

df['horsepower-binned'] = pd.cut(df['horsepower'], binslabels=group_names, include_lowest=True )
df[['horsepower','horsepower-binned']].head(20)

 

반응형