범주형 자료(Categorical data/Qualitative data)

Ho Jin Lee·2021년 8월 26일
0

범주형 자료란?


범주형 자료는 수치로 측정이 불가능한 자료를 말한다.
예를 들어 성별,지역, 혈액형 등이 있다.

하지만 그렇다고 범주형 자료가 숫자로 표현이 불가능하다는 말은 아니다.

예를 들어 남녀 성별을 남자를 1 여자를 0으로 표현하면 숫자로 표현도니 범주형 자료라고 볼 수 있고,

수치형 자료인 나이를 만10~19세, 만20~29처럼 구간으로 나누어 준다면 수치형 자료를 범주형 자료로 변환하였다고 할 수 있다.

범주형 자료의 종류


범주형 자료에는 순위형 자료(Ordinal data), 명목형 자료(Norminal data)가 있다.

순위형 자료(Oridnal data)는 범주 사이의 순서에 의미가 있다.
Ex. 학점(A+,A,A-,...)

명목형 자료(Norminal data)는 범주 사이의 순서에 의미가 없다.
Ex. 혈액형(A,B,O,AB), MBTI

범주형 자료의 표현


범주형 자료들은 도수분포표 또는 막대그래프로 나타낼 수 있다.

도수(Frequency) 각 범주에 속하는 관측값의 개수 value_counts()

상대도수(Relative Frequency) 도수를 자료의 전체 개수로 나눈 비율 value_counts(normalize=True)

도수분포표

강의 만족도 설문(100명 조사)

범주도수상대도수누적 상대도수
매우 만족300.30.3
만족100.10.4
보통300.30.7
불만족150.150.85
매우 불만족150.151.00

막대그래프

plt.bar()를 사용하여 그래프로 출력 가능.

범주형 자료의 전 처리


순서에 의미가 없는 명목형 자료의 경우 수치 맵핑 방식더미(Dummy)기법으로 자료를 변환 할 수 있고,

순서에 의미가 있는 순서형 자료의 경우 수치 맵핑 방식을 사용한다.

명목형 자료

수치 맵핑


일반적으로는 범주를 0,1로 맵핑 한다

(-1,1),(0,100)등 다양한 방법으로 할 수 있지만, 모델에 따라 성능이 달라질 수 있다.

맵핑 해야할 범주가 3개이상인 경우, 수치의 간격을 같게 하여 맵핑한다.

코드


DataFrame.replace({A:B, C:D,...})

를 사용하여 A를 B로 C를 D로 변환 할 수 있다.


titanic = titanic.replace({'male':0,'female':1})

로 male을 0으로 female을 1로 변환 할 수 있다.

더미(Dummy) 기법


각 범주를 0 또는 1로 표현 할 수 있도록 더미 변수들을 만들어 범주형 변수들을 연속형 변수처럼 만들어 주는 방법이다.

코드

pd.get_dummies(DataFrame[[칼럼명]])

을 사용하여 data frame의 칼럼의 범주형 변수들을 연속형으로 변경 할 수 있다.

dummies = pd.get_dummies(titanic[['Embarked']])

순서형 자료

수치 맵핑


동일하게 수치로 변환하지만, 수치 간 간격은 조절 할 수 있고, 이 크기 차이가 머신러닝 결과에 영향을 끼칠 수 있다.

출처


2021 NIPA AI 온라인 교육 AI 실무 응용 과정

profile
배 터져 죽을 때까지

0개의 댓글