NBA比赛结果预测 # 编程大事件 # 嵩天 # python #

NBA 比赛结果预测

一、项目背景

1.数据分析

数据分析是一个检查、清理、转换和建模数据的过程,其目标是发现有用的信息、得出结论并支持决策制定。数据分析具有多个方面和方法,包括各种名称下的多种技术,并用于不同的商业、科学和社会科学领域。

在当今的商业世界中,数据分析在使决策更加科学和帮助企业更有效地运作方面发挥了作用。

2.数据分析流程

  • 数据采集

  • 数据存储

  • 数据提取

  • 数据挖掘

  • 数据分析

  • 数据展示

  • 数据应用

3.Jupyter

Jupyter是一个非营利组织,旨在“为数十种编程语言的交互式计算开发开源软件,开放标准和服务”。2014年由Fernando Pérez从IPython中衍生出来,Jupyter支持几十种语言的执行环境。

Jupyter项目开发并支持交互式计算产品Jupyter Notebook(文件格式是.ipynb文件)、JupyterHub和JupyterLab。

4.数据详情

数据来源:Basketball Statistics & History of Every Team & NBA and WNBA Players | Basketball-Reference.com

以下表格来自Seasons导航栏下的summary,下拉至Per Game Stats数据表,选择Share & Export下的Get table as CSV (for Excel),选择Team、Opponent获得两张表。

2021-2022 Team Per Game Stats.csv 每支队伍在每场比赛中的表现统计,各字段含义如下:

字段

含义

Rk

排名

Team

队伍

G

参与的比赛场数

MP

平均每场比赛进行的时间

FG

投球命中次数

FGA

投射次数

FG%

投球命中次数

3P

三分球命中次数

3PA

三分球投射次数

3P%

三分球命中率

2P

二分球命中次数

2PA

二分球投射次数

2P%

二分球命中率

FT

罚球命中次数

FTA

罚球投射次数

FT%

罚球命中率

ORB

进攻篮板球

DRB

防守篮板球

TRB

篮板球总数

AST

助攻

STL

抢断

BLK

封盖

TOV

失误

PF

个犯

PTS

得分

2021-2022Opponent Per Game Stats.csv 每支队伍在每场比赛中遇到的对手表现统计,各字段含义同上。

继续下拉至Advanced Stats数据表,选择Share & Export下的Get table as CSV (for Excel)

2021-2022Miscellaneous Stats.csv:每支队伍的综合统计数据,各字段含义如下:

数据项

数据含义

Rk (Rank)

排名

Age

队员的平均年龄

W (Wins)

胜利次数

L (Losses)

失败次数

PW (Pythagorean wins)

基于毕达哥拉斯理论计算的赢的概率

PL (Pythagorean losses)

基于毕达哥拉斯理论计算的输的概率

MOV (Margin of Victory)

赢球次数的平均间隔

SOS (Strength of Schedule)

用以评判对手选择与其球队或是其他球队的难易程度对比,0 为平均线,可以为正负数

SRS (Simple Rating System)

简易评级系统,根据他们的积分差异对球队进行排名

ORtg (Offensive Rating)

每 100 个比赛回合中的进攻比例

DRtg (Defensive Rating)

每 100 个比赛回合中的防守比例

NRtg (Net Rating)

进攻效率ORtg-防守效率DRtg

Pace (Pace Factor)

每 48 分钟内大概会进行多少个回合

FTr (Free Throw Attempt Rate)

罚球次数所占投射次数的比例

3PAr (3-Point Attempt Rate)

三分球投射占投射次数的比例

TS% (True Shooting Percentage)

二分球、三分球和罚球的总共命中率

eFG% (Effective Field Goal Percentage)

有效的投射百分比(含二分球、三分球)

TOV% (Turnover Percentage)

每 100 场比赛中失误的比例

ORB% (Offensive Rebound Percentage)

球队中平均每个人的进攻篮板的比例

FT/FGA

罚球所占投射的比例

eFG% (Opponent Effective Field Goal Percentage)

对手投射命中比例

TOV% (Opponent Turnover Percentage)

对手的失误比例

DRB% (Defensive Rebound Percentage)

球队平均每个球员的防守篮板比例

FT/FGA (Opponent Free Throws Per Field Goal Attempt)

对手的罚球次数占投射次数的比例

Arena

比赛场;竞技场

Attend.

出席观众人数

Attend./G

平均每场比赛的出席观众人数

以下两张表数据来源于Seasons导航栏下的Schedule and Results,选择Share & Export下的Get table as CSV (for Excel)。

2021-2022_result.csv 每场比赛的数据,其中包括三个字段:

字段

含义

WTeam

比赛胜利队伍

LTeam

失败队伍

WLoc

胜利队伍一方所在的为主场或是客场

2022-2023_schedule.csv 比赛的安排,其中包括两个字段:

字段

含义

Vteam

客场作战队伍

Hteam

主场作战队伍

二、项目目标

1.主要目标

利用训练好的模型在2022-2023年的比赛数据中进行预测,对每一场新的比赛进行胜负方判断,最好能返回胜方胜利的概率。

2.目标分解

  • 读取数据

  • 分析内容

  • 构建特征

  • 建立模型

  • 训练样本

  • 预测结果

三、技术选型

1.问题:必须使用Jupyter Notebook吗?

推荐使用,这是数据分析下通用工具,建议掌握。

2.问题:机器学习使用什么工具?

推荐使用sklearn,sklearn是基于 Python 语言的机器学习工具,Sklea是处理机器学习 (有监督学习和无监督学习) 的包。

它建立在 NumPy, SciPy, Pandas 和 Matplotlib 之上,其主要集成了数据预处理、数据特征选择,sklearn有六个任务模块和一个数据引入模块:

  • 有监督学习的分类任务

  • 有监督学习的回归任务

  • 无监督学习的聚类任务

  • 无监督学习的降维任务

  • 数据预处理任务

  • 模型选择任务

  • 数据引入

官网网站:scikit-learn: machine learning in Python — scikit-learn 1.1.3 documentation

安装

pip install -U scikit-learn

四、课堂要求

1.提交项目结构

main.ipynb      数据分析文件

2.标注核心算法函数位置

# 逻辑回归 位于main.ipynb文件 第5个代码块中

from sklearn import linear_model
model = linear_model.LogisticRegression(max_iter=15000)
model.fit(X, y)

3.程序运行效果截图

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值