딥러닝 - 최소 제곱법
본문 바로가기
AI 빅데이터/딥러닝(DL)

딥러닝 - 최소 제곱법

by 레아დ 2022. 10. 5.

힣 코랩에도 적고 깃허브에도 올렸는데
또 여기에 적으려니 ㅋㅋㅋ 막상 귀찮......


여기저기 찾아보니까
주피터 노트북 작성한 건 티스토리로 올라가던데... 코랩은 안되는가...ㅋㅋ

하 이거 공부 시작하고 진짜
하루에 수도 없이 수학의 정석 검색만 하는 중...........

  • 정확한 기울기 a와 정확한 y 절편의 값 b를 알아내는 간단한 방법

최소 제곱법 (method of least squares)

공식대로!!! 계산해보자

# 계산을 용이하기 위해 ndarray를 생성
a1 = np.array(공부한시간)
# a1 = np.array([2,4,6,8])

a2 = np.array(성적)
# a2 = np.array([81, 93, 91, 97])

# x의 평균과 y의 평균을 구한다.
x_mean = a1.mean()
y_mean = a2.mean()

print(x_mean)
print(y_mean)

---- 결과 ----
5.0
90.5

분모 구하기

# (x - x평균)²의 합
sum( [(i - x_mean)**2 for i in a1])
divisor = sum( [(i - x_mean)**2 for i in a1])
divisor

---- 결과 ----
20.0

분자 구하기

# (x - x평균)(y) - y평균)의 합
def top(a1, x_mean, a2, y_mean):
  d = 0
  for i in range(len(a1)):
    d += (a1[i]-x_mean)*(a2[i]-y_mean)
  return d
top(a1, x_mean, a2, y_mean)

diidend = top(a1, x_mean, a2, y_mean)
diidend

---- 결과 ----
46.0

분자 / 분모

a = diidend  / divisor
a

---- 결과 ----
2.3

y 절편

# y 절편
# b = y 의 평균 - ( x 의 평균 * 기울기 a)

y절편 = y_mean - (x_mean * 기울기)
print(y절편)

---- 결과 ----
79.0
값을 예측해서 실제 값과 비교
결과 그래프
# 10 시간 공부한 경우
pred = (a * 10) + b
pred

---- 결과 ----
102.0

응?????? 102 점이 있는가????????ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ

728x90

'AI 빅데이터 > 딥러닝(DL)' 카테고리의 다른 글

딥러닝 - 다중분류 (iris 품종)  (0) 2022.10.28
딥러닝 - 간단하게 맛보기  (0) 2022.10.01
자연어 - 음성 인식  (0) 2022.09.28