Upstage AI Lab 2기
2024년 3월 18일 (월) Day_066
ML Advanced
딥러닝 시대에서의 ML : 가장 기본이 되는 베이스, 면접에 ML 기초에 대한 질문이 많이 나옴
ML 파이프라인
데이터 수집 | 데이터 전처리 | 모델 선택 | 학습 및 평가 | 배포 |
CH01. 데이터 전처리
(데이터 수집 후, 모델 학습 전)
데이터 전처리의 중요성 : garbage in garbage out (안 좋은 데이터 -> 안 좋은 결과)
데이터 수집 | 데이터 전처리 | 모델 선택 | 학습 및 평가 | 배포 |
데이터 특성 이해 -> 수정 -> 품질 향상 (+ 모델마다 요구하는 입력의 특성이 다름)
예) 선형회귀 - 정규분포, KNN - 스케일링
- 성능적 관점 : 편향 제거 -> 신뢰도↑ 안정성↑
(선형회귀, 거리기반 알고리즘들은 결측치 및 이상치에 영향을 많이 받음) - 해석적 관점 : 중요 변수 및 패턴 찾기 용이 -> 모델 복잡도↓ 과적합 방지
+ 모델 해석 능력↑ -> 신뢰도↑ 안정성↑ - 시각화 관점 : 데이터 시각화 용이
part1. 결측치/이상치/연속형변수/범주형변수 처리
part2. 파생변수 : 변수 자체 변환(연속형변수 처리) / 파생 변수 생성
part3. 변수 선택
행(row) = instance
열(column) = variable, feature
part1. 결측치/이상치/연속형변수/범주형변수 처리
1-1. 결측치(Missing Value)
결측치가 어떤 매커니즘으로 생기고, 어떤 패턴을 가지며, 어떤 방법으로 처리할 것인지.
- 누락된 관측치 -> 데이터 손실 및 분포 왜곡·편향 (row 단위일 수도, column 단위일 수도 있음)
- N/A(Not Available), NaN(Not a Number), Null, Empty, ? 등 표현방식 다양 -> 데이터 오픈해봐야 함 (정성적 분석 필요)
매커니즘 | 완전 무작위 |
무작위 | |
비무작위 | |
패턴 | 일변량 |
단조 | |
일반 | |
규칙 | |
처리방식 | 삭제 |
대체 |
- 결측치 매커니즘
- 완전 무작위 (MCAR : Missing Completely At Random) : 관측치/결측치 모두 결측원인과 독립, 해당 변수와 무관
예) 센서고장, 전산오류 등 - 무작위 (MAR : Missing At Random) : 결측치가 해당 변수와는 무관 but 다른 변수와 연관
- 비무작위 (MNAR : Missing Not At Random) : 해당 변수와 연관
- 설문조사에서 많이 나타나는 종류의 결측, 예) 우울증 설문
- 완전 무작위 (MCAR : Missing Completely At Random) : 관측치/결측치 모두 결측원인과 독립, 해당 변수와 무관
- 결측치 패턴
- 일변량결측패턴 (Univariate Pattern) : 한 변수에 대해서만 결측 발생
- 단조결측패턴 (Monotone Pattern) : 예) 피험자 사망 등으로 인한 특정 시점부터 이어지는 결측
- 일반결측패턴 (General&Non-Monotone Pattern) : 다른 변수와의 관계, 비선형 결측 패턴
- 규칙결측패턴 (Planned Pattern) : 일정 패턴/규칙에 따라 발생
- 결측치 처리 방식
- 삭제
- 목록 삭제(행삭제, Listwise Deletion)
- 변수가 너무 많으면 너무 많은 행을 삭제하게 될 수도 있음.
- 결측 자체가 의미가 있는 경우도 있어서 조심해야 함. - 열삭제(Dropping Columns & Features) - 컬럼별 결측치 비율 확인 후 진행
-
장점 편리 단점 결측치에 패턴이 있는 경우 오히려 편향 유발
샘플 수 ↓∴ 결측치의 원인부터 파악!!
- 목록 삭제(행삭제, Listwise Deletion)
- 대체(Imputation)
- 통계값 대체(평균, 최빈, 중앙)
-
장점 샘플 크기 유지 단점 변수간 상관관계↓ or bias↑
-
- 회귀 대체 - regression, KNN 등의 방법으로 결측치 예측
-
장점 많은 데이터 활용
삭제나 통계값 대체보다 편향이 적게 생김단점 별도의 예측 모델 생성 필요 but! 그럼에도 성능면에서 의미가 있음
-
- 통계값 대체(평균, 최빈, 중앙)
- 삭제
1-2. 이상치
변수의 분포상 비정상적으로 극단적이며, 일반적인 데이터 패턴을 벗어나는 관측치.
통계값을 왜곡시키고 분석 및 해석에 악영향
이상치 제거 -> 모델 안정성 ↑
결측치와 마찬가지로 중요한 정보를 내포할 수도 있기 때문에 도메인 지식 등에 기반하여 이상치의 원인 분석 필요
종류 | 점 이상치 |
상황적 이상치 | |
집단적 이상치 | |
탐지 | Z-score |
IQR | |
처리방식 |
삭제 |
대체 | |
변환 |
- 이상치의 종류
- 점 이상치 (Point, Global Outlier) : 대부분 관측치와 동떨어진 형태의 이상치. 탐지 쉬움.
- 상황적 이상치 (Contextual Outlier) : (주로 시계열 데이터에서) 상황에 따라 이상치로 판단되는 데이터.
- 집단적 이상치 (Collective Outlier)
- 강의의 예시만으로는 집단적 이상치를 어떻게 탐지할 수 있는지 감이 안 옴
- 이상치 탐지
- Z-score : Z = (x - μ) / σ
단점
- 데이터가 정규분포를 따르지 않을 경우 효과적이지 않음
- μ, σ 모두 이상치에 민감한 통계값 - IQR
장점 : 직관적, 이상치에 강건
단점 : 왜도가 심하거나 정규분포를 따르지 않을 경우 제대로 작동하지 않을 가능성
- Z-score : Z = (x - μ) / σ
- 이상치 처리
- 삭제
- 대체 - 통계값, Upper/Lower Boundary, 회귀 or KNN 등의 모델로 예측 및 대체
- 변환 - 이상치 완화 (예. log 변환 등)
결론 : 결측치/이상치의 원인부터 파악!!
1-3 연속형변수 처리
input 조건을 맞춰주기 위함 (예. 선형회귀 - 정규성, KNN - scaling)
함수 변환 | 로그 변환 |
제곱근 변환 | |
거듭제곱 변환 | |
Box-Cox 변환 | |
스케일링 | 정규화 (Normalization, Min-Max Scaling) |
표준화 (Standardization) | |
Robust Scaling | |
구간화 |
- 함수변환
- 로그 변환 / 제곱근 변환 : right-skewed 비대칭 분포 ---(to)---> 정규분포에 가깝게 변환
비대칭이 심한 경우 로그변환, 약한 경우 제곱근 변환
장점 - 선형회귀에 필요한 가정인 정규성 확보, 데이터 간 편차 ↓
but left-skewed일 경우 비대칭이 더 심해짐
∴ 변환 전 반드시 분포 확인https://medium.com/geekculture/what-are-right-skewed-and-left-skewed-distributions-a29b3def7598 - 거듭제곱 변환
- Box-Cox 변환 - 파라미터 λ 값으로 다양한 transformation 조절 가능
(λ = 0 로그변환, λ = 1/2 제곱근 변환, λ = 2 거듭제곱 변환)출처 : Upstage Lab 2기 강의자료 [ML Advanced] (1-2) 카테고리와 기타 변수 다루기
- 로그 변환 / 제곱근 변환 : right-skewed 비대칭 분포 ---(to)---> 정규분포에 가깝게 변환
- 스케일링 : 동일한 혹은 유사한 수치 범위로 변경 (특히 거리기반 알고리즘에서 필수)
- 정규화(Normalization 中 Min-max Scaling) : 수치 범위를 [0, 1] 로 통일
출처 : Upstage Lab 2기 강의자료 [ML Advanced] (1-2) 카테고리와 기타 변수 다루기 - 표준화(Standardization) : μ=0, σ=1
거리기반 알고리즘에서 장점출처 : Upstage Lab 2기 강의자료 [ML Advanced] (1-2) 카테고리와 기타 변수 다루기 - Robust Scaling : IQR 기준 ((x-xmed) / Q3 - Q1), 이상치에 강건
- 정규화(Normalization 中 Min-max Scaling) : 수치 범위를 [0, 1] 로 통일
- 구간화 (binning, bucketing) : 수치형 to 범주형 - 모델복잡도↓ (∵ 변수의 cardinality ↓) & 해석 용이
- 등간격
- 등빈도 - 이상치의 영향을 완화
1-4 범주형변수 처리
string 인식 x -> 수치형으로 encoding 필요
장점 | 단점 | ||
원핫 | binary 벡터로 변환 | 의미 파악 용이 | - num of elements ↑ 희소벡터 차원 ↑ → 메모리&연산에 악영향 + 차원의 저주 (벡터 크기 = feature의 num of elements) (그래서 강사님은 잘 쓰지 않는다고....) |
레이블 | 각 범주를 정수로 표현 | - ordinal category에 효율적 - 하나의 feature로 표현 → 메모리 효율성 |
명목형을 ordinal로 인식할 가능성 |
빈도 |
frequency로 표현 (= count encoding) |
- 수치적 의미부여 - 하나의 feature로 표현 → 메모리 효율성 |
다른 범주를 같은 값으로 인식 (보완 방법 : feat1 - label, feat2 - frequency) 미래 시점 정보의 반영 (보완 방법 : 과거 등장 빈도로 인코딩) |
타겟 | 타겟 변수를 통계량으로 표현 (= mean encoding) 범주형 to 연속형 |
- 범주형 변수와 타겟의 관련성 파악 용이 - 범주간 관계 반영 |
mean을 사용 → 이상치에 민감 data leakage!! 미래정보 반영 → 과적합 (매우 위험한 인코딩 방법) (보완방법 : ① smoothing(w. noise) ② K-fold(예. fold1은 fold 2~4로 target encoding etc.) ③ 과거 정보만으로 target encoding) |
참고자료
https://dacon.io/competitions/official/236216/overview/description
https://stanford.edu/~shervine/teaching/cs-229/cheatsheet-deep-learning
CS 229 - Deep Learning Cheatsheet
Want more content like this? Subscribe here to be notified of new releases! CS 229 - Machine Learning العربية English Español فارسی Français 한국어 Português Türkçe Tiếng Việt 简中 繁中 Supervised Learning Unsupervised Learn
stanford.edu
https://eda-ai-lab.tistory.com/625
[Machine Learning Advanced] 2강. 머신러닝 강의 - 데이터 전처리 (이상치)
이전 강의인 [Machine Learning Advanced] 2강. 머신러닝 강의 - 데이터 전처리 (결측치)에 이어서 이상치에 대해서 살펴보도록 하겠습니다. 이상치란 무엇일까요? 이상치(outlier)는 일반적인 데이터 패턴
eda-ai-lab.tistory.com
'Upstage AI Lab 2기' 카테고리의 다른 글
Upstage AI Lab 2기 [Day067] ML Advanced - CH02. 파생 변수 만들기 실습(1) (0) | 2024.03.19 |
---|---|
Upstage AI Lab 2기 [Day067] ML Advanced - CH02. 파생 변수 생성 ~ CH03. 변수 선택 (0) | 2024.03.18 |
Upstage AI Lab 2기 [Day062] (0) | 2024.03.12 |
Upstage AI Lab 2기 [Day061] (0) | 2024.03.11 |
Upstage AI Lab 2기 [Day060] (0) | 2024.03.08 |