Logistic Regression이란? 🤔
Logistic Regression은 머신러닝에서 분류 문제를 해결하는 데 사용되는 통계적 기법입니다.
이름에 "Regression"이 들어가지만, 실제로는 데이터를 특정 클래스(예: 0 또는 1)로 분류하는 데 사용됩니다.
이 알고리즘은 시그모이드 함수(Sigmoid Function)를 사용하여 결과를 0과 1 사이의 확률 값으로 변환합니다.
이렇게 계산된 확률 값을 기준으로, 특정 기준(보통 0.5)을 넘으면 1, 그렇지 않으면 0으로 분류합니다.
간단한 예제 💡
예를 들어, 나이와 연봉 데이터를 기반으로 사람이 제품을 구매할지(1) 구매하지 않을지(0)를 예측한다고 가정해봅시다.
Logistic Regression은 이 데이터를 학습하여 구매 가능성을 확률로 반환하고, 해당 확률을 기반으로 최종 결정을 내립니다.
데이터 스케일링 ✨
Logistic Regression에서 데이터 스케일링은 매우 중요합니다. 입력 데이터의 값 범위가 서로 크게 다를 경우, 모델의 성능이 저하될 수 있기 때문입니다.
- 정규화(Normalization): 데이터 값을 0과 1 사이로 변환.
- 표준화(Standardization): 평균이 0, 표준편차가 1이 되도록 변환.
데이터 스케일링이란?
피쳐스케일링을 알아서 해주는 Linear Regression와 달리
Logistic Regression에서는 별도의 피쳐스케일링이 필요하다는 점을 기억하세요. 😉
Classifier란? 🤖
Classifier는 분류기를 의미하며, 데이터를 특정 클래스(또는 레이블)로 분류하는 머신러닝 모델입니다. Logistic Regression은 대표적인 분류기 중 하나로, 주어진 데이터를 기반으로 두 클래스(또는 다중 클래스) 중 어디에 속하는지 예측합니다.
성능 평가: 분류에 대한 지표 📊
Logistic Regression과 같은 분류 모델의 성능을 평가하기 위해 다음과 같은 지표를 사용할 수 있습니다:
1. 정확도(Accuracy) 🎯
- 정의: 전체 데이터 중 모델이 정확히 예측한 비율.
- 계산:
Accuracy = (True Positive + True Negative) / Total
- 적용 상황: 클래스 간 데이터가 균형 잡혀 있는 경우 유용합니다.
2. 정밀도(Precision) 🔍
- 정의: 모델이 "정답"이라고 예측한 값 중 실제로 정답인 비율
- 계산:
Precision = True Positive / (True Positive + False Positive)
- 적용 상황: False Positive(잘못된 정답 예측)가 큰 문제가 되는 경우 유용.
- 실생활 비유: 농부가 "좋은 사과"를 골라냈다고 했을 때, 실제로 좋은 사과가 얼마나 포함되어 있는지 확인하는 과정이 정밀도입니다.
False Positive(잘못 고른 사과)를 줄이는 것이 중요합니다 - 예: 이메일 스팸 필터. 잘못된 이메일을 스팸으로 분류하지 않는 것이 중요.
3. 적중률(Recall) 🚨
- 정의: 실제로 정답인 값 중 모델이 올바르게 예측한 비율.
- 계산:
Recall = True Positive / (True Positive + False Negative)
- 적용 상황: False Negative(정답을 놓치는 경우)가 큰 문제가 되는 경우 유용.
- 실생활 비유:금광에서 모든 금을 찾아내야 하는 상황에서, 금을 놓치지 않고 얼마나 잘 찾아냈는지 확인하는 것이 적중률입니다.
- 예: 신용카드 사기 탐지. 사기를 놓치지 않는 것이 중요.
정밀도 vs. 적중률: 차이를 명확히 구분하기
- 정밀도(Precision): "내가 맞다고 한 예측들 중에 진짜 맞는 게 얼마나 있나?"
- 초점: 정확하게 맞춘 비율 → False Positive를 줄이는 것.
- 예: 스팸 필터, 법원 판결(무고한 사람을 범죄자로 판단하지 않는 것).
- 적중률(Recall): "실제로 맞는 것들 중에 내가 얼마나 많이 맞췄나?"
- 초점: 놓치지 않는 것 → False Negative를 줄이는 것.
- 예: 의료 진단(환자를 놓치지 않는 것), 사기 탐지(사기를 최대한 탐지).
예시: 적중률이 중요한 경우 💡
신용카드 결제 내역을 분석해 사기를 탐지하는 모델을 개발한다고 가정해봅시다.
- 정확도만 높이는 경우: 모델이 대부분의 결제를 "정상"으로 예측해 정확도가 98%라고 해도, 사기 결제를 놓치면 큰 문제가 됩니다.
- 적중률이 중요한 이유: 사기를 놓치지 않는 것이 더 중요하므로, Recall을 높이는 것이 핵심입니다. Recall이 높아질수록 실제 사기를 더 많이 탐지할 수 있습니다.
반면, 잘못된 사기 탐지(정밀도 감소)가 다소 증가하더라도 이는 고객 확인 절차를 통해 완화할 수 있습니다.
성능 평가 요약 📝
- 정확도(Accuracy): 데이터가 균형 잡혀 있을 때 유용.
- 정밀도(Precision): False Positive를 줄이는 데 초점.
- 적중률(Recall): False Negative를 줄이는 데 초점.
상황에 따른 우선순위 🛠️
- 스팸 필터링: Precision이 중요 (정상 이메일을 스팸으로 분류하면 안 됨).
- 의료 진단: Recall이 중요 (질병을 놓치는 일이 없어야 함).
- 사기 탐지: Recall이 중요 (사기를 놓치지 않는 것이 최우선).
결론 🎉
Logistic Regression은 데이터의 확률 분포를 기반으로 간단하면서도 효과적으로 분류 문제를 해결할 수 있는 강력한 도구입니다.
- 성능 평가에서는 단순히 정확도에 의존하지 않고, 정밀도(Precision), 적중률(Recall) 등의 지표를 상황에 맞게 적절히 선택해야 합니다.