NBA球星生涯数据集分析

这篇具有很好参考价值的文章主要介绍了NBA球星生涯数据集分析。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

源码链接:

https://download.csdn.net/download/qq_58012062/87541713?spm=1001.2014.3001.5501

数据提取:链接:https://pan.baidu.com/s/1kcttx000FfaLBk1QAJbBAw 
提取码:jbbk

1 实验背景

NBA 作为世界上水平最高的篮球联赛,吸引了无数的球迷。每一场 NBA 比 赛都会产生大量的数据信息,如果能够有效地运用这些数据,便可以充分发挥 出其潜在价值。

在每年赛季开始之前,大量的媒体专家都会对本赛季 NBA 常规赛的情况进 行预测,这其中球队战绩和明星球员的个人数据是大家着重讨论的话题。及时 而准确的完成对这些数据的预测一方面有利于各球队管理层在赛季进行前采 用合适的决策,另一方面可以最大化商业公司的利益。本实验采用机器学习的 方法在赛季开始前完成对本赛季 NBA 球队战绩以及个人数据的预测等。

2.1 NBA数据爬取(实验工具:PyCharm)(做一个简介,在这里不重点讲爬取)

(1)导入库和所需要爬取的网站

nba数据集,机器学习,机器学习,python,人工智能

nba数据集,机器学习,机器学习,python,人工智能

(2)发送请求,获取数据

nba数据集,机器学习,机器学习,python,人工智能

(3)解析html

nba数据集,机器学习,机器学习,python,人工智能

(4)解析opponent数据

nba数据集,机器学习,机器学习,python,人工智能

(5)获取表格body数据

nba数据集,机器学习,机器学习,python,人工智能

(6)存储成csv文件

nba数据集,机器学习,机器学习,python,人工智能

(7)运行爬虫

nba数据集,机器学习,机器学习,python,人工智能

3.NBA球星生涯数据集分析(EDA和随机森林)

3.1.1 项目介绍

 1.项目目标

通过分析科比和巴特勒职业生涯比赛的相关数据,掌握Numpy, Pandas, Matplotlib, Seaborn等常用数据分析库的用法,掌握常规的数据预处理的方法以及特征工程。掌握建立随机森林模型,模型参数调整,构建最好的模型,预测测试数据,并保存测试数据的方法。

   2.科比生涯简介

不论你是否看NBA,都应该听说过科比布莱恩特这个名字,它是最接近篮球之神乔丹的运动员。科比于1996年以13顺位的选秀身份进入联盟,一生都效力于洛杉矶湖人队。于2016年宣布退役,职业生涯获奖无数,5次NBA总冠军,2次FMVP,1次MVP,4次AMVP,18次全明星,生涯总得分超33000分,未来的名人堂球员等。在今年的1月26日,科比乘坐的私人飞机不幸失事,科比和二女儿吉安娜永远地离开了我们,这对无数球迷是一个莫大的打击。虽然科比离开了我们,但曼巴精神将激励着一代又一代的年轻人去追逐自己的梦想。

nba数据集,机器学习,机器学习,python,人工智能

3.巴特勒生涯简介

吉米·巴特勒(Jimmy Butler),1989年9月14日出生于美国得克萨斯州休斯敦(Houston, Texas),美国职业篮球运动员,司职得分后卫/小前锋,效力于NBA迈阿密热火队。  

吉米·巴特勒于2011年通过选秀进入NBA,先后效力于公牛、森林狼、76人以及热火队,2014-15赛季荣膺进步最快球员,2020-21赛季当选NBA抢断王,6次入选NBA全明星阵容,4次入选NBA最佳阵容第三阵容,5次入选NBA最佳防守阵容第二阵容。

吉米·巴特勒代表美国男篮参加了2016年里约奥运会,并随队获得奥运会男篮金牌。

 nba数据集,机器学习,机器学习,python,人工智能

4.科比数据集简介随机森林

该数据集收录了自96赛季~2016赛季,科比整个职业生涯的比赛记录,共有30697条数据。每一条数据都是一次出手记录,其中包括动作类型,投篮类型,投射距离,投射位置,是否命中等25个特征。在该数据集中我们将以是否命中篮筐为标签值来进行分析,带有标签值的数据共25697条。我们将以这25697条数据作为训练数据进行建模,来对不带标签的5000条数据进行预测。

.巴特勒数据集简介EDA

该数据集收录了自2011赛季~至今,巴特勒整个职业生涯的比赛记录,共有20697条数据。每一条数据都是一次出手记录,其中包括动作类型,投篮类型,投射距离,投射位置,是否命中等25个特征。在该数据集中我们将以是否命中篮筐为标签值来进行分析,带有标签值的数据共15697条。我们将以这15697条数据作为训练数据进行建模,来对不带标签的5000条数据进行预测。

6.数据集中各列特征说明

列名称

含义

action_type

动作类型,如跳投,扣篮,上篮

combined_shot_type

组合投篮类型,如跳投,扣篮,勾手,擦板,罚球

game_event_id

比赛的编号

lat

出手的纬度

loc_x

出手的x坐标

loc_y

出手的y坐标

lon

出手的经度

minutes_remaining

距离比赛结束,还剩多少分钟

period

交手的场次,取值为1~7

playoffs

是否是打季后赛

season

赛季,如21~22赛季

seconds_remaining

距离比赛结束,还剩多少秒

shot_distance

出手距离

shot_made_flag

是否命中

shot_type

投射类型,两分球还是三分球

shot_zone_area

出手区域,左侧,右侧,中场,后场等

shot_zone_basic

另一种划分出手区域的方式,中线,禁区,油漆区,左侧底角,右侧底角等

shot_zone_range

出手区域的距离,小于8英尺,8-16英尺,16-24英尺,24英尺以上等

team_id

球队编号

team_name

球队名称

game_date

比赛日期

matchup

对阵双方

opponent

对手

game_id

比赛的编号

shot_id

出手的编号

3.1.2 项目知识点

探索性数据分析(EDA)

探索性数据分析 (EDA) 是一种数据分析方法,它采用多种技术(主要是图形):

1、最大限度地洞察数据集;

2、揭示底层结构;

3、提取重要变量;

4、检测异常值和异常;

5、测试基本假设;

6、开发简约模型;

7、确定最佳因子设置。

        

EDA 中使用的特定图形技术通常非常简单,由以下各种技术组成:

1、绘制原始数据(例如 数据轨迹、 直方图、 双直方图、 概率图、 滞后图、 块图和约登图)。

2、绘制简单的统计数据,例如原始数据的均值图、 标准差图、 箱线图和主效应图。

3、定位这些图以最大化我们的自然模式识别能力,例如每页使用多个图。

不同EDA问题应用不同工具:

1、对于单变量可以应用概率图、概率图相关系数图、单变量和多变量控制图、4-plot。

2、进行比较可使用块图、散点图、箱形图

3、进行筛选可以使用块图、概率图、双直方图

4、数据优化可以使用块图、最小二乘拟合、等高线图

5、回归问题可以使用最小二乘拟合、散点图、6-plot

6、对于时间序列可使用自相关图、光谱图、复解调幅度图、复解调相位图、ARIMA 模型

7、对于多变量分析可以使用星图、散点图矩阵、调节图、剖面图、主成分、聚类、Discrimination、分类等。

   

随机森林模型:       

   随机森林(Random Forest)是一种经典的Bagging模型,其弱学习器为决策树模型。如下图所示,随机森林模型会在原始数据集中随机抽样,构成n个不同的样本数据集,然后根据这些数据集搭建n个不同的决策树模型,最后根据这些决策树模型的平均值(针对回归模型)或者投票情况(针对分类模型)来获取最终结果。

    nba数据集,机器学习,机器学习,python,人工智能

随机森林的核心:

1)随机:训练样本的随机化(稳定性的基础是多样性)

2)森林:多颗决策树

随机森林的构造:

1)构造随机森林需要考虑的点:①只有一份训练数据;②确保多颗决策树要优于但棵决策树

2)随机森林的构造:

       nba数据集,机器学习,机器学习,python,人工智能

随机森林的预测:

分类问题:少数服从多数,比如说随机森林由三棵树构成,两棵树分类为同意,一棵树分类为不同意,那么最终结果为不同意

回归问题:取平均值

3.1.3 实验步骤

项目1:巴特勒生涯数据集分析(EDA)(实验工具:Jupyter)

(1).导入相关库

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns;sns.set()
%matplotlib inline

from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import KFold

(2).读取数据集CSV

Butler = pd.read_csv('Butler_data.csv')
Butler.head(4)

nba数据集,机器学习,机器学习,python,人工智能

(3).数据集清洗和预处理 

Butler.describe() 

nba数据集,机器学习,机器学习,python,人工智能

Butler.shape#处理前总共有30697个数据
Butler = Butler[pd.notnull(Butler['shot_made_flag'])]#通过以上数据集的列举对空值进行处理
Butler.describe() 
Butler.shape#处理后则使用25697个有用数据
Butler.info()#该数据集共有0-24也就是25个特征

nba数据集,机器学习,机器学习,python,人工智能

(4). 数据探索性分析

单变量分析

plt.rcParams['font.sans-serif']=['SimHei']#防止中文标签报错
plt.rcParams['axes.unicode_minus']=False#防止负号报错
#查看巴特勒出手类型的分布
plt.figure(figsize = (10,6))
Butler['combined_shot_type'].value_counts().plot(kind = 'bar')
plt.xlabel('出手类型');plt.ylabel('出手次数');plt.title('吉米.巴特勒职业生涯不同出手类型的次数统计')

nba数据集,机器学习,机器学习,python,人工智能

由上图可知巴特勒的拿手招式是2+1跳投,其次是突破上篮造成对手2+1

#查看巴特勒两分球,三分球的出手数
plt.figure(figsize = (8,6))
Butler['shot_type'].value_counts().plot(kind = 'bar')
plt.xlabel('远投还是中距离');plt.ylabel('出手次数');plt.title('吉米.巴特勒职业生涯远投和中距离的出手数')
plt.xticks(rotation = 0)

nba数据集,机器学习,机器学习,python,人工智能

由上图可知巴特勒善于中距离跳投

#查看巴特勒出手距离的分布
plt.figure(figsize = (8,6))
Butler['shot_distance'].hist(bins = 100)
plt.xlabel('出手距离');plt.ylabel('出手次数');plt.title('吉米.巴特勒出手距离的分布')

nba数据集,机器学习,机器学习,python,人工智能

从上图可知巴特勒出手集中在篮下10英尺到罚球线之间

#绘制箱型图
plt.figure(figsize = (6,4))
sns.boxplot(data = Butler,y = 'shot_distance')
plt.xlabel('出手距离');plt.ylabel('出手次数');plt.title('吉米.巴特勒出手距离的分布')

nba数据集,机器学习,机器学习,python,人工智能

从上图可知巴特勒喜欢篮下强吃

#可视化巴特勒的出手区域,按照不同的标准划分的出手区域
import matplotlib.cm as cm
plt.figure(figsize  = (20,10))

def scatter_plot_by_category(feat):
    alpha = 0.1
    gs = Butler.groupby(feat)
    cs = cm.rainbow(np.linspace(0,1,len(gs)))
    for g,c in zip(gs,cs):
        plt.scatter(g[1].loc_x,g[1].loc_y,color = c,alpha = alpha)
        
plt.subplot(1,3,1)
scatter_plot_by_category(Butler['shot_zone_area'])

plt.title('shot_zone_area')

plt.subplot(1,3,2)
scatter_plot_by_category(Butler['shot_zone_basic'])
plt.title('shot_zone_basic')

plt.subplot(1,3,3)
scatter_plot_by_category(Butler['shot_zone_range'])
plt.title('shot_zone_range')

nba数据集,机器学习,机器学习,python,人工智能

图1为中距离热区,图二为上篮热区,图三为绝杀热区

Butler['shot_distance'].describe()#各距离投射占比
#巴特勒在各个位置投篮的次数
area = Butler['shot_zone_basic'].value_counts()
b = np.array([0,1,2,3,4,5,6])
plt.barh(b,area,align ='center')
plt.yticks(b,('中距离','进攻有理区','底线之外的三分','除进攻有理区外的禁区','右边底线三分','左边底线三分','后场'))
plt.xlabel('次数',fontsize=10)
plt.title('吉米.巴特勒在各区域投篮次数',fontsize=20)
plt.tight_layout()# 紧凑显示图片,居中显示
plt.show()

nba数据集,机器学习,机器学习,python,人工智能

巴特勒对于中距离出手非常自信

双变量分析

#查看巴特勒的出手命中率
plt.figure(figsize = (6,4))
Butler['shot_made_flag'].value_counts(normalize = True).plot(kind = 'bar')
plt.xlabel('命中情况');plt.ylabel('命中个数');plt.title('吉米.巴特勒的出手命中率')

nba数据集,机器学习,机器学习,python,人工智能

巴特勒出手命中率大约为43%,不输NBA大多数全明星球员

#观察不同出手类型与命中率之间的关系

sns.barplot(data = Butler,x = 'combined_shot_type',y = 'shot_made_flag')

nba数据集,机器学习,机器学习,python,人工智能

扣篮>擦板>上篮>勾手>跳投>补篮

#观察两分球与三分球的命中率

sns.barplot(data = Butler,x = 'shot_type',y = 'shot_made_flag')

nba数据集,机器学习,机器学习,python,人工智能

两分>三分

#观察出手距离与命中率之间的关系
sns.scatterplot(data = Butler, x = 'shot_distance',y = 'shot_made_flag' )

nba数据集,机器学习,机器学习,python,人工智能

sns.violinplot(data = Butler, y = 'shot_distance',x = 'shot_made_flag' )

nba数据集,机器学习,机器学习,python,人工智能

 巴特勒善于有把握方式的得分也就是近距离得分

从巴特勒数据集分析和结合数据资料得出:

nba数据集,机器学习,机器学习,python,人工智能

由上图可以看出吉米.巴特勒在NBA里是一个攻防兼备,得分稳定的锋卫摇摆人(可打后卫也可打前锋)。巴特勒今年的季后赛下半场场均17分,投篮命中率59%,越是关键的时刻巴特勒越来劲。截止到目前为止,巴特勒已经拿下了3场40+,并且巴特勒每轮比赛都有40+的表现。从某种程度上说,巴特勒本赛季季后赛的发挥甚至超过了伦纳德,而且在洛瑞受伤之后,巴特勒还成为了热火场上最关键的组织点,进攻防守组织一把抓,巴特勒已经进入到了全新的模式当中。

对于巴特勒来说,过去他曾向热火众将许下诺言,他要夺冠而且一刻也不要等了,上赛季被淘汰时所有人都说巴特勒异想天开,现在的他则是用自己的实际行动来履行自己的诺言。如果本赛季巴特勒能够率队夺冠,那这又将是一个天天平平的普通球员,靠着自己的努力成为历史级别球员的故事。

nba数据集,机器学习,机器学习,python,人工智能

项目2:科比生涯数据集分析(随机森林)(实验工具:Jupyter)

  1. 导入数据库

nba数据集,机器学习,机器学习,python,人工智能

2.数据集清洗

nba数据集,机器学习,机器学习,python,人工智能

nba数据集,机器学习,机器学习,python,人工智能

结论:由上述结果可以看出,该数据集共有25个特征,其中24个特征都是完整的,只有shot_made_flag这个特征是存在缺失值的。所以接下来我们会将数据集切分为两部分,含有shot_made_flag的数据集作为训练集,确实shot_made_flag的数据集作为测试集。通过对训练集进行建模,来预测测试集上的shot_made_flag值。

3.数据预处理

nba数据集,机器学习,机器学习,python,人工智能

nba数据集,机器学习,机器学习,python,人工智能

nba数据集,机器学习,机器学习,python,人工智能

nba数据集,机器学习,机器学习,python,人工智能

nba数据集,机器学习,机器学习,python,人工智能

结论:由于该测试集没有标签,所以我们需要通过交叉验证的方式将训练集分为训练样本和验证样本,用验证集来评估模型的好坏。最终选取最好的模型,对测试样本进行预测。

4.建立随机森林模型

nba数据集,机器学习,机器学习,python,人工智能

nba数据集,机器学习,机器学习,python,人工智能

结论:预测的结果放在kobe_prediction.csv中

nba数据集,机器学习,机器学习,python,人工智能

从科比数据集分析和结合数据资料得出:

nba数据集,机器学习,机器学习,python,人工智能单看从科比比赛数据预测出的time_free training(空余训练时间)就可以看出科比训练有多么刻苦,左图每个格子代表科比每年中每个月的训练时间(单位:小时),而一个月最多是31天的744小时,左图最大为709小时(大多数靠近),最小为1小时(个别)。从这个数据我想到了科比曾说过的一句话。nba数据集,机器学习,机器学习,python,人工智能

勇于担当,不言弃,不服输,在逆境中创造奇迹,这正是曼巴精神所在。

nba数据集,机器学习,机器学习,python,人工智能文章来源地址https://www.toymoban.com/news/detail-520568.html

到了这里,关于NBA球星生涯数据集分析的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【小白必看】Python爬取NBA球员数据示例

    使用 Python 爬取 NBA 球员数据的示例代码。通过发送 HTTP 请求,解析 HTML 页面,然后提取出需要的排名、姓名、球队和得分信息,并将结果保存到文件中。 使用 requests 库发送HTTP请求。 使用 lxml 库进行HTML解析。 设置请求头信息,包括用户代理(User-Agent)。 设置请求的地址为

    2024年02月15日
    浏览(31)
  • PHP NBA球迷俱乐部系统Dreamweaver开发mysql数据库web结构php编程计算机网页

    一、源码特点     PHP NBA球迷俱乐部系统是一套完善的web设计系统,对理解php编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。 基于PHP的NBA球迷俱乐部 二、功能介绍 1、前台主要功能: 系统首页 网站介绍 网站新闻浏览 球迷注册 球队简介浏

    2024年02月09日
    浏览(35)
  • 数据可视化(六):Pandas爬取NBA球队排名、爬取历年中国人口数据、爬取中国大学排名、爬取sina股票数据、绘制精美函数图像

    Tips:\\\"分享是快乐的源泉💧,在我的博客里,不仅有知识的海洋🌊,还有满满的正能量加持💪,快来和我一起分享这份快乐吧😊! 喜欢我的博客的话,记得点个红心❤️和小关小注哦!您的支持是我创作的动力! 数据源 存放在我的资源下载区啦! 1. 爬取NBA球队排名页面,

    2024年04月24日
    浏览(27)
  • 如临现场的视觉感染力,NBA决赛直播还能这样看?

    在6月16日结束的NBA总决赛中,勇士4-2击败凯尔特人,问鼎总冠军!今年的NBA总决赛吸引了众多关注,互联网各大平台的赛事直播气氛也异常热烈。 平台如何既能展现专业的赛事解说,又能与球迷观众深入互动?平台如何既能展现专业的赛事解说,又能与球迷观众深入互动?

    2023年04月25日
    浏览(29)
  • 基于Springboot+Vue的前后端分离系统开发的NBA历史档案馆

    目录 1、前言 2、系统展示 3、主要功能 4、部分代码 4.1 MybatisPlusConfig.java

    2024年02月04日
    浏览(29)
  • ios苹果手机下载《NBA2K22》手机版ios版下载

    ios下载《NBA2K22》要把应用商店切换到国际版才行。 ①.点击AppStore进入,再点击右上方的头像进入。   ②.点击最下方的退出登录,然后登录一个国际苹果ID。   ③.登录后,点击右上方的完成,最后点击下方的搜索,搜索下载即可。     点此可获取苹果ID

    2024年02月12日
    浏览(29)
  • #systemverilog# 之 event region 和 timeslot 仿真调度(七)Active/NBA 咋跳转的?

    目录 一 目的 二 案例分析 2.1 先Active域,后 NBA 域 2.2 先Active域,后 NBA 域,后NBA域

    2024年02月10日
    浏览(20)
  • Python机器学习实验 Python 数据分析

    掌握常见数据预处理方法,熟练运用数据分析方法,并掌握 Python 中的 Numpy、 Pandas 模块提供的数据分析方法。 1.   P a nd a s   基本数据处理 使用 Pandas 模块,完成以下操作。 (1)创建一个由 0 到 50 之间的整数组成的 10 行 5 列的 dataframe。如下: (2)汇总每一列的

    2024年04月09日
    浏览(31)
  • python机器学习数据建模与分析——数据预测与预测建模

    数据预测,简而言之就是基于已有数据集,归纳出输入变量和输出变量之间的数量关系。基于这种数量关系: 一方面,可发现对输出变量产生重要影响的输入变量; 另一方面,在数量关系具有普适性和未来不变的假设下,可用于对新数据输出变量取值的预测。 对数值型输出变

    2024年02月04日
    浏览(38)
  • Python数据分析—基于机器学习的UCI心脏病数据分析(源码+数据+分析设计)

    下载链接:https://pan.baidu.com/s/1ys2F6ZH4EgnFdVP2mkTcsA?pwd=LCFZ 提取码:LCFZ 心脏病是一类比较常见的循环系统疾病。循环系统由心脏、血管和调节血液循环的神经体液组织构成,循环系统疾病也称为心血管病,包括上述所有组织器官的疾病,在内科疾病中属于常见病,其中以心脏病

    2024年02月07日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包