【Python學習筆記_賽事預測-MLB打擊率與勝負的相關?】(上)



本文作者:bestwin

瀏覽次數:69

建立時間:9/19/2022 9:22:01 AM

回文次數:1

《Rick.C & Peter.R 共同創作》

一、打擊率高真的會影響勝負嗎?

在上一篇【Python學習筆記_賽事預測-MLB全壘打與勝負的相關?】中,我們研究了全壘打與勝負間的關聯性,部分實證的確符合我們的預期,但也找出了一些與我們猜想不同的結果。
而今日我們變換一個特徵值,我們就來拿與全壘打相似,卻考慮更多打者數據的「打擊率」作為我們本日的研究特徵,我們將探討以下幾點:

1.主隊的打擊率較高嗎?

2.一起定義「新特徵」

3.打擊率高者就一定獲勝?

4.打擊率高且獲勝的隊伍會屬於__?

何謂打擊率?

球來就打我們都知道,但要先了解計分板上的背後邏輯。規則上的打擊率是衡量打者成績的一個重要指標,與上壘率、長打率合稱「打擊三圍」,計算方式為安打(H)除以打數(AB),而安打包含了一壘安打、二壘安打、三壘安打,以及全壘打,因此涵蓋打者打擊能力的數值又比全壘打更為周全。
打擊率

Python資料收集

我們的資料來源一樣為FANGRAPHS,數據期間我們也一樣抓取2015賽季至2021賽季,共7年的期間作為我們研究的賽期。
FANGRAPHS

主隊打擊率較高?

在上一篇章中,我們總會認為主隊擁有主場優勢,直覺認為在成績上大多數據應該要比客隊來的優異,這一刻讓我們就先來看看主隊的打擊率是否存在著主場BUFF
首先,我們一樣導入套件

# 數據整理
import numpy as np 
import pandas as pd  

# 可視化
import matplotlib.pyplot as plt
import seaborn as sns
import plotly as py
import plotly.graph_objs as go

接著讀取資料

df = pd.read_excel(r"C:\Users\Guess365User\Desktop\MLB\fangraphs紀錄\fan_all.xlsx",index_col='date') 
df.head()

FANGRAPHS_data

二、欄位不夠用怎麼辦→自行設立「新特徵」

我們所爬取的資料中,只有主隊以及客隊的打擊率(AVG),再假設之上還尚缺一點點精準度!在此我們要自行製作欄位「more_Batting_AVG」,為判斷主客隊誰的打擊率較高;「W/L」為判斷主客隊誰獲勝;「more_AVG_win」為判斷打擊率高者是否獲勝

df['more_Batting_AVG'] = (df['Home_Batting_AVG'] > df['Away_Batting_AVG'])*1
df['W/L'] = (df['主隊得分'] > df['客隊得分']) *1
df["more_AVG_win"] = (df['more_Batting_AVG'] == df['W/L'])*1
df.head(5)

batting_avg

這裡我們用到剛剛創建的欄位「more_Batting_AVG」來視覺化看看

trace0 = go.Pie(labels=df["more_Batting_AVG "].value_counts().index, 
                values=df["more_Batting_AVG "].value_counts().values,
                hole=0.5,
                opacity=0.9,
                marker=dict(line=dict(color='white', width=1.3))
               ) 
layout = go.Layout(title='主客打擊率')
data = [trace0]
fig = go.Figure(data, layout)
py.offline.plot(fig, filename=r'C:\Users\Guess365User\Desktop\IT邦寫文\圖表區\主客打擊率.xlsx')

藍色(1)表示主隊打擊率較高,橘色(0)表示客隊打擊率較高。我們可以發現,主隊打擊率的確有較高的機率勝過客隊打擊率,不過以統計的角度來看,52.5%的機率其實就跟各半是差不多的,所以說,打擊率並無特別受到主場優勢的加持
主客打擊率

由於篇幅長度的關係,我們剩餘的介紹將於《【Python學習筆記_賽事預測-MLB打擊率與勝負的相關?】(下)》做解說

 

【參考平台與資訊 & Python語言書籍】

[Guess官網平台-分析專欄] https://reurl.cc/yMOVE6
[資料視覺化 | 製作充滿說服力的資訊圖表]
[Python 資料科學實戰教本:爬蟲、清理、資料庫、視覺化、探索式分析、機器學習建模,數據工程一次搞定!]



好文推推~~

i945win
9/19/2022 10:01:52 AM