基于SVM+Webdriver的智能NBA常规赛与季后赛结果预测系统——机器学习算法应用(含python、ipynb工程源码)+所有数据集(一)

本文主要是介绍基于SVM+Webdriver的智能NBA常规赛与季后赛结果预测系统——机器学习算法应用(含python、ipynb工程源码)+所有数据集(一),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

  • 前言
  • 总体设计
    • 系统整体结构图
    • 系统流程图
  • 运行环境
    • Python环境
    • Jupyter Notebook环境
    • PyCharm环境
    • MATLAB环境
  • 模块实现
    • 1. 数据预处理
      • 1)常规赛数据处理
      • 2)季后赛数据处理
  • 相关其它博客
  • 工程源代码下载
  • 其它资料下载


在这里插入图片描述

前言

本项目使用了从NBA官方网站获得的数据,并运用了支持向量机(SVM)模型来进行NBA常规赛和季后赛结果的预测。此外,项目还引入了相关系数法、随机森林分类法和Lasso方法,以评估不同特征的重要性。最后,使用Python库中的webdriver功能实现了自动发帖,并提供了科学解释来解释比赛预测结果。

首先,项目采集了NBA官方网站上的各种数据,这些数据包括球队与对手的历史表现、球员数据、赛季统计等。这些数据用于构建常规赛或季后赛结果的预测模型。

其次,支持向量机(SVM)模型被用来分析这些数据以进行常规赛或季后赛结果的预测。SVM是一种强大的机器学习算法,可以通过分析数据来确定不同特征对比赛结果的影响。

项目还使用了相关系数法、随机森林分类法和Lasso方法,以评估每个特征对常规赛或季后赛结果的重要性。这有助于识别哪些因素对比赛胜负有更大的影响。

最后,项目利用Python中的webdriver库自动发帖,在开源中国论坛中发布关于比赛预测的帖子。这些帖子不仅提供了预测结果,还附带了科学解释,以便其他球迷能够理解模型如何得出这些预测。这对于NBA球迷和数据科学爱好者来说可能是一个非常有趣的项目,能够帮助他们更好地理解比赛和预测比赛结果。

总体设计

本部分包括系统整体结构图和系统流程图。

系统整体结构图

系统整体结构如图所示。

在这里插入图片描述

系统流程图

模型处理流程如图所示。

在这里插入图片描述

自动发帖流程如图所示。

在这里插入图片描述

运行环境

本部分包括Python环境、Jupyter Notebook环境、PyCharm环境和Matlab环境。

Python环境

需要Python 3.6及以上配置,在Windows环境下推荐下载Anaconda完成Python所需环境的配置,下载地址为https://www.anaconda.com/,也可下载虚拟机在Linux环境下运行代码。

鼠标右击“我的电脑”,单击“属性”,选择高级系统设置。单击“环境变量”,找到系统变量中的Path,单击“编辑”然后新建,将Python解释器所在路径粘贴并确定。

Jupyter Notebook环境

打开Anaconda Prompt,转到HOME界面,单击JupyterNotebook的下载按钮,选择6.0.1版本或者更高的版本下载即可。

PyCharm环境

安装PyCharm并激活,PyCharm下载地址为http://www.jetbrains.com/pycharm/download/#section=windows,进入网站后单击Comminity版本下的DOWNLOAD下载安装包,下载完成后安装。

MATLAB环境

MATLAB版本为9.5.0.944444 (R2018b) ,MATLAB许可证编号为968398。操作系统为Microsoft Windows10企业版,2016长期服务版为Version10.0 (Build14393) 。

模块实现

本项目包括4个模块:数据预处理、特征提取、模型训练及评估、模型训练准确率,下面分别介绍各模块的功能及相关代码。

1. 数据预处理

数据处理分为常规赛和季后赛。

1)常规赛数据处理

数据集地址为https://www.basketball-reference.com/,下载后导入。使用Pandas的read_csv函数读取数据表,相关代码如下:

Mstat = pd.read_csv('nbadata/17-18Miscellaneous_Stat.csv')
#球队赛季总和统计数据
Ostat = pd.read_csv('nbadata/17-18Opponent_Per_Game_Stat.csv')
#对手赛季平均每场比赛统计数据
Tstat = pd.read_csv('nbadata/17-18Team_Per_Game_Stat.csv')
#球队赛季平均每场比赛统计数据
result_data = pd.read_csv('nbadata/2017-2018_result.csv')
#18~19赛季比赛日历和结果
Mstat# 球队综合数据图
Ostat.head()#球队对手数据图
Tstat.head()#球队场均数据图

部分数据如图1-图3所示。
在这里插入图片描述

图1 球队综合数据

在这里插入图片描述

图2 球队对手数据

在这里插入图片描述

图3 球队场均数据

进行数据初始化如下:

#删除无用列
new_Mstat = Mstat.drop(['Rk', 'Arena'], axis=1)
new_Ostat = Ostat.drop(['Rk', 'G', 'MP'], axis=1)
new_Tstat = Tstat.drop(['Rk', 'G', 'MP'], axis=1)
#根据队名横向拼接前两个表
team_stats1 = pd.merge(new_Mstat, new_Ostat, how='left', on='Team')
#根据队名横向拼接上三个表
team_stats1 = pd.merge(team_stats1, new_Tstat, how='left', on='Team')
team_stats=team_stats1.set_index('Team', inplace=False, drop=True)
team_stats1.head()#拼接表显示
result_data.head()#常规赛结果

拼接结果如图所示。

在这里插入图片描述

2017-2018赛季比赛结果前5个数据如图所示。
在这里插入图片描述

2)季后赛数据处理

季后赛预测需要提取的特征有常规赛球队得分、核心球员数量、核心球员得分、教练常规赛执教总场数、常规赛执教总胜率、季后赛执教总场数和季后赛执教总胜率,共7个特征。需要准备的数据有:常规赛队伍场均数据和对手场均数据,位于data/team_and_op文件夹下;教练数据,位于data/coach文件夹下;球员各项数据,位于data/player_score文件夹下;季后赛数据,位于data/playoff文件夹下。所有数据均为2010-2011赛季至2018-2019赛季数据。

相关代码如下:

tfname = glob.glob('data/team_and_op/*t.csv')
ofname = glob.glob('data/team_and_op/*o.csv')
for tname, oname, playoff in zip(tfname, ofname, playfname):
#读取队伍数据
df = pd.read_csv(tname)
#读取队伍对手数据
df_ = pd.read_csv(oname)

获得的原数据中,队名列中随机带有“*”,将其删除;教练数据及球员数据的队名是缩写,将其替换为全名;在采取数据的9个赛季中,有些队伍更改了名称,需统一为当前队名。使用pandas DataFrame对象的replace方法完成。

相关代码如下:

df.replace(oldname, newname)

相关其它博客

基于SVM+Webdriver的智能NBA常规赛与季后赛结果预测系统——机器学习算法应用(含python、ipynb工程源码)+所有数据集(二)

基于SVM+Webdriver的智能NBA常规赛与季后赛结果预测系统——机器学习算法应用(含python、ipynb工程源码)+所有数据集(三)

基于SVM+Webdriver的智能NBA常规赛与季后赛结果预测系统——机器学习算法应用(含python、ipynb工程源码)+所有数据集(四)

工程源代码下载

详见本人博客资源下载页


其它资料下载

如果大家想继续了解人工智能相关学习路线和知识体系,欢迎大家翻阅我的另外一篇博客《重磅 | 完备的人工智能AI 学习——基础知识学习路线,所有资料免关注免套路直接网盘下载》
这篇博客参考了Github知名开源平台,AI技术平台以及相关领域专家:Datawhale,ApacheCN,AI有道和黄海广博士等约有近100G相关资料,希望能帮助到所有小伙伴们。

这篇关于基于SVM+Webdriver的智能NBA常规赛与季后赛结果预测系统——机器学习算法应用(含python、ipynb工程源码)+所有数据集(一)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/233714

相关文章

Python脚本实现自动删除C盘临时文件夹

《Python脚本实现自动删除C盘临时文件夹》在日常使用电脑的过程中,临时文件夹往往会积累大量的无用数据,占用宝贵的磁盘空间,下面我们就来看看Python如何通过脚本实现自动删除C盘临时文件夹吧... 目录一、准备工作二、python脚本编写三、脚本解析四、运行脚本五、案例演示六、注意事项七、总结在日常使用

Python将大量遥感数据的值缩放指定倍数的方法(推荐)

《Python将大量遥感数据的值缩放指定倍数的方法(推荐)》本文介绍基于Python中的gdal模块,批量读取大量多波段遥感影像文件,分别对各波段数据加以数值处理,并将所得处理后数据保存为新的遥感影像... 本文介绍基于python中的gdal模块,批量读取大量多波段遥感影像文件,分别对各波段数据加以数值处

python管理工具之conda安装部署及使用详解

《python管理工具之conda安装部署及使用详解》这篇文章详细介绍了如何安装和使用conda来管理Python环境,它涵盖了从安装部署、镜像源配置到具体的conda使用方法,包括创建、激活、安装包... 目录pytpshheraerUhon管理工具:conda部署+使用一、安装部署1、 下载2、 安装3

Python进阶之Excel基本操作介绍

《Python进阶之Excel基本操作介绍》在现实中,很多工作都需要与数据打交道,Excel作为常用的数据处理工具,一直备受人们的青睐,本文主要为大家介绍了一些Python中Excel的基本操作,希望... 目录概述写入使用 xlwt使用 XlsxWriter读取修改概述在现实中,很多工作都需要与数据打交

使用MongoDB进行数据存储的操作流程

《使用MongoDB进行数据存储的操作流程》在现代应用开发中,数据存储是一个至关重要的部分,随着数据量的增大和复杂性的增加,传统的关系型数据库有时难以应对高并发和大数据量的处理需求,MongoDB作为... 目录什么是MongoDB?MongoDB的优势使用MongoDB进行数据存储1. 安装MongoDB

在C#中获取端口号与系统信息的高效实践

《在C#中获取端口号与系统信息的高效实践》在现代软件开发中,尤其是系统管理、运维、监控和性能优化等场景中,了解计算机硬件和网络的状态至关重要,C#作为一种广泛应用的编程语言,提供了丰富的API来帮助开... 目录引言1. 获取端口号信息1.1 获取活动的 TCP 和 UDP 连接说明:应用场景:2. 获取硬

使用Python实现在Word中添加或删除超链接

《使用Python实现在Word中添加或删除超链接》在Word文档中,超链接是一种将文本或图像连接到其他文档、网页或同一文档中不同部分的功能,本文将为大家介绍一下Python如何实现在Word中添加或... 在Word文档中,超链接是一种将文本或图像连接到其他文档、网页或同一文档中不同部分的功能。通过添加超

JAVA系统中Spring Boot应用程序的配置文件application.yml使用详解

《JAVA系统中SpringBoot应用程序的配置文件application.yml使用详解》:本文主要介绍JAVA系统中SpringBoot应用程序的配置文件application.yml的... 目录文件路径文件内容解释1. Server 配置2. Spring 配置3. Logging 配置4. Ma

2.1/5.1和7.1声道系统有什么区别? 音频声道的专业知识科普

《2.1/5.1和7.1声道系统有什么区别?音频声道的专业知识科普》当设置环绕声系统时,会遇到2.1、5.1、7.1、7.1.2、9.1等数字,当一遍又一遍地看到它们时,可能想知道它们是什... 想要把智能电视自带的音响升级成专业级的家庭影院系统吗?那么你将面临一个重要的选择——使用 2.1、5.1 还是

Python MySQL如何通过Binlog获取变更记录恢复数据

《PythonMySQL如何通过Binlog获取变更记录恢复数据》本文介绍了如何使用Python和pymysqlreplication库通过MySQL的二进制日志(Binlog)获取数据库的变更记录... 目录python mysql通过Binlog获取变更记录恢复数据1.安装pymysqlreplicat