Andrew Ng의 지도학습 머신러닝 3주 차 강의 정리
코세라 강의 링크 : https://www.coursera.org/learn/machine-learning
지도 머신 러닝: 회귀 및 분류
머신 러닝 전문 과정의 첫 번째 과정에서는 다음과 같은 내용을 학습합니다. - 인기 있는 머신 러닝 라이브러리인 NumPy와 scikit-learn을 사용하여 Python으로 머신 러닝 모델 구축 - 선형 회귀 및 로지
www.coursera.org
00. Classification(분류)
이전 2주차까진 Regression(회귀) 문제를 다뤘다면,
3주차엔 데이터를 특정 클래스에 분류하는 방법을 배움
머신러닝의 지도학습(Supervised Learning)의 일종으로,
기존 데이터를 학습하여 새로운 데이터를 사전에 정의된 특정 범주(Category/Label)로 판별하는 기법.
스팸 메일 여부, 질병 유무 등 이산적인 데이터 값을 예측하는 데 사용되며,
로지스틱 회귀, 의사결정 나무, 서포트 벡터 머신 등이 대표적
1) Learning Objectives
- 이진 분류를 위한 로지스틱 회귀 구현
- 모델 성능을 향상시키기 위해 정규화를 사용하여 과적합 문제 해결
01. Classification with logistic regression (로지스틱 회귀를 사용한 분류)
- Classification은 데이터를 특정 범주(class=category)에 분류하는 문제

- 종양 데이터를 분류하는 문제의 경우 "이 종양이 악성일 확률이 높은가?" 를 예측하는 것
- y = 0 → benign (양성)
- y = 1 → malignant (악성)
x = tumor size # 종양의 크기
y = 0 or 1
✅ 선형회귀(Linear Regression)로 분류하면 안 되는 이유
"선형 회귀로 예측값을 만들고 0.5 기준으로 나누면 되지 않나?"

0.5이상이면 1로 분류 0.5미만이면 0으로 분류하려는 방식
하지만 선형회귀는 분류에 적합하지 않음
문제1) 예측값이 0~1 범위를 벗어남
- 선형회귀는 −∞∼+∞ 어떤 값도 출력할 수 있음
그런데 분류에서 원하는 건 “확률”이라서 출력값이 0~1 사이여야 함.
문제2) 이상치(outlier)에 의해 결정 경계가 크게 흔들림
- 데이터가 조금만 추가되거나 이상치가 섞이면, 회귀 직선이 크게 바뀌고
결정 경계(0.5 기준)도 쉽게 흔들림
➡️ 따라서 분류를 위해 Logistic Regression을 사용함
1) Logistic regression (로지스틱 회귀)
target 변수가 범주형(주로 0 또는 1의 이진 분류)일 때,
feature와의 관계를 시그모이드(Sigmoid) 함수를 이용해 0~1 사이의 확률로 예측하는 통계적 알고리즘
1. 먼저 선형결합을 만든 후

2. 그 값을 sigmoid 함수에 넣어 0~1로 바꿈



- g(z) → sigmoid function
- 선형 회귀식의 결과값을 0과 1 사이의 확률값으로 변환하기 위해 로지스틱 함수(Sigmoid Function)를 사용
여기서 "x가 주어졌을 때 y = 1일 확률을 의미"


- 종양이 악성일 확률 = 70%
- 종양이 양성일 확률 = 30%

- x가 주어졌을 때 y가 1일 확률

2) Sigmoid function(시그모이드 함수)
시그모이드 함수는 입력값을 0과 1 사이의 S자형 곡선으로 매핑하는 비선형 활성화 함수.
주로 인공신경망의 이진 분류 문제에서 출력값을 확률로 해석하는 데 사용되며,
매끄러운 미분이 가능해 경사 하강법에 적합하지만, 기울기 소실(Vanishing Gradient) 문제가 발생할 수 있다는 단점 존재
✅ sigmoid function 정의

- 출력 범위 → 0~1
- 확률로 해석 가능
- z가 커질수록 1에 가까워지고, 작아질수록 0에 가까워짐
- z = 0이면 g(z)=0.5

3) Decision boundary(결정경계)
결정 경계(Decision Boundary)는 머신러닝 분류(Classification) 모델에서
서로 다른 클래스(class)를 구분하는 경계선을 의미
즉, 모델이 데이터를 어떤 클래스에 속하는지 결정하는 기준선입니다.
일반적으로 이진 분류(binary classification) 문제에서는 다음과 같이 두 개의 클래스를 나눕니다.
✅ Logistic Regression에서의 Decision Boundary



✅ 분류 기준
보통 Logistic Regression에서는 다음 기준을 사용

✅ 결정 경계의 수식
: 시그모이드 함수의 특징 때문에 아래와 같이 성립

- 확률이 0.5 일때

즉 Logistic Regression에서 결정 경계는 선형 방정식으로 표현되는 경계선

02. Cost function for logistic regression(로지스틱 회귀의 비용함수)
1) 로지스틱 회귀의 비용함수
: Logistic Regression에서도 모델을 학습하기 위해서는 비용 함수(Cost Function) 가 필요하다.
선형회귀에서는 Mean Squared Error(MSE)를 사용했지만, 로지스틱회귀에서는 MSE가 적합하지 않음
2) Logistic loss
: 로지스틱 회귀에서는 다음과 같은 비용 함수를 사용

- 이 비용 함수는 Logistic Loss or Cross Entropy Loss 라고 부름
- Logistic Loss는 예측이 틀릴수록 큰 penalty(패널티) 를 주는 형태의 비용 함수
✅ 실제 값이 1일때, 예측 확률이 1에 가까울 수록 cost는 작아짐


✅ 실제 값이 0일때, 예측 확률이 0에 가까울 수록 cost는 작아짐

3) Simplified Cost Function for Logistic Regression
Logistic Regression의 비용 함수는 다음과 같이 간단하게 표현할 수 있습니다.

이 두 식을 하나로 합치면 다음과 같은 최종 비용 함수를 도출

- 이 비용 함수는 Convex 형태이기 때문에 Gradient Descent로 안정적으로 최소값을 찾을 수 있음
03. Gradient descent for logistic regression(로지스틱 회귀의 경사하강법)
1) 로지스틱 회귀의 경사하강법 구현

* α = learning rate(학습률)
- Gradient Descent의 과정
1️⃣ 현재 파라미터로 예측값 계산
2️⃣ 실제값과의 오차 계산
3️⃣ 기울기(gradient) 계산
4️⃣ 파라미터 업데이트
- 이 과정을 반복하면서 비용 함수가 최소가 되는 파라미터를 찾음
04. The problem of overfitting (과적합 문제)
1) The problem of overfitting
Overfitting은 모델이 학습 데이터(training data)에 지나치게 맞춰지는 현상을 의미
즉 모델이 데이터의 일반적인 패턴이 아니라 노이즈(noise)까지 학습한 상태
✅ 회귀(Regression)에서의 Overfitting
: 주택 가격 예측 데이터

(1) Underfitting (과소적합, high bias) : 모델이 너무 단순한 경우
- training data를 잘 설명하지 못하는 경우로, 모델이 데이터의 패턴을 충분히 학습하지 못한 상태를 말함

(2) Just Right (적절한 모델, generalization) : 모델이 데이터의 패던을 적절하게 학습한 상태
- training data를 잘 설명하며 새로운 데이터에도 잘 일반화

(3) Overfitting (과적합, high variance) : 너무 과하게 모델에 최적화된 상태
- training data가 너무 과하게 모델에 최적화된 상태

✅ 분류(Classification)에서의 Overfitting

(1) Underfitting (과소적합, high bias) : 결정경계 , 모델이 너무 단순한 경우
- 데이터 패턴을 제대로 분리하지 못함.

(2) Just Right (적절한 모델, generalization) : 모델이 데이터의 패던을 적절하게 학습한 상태
- 적절한 feature를 사용하면 데이터가 잘 분리되는 decision boundary를 만들 수 있음

(3) Overfitting (과적합, high variance) : 너무 과하게 모델에 최적화된 상태
- feature가 너무 많아지면 모델이 데이터 하나하나에 맞춰지는 복잡한 경계선을 만들게 됨

2) Overfitting 해결
✅ 더 많은 training data 수집
- 데이터의 양이 많아지면 모델이 일반적인 패턴을 더 잘 학습할 수 있음

✅ feature selection(변수 선택)을 통한 feature수 줄이기

- feature selection의 경우 피처를 일부만 사용하기 때문에
알고리즘이 주택에 대해 가지고 있는 정보 중 일부를 버리게 됨
✅ Regularization(정규화)
- 모델의 복잡도를 제한하는 방법
- 파라미터 값이 너무 커지는 것을 방지하여 모델이 지나치게 복잡해지는 것을 막음

3) Cost function with regularization 정규화된 비용함수
✅ 정규화가 필요한 이유
- Overfitting(과적합)은 보통 feature가 너무 많거나 너무 복잡할때 발생
- 이때 모델은 training data에 "너무 딱 맞게" 학습하면서, 새로운 데이터에서는 성능이 떨어짐
- 가중치 w가 너무 커지지 않도록 패널티 부여
→ 모델이 덜 복잡해지고(overfitting 감소)
→ 일반화 성능이 더 좋아짐
→ 즉, 비용함수 J에 패널티(panalty) 항을 추가해서 "복잡한 모델"을 싫어하게 만듦.
✅ 정규화 항(L2 penalty)의 형태
- 가장 기본 정규화는 L2 정규화(릿지, Ridge)
- 패널티 항

- b(bias)는 보통 정규화 하지 않음
✅ 정규화한 비용함수

- 첫번째 항 J(w,b) : 데이터를 얼마나 잘 맞추는지(
- 두번째 항 : 모델이 얼마나 복잡한지(가중치가 큰지) 를 동시에 고려
✅ 의 역할
- λ는 모델 복잡도 조절 파라미터

- λ = 0인 경우 오버피팅 위험
4) 선형 회귀의 정규화(Regularized linear regression)
(1) 기존 선형 회귀 비용함수


(2) 정규화 적용
- L2 정규화 적용 후 비용함수
- 첫 항 : 예측 오차(MSE)를 줄이기
- 둘째 항: 가중치 크기를 줄이기(복잡도 억제) 를 동시에 진행

(3) Gradient Descent 업데이트
- 정규화를 넣으면 w 업데이트 식에 "추가 항"이 생김

5) 로지스틱 회귀의 정규화(Regularized logistic regression)
(1) 기존 로직스틱 회귀 비용함수

예측은

(= sigmoid)
(2) 정규화 적용
- 정규화를 적용한 비용함수

선형회귀와 동일하게
- 앞부분은 “분류를 얼마나 잘 맞추는지”
- 뒤는 “복잡도를 얼마나 억제하는지”
- 정규화를 할 경우 가중치가 커지는 걸 억제해 결정경계가 과도하게 복잡해지는 것을 막음
(3) Gradient Descent 업데이트
- 로지스틱 회귀도 정규화가 들어가면 w 업데이트 식에 동일하게 정규화 항이 추가됨
- 여기서 b는 정규화하지 않음


'ETC' 카테고리의 다른 글
| [Coursera 강의] 앤드류 응 Supervised Machine Learning - 2주차 (0) | 2026.03.05 |
|---|---|
| ETC | 감성분석 프로젝트 (0) | 2023.01.04 |