문제 1번
<aside> 💡 다음 중 linear regression 과 Multiple linear regression에 대한 설명으로 틀린 것을 모두 고르세요
독립 변수의 개수는?
가중치의 개수는?
각 독립변수, 종송변수 간의 관계는?
선형 회귀 계산 식을 행렬을 이용하여 [A,B]*[C,D]=[E,F]로 표현할 때 B의 값은? 여기서 [A,B]는 입력 행렬, [C, D]는 가중치 행렬, [E, F]는 출력 행렬이다.
4번 행렬에서 B와 C의 관계는?
</aside>
2-2번 → 단순 선형 회귀는 가중치의 개수가 한 개 이다.
3-1번 → 선형 회귀에서 선형이냐 비선형이냐를 결정하는 대상은 ‘변수’가 아니라 ‘회귀 계수’이기 때문에 독립변수와 종속변수 간의 관계를 보고 다중 선형 회귀가 비선형라고 볼 수 없다.
5번 → 단순 선형 회귀와 다중 선형 회귀 둘 다 입력행렬과 가중치행렬의 값은 같을 수도 있고 다를 수도 있다.
문제 2번
<aside> 💡 다음 중 머신러닝, 딥러닝에서 중요하게 쓰이는 평가 지표에 대한 설명으로 틀린 것을 골라주세요
모델의 성능을 평가하기 위해선 실제 값과 모델에 의해 예측된 값의 차이를 구해야 하는데 여기서 차이가 작아지는 방향으로 학습을 시켜야한다.
MSE : 제곱을 하는 방식을 사용하는데 이 때문에 오차에 대해 좀 더 민감하다
R2 결정계수 : 오차와 R2 결정계수는 비례한다
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]))

