본문 바로가기

인공지능/머신러닝

[머신러닝] 선형회귀모델을 이용한 로또 번호 예측하기 - 3(모델링)

선형회귀 모델링

 

코랩에서 작업하던걸 잠시 쥬피터 노트북으로 옮겨서 작업했다.

(여튼저튼쨋든 같은 노트북이니까 뭐)

 

로또 홈페이지에서 당첨번호를 받아서 필요한 컬럼만 남기고

원하는 형태로 만들어서 따로 CSV 파일로 저장해 두었다.

(매주 이 파일은 새롭게 갱신이 필요하겠지)

<CSV파일로 저장하기>

 

그 이후 이전에 설명했던 대로 당첨 번호 6자리 각각

선형회귀 모델을 만들어 예측을 진행해 보았다.

간단하고 빠르게 선형회귀 모델을 만들기 위해

사이킷런의 Linear Regression을 이용하였다.

각 모델보다 오차의 범위가 더 크겠지만은

보너스 당첨 번호의 선형회귀 모델도 만들어 보았다.

<선형회귀를 이용한 예측 모델 작성>

 

그리고 각 모델의 예측 결과를 뽑아서 확인해 보았다!!

<선형회귀 모델의 예측 결과>

 

그리고 실제 그 주의 당첨결과와 비교해 보면?!

(현업이 바쁘다보니 만들어 놓고 2주정도 글을 안쓰고 있었다...)

<해당 주의 실제 당첨 번호>

 

예측한 자리마다 번호는 다르지만 2개는 맞췄다!

물론 이거를 예측해서 맞췄다고는 볼 수 없지만

2개나 맞췄다는 거에 일단 만족스러운 결과?!

 

 

그치만 이 모델을 만들고 결과를 보고나서 든 생각을 정리하자면

 

1. 로또번호는 정수이기때문에 소수로 예측한다고 해도 반올림한 결과이기 때문에

예측 당첨 번호가 맞을 확률이 낮아진다.

 

2. 데이터의 수가 많지 않기 때문에 결국 새로 당첨 번호를 반영해도

지난주 예측결과와 변동이 없을 것으로 예상된다.

(결국엔 7 13 20 26 33 40 이고 보너스는 23 수렴)

 

3. 사이킷런 선형회귀를 그냥 가져다 썼기 때문에

내가 조정할 수 없는 미세한 부분이 있을 것이다?!

(이거는 찾아보고 더 공부 해봐야지)

 

 

그럼 이제 좀 더 개선 방향을 생각해보자면

 

1. 선형회귀 모델을 직접 만들어서 건드릴 수 있는 부분을 수정해서

좀 더 정확한 예측 모델이 되도록 수정해본다.

 

2. 데이터 숫자가 적긴 하지만 전체 데이터를 이용한 모델,

최신 500개 정도의 데이터만을 학습한 모델,

너무 값이 튄 데이터를 제외시키고 학습한 모델 등

여러 모델을 이용해 경우의 수를 늘려본다.

 

등등의 방법들을 생각해 보았다.

일단 현업이 바쁘니 좀 더 방법을 고심해 봐야겠다.