KNOU STUDYREAD

한국방송통신대학교 통계데이터과학과 블로그

CS & Department of Statistics and Data Science

통계데이터과학과 및 컴퓨터과학 독서

03.딥러닝 3-4장

Harryㅤ 2023. 11. 6.

 
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