※생활코딩님의 텐서플로우 강의를 기초로 한 내용입니다.※

 

기상의 영향을 받는 농산물, 그중 배추가 기상의 영향을 받아 가격이 변동되는 것을 예측하는 모델을 만들어 보겠습니다.

 

먼저, 우리가 필요한 데이터를 찾아야합니다.

해당되는 데이터는 날씨관련해서 일평균온도, 강수량 등 의 기상자료가 필요합니다. 이 자료는 기상자료개방포털에서 찾을 수 있습니다.

 

다음으로 필요한 것은 배추의 가격입니다. 배추의 가격은 농산물유통정보 등의 사이트에서 데이터를 추출할 수 있습니다.

 

하지만, 이때 얻어온 데이터는 정제되어있지 않아 복잡한 상태입니다. 그래서 우리는 프로그래밍으로 읽기 좋게 데이터를 정제하여야 합니다.

이런식으로 2016년 1월의 일평균 온도, 최저온도, 최고온도, 강수량, 배추가격의 정보를 정리하여 저장했습니다. 파이썬에서 원활한 처리를 위해 내용은 영어와 숫자로만 구성하였습니다.

 

해당하는 엑셀파일을 csv파일로 변환하여 저장합니다.

csv파일은 콤마로 데이터가 구분되어 있습니다.

 

 이제 본격적으로 모델을 만들어보겠습니다. 배추의 가격에는 평균온도, 최고온도, 최저온도, 강수량 등의 변인이 영향을 미친다고 가정하겠습니다.

그래서 우리는 다변인 선형회귀를 이용하여 모델을 만들어야합니다.

 

다변인 선형회귀: 모델에 영향을 미치는 변인이 여러 개 일 때 사용하는 모델, 행렬의 곱을 이용해 간단하게 표현할 수 있음

 

먼저, 우리가 필요한 모듈들을 import 해줍니다. 이번에 사용할 모듈은 아래와 같습니다.

그리고 저는 구글코랩을 이용해 진행 중이기 때문에 코랩에서 파일을 업로드 할 수 있는 코드를 실행합니다.

 모델을 만들기 전 텐서플로우의 변수를 초기화 해주고 만든 csv파일을 불러옵니다.

그리고 넘파이를 이용해 csv파일을 배열로 바꾸어줍니다.

 x_data에는 해당 날짜의 날씨에 해당하는 기후요소 4개를 변인으로 받습니다.

y_data에는 해당 날짜의 배추가격을 입력합니다.

 값을 초기화 하는 플레이스 홀더를 설정해줍니다.

 다음으로 가설을 설정해주고

 비용함수를 설정해줍니다.

그리고 최적화 함수를 설정해줍니다.

세션을 생성하고 글로벌 변수를 초기화합니다.

그리고 학습을 수행해봅니다. 수행시 진행상황을 보기 쉽게 500번 마다 진행 값을 출력해줍니다.

 

마지막으로 학습된 값을 저장해줍니다.

이제 날씨(변인)를 입력하면 배추가격을 예측해주는 모델을 만들었습니다.

dhpricedata.csv
0.04MB
saved.cpkt.data-00000-of-00001
0.00MB
saved.cpkt.index
0.00MB
saved.cpkt.meta
0.01MB

+ Recent posts