회귀 문제의 모델 딥러닝
자동차 구매 가격을 예측하는 딥러닝 모델을 만들 것이다.
- 자동차 구매 가격 예측
Car_Purchasing_Data.csv
0.06MB
1. 필요한 라이브러리를 임포트 한다
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
df = pd.read_csv('Car_Purchasing_Data.csv', encoding='ISO-8859-1')
df

2. X , y 셋팅
X = df.iloc[:,3:8]
y = df['Car Purchase Amount']
df 에서 Gender ~ Net Worth 컬럼을 변수 X 로 두고,
Purchase Amout 를 변수 y로 두었다.
3. 피쳐스케일링 - MinMaxScaler
from sklearn.preprocessing import MinMaxScaler
# X 데이터 피쳐스케일링
scaler_X = MinMaxScaler()
X = scaler_X.fit_transform(X.values)
# y 데이터는 시리즈 데이터를 2차원 배열로 변경 해야 하기 때문에 reshape을 한 후에 피쳐스케일링을 해준다.
scaler_y = MinMaxScaler()
y_scaled = scaler_y.fit_transform(y.values.reshape(500,1))
4. 훈련용 데이터, 테스트용 데이터로 나누기
test_size 는 25, random_state 는 50 으로 설정하였다.
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y_scaled, test_size= 25, random_state= 50)
5. 모델링
딥러닝에 필요한 라이브러리를 임포트 한다.
import tensorflow.keras
from keras.models import Sequential
from keras.layers import Dense
인공지능 모델 생성
model = Sequential()
레이어 설정
- 유닛과 활성함수는 원하는대로 설정
- 첫번째 input layer는 반드시 입력층의 형태를 지정
- 마지막 output layer는 분류 문제의 모델이 아니기 때문에 sigmiod 사용하지 않고 linear 이용
model.add(Dense(units= 5, activation= 'relu', input_shape=(5, )))
model.add(Dense(units= 25, activation= 'relu'))
model.add(Dense(units= 10, activation= 'relu'))
model.add(Dense(units= 1, activation='linear'))
컴파일 설정
- 옵티마이저는 adam 으로 설정
- 로스 펑션은 'mean_squared_error' 로 셋팅
model.compile(optimizer= 'adam', loss= 'mse', metrics= ['mse','mae'])
model.summary() 확인
model.summary()

6. 모델 학습
batch_size 와 epochs 를 설정한 후 모델을 학습시킨다.
- epochs : 모델의 전체 데이터 셋에서 학습 횟수
- batch_size : 샘플의 갯수대로 학습 한 후 가중치 갱신
model.fit(X_train, y_train, batch_size= 10, epochs= 20)

7. 결과값 예측
y_pred = model.predict(X_test)
y_pred

8. 차트로 나타내기
plt.plot(y_test)
plt.plot(y_pred)
plt.show()

'Deep Learning' 카테고리의 다른 글
| Learning rate 를 옵티마이저에서 셋팅하는 코드 (0) | 2022.12.28 |
|---|---|
| 인공지능 모델로 새로운 데이터 예측하기 (0) | 2022.12.28 |
| Tensorflow - GridSearch 를 이용하여, 최적의 하이퍼파라미터 찾기 (0) | 2022.12.27 |
| Tensorflow, 분류 문제 모델링 하는 방법 (1) | 2022.12.27 |
| Tensorflow - epoch 와 batch size 에 대한 설명 (0) | 2022.12.27 |