1. 딥러닝 기본적인 두 가지 계산 원리 : 선형 회귀, 로지스틱 회귀
2. 독립변수와 종속변수 : 선형회귀에서 독립변수를 이용해 종속변수의 결과를 예측하고 설명함
ex. 학생들의 중간고사 성적이 [ ] 에 따라 다 다르다
독립변수 | 종속변수 |
성적을 변하게하는 [ ] 부분. 이 부분을 정보(사교육비, 공부하는데 들인 시간, 학생의 개인 역량 등 많은 부분이 이 안에 정의될 수 있음). 즉, 독립적으로 변할 수 있는 미지의 X 값을 의미함. |
성적인 부분. 사교육비, 공부량, 학생당 성취 도 등 다양한 독립변수 X에 따라 결정되는 최종 성적을 의미함. 독립변수 X에 따라 변화가 종속적으로 일어나는 변수. 즉, 독립변수에 따라 종속적으로 변할 수 있는 값 Y를 의미함. |
3. 단순 선형 회귀(Simple Linear Reg) 와 다중 선형 회귀(Multiple Linear Reg)
단순 선형 회귀 | 다중 선형 회귀 |
독립변수인 X의 개수가 하나의 X 값으로 Y값을 설명 가능한 경우. | 독립변수인 X의 개수가 여러개의 X1, X2, X3... 값으로 Y값을 설명 가능한 경우. |
4. 파이썬 - 최소제곱법
import numpy as np # 넘파이 라이브러리 import
x = np.array([2, 4, 6, 8]) # 독립변수 x(공부한 시간)
y = np.array([81, 93, 91, 97]) # 종속변수 y(성적)
mx = np.mean(x) # x값의 평균(numpy 내 mean)
print("x 평균 : " , mx)
my = np.mean(y) # y값의 평균(numpy 내 mean)
print("y 평균 : " , my)
# 기울기 분모 변수 divisor 선언
divisor = sum([(i - mx)**2 for i in x]) # 시그마. 총합
print("분모: ", divisor)
# 기울기 분자, x,y값과 각 값의 평균을 구함
def top(x, mx, y, my):
d = 0
for i in range(len(x)):
d += (x[i] - mx) * (y[i] - my)
return d
dividend = top(x, mx, y, my)
print("분자: ", dividend)
a = dividend / divisor
print("기울기 a = ", a)
b = my - (mx*a)
print("y 절편 b = ", b)
2.3과 79인 것을 도출할 수 있다.
5. 파이썬 - 평균제곱법
import numpy as np
# 가상의 기울기 a와 y 절편 b를 지정.
fake_a = 3
fake_b = 76
# 시간 x(독립변수)와 성적 y(종속변수) 배열 각각 생성.
x = np.array([2, 4, 6, 8])
y = np.array([81, 93, 91, 97])
# y = ax + b에 a 값과 b 값을 대입 후 결과 도출.
def predict(x):
return fake_a * x + fake_b
# 예측 값 위한 빈 리스트 생성.
predict_result = []
for i in range(len(x)):
predict_result.append(predict(x[i]))
print("공부시간=%.f, 실제점수=%.f, 예측점수=%.f" % (x[i], y[i], predict(x[i])))
# 평균 제곱 오차 함수를 각 y값에 대입 후 최종 값 도출.
n = len(x)
def mse(y, y_pred):
return (1/n) * sum((y - y_pred)**2)
# 평균 제곱 오차 출력.
print("평균 제곱 오차: " + str(mse(y, predict_result)) + " 입니다.")
평균 제곱 오차가(MSE) 11인 것을 도출할 수 있다.
따라서, 11보다 작은 평균 제곱 오차를 가지게 하는 각 a,b를 찾아야한다.
임의의 직선을 그어 각각의 점에 대한 평균 제곱 오차를 구하고 이 값을 가장 '작게' 만드는 a,b를 찾는 과정을 선형회귀로 구현한다.
'통계데이터과학과 및 컴퓨터과학 독서' 카테고리의 다른 글
05. 딥러닝 6장 (0) | 2023.11.20 |
---|---|
04. 딥러닝 5장 (0) | 2023.11.13 |
02. 딥러닝 2장 (0) | 2023.10.30 |
01. 딥러닝 1장 (0) | 2023.10.23 |
09. 인프라 엔지니어 (0) | 2023.10.16 |