본문 바로가기

DeepLearning

딥러닝으로 걷는 시계열 예측 [CH04] 회귀 모델의 판별식

#1. 회구 모델의 판별식

 

RMSE(평균 제곱근 오차)는 회귀 분석을 평가할 때 가장 많이 쓰는 지표 중 하나이다. 

RMSE는 원래 데이터에서 평균을 뺀 값을 제곱하여 모두 더한 뒤 전체 개수로 나눈 값에 루트를 씌운 것이다. 

R2(결정계수)는 회귀 분석에서 가장 많이 사용하는 지표이다. 대략 0~1 사이의 수치가 값으로 표현된다.

 

RMSE는 낮을수록 좋은 지표이고, R2는 높을수록 좋은 지표이다.

 

R2는 사이킷 런에서 함수 형태로 제공해주기 때문에 사이킷 런을 import해서 그대로 사용하면 된다.

 

R2 구하는 코드

from sklearn.metrics import r2_score

r2_y_predict = r2_score(y_test, y_predict)
print("R2 : ", r2_y_predict)

#2. 회귀 모델 추가 코딩

1. Validation 추가

훈련셋, 테스트셋, 검증셋은 엄밀히 분리가 되는 것이 좋은 데이터의 형태이다. 일반적으로 Train 데이터의 일부를 잘라서 validation 데이터로 사용하는 것이 좋다. 

X_train y_train
X_Validation Y_Validation
X_test y_test

https://github.com/yenyen31/Artificial-Intelligence-in-Finance/blob/main/CH04/ch04_01.py

 

GitHub - yenyen31/Artificial-Intelligence-in-Finance: Artificial-Intelligence-in-Finance

Artificial-Intelligence-in-Finance. Contribute to yenyen31/Artificial-Intelligence-in-Finance development by creating an account on GitHub.

github.com

 

2. 데이터 분리

데이터를 일일히 쓰지 않고, 조금 많은 데이터(100개)를 잘라서 사용한다.

https://github.com/yenyen31/Artificial-Intelligence-in-Finance/blob/main/CH04/ch04_02.py

 

GitHub - yenyen31/Artificial-Intelligence-in-Finance: Artificial-Intelligence-in-Finance

Artificial-Intelligence-in-Finance. Contribute to yenyen31/Artificial-Intelligence-in-Finance development by creating an account on GitHub.

github.com

 

3. train_test_split

데이터를 직접 잘라서 사용하지 않고, 사이킷런에서 제공해주는 train_test_split()을 이용해 데이터를 분리한다.

from sklearn.model_selection import train_test_split

x_train, x_test, y_train, y_test = train_test_split(
    x, y, random_state=66, test_size=0.4, shuffle=False
)
x_val, x_test, y_val, y_test = train_test_split(
    x_test, y_test, random_state=66, test_size=0.5, shuffle=False
)

- shuffle 파라미터: 잘라낸 데이터를 섞는다는 의미를 가짐. true: 잘라낸 데이터를 섞음, false: 섞지 않음

 

#3. 함수형 모델

기존의 순차적 모델과는 다른 함수형 모델 구현하기

1. 1:1

https://github.com/yenyen31/Artificial-Intelligence-in-Finance/blob/main/CH04/ch04_04_1.py

 

GitHub - yenyen31/Artificial-Intelligence-in-Finance: Artificial-Intelligence-in-Finance

Artificial-Intelligence-in-Finance. Contribute to yenyen31/Artificial-Intelligence-in-Finance development by creating an account on GitHub.

github.com

 

2. 다:다

2개 이상의 컬럼이 입력되는 경우

https://github.com/yenyen31/Artificial-Intelligence-in-Finance/blob/main/CH04/ch04_04_2.py

 

GitHub - yenyen31/Artificial-Intelligence-in-Finance: Artificial-Intelligence-in-Finance

Artificial-Intelligence-in-Finance. Contribute to yenyen31/Artificial-Intelligence-in-Finance development by creating an account on GitHub.

github.com

 

3. 다:1

다:다 모델에서 아웃풋만 1개인 경우

https://github.com/yenyen31/Artificial-Intelligence-in-Finance/blob/main/CH04/ch04_04_3.py

 

GitHub - yenyen31/Artificial-Intelligence-in-Finance: Artificial-Intelligence-in-Finance

Artificial-Intelligence-in-Finance. Contribute to yenyen31/Artificial-Intelligence-in-Finance development by creating an account on GitHub.

github.com

 

4. 1:다

1개의 컬럼이 입력되어 여러 개의 컬럼으로 출력되는 경우

https://github.com/yenyen31/Artificial-Intelligence-in-Finance/blob/main/CH04/ch04_04_4.py

 

GitHub - yenyen31/Artificial-Intelligence-in-Finance: Artificial-Intelligence-in-Finance

Artificial-Intelligence-in-Finance. Contribute to yenyen31/Artificial-Intelligence-in-Finance development by creating an account on GitHub.

github.com

 

 

 

 

전체 코드

https://github.com/yenyen31/Artificial-Intelligence-in-Finance/tree/main/CH04

 

GitHub - yenyen31/Artificial-Intelligence-in-Finance: Artificial-Intelligence-in-Finance

Artificial-Intelligence-in-Finance. Contribute to yenyen31/Artificial-Intelligence-in-Finance development by creating an account on GitHub.

github.com

 

반응형