2026.03.20
DeepLearning - 선형 회귀, 로지스틱 회귀

DeepLearning - 선형 회귀, 로지스틱 회귀

딥러닝의 가장 기본적인 계산 원리

  • 선형 회귀, 그리고 로지스틱 회귀

1. 선형회귀

  • 어떠한 문제가 발생했을 때, 그 문제의 요인이 무엇인가

  • f(x)f(x) 라는 함수를 찾자.

  • xx 하나로 y를 설명 할 수 있어 = 단순 선형 회귀

  • x1,x2,x3x_1, x_2, x_3 등 여러 개가 필요해 = 다중 선형 회귀

    내가 이 문제에 관한 규칙을 갖는 선을 그었어! 이제 내가 직면한 상황이 어디로 나타날지 점을 찍을 수 있어!


1-1. 최소제곱법

: 기울기 a와 y절편 b를 구하기 위함

  • a(기울기)=((xx평균)(yy평균)의합)(xx평균)2의합 a(기울기) = \frac{((x-x평균)(y-y평균)의 합)}{(x-x평균)^2의 합}
  • b(y절편)=y의평균(x의평균)(기울기a) b(y절편) = y의 평균 - (x의 평균 )(기울기 a)

코드화

x = np.array([1, 2, 3, 4, 5]) # 다이어트 경과일
y = np.array([46, 46,2, 45,9, 45.8]) # 몸무게 변화

# cal분모, 제곱의 합
divisor = sum([(i-mx)**2 for i in x])


# cal분자
def top(x, y, mx, my):
  d =0
  for i in range(len(x)):
    d += (x[i] -mx) * (y[i] - my)
  return d

dividend = top(x, y, mx, my)

result = dividend / divisor
b = my - (mx*a)

1-2. 평균제곱오차

  • ii: 원소의 순서

  • nn: 원소의 총 개수

  • y^\hat{y}: xix_i가 대입되었을 때 직선의 방정식(예측값)

    MSE=1ni=1n(yiy^i)2MSE = \frac{1}{n} \sum_{i=1}^{n} (y_i - \hat{y}_i)^2

코드화

a = -0.1
b = 46.2

x = np.array([1, 2, 3, 4, 5])  # 다이어트 경과일
y = np.array([46.0, 46.2, 45.9, 45.8, 45.7])  # 몸무게

def calculate(x):
    return a * x + b

# 예측 값 계산
pred = calculate(x)

# 평균 제곱 오차 계산
def mseCalculate(y, pY):
    return np.mean((y - pY) ** 2)

print(pred)
print(mseCalculate(y, pred))