Deep Learning

인공지능 모델로 새로운 데이터 예측하기

yugyeong 2022. 12. 28. 13:24

새로운 데이터 예측하기

 

이 게시글은 아래 링크와 내용이 이어집니다.

2022.12.28 - [Deep Learning] - Tensorflow, 회귀 문제 모델링 하는 방법

 

 

 

이전 게시글에서

df 데이터프레임에서 Gender ~ Net Worth 컬럼을 X 로 두고, 

Purchase Amout 컬럼을 y 로 두어서 y 값을 예측하도록 하는 딥러닝 인공지능 모델을 만들었다.

 

이때 새로운 데이터가 들어왔을 때 새로운 데이터의 Purchase Amout 값을 예측하는 방법이다.

 

 

 

새로운 고객 데이터 : 

여자이고, 나이는 38, 연봉은 90000, 카드빚은 2000, 순자산은 500000 일때의 Purchase Amout 은?

 

 

위 데이터를 변수 new_data 인 np.arange 에 담아주었다

new_data = np.array([0, 38, 90000, 2000, 500000])

 

new_data 의 shape 을 확인해보면 (5, ) 형태이다.

이 상태로 예측 하는 코드에 적용하면 에러가 난다.

new_data 는 시리즈 형태이기 때문에, reshape 을 이용하여서 2차원으로 변경해준다. 

new_data.shape
>>> (5,)

new_data.reshape(1,5)
>>> array([['250000', '200000', '380000', 'Florida']], dtype='<U21')

new_data = new_data.reshape(1,5)

 

이전 모델을 만들기위해서 사용하였던 피쳐스케일링 코드를 가져와서

새로운 데이터를 피쳐스케일링 해준다.

 

이때는 fit_transform 을 이용하지 않고, transform 을 해주어야 한다.

new_data = scaler_X.transform(new_data)

 

새로운 데이터의 값을 예측하면 아래와같은 결과 값이 나온다.

y_pred = model.predict(new_data)
>>> 1/1 [==============================] - 0s 18ms/step

y_pred
>>> array([[0.57151586]], dtype=float32)

 

 

결과값도 피쳐스케일링이 된 상태이기 때문에,

inverse_transfrom 을 하여서 원래 형태로 변환을 해주면 된다.

scaler_y.inverse_transform(y_pred)
>>> array([[49577.625]], dtype=float32)