[Coursera 강의] 앤드류 응 Supervised Machine Learning - 3주차

2026. 3. 5. 08:39·ETC


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
'ETC' 카테고리의 다른 글
  • [Coursera 강의] 앤드류 응 Supervised Machine Learning - 2주차
  • ETC | 감성분석 프로젝트
갬보리
갬보리
제발 코드정리좀 하자 (R, SQL, SAS, Python , etc...)
  • 갬보리
    보딩코
    갬보리
  • 전체
    오늘
    어제
    • 분류 전체보기 (52)
      • R (32)
        • dplyr (7)
        • preprocessing (2)
        • EDA (0)
        • ggplot2 (10)
        • plotly (11)
        • leaflet (2)
      • SQL (15)
      • SAS (0)
      • Python (1)
        • preprocessing (0)
        • Library (0)
      • ETC (3)
        • ML (1)
  • hELLO· Designed By정상우.v4.10.3
갬보리
[Coursera 강의] 앤드류 응 Supervised Machine Learning - 3주차
상단으로

티스토리툴바