반응형
정형 데이터
- 범주형 데이터: 순서형 / 명목형
- 수치형 데이터: 이산형 / 연속형
대푯값
- 평균 / 총합
- 기댓값 (가중평균)
- 최빈값
- 중앙값
- 사분위값
- 절사평균
1. 범주형 데이터
집단 간 분석에 용이한 데이터
- 명목형 데이터
- 순서 상관없이 항목으로 구분
- 순서형 데이터
- 각 값이 우위 등 순서가 존재
- (수치형과 헷갈린다면 산술 연산이 적용되는지 확인)
- e.g. 별점 4점은 별점 2점보다 2배 좋은가?
명목형 데이터 전처리
- Label Encoding
sklearn.preprocessing.OrdinalEncoder()
- 없는 레이블에 대해 미리 전처리 필요
[0,1,2]
등으로 라벨링 한다면 자체적인 순서 발생
- One-Hot Encoding
sklearn.preprocessing.OneHotEncoder()
- 다수 범주가 동시에 포함될 수 있는 경우에도 효율적인 인코딩
- 변수에 따라 데이터가 커질 수 있어 학습 속도와 퀄리티에 악영향
- 빈도 기반 범주를 일부 줄이기, 데이터 증강 등을 사용할 수 있음
- 그러나 이것 역시 long-tail 데이터에 대한 학습 퀄리티 악화될 수 있음
- Binary Encoding
- 레이블링을 우선한다.
(0,1,2,3...)
- 이를 이진수로 변환한다.
(000, 001, 010, ... 111)
- 이를 컬럼 데이터로 변환한다
[0, 0, 0] [0, 0, 1]
범주의 개수가 k개 일때 k < 2^N 을 만족하는 최소 N만큼의 컬럼 생성
- Pros: 순서 정보를 없애며, 개수가 많은 범주에 대해 효과적
- Cons: 범주의 의미가 거의 사라짐
- 레이블링을 우선한다.
- Embedding
- 자연어 처리에 있어 적절한 임베딩 모델을 사용
- Hashing
- 랜덤 해시 값 사용으로 순서 정보를 없앰
- 특정 값에 따른 인코딩
- 해당 범주가 가진 통계값의 사용
- 예시로 빈도수로 한다면 여자가 30명, 남자가 70명 이라면 =>
[여자,남자] => [30,70]
- 표본집단의 통계량과 모집단 다른 경우 치명적
- 캐글 등에서 테크닉으로 사용할 수 있지만 범용적으로 사용하기엔 어려움
순서형 데이터
- 순서형 데이터
- 순환형 데이터
2. 수치형 데이터
구분 1
- 이산형 데이터: 띄엄띄엄한 정수 형태
- 연속형 데이터: 연속적인 실수 형태
구분 2 - 구간형 데이터: 구간의 값이 중요 (온도, 시간)
- 비율형 데이터: 원점과의 거리가 중요 (인구수, 횟수, 밀도)
데이터에 대한 해석
- 왜도 (skewness)
- 첨도 (Kurtosis)
- 형태
정규화와 표준화
- 정규화(Normalization)
- 데이터 범위를
[0,1]
또는[-1,1]
과 같은 특정 범위로 변환 - 모든 값에 최솟값을 빼주고, 최댓값에서 최솟값을 뺀 값으로 나눠준다.
- 데이터 범위를
- 표준화(Standardization)
- 데이터의 평균을 0, 표준편차를 1로 만들어, 데이터를 표준 정규 분포 형태로 변환
- 각 값에서 평균을 빼주고 표준편차로 나눠준다.
비대칭도 (Skewness)

이미지 출처: https://en.wikipedia.org/wiki/Skewness
- 오른쪽으로 치우친 데이터 (Negative Skew)
- 큰 값의 구간을 작은 값보다 더 효과적으로 작게 만들기
- Square/Power Transformation: 제곱 변환 또는 거듭 제곱
- Exponential Transformation: 지수 함수
- 큰 값의 구간을 작은 값보다 더 효과적으로 작게 만들기
- 왼쪽으로 치우친 데이터 (Positive Skew)
- 작은 값의 구간을 큰 값보다 더 효과적으로 크게 만들기
- Log Transformation: 로그 (조건: 0 이상 실수)
- Square-root Transformation: 제곱근 (조건: 양수)
- Box-Cox Transformation: 범용적인 Log Transformation 변형 방법론
- 작은 값의 구간을 큰 값보다 더 효과적으로 크게 만들기
Box-Cox Transformation
f(x)={xλ−1λif λ≠0 log(x)if λ=0
- 0인 경우, Log 변환
- 0.5인 경우, 제곱근 변환
- 1인 경우, 유지
- -1인 경우. 역수 변환
반응형
'네이버 부스트캠프 AI Tech 7기 > Machine Learning Basic' 카테고리의 다른 글
PyTorch로 직접 구현하는 Linear Regression (0) | 2024.08.19 |
---|---|
Numpy로 직접 구현하는 Linear Regression (0) | 2024.08.18 |
PyTorch 입문 - Tensor 기본 함수와 연산 이해하기 (0) | 2024.08.09 |
댓글