문제 1번

<aside> 💡 다음 중 linear regression 과 Multiple linear regression에 대한 설명으로 틀린 것을 모두 고르세요

  1. 독립 변수의 개수는?

  2. 가중치의 개수는?

  3. 각 독립변수, 종송변수 간의 관계는?

  4. 선형 회귀 계산 식을 행렬을 이용하여 [A,B]*[C,D]=[E,F]로 표현할 때 B의 값은? 여기서 [A,B]는 입력 행렬, [C, D]는 가중치 행렬, [E, F]는 출력 행렬이다.

  5. 4번 행렬에서 B와 C의 관계는?

</aside>

2-2번 → 단순 선형 회귀는 가중치의 개수가 한 개 이다.

3-1번 → 선형 회귀에서 선형이냐 비선형이냐를 결정하는 대상은 ‘변수’가 아니라 ‘회귀 계수’이기 때문에 독립변수와 종속변수 간의 관계를 보고 다중 선형 회귀가 비선형라고 볼 수 없다.

5번 → 단순 선형 회귀와 다중 선형 회귀 둘 다 입력행렬과 가중치행렬의 값은 같을 수도 있고 다를 수도 있다.

문제 2번

<aside> 💡 다음 중 머신러닝, 딥러닝에서 중요하게 쓰이는 평가 지표에 대한 설명으로 틀린 것을 골라주세요

  1. 모델의 성능을 평가하기 위해선 실제 값과 모델에 의해 예측된 값의 차이를 구해야 하는데 여기서 차이가 작아지는 방향으로 학습을 시켜야한다.

  2. MSE : 제곱을 하는 방식을 사용하는데 이 때문에 오차에 대해 좀 더 민감하다

  3. R2 결정계수 : 오차와 R2 결정계수는 비례한다

  4. MAE : 결과 값에 따라 직관적으로 증감을 쉽게 알 수가 있다.

</aside>

3번 → 결정계수의 식은 1 - ((타깃 - 예측)^2의 합) / (타깃 - 평균)^2의 합이기에 (타깃 - 예측)이 오차이므로 오차가 커진다면 ((타깃 - 예측)^2의 합) / (타깃 - 평균)^2이 커지므로 결정계수 값은 작아진다. 즉 오차와 R^2 결정계수는 반비례한다.

문제 3번

간단한 선형회귀를 구현해서 MSE 값을 구해볼까요?

애플의 주가가 아래 표와 같을 때 12월의 주가를 예측하는 선형회귀 모델을 만들어보세요.

그리고 최종적인 평가지표를 MSE 방법을 통해 구해보세요.

주가는 오직 월(month)에 의해서만 영향을 받는다고 가정합니다.

입력 데이터 : 월, 출력 데이터 : 주가

임의의 시작 기울기와 절편 : [2, 125]

month = np.array([1,3,5,7,9,11])
price = np.array([130, 128, 132, 140, 153, 150])

parm = [2, 125]

df = pd.DataFrame({'month' : month,
                   'price' : price})

df['price_predict'] = parm[0] * month + parm[1]
mse = np.sum((df['price'] - df['price_poly']) ** 2) / 6

point = np.arange(1, 12)

plt.scatter(df['month'], df['price'])
plt.plot(point, parm[0] * point + parm[1])
plt.title('price predict')
plt.xlabel('month')
plt.ylabel('price')
plt.show()

for i in range(6) : 
    print('%d 월 주가 = %d, 예측 주가 = %d' %(df['month'][i], df['price'][i], df['price_predict'][i]))
    
print('최종 mse : %f' %mse)
print('12월 예상 주가 : %d' %(parm[0] * 12 + parm[1]))

화면 캡처 2022-03-12 152828.png

화면 캡처 2022-03-12 152842.png