[천재교육] 프로젝트 기반 빅데이터 서비스 개발자 양성 과정 9기
학습일 : 2024.08.29
📕 학습 목록
- 데이터 전처리 방법
- 생존 분석
- 최적화
- 스테레오 비전
📗 기억할 내용
1. 데이터 전처리 방법
1) 피처 스케일링 (Feature Scaling)
- 머신러닝 모델의 성능을 향상시키기 위해 변수의 데이터 분포를 조정하는 방법
- 주요 스케일링 방법 : 표준화(Standardization), 정규화(Normalization)
Standard Scaling (표준화) |
Min-Max Scaling (정규화) |
|
정의 | 데이터를 평균이 0이고, 표준편차가 1인 표준 정규분포로 변환 |
데이터를 특정 범위(일반적으로 0~1)로 스케일링 |
목적 | 데이터를 표준화하여 비교 가능하게 함 | 피처 간의 크기 차이를 줄여 거리 기반 알고리즘 성능 개선 |
예시 | 학생들의 시험 점수를 표준화하여 비교 | 주택 가격 데이터를 0~1 사이로 변환 |
2) 변수 변환 (Variable Transformation)
- 데이터의 분포를 더 정규에 가깝게 만들거나, 특정 피처의 영향을 강화하거나 감소시키기 위해 사용
- 주요 변수 변환 방법 : 제곱근 변환, 로그 변환
제곱근 변환 | 로그 변환 | |
정의 | 데이터에 제곱근을 취해 변환 | 데이터에 로그를 취해 변환 |
목적 | 치우친 분포를 완화하여 정규분포에 가깝게 변환 | 큰 값과 작은 값 간의 차이를 줄여 비선형성을 감소 |
예시 | [1, 4, 9, 16] -> [1, 2, 3, 4] | [10, 100, 1000] -> [1, 2, 3] |
3) 인코더 (Encoder)
- 범주형 데이터 → 숫자형 데이터로 변환하여 머신러닝 모델이 이를 이해하고 학습할 수 있도록 하는 방법
- 주요 인코딩 클래스(함수) : 레이블 인코더, 원핫 인코더, get_dummies
인코더 클래스(함수) 명 | |||
LabelEncoder | OneHotEncoder | get_dummies | |
라이브러리 | Scikit-learn | Scikit-learn | Pandas |
인코딩 | 범주형 데이터 → 고유한 정수 |
범주형 데이터 → 이진 값 |
범주형 데이터 → 이진 값을 포함하는 딕셔너리 |
사용 과정 | [at 데이터 전처리] - 타겟변수(종속변수) 인코딩 - 순서형 피처의 인코딩 |
[at 모델학습] - 범주형 변수가 모델에 직접 입력될 때, 이를 원-핫 인코딩하여 각 범주를 이진 벡터로 표현 |
[at 데이터 전처리] - 특정 컬럼의 범주를 이진 값으로 변환하여 새로운 피처를 생성 - 모델링 전에 데이터를 준비 |
예시 | ['red', 'green', 'blue'] → [0, 1, 2] |
['red', 'green', 'blue'] → [[1, 0, 0], [0, 1, 0], [0, 0, 1]] |
['red', 'green', 'blue'] → {'red': [1, 0, 0], 'green': [0, 1, 0], 'blue': [0, 0, 1]} |
2. 생존 분석
- 시간 경과에 따른 사건 발생(예: 사망, 질병의 재발 등) 확률을 분석하는 통계적 방법
- 주요 생존 분석 모델 : 단변량 생존 모델, 다변량 생존 모델
단변량 생존 모델 | 다변량 생존 모델 | |
Kaplan-Meier 추정법 | Cox's Proportional Hazards Model | |
설명 | - 시간 경과에 따른 생존 확률을 추정 - 중도 탈락(censoring)된 경우에도 유용 - 생존에 영향을 미치는 지표가 한 개 |
- 여러 변수들이 생존에 미치는 영향을 동시에 고려 - 생존에 영향을 미치는 지표가 여러 개 |
과정 | 1. 사건이 발생한 시점을 기준으로 생존 확률 계산 2. 사건 발생 시점에서의 생존 곡선 기울기(Slope) 조정 3. 마지막 Slope 확인 → 최종적인 생존 확률 곡선 완성 4. Kaplan-Meier 추정치 : 생존 곡선을 통해 특정 시점까지 생존할 확률 추정 |
1. 사건 발생 시점에 따라 생존 함수 생성 2. 각 변수에 대해 위험 비율(Hazard Ratio)을 추정 3. 위험 비율을 이용해 변수들이 생존에 미치는 영향을 평가 4. 모델이 제공하는 지표를 사용해 해석 및 예측 수행 |
핵심 지표 |
생존 확률, Slope(기울기) 조정 | Hazard Ratio (위험 비율) |
[TIP] 단변량 생존 모델 비교 : Kaplan-Meier vs Log-rank Test
- Log-rank Test : Kaplan-Meier 생존 곡선을 두 집단 간에 비교
- 목적 : 두 집단의 생존 곡선이 통계적으로 유의미하게 다른지를 검정(p-value 사용)
[TIP] 다변량 생존 모델 핵심 지표 : Hazard Ratio "각 변수의 생존에 미치는 상대적인 위험"
- '+' : 생존에 긍정적인 영향
- '-' : 생존에 부정적인 영향
[TIP] 다변량 생존 모델 시각화 : Forest Plot "Cox 모델 결과를 시각적으로 나타내는 그래프"
- 구성 요소 : Hazard Ratio, 신뢰구간
- Ex : 연령, 성별, 흡연 여부가 생존에 미치는 영향을 시각화
3. 최적화 (Optimization)
- 머신러닝 모델의 성능을 최대화하기 위해 하이퍼파라미터를 조정하는 과정
- 하이퍼파라미터 : 학습 과정에서 모델이 스스로 학습하지 않는 매개변수로, 최적의 조합을 찾아 모델의 일반화 성능을 개선하는 것이 목표
최적화 기법 |
|||||
GridSearch Cross Validation |
RandomSearch Cross Validation |
Bayesian Optimization | Early Stopping | Hyperband | |
정의 | 가능한 모든 하이퍼파라미터 조합을 체계적으로 탐색 | 하이퍼파라미터 조합을 무작위로 선택하여 탐색 | 베이지안 확률 모델을 사용해 하이퍼파라미터의 최적 값을 찾아가는 방법 | 학습 중에 검증 성능이 향상되지 않으면 학습을 조기에 중단 | Random Search와 Early Stopping을 결합한 효율적 하이퍼파라미터 탐색 방법 |
장점 | 최적의 하이퍼파라미터 조합을 찾을 가능성이 높음 | 계산 비용이 낮고 빠르게 최적의 조합을 찾을 가능성 | 적은 시도로 높은 성능의 파라미터 조합을 찾을 수 있음 | 과적합 방지, 학습 시간 단축 | 리소스를 효율적으로 사용하여 높은 성능 모델 찾기 |
단점 | 계산 비용이 높아질 수 있음 | 모든 조합을 시도하지 않기 때문에 최적의 조합을 놓칠 가능성 | 구현이 복잡하고 계산 비용이 상당할 수 있음 | 최적의 학습 시점을 결정하기 어려울 수 있음 | 초기 설정에 따라 성능 차이가 있을 수 있음 |
예시 | SVM 모델에서 C와 gamma 값을 모든 조합으로 시도 | SVM 모델에서 C와 gamma 값을 무작위로 시도 | 베이지안 모델을 사용한 하이퍼파라미터 튜닝 | 신경망 학습에서 10 에폭 동안 성능이 향상되지 않으면 중단 | 다양한 하이퍼파라미터 조합을 빠르게 탐색 |
4. 스테레오 비전을 이용한 이미지 깊이(depth) 추정
- 스테레오 비전 : 두 개의 카메라로 촬영한 이미지를 사용하여 3D 공간의 깊이 정보를 추출하는 기술
- 두 카메라 사이의 거리(Baseline)와 초점 거리(Focal length)를 알고 있을 때, 이미지 간의 시차(Disparity)를 계산하여 물체까지의 거리를 구할 수 있음
1) 스테레오 비전의 원리
- 두 개의 이미지 캡처 : 두 대의 카메라로 동일한 장면을 서로 다른 위치에서 촬영
- 특징점 매칭 : 두 이미지에서 동일한 물체의 특징점을 찾아 매칭
- 시차 계산 : 매칭된 점들 간의 차이(시차)를 계산
- 깊이 계산 : 시차, 초점 거리, 베이스라인을 이용해 물체까지의 깊이를 계산
2) 스테레오 비전의 시각적 설명
- 왼쪽 카메라(Ol)와 오른쪽 카메라(Or) : 서로 일정한 간격(Baseline)을 두고 배치
- 두 카메라의 광학 중심 : 각각 Ol과 Or로 표시
- 두 카메라는 동일한 3차원 공간의 점 P(X,Y,Z)P(X,Y,Z)P(X,Y,Z)를 촬영
- P(X,Y,Z)P(X,Y,Z)P(X,Y,Z) : 각각의 이미지 평면에
로 투영됨.
- 이미지 평면은 카메라 렌즈로부터 FFF (초점 거리)만큼 떨어져 있음
- 깊이(Depth) : 이 두 이미지에서의 차이, 즉 시차(Disparity)를 계산하여 추정됨
- 시차는 : 두 이미지에서 대응되는 점의 x 좌표 간의 차이
📙 내일 일정
- 머신러닝 실습
'TIL _Today I Learned > 2024.08' 카테고리의 다른 글
[DAY 35] Machine Learning 실습 (0) | 2024.08.30 |
---|---|
[DAY 33] xAI (0) | 2024.08.28 |
[DAY 32] 머신러닝 모델의 검증 (0) | 2024.08.27 |
[DAY 31] Machine Learning 실습 (0) | 2024.08.26 |
[DAY 30] 추천 시스템, 최적화 (1) | 2024.08.23 |