참...어차피 부당해고 당할거 뭐 이리 블로그를 열심히 썼나 싶다...^^
문득 DB를 확인해보니, 벌써 모델링을 구체화해서 DB에 쌓기 시작한지도 한 달이 다 되어가더라구요! 스케쥴러까지 돌려놓으니, 어제처럼 공휴일에도 컴퓨터 혼자 알아서 모델링하고 DB까지 쌓아줘서 하루하루 뿌듯함을 느끼고 있어요 ;)
하지만! 알아서 잘 하고 있다고해서 무시하고 있을수는 없겠죠! 지금까지의 적중률을 계산해서 중간점검 성적표를 내보고, 더욱 고도화시킬 수 있는 방법을 연구해보도록 해요!
일단 현재까지 적중률을 확인해보고, 앞으로는 적중률을 매 주 확인할 수 있도록 하는 코드를 함께 짜러 가봅시다! 먼저 model 테이블과 경기 일정과 결과를 보여주는 match_info 테이블을 주피터로 가져와서 확인해보도록 해요.
어차피 일반 승무패만을 확인할거니까 모델 테이블에서 base_line 열은 삭제해주고요, 인포 테이블에서는 경기 일자, 홈팀, 원정팀, 승자를 보여주는 winner 열만 남기고 모두 삭제해줄게요!
가장 기본인 일반 승무패에 대한 적중률을 확인할 예정이기 때문에, category는 normal 인 행들만 필터링해주었어요! 이제 모델과 인포 데이터 프레임을 하나로 합쳐줄건데요, merge 함수를 활용해줄거에요. 공통된 열인 날짜, 홈팀 아이디, 원정팀 아이디를 기준으로 합쳐주고, winner에 따라 실제 home_result_pts를 추가해줄게요! 참고로 winner 가 0으로 표시된 경우 무승부를 뜻합니다!
test = pd.merge(model, info, how='inner', on = ['date','home_id','away_id'])
test.insert(12,'Label_result',0)
for i in range(0,len(test)):
if test['winner'][i] == 0:
test['Label_result'][i] = 1.0
elif test['winner'][i] == test['home_id'][i]:
test['Label_result'][i] = 3.0
elif test['winner'][i] == test['away_id'][i]:
test['Label_result'][i] = 0.0
test
그럼 이렇게 Label과 Label_result를 함께 확인할 수 있는 데이터 프레임이 완성됩니다! 이제 마지막으로 두 열을 비교해서, 확률을 구하는 코드를 작성하러 가시죠!
num=0
for i in range(0,len(test)):
if test['Label'][i] == test['Label_result'][i]:
num += 1
else:
pass
percentage = (num / len(test) * 100)
전체 모델링 결과 중 적중 성공한 경기 수는 num이라는 변수를 이용해서 구해줄거에요. num을 0으로 지정해놓고, 예측값인 Label과 실제 결과값인 Label_result가 같다면 +1, 아니면 넘어가는 식으로 구해주고 전체 개수로 나눠준다음 100을 곱해주면 적중률의 백분율을 구할 수 있습니다! 참 쉽죠? ;)
저는 앞서 말했듯이 매주 월요일, 한 주간의 적중 결과를 확인하는 코드를 짤 예정이라 위의 코드를 한 셀에 모두 정리해서 넣었구요, if문을 활용해서 매 주 월요일에만 코드가 돌아가도록 했어요. 추가로, 원래 코드가 잘 돌아가는지 확인용이었던 텔레그램봇을 활용해서 적중률을 구하도록 했어요! 예를 들면 이렇게 확인할 수 있답니다!
56.25% 라니, 절반밖에 적중하지 못한거야? 라고 생각하실수도 있지만 예측하기 어렵다는 게 스포츠의 묘미가 아닐까 싶기도 하구요,,^^절대 변명은 아니고..!
(50%라는게 크다면 크고 작다면 작은 확률 아니겠ㅇ어요?ㅎㅎㅎ)
'Dev > python' 카테고리의 다른 글
추가! 나의 파이썬 공부기록 (0) | 2021.10.27 |
---|---|
당신의 픽에 투표하세요! 픽미픽미 나야 나! sorting을 통해 만들어보는 조합 픽 (0) | 2021.10.27 |
안녕하세요? 그 저기 데이터 좀 쓸게요(총총총..KBO 데이터 크롤링 해보기! (0) | 2021.10.27 |
느슨해진 모델링에 긴장감을 주는 APScheduler와 텔레그램봇 (0) | 2021.10.27 |
역시나 아무도 궁금해하지 않았지만 설명하는 분류모델 평가지표들 (0) | 2021.10.27 |