[원티드_프리온보딩]4.머신러닝 핵심개념 정리
머신러닝 핵심개념 정리
데이터 전처리 (Data Preprocessing)
데이터 전처리는 머신러닝 프로젝트의 기초 단계로, 데이터를 분석 가능하고 의미 있게 만드는 과정입니다. 데이터 전처리는 전체 데이터 과학 프로세스의 80%를 차지할 정도로 중요합니다. Anthony Goldbloom에 따르면, 데이터 과학자들은 대부분의 시간을 데이터 클리닝과 전처리에 사용하며, 이는 머신러닝 모델의 성능에 직접적인 영향을 미칩니다.
데이터의 특성과 문제점
특성/문제점 | 정의 | 발생 원인 | 해결 방법 |
---|---|---|---|
잡음 (Noise) | 랜덤 에러나 측정된 변수의 변형된 값 | 센서의 작동 실패, 데이터 전송 문제 | 회귀 분석, 클러스터링을 통한 노이즈 제거 |
결측값 (Missing Value) | 데이터 수집 과정에서 누락된 값 | 데이터 입력 누락, 데이터 수집 오류 | 평균값, 중앙값 대체 또는 행/열 삭제 |
이상값 (Outlier) | 데이터의 정상적인 범위를 벗어난 값 | 입력 오류, 측정 오류, 실험 조건의 불일치 | 시각화를 통한 탐지, 통계적 방법을 통한 처리 |
불일관성 | 다양한 출처에서 수집된 데이터의 형식 및 단위 차이 | 데이터 형식 및 단위의 차이 | 형식과 단위를 일관되게 맞추기 |
데이터 전처리 기술
데이터 전처리 기술을 사용하여 위의 특성과 문제점을 해결합니다. 이러한 기술은 데이터의 품질을 높이고 머신러닝 모델의 성능을 개선하는 데 필수적입니다.
전처리 기술 | 설명 |
---|---|
데이터 유형 변환 | 데이터를 분석에 적합한 형식으로 일관되게 변환 |
평활화 (Smoothing) | 데이터의 잡음을 제거하여 시각화를 용이하게 함 |
정규화 (Normalization) | 데이터를 일정한 범위로 스케일링하여 모델의 성능 향상 |
표준화 (Standardization) | 데이터의 평균을 0, 표준편차를 1로 조정하여 정규분포로 변환 |
데이터 여과 (Filtering) | 중복성과 오류를 제거하여 데이터 품질 향상 |
데이터 정제 (Cleansing) | 잘못된 데이터를 수정하거나 제거 |
이 표들은 데이터의 특성과 문제점을 명확하게 파악하고, 데이터 전처리 기술을 활용하여 이를 해결하는 데 도움을 줍니다. 데이터 전처리는 머신러닝 모델의 성능을 좌우하는 중요한 단계이며, 이를 통해 보다 정확하고 신뢰성 있는 모델을 구축할 수 있습니다.
데이터 전처리 기술의 예시
- 결측값 처리 예시
- 자동 채우기: 결측값을 평균, 중앙값, 최빈값으로 대체하여 데이터의 완성도를 높입니다.
- 전문가 수작업: 도메인 전문가가 데이터를 수작업으로 수정하는 방법도 있습니다.
- 잡음 처리 예시
- 구간화 (Binning): 데이터를 여러 구간으로 나누고 각 구간의 대표값으로 대체하여 잡음을 제거합니다.
- 회귀값 적용: 데이터의 추세를 가장 잘 나타내는 회귀 함수를 적용하여 잡음을 줄입니다.
- 이상치 처리 예시
- 단순 삭제: 이상치가 명백한 입력 오류일 경우 해당 값을 삭제합니다.
- 통계값 대체: 이상치를 다른 통계값으로 대체하여 데이터의 왜곡을 방지합니다.
머신러닝 알고리즘
머신러닝 알고리즘은 크게 지도학습, 비지도학습, 강화학습으로 분류됩니다.
지도학습 (Supervised Learning)
- 정의: 입력 데이터와 해당 데이터의 정답(레이블)을 함께 사용하여 학습하는 방법입니다.
- 예시 알고리즘:
- 선형 회귀 (Linear Regression): 연속적인 값을 예측하는 데 사용됩니다. 예를 들어, 주택 가격 예측.
- 로지스틱 회귀 (Logistic Regression): 이진 분류 문제에 사용됩니다. 예를 들어, 이메일 스팸 필터링.
- 의사결정나무 (Decision Tree): 데이터의 특징을 기반으로 분류 규칙을 생성하여 데이터를 분류하는 알고리즘입니다. 설명력이 뛰어나지만 과적합 문제가 발생할 수 있습니다.
비지도학습 (Unsupervised Learning)
- 정의: 레이블이 없는 데이터로부터 패턴을 찾는 학습 방법입니다.
- 예시 알고리즘:
- K-평균 클러스터링 (K-Means Clustering): 데이터 포인트를 K개의 군집으로 나눕니다.
- 주성분 분석 (PCA): 데이터의 차원을 축소하여 정보 손실을 최소화하면서 시각화나 처리 속도를 높입니다.
강화학습 (Reinforcement Learning)
- 정의: 에이전트가 환경과 상호작용하며 보상을 통해 학습하는 방법입니다.
- 예시: 게임 AI, 로봇 제어 등에서 사용됩니다.
머신러닝 모델 평가 지표
모델 평가지표를 이해하기 위해서는 혼동 행렬(confusion matrix)을 사용하여 각각의 지표를 계산할 수 있습니다. 혼동 행렬은 모델이 분류한 결과를 실제 라벨과 비교하여 참과 거짓을 구분하는 데 사용됩니다.
혼동 행렬 (Confusion Matrix)
실제\예측 | 예측 Positive | 예측 Negative |
---|---|---|
실제 Positive | a (True Positive, TP) | c (False Negative, FN) |
실제 Negative | b (False Positive, FP) | d (True Negative, TN) |
- True Positive (TP): 실제 Positive이고, Positive로 예측한 경우
- False Negative (FN): 실제 Positive인데, Negative로 예측한 경우
- False Positive (FP): 실제 Negative인데, Positive로 예측한 경우
- True Negative (TN): 실제 Negative이고, Negative로 예측한 경우
평가지표 계산식
-
정확도 (Accuracy): 전체 데이터 중에서 올바르게 예측한 데이터의 비율 \(\text{Accuracy} = \frac{a + d}{a + b + c + d}\)
-
정밀도 (Precision): 성으로 예측한 것 중 실제 양성인 데이터의 비율 \(\text{Precision} = \frac{a}{a + b}\)
-
재현율 (Recall, Sensitivity): 실제 양성인 데이터 중 양성으로 예측한 비율 \(\text{Recall} = \frac{a}{a + c}\)
-
특이도 (Specificity): \(\text{Specificity} = \frac{d}{b + d}\)
-
F1-score: \(\text{F1-score} = 2 \times \frac{\text{Precision} \times \text{Recall}}{\text{Precision} + \text{Recall}}\)
예시 데이터와 계산 표
다음은 혼동 행렬을 기반으로 각 지표를 계산하는 예시입니다.
예시 데이터
- True Positive (TP) = 50
- False Negative (FN) = 10
- False Positive (FP) = 5
- True Negative (TN) = 35
계산 표
지표 | 계산식 | 값 |
---|---|---|
정확도 | $\frac{a + d}{a + b + c + d}$ | $\frac{50 + 35}{50 + 10 + 5 + 35} = \frac{85}{100} = 0.85$ |
정밀도 | $\frac{a}{a + b}$ | $\frac{50}{50 + 5} = \frac{50}{55} \approx 0.91$ |
재현율 | $\frac{a}{a + c}$ | $\frac{50}{50 + 10} = \frac{50}{60} \approx 0.83$ |
특이도 | $\frac{d}{b + d}$ | $\frac{35}{5 + 35} = \frac{35}{40} = 0.875$ |
F1-score | $2 \times \frac{\text{Precision} \times \text{Recall}}{\text{Precision} + \text{Recall}}$ | $2 \times \frac{0.91 \times 0.83}{0.91 + 0.83} \approx 0.87$ |
이 표를 통해 각 지표가 혼동 행렬의 요소를 어떻게 사용하는지, 그리고 각각의 계산 과정이 어떻게 진행되는지 명확히 이해할 수 있습니다. 이를 통해 모델의 성능을 평가하고 개선 방향을 도출할 수 있습니다.
댓글남기기