원-핫 인코딩 (One-Hot Encoding)
- 정의: 각 카테고리를 **독립적인 이진 변수(0 또는 1)**로 변환합니다. 예를 들어, "Red", "Green", "Blue"라는 색상이 있으면 각각의 색상에 대해 새로운 열을 생성하고, 해당 색상에 맞는 위치에 1을 할당합니다.
- 적합한 경우: 순서가 없는 명목형 데이터(예: 성별, 도시 이름 등)를 변환할 때 사용합니다.
- 특징: 데이터의 차원이 증가하므로, 카테고리의 개수가 많을 경우 데이터 차원이 매우 커질 수 있습니다.
범주형 데이터와 수치형 데이터는 데이터의 특성과 활용 방식에 따라 구분되는 두 가지 주요 데이터 유형입니다.
1. 범주형 데이터 (Categorical Data)
- 정의: 범주형 데이터는 특정 그룹이나 카테고리로 나뉘는 데이터입니다. 이러한 데이터는 순서가 없거나(명목형), 특정 순서가 존재하는 경우(순서형)도 있습니다.
- 예시: 성별(남/여), 제품 종류(A/B/C), 지역(서울/부산/대구), 날씨(맑음/흐림/비).
- 특성: 값 자체는 의미가 없고, 그룹이나 클래스로 구분되는 용도로 사용됩니다.
- 구분:
- 명목형(Nominal): 순서나 크기 관계가 없는 데이터 (예: 성별, 도시 이름).
- 순서형(Ordinal): 순서나 등급이 있는 데이터 (예: 만족도(높음/보통/낮음), 학위 수준).
2. 수치형 데이터 (Numerical Data)
- 정의: 수치형 데이터는 숫자로 표현되며 산술적 계산이 가능한 데이터입니다.
- 예시: 나이, 소득, 점수, 길이, 무게.
- 특성: 데이터의 크기나 차이를 계산할 수 있으며, 평균, 분산 등 통계적 분석이 가능합니다.
- 구분:
- 이산형(Discrete): 정수 값만 가지는 데이터 (예: 나이, 건물 층수, 자녀 수).
- 연속형(Continuous): 실수 값이 가능한 데이터로, 특정 범위 내에서 무한히 많은 값을 가질 수 있음 (예: 키, 몸무게, 온도).
카테고리 형태의 데이터는?
"카테고리 형태의 데이터"는 일반적으로 범주형 데이터에 속합니다. 이러한 데이터는 특정 그룹이나 클래스를 나타내며, 순서가 없거나 순서가 있더라도 수치 연산을 하기보다는 그룹 간 비교나 빈도 계산 등에 사용됩니다.
범주형 데이터와 수치형 데이터의 차이 요약
구분범주형 데이터수치형 데이터
데이터 형태 | 그룹 또는 카테고리 | 숫자 또는 실수 |
예시 | 성별, 도시, 제품 종류 | 나이, 키, 무게 |
통계 분석 방식 | 빈도, 비율, 카이제곱 검정 | 평균, 분산, 회귀분석 |
구분 기준 | 명목형, 순서형 | 이산형, 연속형 |
따라서, 카테고리 형태의 데이터는 주로 범주형 데이터에 속하며, 데이터 분석이나 머신러닝에서 원-핫 인코딩 등을 통해 숫자로 변환하여 처리하는 경우가 많습니다.
카테고리형 데이터를 수치형 데이터로 변환할 때 고려해야 할 것
- 나중에 모델링 할 때 알고리즘 적용 시
get_dummies
get_dummies는 범주형 데이터를 수치형 데이터로 변환하는 데 사용하는 원-핫 인코딩(one-hot encoding) 함수입니다. 판다스의 get_dummies 함수는 각각의 범주형 값에 대해 새로운 이진(0과 1) 열을 생성하여, 머신러닝 모델이나 통계 분석에서 사용할 수 있는 수치형 형태로 데이터를 변환해줍니다.
주요 특징
- 각 범주형 변수의 고유한 값마다 새로운 열이 생성됩니다.
- 해당 열에 해당하는 범주의 경우 1로 표시되고, 그렇지 않은 경우 0으로 표시됩니다.
- 데이터프레임의 특정 열을 지정하여 선택적으로 변환할 수도 있습니다.
사용법
주요 파라미터
- data: 원본 데이터프레임.
- columns: 원-핫 인코딩할 열을 지정합니다. 지정하지 않으면 범주형 열을 모두 인코딩합니다.
- prefix: 새로운 열 이름에 추가할 접두사를 지정합니다.
- drop_first: True로 설정하면 첫 번째 범주를 제거하여 다중공선성을 줄이는 효과가 있습니다(기본값은 False).
예제
다음과 같은 데이터프레임이 있다고 가정해 보겠습니다:
- Color 열은 Color_Blue, Color_Green, Color_Red 세 개의 이진 열로 변환되었습니다.
- Size 열도 Size_L, Size_M, Size_S 세 개의 이진 열로 변환되었습니다.
drop_first 사용
다중공선성을 줄이기 위해 첫 번째 열을 제외하고 인코딩할 수 있습니다.
- drop_first=True 옵션을 사용하면 첫 번째 범주(Color_Blue와 Size_S)가 제외됩니다.
요약
- get_dummies는 범주형 데이터를 수치형 데이터로 변환하여 머신러닝 모델에서 사용할 수 있도록 변환합니다.
- 다중공선성을 줄이기 위해 drop_first=True를 사용하는 것이 좋습니다.
- 각 범주형 변수의 고유한 값마다 새로운 이진 열을 생성하여 값이 1(해당됨) 또는 0(해당되지 않음)으로 표시됩니다.
특정 칼럼에 고유값이 너무 많으면, 열이 너무 많아지기 때문에 (모델링 할때 안좋을 수 있습니다)
그럴 땐, 더미변수 갯수 조절이 필요할 수 있습니다.
반응형
'데이터사이언티스트 Data Scientist' 카테고리의 다른 글
PCA - 주성분 분석 (5) | 2024.11.04 |
---|---|
스케일링 (Scaling) (0) | 2024.11.04 |
피벗테이블(Pivot) (0) | 2024.11.04 |
melt 메소드 (0) | 2024.11.04 |
파이썬 - groupby (1) | 2024.11.04 |