[서울기온예측][pytorch][DNN 3] 서울 ASOS 자료 기반 기온 예측
·
프로젝트/기계학습 기반 서울 기온 예측
- 개요이제는 sin(x) 같은 단순한 함수가 아니라 하루 뒤 서울 평균기온을 예측해봅시다.애초에 DNN 모델 자체를 설명하려고 작성하는 포스트가 아니라서 기온 예측 DNN 모델 코드를 만들다보니 '아 이거 설명 안했었네' 싶은 내용도 꽤 있네요. ㅠㅠD기온 예측 DNN 모델을 만들면서 하나씩 풀어가봅시다. - 자료 분류하는 함수(split_data_scale) 설명서울 ASOS 자료를 읽는 함수 read_ASOS108(), 필요한 열만 남기는 함수 process_cols()은 그대로 쓸 수 있지만 입력자료를 분류하는 split_data 함수는 쓸 수 없습니다.그리고 DNN의 입력자료를 분리하는 함수는 좀 더 많은 전처리 작업을 해야합니다. 1. 학습, 검증, 테스트기간 분류 원래는 학습, 테스트기간으로..
[서울기온예측][pytorch][DNN 2] DNN으로 y=sin(x) 예측해보기, DNN 코드 이해하기
·
프로젝트/기계학습 기반 서울 기온 예측
- 개요하루 뒤 서울 평균기온을 예측하는 것이 목표지만 그 전에 간단하게 sin(x)를 예측하는 DNN을 만들어보겠습니다.pytorch, tensorflow와 같은 라이브러리를 쓰면 DNN 모델을 만드는 것은 쉽고, 그마저도 ChatGPT나 Grok3처럼 언어모델에게 DNN 모델을 만들어달라고 요청하면 되는 세상입니다.그러니 DNN 모델을 사용만 하는 입장에서는 DNN 모델의 코드를 이해하는 것이 중요합니다.이번 포스트의 목표는 DNN 모델 모델 학습시 알아야하는 개념을 이해하고, 코드의 흐름 및 과정을 살펴보는 것입니다.배경지식이 거의 필요없는 친숙한 함수인 y=sin(x)를 예측하면서 개념과 코드의 과정을 이해해보겠습니다. - 학습(train), 검증(valid), 테스트(test)기간으로 분리하는 ..
[서울기온예측][pytorch][DNN 1] DNN이란? 학습하는 원리
·
프로젝트/기계학습 기반 서울 기온 예측
- 개요지금까지 선형회귀모델과 XGBoost로 서울 하루 뒤 기온 예측을 했습니다.이번에는 DNN으로 기온을 예측해보고자 합니다.그전에 DNN에 대해 간단하게는 알아봐야겠죠.(전공이 아니라서 글 내용이 틀릴 수 있음) - DNN이란?DNN은 Deep Neural Network로 기계학습 모델 중 딥러닝 모델의 한 종류입니다.DNN의 동작방식이 신경의 단위인 뉴런의 구조와 닮았다고 하여 Neural Network입니다.원래 Neural Network는 입력층 > 은닉층(뉴런이 있는 층) > 출력층 이렇게 3개로 구성되어있지만 뉴런층을 여러 개로 늘리면서 깊어졌다는 의미에서 Deep을 붙입니다.참고로 지금까지 다룬 선형회귀모델, XGBoost은 기계학습 모델 중 전통적인 기계학습 모델입니다. 위의 그림에서는..
[서울기온예측][XGboost 2] 서울 ASOS 자료 기반 기온 예측
·
프로젝트/기계학습 기반 서울 기온 예측
- 개요선형회귀모델로 하루 뒤 서울 평균기온을 예측해보았으니 이젠 XGboost로 예측해 볼 차례입니다.선형회귀모델에서는 입력변수도 바꿔보고 계절성도 없애보는 내용을 각각 하나의 포스트로 작성했지만 XGboost에서는 포스트 하나에서 모든 결과를 확인하겠습니다.모든 모델은 하루 뒤 서울 평균기온을 예측합니다. - XGboost 코드XGboost의 입력 데이터셋은 선형회귀모델의 입력 데이터셋과 같습니다.데이터를 읽거나 계절성을 제거하는 코드는 선형회귀모델 포스트에 있으니 이번에는 따로 다루지는 않겠습니다.XGboost는 random_state, n_estimator, max_depth와 같은 파라미터 값에 따라 성능이 달라지지만 저는 일단 하나만 사용합니다.최고의 성능을 얻고 싶으면 여러 파라미터의 조합을..
[서울기온예측][XGboost 1] 의사결정나무, XGboost란?
·
프로젝트/기계학습 기반 서울 기온 예측
- 개요지금까지 선형회귀모델을 이용해서 서울 기온을 예측했습니다.선형회귀모델도 기계학습이긴 합니다만 너무 단순하고 데이터 간 비선형적인 관계를 학습할 수 없습니다.비선형적인 관계를 학습하는 기계학습 모델로 의사결정나무(decision tree) 기반 모델이 있습니다.결정나무 모델이 사용한 방법을 개량하면 XGboost(Extreme Gradient Boosting)가 되는 것인데제가 이해한 선에서 간단히 설명해보겠습니다. - 의사결정나무의사결정나무 모델에서는 특정 조건이 True, False인지 따져서 분류(분류모델)를 하거나 숫자(회귀모델)를 예측합니다.붓꽃 분류 의사결정나무 모델 구조를 보면 이해가 쉽습니다.붓꽃 데이터셋에는 세 종류의 붓꽃(세토사, 버시컬러, 버지니카)의 꽃받침 길이, 꽃받침 너비,..
[서울기온예측][다중선형회귀모델 3] 예측 변수와 입력 변수 간 선형상관계수 확인
·
프로젝트/기계학습 기반 서울 기온 예측
- 개요이 프로젝트를 하면서 다른 비슷한 내용을 글을 살펴보니 가장 먼저 하는 일은입력 변수의 빈도 분포 분석, 예측하고자 하는 변수와 입력변수끼리의 상관계수를 살펴보는 것입니다.생각해보면 다중선형회귀라고 해도 아무튼 선형회귀라 예측하고자 하는 변수와 다른 변수와의 상관계수를 확인해보는 것이 가장 먼저 할 일이었던 것 같습니다.이번 포스트에서는 [다중선형회귀모델 2]에서 만든 계절성을 제거한 서울기온예측 모델을 기준으로 다른 변수와의 선형상관계수를 확인합니다. - 계절성 제거한 서울기온예측 모델의 성능저번 포스트에서 만든 계절성을 제거한 서울기온예측 모델의 상관계수는 0.78, RMSE는 2.01이었습니다.전 모델의 성능을 상관계수로 확인하고 있습니다만 일반적으로 Root Mean Square Error..
[서울기온예측][다중선형회귀모델 2] 코드 함수화, 서울 ASOS 자료의 계절성 제거
·
프로젝트/기계학습 기반 서울 기온 예측
- 개요일평균기온은 당연히 여름에 높고, 겨울에는 낮습니다.적당히 여름에 높게, 겨울에 낮게 온도를 예측하면 성능이 나올거고, 선형회귀모델은 필연적으로 이런 경향을 학습하여 기본적인 성능이 높을 수밖에 없습니다.그렇다면 계절성을 제거하면 예측 능력이 어떻게 될까요? - 함수화 작업계절성 제거 이전에 기존 코드를 함수로 만들고자 합니다.같은 코드를 중복으로 사용할 일이 많아 다시 모든 코드를 넣기에는 글이 너무 길어집니다.긴 코드는 그냥 함수로 만들어서 다음 포스트부터는 함수만 적겠습니다."""read_ASOS108(): 서울 ASOS 자료를 pandas DataFrame 형태로 읽음"""import pandas as pdimport numpy as npimport osdef read_ASOS108(): ..
[서울기온예측][다중선형회귀모델 1] 서울 ASOS 자료만 사용한 기온 예측
·
프로젝트/기계학습 기반 서울 기온 예측
- 개요가장 간단한 예측 모델인 다중선형회귀모델로 하루 뒤 서울 일평균기온을 예측해보겠습니다.선형회귀모델에서 먼저 y(예측) = a*x(입력자료) + b, 선형함수의 a와 b를 구합니다.실제값과 예측값 간 오차를 최대한 작게 만드는 a, b값을 구합니다. 그럼 입력자료를 넣으면 예측값이 나오는 것이죠.이 때 입력자료가 1개뿐이라면 y = a*x + b로 충분하지만 여러개라면 y = a1 * x1 + a2 * x2 ....처럼 다중선형함수로 예측하여 실제값과 예측값 간 오차를 최대한 작게 만드는 a1, a2..., b를 구합니다. 이번 포스트에서는 모델의 입력자료로 서울 ASOS 자료만 씁니다.이것저것 다른 방법을 사용해본 뒤 서울 ASOS 자료말고도 다른 자료를 사용해볼 계획입니다.pandas, nump..
[서울기온예측] 프롤로그
·
프로젝트/기계학습 기반 서울 기온 예측
'기계학습 기반 서울 기온 예측' 카테고리에서는 다양한 기계학습 방법을 통해 서울 ASOS(47108) 기온을 예측하는 것을 목표로 관련 주제 글을 게시합니다. 저는 보통 글을 쓰기 전 확실한 최종 목표를 정한 뒤 머릿속에서 이 주제를 잘게 쪼개고 대충 글 주제를 정합니다.그리고 최종결과물을 만드는 코드를 작성하고, 설명하기 좋게 코드를 리팩토링 과정에서 단계별로 과정을 쪼개어 포스트를 하나씩 씁니다.하지만 이번 시리즈는 하나의 프로젝트 느낌으로 평소와 다른 방식으로 진행합니다. 이거 한 다음 저거 한다는 계획을 미리 세우지 않고 기계학습을 이용해서 서울 기온을 예측합니다.뭐 쉽게 말하면 생각나는대로 하겠다는거죠. 정확히 무엇을 할지는 모르겠지만 입력 자료를 분석해보고 기계학습 중 가장 쉬운 decisi..