머신러닝으로 경마 분석을 해보면...

기계 학습 중의 경마 분석


도만고가 주최한 컴퓨터상을 필두로 AI 예측 경마 시도가 머신러닝 열풍에 다시 불을 지폈고, 낡았지만 30억 원의 탈세 소프트웨어로 1억 원을 벌어 체포된 사람도 있었다.아, 이것은 매우 성공적인 예입니다. 컴퓨터상도 회수율에 따라 상금을 받을 수 있습니다
JRA-DATALAB에서도 인기 소프트웨어 상금이 있습니다.
예상한 도구를 만들어서 당첨되면 돈을 벌 수 있고, 만든 도구를 사용하게 하는 데도 돈이 필요하다.
가자!!
따라서 이번에는 12월 23일 중산경마장에서 열리는 G1의 말 기념 도착 순서를 예측해 본다.

데이터 검색


하고 싶어도 데이터가 없으면 시작할 수 없기 때문에 JRA-VAN 데이터 실험실https://jra-van.jp/dlb/
에서 설명한 대로 해당 매개변수의 값을 수정합니다.매달 2052엔, 가장 오래된 데이터는 1986년부터 30년 가까운 데이터를 얻을 수 있다.
하지만 API는 VB만 지원하는 것처럼 번거롭습니다.
따라서 이번에 JRA-VAN 데이터 실험실에서 제공하는 데이터베이스 소프트웨어 중 하나인 pckeiba를 사용하여 SQLite를 통해 데이터를 얻는다.
그러나 약 30년의 데이터는 무겁고 느리다.

지금까지 2주 가까이 걸렸고 현재는 20120599이기 때문에 2012년 5월에 열린 데이터를 얻을 수 있다.
응, 12월 23일 15:25에 발송되는 시간제한이 있기 때문에 고육지책이지만, 이곳은 현재 활발한 말의 부모 세대인 2000년~2012년의 데이터를 사용한다.

사용 환경


Google Colaboratory

브라우저에서 jyupiternotebook을 사용할 수도 있고,python,Numpy,Tensolflow를 따로 설치하지 않아도 되고, GPU를 사용할 수도 있으며, 무료로 사용할 수 있는 구글 Colaboratory를 사용할 수도 있다.

본론


일반적으로 경마 분석에서 여러 층의 파세프트론을 추출한 후 SVM에서 고니코니오를 하는 방법이 많다.
그렇긴 하지만 이번에는 경마 분석에 맞는 기법이라고 할 수는 없지만 선형 회귀로 분석하고 싶습니다.
horse_race.py
# show upload dialog
from google.colab import files
uploaded = files.upload()

# read data
import pandas as pd
import io
data = pd.read_csv(io.StringIO(uploaded['race_data2.csv'].decode('utf-8')), header=0)

pd.set_option("display.max_columns", 100)
pd.set_option("display.max_rows", 10000)

dp_data = data.drop(["KAKUTEI_CHAKUJUN"], axis=1)

X = dp_data.values
Y = data["KAKUTEI_CHAKUJUN"].values

# learn
from sklearn import linear_model

clf = linear_model.Lasso()
clf.fit(X, Y)

print(pd.DataFrame({"column": dp_data.columns, "coef": clf.coef_}))
print(clf.intercept_)

# test
uploaded2 = files.upload()
test_data = pd.read_csv(io.StringIO(uploaded2['test_data.csv'].decode('utf-8')), header=0)

x_test = test_data.values

# predict
predict = clf.predict(x_test)
print(predict)
아마도 당신은 이 점을 알고 있을 것입니다. 그러나 거의 teco-yagi 씨가 12/17의 TECOTEC Advent Calendar 2018에서 한 것과 같습니다.
JRA-VAN 데이터 랩을 통해 얻은 데이터를 Google colaboratory에서 사용하기 위해 files_업로드를 통해read_ 업로드csv로 읽습니다.
race_data2.csv
RACE_CODE,KEIBAJO_CODE,KAISAI_NICHIJI,RACE_BANGO,WAKUBAN,UMABAN,KETTO_TOROKU_BANGO,UMAKIGO_CODE,SEIBETSU_CODE,HINSHU_CODE,MOSHOKU_CODE,BAREI,TOZAI_SHOZOKU_CODE,CHOKYOSHI_CODE,BANUSHI_CODE,FUTAN_JURYO,KISHU_CODE,KAKUTEI_CHAKUJUN
2011122506050810 ,6,8,10,8,13,2008103235,0,3,1,3,3,2,1002,180800,55,666,9
2011122506050810 ,6,8,10,6,9,2008102636,0,1,1,1,3,2,1071,226800,55,1032,1
2011122506050810 ,6,8,10,5,8,2007103404,0,1,1,4,4,2,343,226800,57,711,12
2011122506050810 ,6,8,10,5,7,2007103265,0,1,1,3,4,2,1071,486800,57,1014,3
・
・
・
JRA-VAN 데이터 랩에서 추출한 데이터의 일부입니다.
유료 데이터이기 때문에 일부분만 기재되어 있습니다.
대충 열명 은 그대로 라는 뜻 으로, 신중 을 기하기 위해 아래 에 기재 하다
열명
세부 정보
RACE_CODE
개최 연월일 8자리수 (yyyMMdd 형식) + 경마장 코드 2자리수 + 개최회 2자리수 + 개최일 2자리수 + 경기번호 2자리수
KEIBAJO_CODE
경마장마다 유일하게 분배되는 번호
KAISAI_NICHIJI
개최 시간
RACE_BANGO
경기 번호
WAKUBAN
테두리 번호
UMABAN
마호
KETTO_TOROKU_BANGO
혈통 등록번호
UMAKIGO_CODE
말 기호 코드 (말마다 고유하게 할당된 번호)
SEIBETSU_CODE
성별 코드(성별에 따라 유일하게 할당된 번호)
HINSHU_CODE
품목 코드 (각 품목에 고유하게 할당된 번호)
MOSHOKU_CODE
색상 코드 (각 색상에 대해 고유하게 지정된 번호)
BAREI
말의 나이
TOZAI_SHOZOKU_CODE
동서 소속 코드
CHOKYOSHI_CODE
금수랑 코드(조련사마다 유일하게 할당된 번호)
BANUSHI_CODE
마주 코드 (마주마다 유일하게 할당된 번호)
FUTAN_JURYO
부담 중량
KISHU_CODE
라이더 코드 (각 라이더에 고유하게 할당된 번호)
KAKUTEI_CHAKUJUN
확정된 순위
필요한 데이터만 얻어 CSV를 만들기 때문에 모든 데이터를 활용합니다.
나는 확정된 후의 순위를 예측하고 싶다.
속보계 데이터로 현재 시각의 참가마 정보를 얻을 수 있기 때문에 속보계 데이터에서test_data.csv를 만듭니다.test_data.csv는 다음과 같습니다.
test_data.csv
RACE_CODE,KEIBAJO_CODE,KAISAI_NICHIJI,RACE_BANGO,WAKUBAN,UMABAN,KETTO_TOROKU_BANGO,UMAKIGO_CODE,SEIBETSU_CODE,HINSHU_CODE,MOSHOKU_CODE,BAREI,TOZAI_SHOZOKU_CODE,CHOKYOSHI_CODE,BANUSHI_CODE,FUTAN_JURYO,KISHU_CODE
2018122306050810,6,8,11,1,1,2011101125 ,0,1,1,3,7,1,1114,892800,0,0
・
・
・
・
여기도 일부분만 기재돼 있고 16마리의 출전 데이터가 담겨 있다.

내보내기


[14.4199213 13.67719624 13.41511762 14.07644514 14.28232161 14.05559027
14.98255294 13.8792095 14.46912673 14.35686541 14.69296645 14.23888201
15.62113876 14.67513616 15.26724555 15.69717164]
마호대로 줄을 서다.
글쎄, 출력 결과가 1~16이 안 될 때는 여러 가지 조정이 필요하지만 수치가 1에 가까운 사람은
1세트 가능성이 높아졌기 때문에 이 경우 출전표 3-2-8 순으로 가능성이 높다.
3. 모스카창, 2.타자황동 원피스
가장 인기 있는 레드오로, 기적, 말을 주목하는 아저씨는 없지만
모스카창, 클린처는 있어도 이상하지 않은 결과가 나와 좀 놀랐다.
블라터 원피스는 지난 2차례 G1에 걸었을 거예요. 기대가 얇아요.
2018년의 유마기념은 3-2-8로 각각 단승, 복승, 3연복, 3연패로 내기를 하자.
(여기까지 2018년 12월 22~23일 밤 늦게 썼어요.)

결과


내가 알고 싶은 사람은 모두 알고 있다. 8-12-15.
블라스 원피스, 레드오로, 슈바그람
그래서

단승, 윈윈!!
기대 부족이라니 안 돼~!!
하지만 상위권인 모스카창, 클린처가 8위, 15위로 예상돼 정밀도가 높다고 할 수는 없겠죠.
나는 앞으로 다층 절류관 등에서 실현될 이론을 좀 더 상세하게 조사하고 싶다.
이번 수지?이번 수지는 결과를 믿지 않고 레도올로축에서 물건을 많이 샀는데 슈바그란에 들어가지 않아 가라앉았기 때문에 총수지는 마이너스!!!

좋은 웹페이지 즐겨찾기