DeepLearning - 선형 회귀, 로지스틱 회귀
딥러닝의 가장 기본적인 계산 원리
- 선형 회귀, 그리고 로지스틱 회귀
1. 선형회귀
-
어떠한 문제가 발생했을 때, 그 문제의 요인이 무엇인가
-
라는 함수를 찾자.
-
하나로 y를 설명 할 수 있어 = 단순 선형 회귀
-
등 여러 개가 필요해 = 다중 선형 회귀
내가 이 문제에 관한 규칙을 갖는 선을 그었어! 이제 내가 직면한 상황이 어디로 나타날지 점을 찍을 수 있어!
1-1. 최소제곱법
: 기울기 a와 y절편 b를 구하기 위함
코드화
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. 평균제곱오차
-
: 원소의 순서
-
: 원소의 총 개수
-
: 가 대입되었을 때 직선의 방정식(예측값)
코드화
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))