군침이 싹 도는 코딩

번외) 새로운 데이터를 통해 가격 예측 본문

Python/Deep Learning

번외) 새로운 데이터를 통해 가격 예측

mugoori 2022. 12. 28. 11:39

전 글에서 만들어두었던 리그레션으로 새로운 데이터를 받아 예측해본다

리그레션을 모델링 한 것은 이 글을 참고 : https://mugoori.tistory.com/126

 

텐서 플로우 리그레션 문제 모델링 하는 방법

# 자동차 구매 고객 데이터를 통해서 자동차 구매금액을 예측하는 리그레션 문제를 모델링해보자 df.isna().sum() >>> Customer Name 0 Customer e-mail 0 Country 0 Gender 0 Age 0 Annual Salary 0 Credit Card Debt 0 Net Worth 0

mugoori.tistory.com

 

 

 

 

# 위 조건으로 새로운 데이터를 만들어 리그레션을 돌려보자

 

 

 

 

 

df.head(2)

# 먼저 컬럼의 순서를 확인하기위해 df를 찍어본다

 

 

 

 

new_data = np.array([0, 38, 90000, 2000, 500000, 1, 27, 30000, 10000, 300000])

# 넘파이 어레이를 사용해 2명의 데이터를 컬럼의 순서에 맞게 나열한다

이때 주의할점은 두명의 데이터를 모두 한 리스트안에 집어넣어야한다

 

 

 

 

new_data = new_data.reshape(2,5)
>>>
array([[0.        , 0.36      , 0.875     , 0.09547739, 0.48979592],
       [1.        , 0.14      , 0.125     , 0.49748744, 0.28571429]])

# 리쉐이브를 사용해 두명이므로 2행 컬럼이 5개이므로 5열

2,5로 리쉐이브 해준다

 

 

 

 

new_data = scaler_X.transform(new_data)

# 리그레션을 만들때 사용했던 스케일러 X를 이용해 피쳐 스케일링을 해준다

 

 

 

 

new_pred = model.predict(new_data)
new_pred
>>> 
array([[0.59598494],
       [0.07671455]], dtype=float32)

# 만들어뒀던 모델을 이용해 예측해주고 그 값을 변수에 저장한다

 

 

 

 

scaler_y.inverse_transform(new_pred)
>>>
array([[51314.93 ],
       [14446.733]], dtype=float32)

# 마지막으로 값을 원래대로 되돌려야 하므로 스케일러 y를 사용해

인벌스 트랜스폼으로 원래값으로 되돌린다

첫번째 고객은 51314 달러 두번째 고객은 14446 달러라는 결과가 나왔다

이 예제를 통해 이것을 서비스에 적용하기 위해서 필요한 것을 알 수있다

모델링을 한 model이라는 것과 피쳐 스케일링에 필요한 scaler X,y가 필요하다는것을 알수있다