直播信号

Abstract: 作为课程作业,下面的内容是利用每场胜负数据、球员的生物数据等进行的NBA比赛预测。内容包括:1. 获得数据 2. 构造特征 3. 学习验证。最后能够提升16%的准确率。
获得如下数据集:
获得某一年(两年)赛季的队伍胜负,包括时间。比如:https://www.basketball-reference.com/leagues/NBA_2023_games.html,但是这个页面爬起来比较麻烦,代码参考https://aitechtogether.com/article/10860.html。我就直接手动复制粘贴了(也就几页)。获得球员的信息:球员的生物数据(身高、体重),球员的球场数据(3分球命中率诸如此类)。前者在https://www.nba.com/stats/players/bio?PerMode=Totals&Season=2021-22&dir=D 可以得到。这个网站通过json的方式发来数据,在F12后选中XHR格式,其中有一个比较大的文件即此表格。球场数据在basketball-reference上有,各项代表的含义可以自行查询。获得队伍的信息:关于缩写等等。参考wiki:https://en.wikipedia.org/wiki/Wikipedia:WikiProject_National_Basketball_Association/National_Basketball_Association_team_abbreviations
使用VScode,将OT(加时赛)一列处理为:空则替换为0,OT则替换1,2OT则替换为2。并删去BoxScore内容。
Biodata的json格式转为csv则使用了Python的库json和json.loads()。
将收集到的数据整理为.csv文件,并使用Pandas读入成其DataFrame格式。简要说明常用的操作:
df[“Name”],包含Name列的一个dataframefor index, row in df.iterrows(),进行迭代,以按行修改,注意要使用df.iloc[index] = row保存修改新建列:只需要df[“NewName”] = defaultValue选出一些行:df.loc[condition] = value
如果总是假定主场球队胜率,准确率能够达到55%。这是算法的baseline。构造predict即实际值Y:
首先,由于我只用了一年的数据,不能将赛季总胜场作为特征。否则,就会出现大量的0:1预测1的现象,验证的结果非常高。于是,考虑使用在这场比赛之前的累计胜负作为特征,以及这场两支队伍的上一场比赛的胜负作为特征。但是,这里仍然面临着一个问题:
一种思路是,主场与客场分别统计,即如果要构造特征 “A胜场 | B胜场”,A主对B客与B主对A客不是简单的交换顺序,而是分别计算。或者说,如果要构造特征“上一场比赛的胜负”,A主B客对应的特征是上一场A主B客的胜负而非B主A客的胜负。由于我只用了一年的数据是比较少的,分别统计出现很多的0:0,于是选择不分主客。后面的代码也是相似的,不再展示了。
或者,也可以使用他们的差,比如:
测试他们的相差不是很大。
构造出一两个特征之后,就可以测试验证。使用slearn分别用不同的方法拟合,并使用交叉K折验证cross_val_score。分类方法例如:
决策树 from sklearn.tree import DecisionTreeClassifier随机森林 from sklearn.ensemble import RandomForestClassifier逻辑回归 from sklearn.linear_model import LogisticRegression朴素贝叶斯 from sklearn.naive_bayes import GaussianNB最近邻KNN from sklearn.neighbors import KNeighborsClassifier
得到的结果在61.7% - 58.3%之间,已经提升了5%。
增加一项特征:累计OT,其大部分都是0,只有少量的1。随机森林验证得到了62.7%的精度,但是KNN在此时下降的比较厉害,只有50%,遂不再使用。
文章https://aitechtogether.com/article/10860.html中使用了等级分这个概念。公式请看https://en.wikipedia.org/wiki/Elo_rating_system。
一种方法是,使用上个赛季的数据训练获得等级分,并预测这个赛季的数据,或者使用这个赛季的累计等级分。使用累计等级分(就是只根据本场以前赛况),最好的预测是到64.8%;使用整体等级分(即本赛季全部比赛的数据)能够达到68%,但是这种方法(原文的方法)属于信息泄露!
在获得生物信息之后,得到了年龄、身高、体重、GP、PTS,并计算得到了BMI(公式:体重/身高^2)。注意原文是英制单位,需要换算。d = int(d[0])*30.48 + int(d[-1])*2.54(身高),以及d = float(d)*0.45359237(体重)。根据球员的Team信息得到每支队伍的平均身高体重如:
特征:两支队伍比赛则作差。
利用生物特征之差,得到最好的62.9%。但是GP和PTS算不上生物特征,只用身高、体重和年龄,朴素贝叶斯分类器得到更好的64.9%!也就说生物特征对NBA比赛的结果确实有影响而且影响很大。具体来说影响有多大呢?
从矩阵来看(最后一列),年龄、身高和体重和结果是正相关的!影响最大的是年龄,而年龄是正相关即越大越有优势,其次是体重。这或许和表现差劲的队伍锐意革新、并派出许多新人上场有关。过滤掉新人(PTS<10)的人后,这个数据并没有太显著的变化。比较意外的是身高的差并不太影响比赛结果,可能是大家都很高,无论强队或弱队!
球员数据中有一系列参数,比如: [
“G”,“GS”,“MP”,“FG”,“FGA”,“FG%”,“3P”,“3PA”,“3P%”,“2P”,“2PA”,“2P%”,“eFG%”,“FT”,“FTA”,“FT%”,“ORB”,“DRB”,“TRB”,“AST”,“STL”,“BLK”,“TOV”,“PF”,“PTS”],我们就全部将其投入到特征中。若如此做,逻辑回归就不太好用了。这种粗放特征使得结果达到68.1%的精度。从相关系数矩阵来看,每一项都是正相关(肯定是正相关),比较有用的特征是DRB、FG(fieldgoal?)等。
直接把上上个赛季(20-21)的比赛数据扔进来,并不改变生物信息和球员表现特征。这意味着一年中很多变化都没有考虑进去(比如换人)。即使在这种情况下,模型得到了63.2%的准确率,而基准是55.2%。如果加入上赛季数据的同时并不改变测试集的范围(仅是今年),即保留着关于比赛累计输赢的数据,能够达到71.2%的准确率!(只使用累计胜负特征,只有60.6%)这条曲线应当是随着数据增多先上升后下降的。
这一补充实验的另外一个意义是,球员数据中有PTS等等都是这个赛季现求的,是否会对预测造成干扰?首先PTS等与输赢的相关系数并不高坦佩雷联预测比分。其次,如果相关程度很高就意味着泛化性不强,那么加入数据之后可能不增反降。因此这一定程度证明了他们是不止与本次比赛相关的,可能表征着球员本人的更深刻的信息。
使用所有特征进行拟合,最后得到69.4%的结果,并在加入新的数据后得到71.2%的结果,比起原本55.8%的结果好了不少。总结一下:首先熟悉了DataFrame这个数据结构,然后练习了数据获取(本来打算使用爬虫),并分析了几个特征与结果的相关系数,最后拓展数据集补充了实验。

昂热VS斯特拉斯堡直播_昂热VS斯特拉斯堡免费在线高清直播_昂热VS斯特拉斯堡视频在线观看无插件

朗斯VS南特直播_朗斯VS南特免费在线高清直播_朗斯VS南特视频在线观看无插件

毕尔巴鄂竞技VS瓦伦西亚直播_毕尔巴鄂竞技VS瓦伦西亚免费在线高清直播_毕尔巴鄂竞技VS瓦伦西亚视频在线观看无插件

皇家马略卡VS比利亚雷亚尔直播_皇家马略卡VS比利亚雷亚尔免费在线高清直播_皇家马略卡VS比利亚雷亚尔视频在线观看无插件

塞维利亚VS西班牙人直播_塞维利亚VS西班牙人免费在线高清直播_塞维利亚VS西班牙人视频在线观看无插件

巴塞罗那VS皇马直播_巴塞罗那VS皇马免费在线高清直播_巴塞罗那VS皇马视频在线观看无插件

皇家社会VS皇家贝蒂斯直播_皇家社会VS皇家贝蒂斯免费在线高清直播_皇家社会VS皇家贝蒂斯视频在线观看无插件

埃尔切VS阿拉维斯直播_埃尔切VS阿拉维斯免费在线高清直播_埃尔切VS阿拉维斯视频在线观看无插件

巴列卡诺VS赫罗纳直播_巴列卡诺VS赫罗纳免费在线高清直播_巴列卡诺VS赫罗纳视频在线观看无插件

皇家奥维耶多VS赫塔菲直播_皇家奥维耶多VS赫塔菲免费在线高清直播_皇家奥维耶多VS赫塔菲视频在线观看无插件

04月25日 英超第34轮 狼队vs热刺 全场录像回放
2026年05月02日
04月25日 英超第34轮 西汉姆联vs埃弗顿 全场录像回放
2026年05月02日
04月25日 英超第34轮 利物浦vs水晶宫 全场录像回放
2026年05月02日
04月25日 英超第34轮 富勒姆vs阿斯顿维拉 全场录像回放
2026年05月02日
04月25日 英超第34轮 桑德兰vs诺丁汉森林 全场录像回放
2026年05月02日
04月23日 英超第34轮 伯恩茅斯vs利兹联 全场录像回放
2026年05月02日
04月23日 英超第34轮 伯恩利vs曼城 全场录像回放
2026年05月02日
04月22日 英超第34轮 布莱顿vs切尔西 全场录像回放
2026年05月02日
04月28日 英超第34轮 曼联vs布伦特福德 全场录像回放
2026年05月02日
04月26日 英超第34轮 阿森纳vs纽卡斯尔联 全场录像回放
2026年05月02日
04月21日 英超第33轮 水晶宫vs西汉姆联 全场录像回放
2026年05月02日
04月19日 英超第33轮 曼城vs阿森纳 全场录像回放
2026年05月02日
04月19日 英超第33轮 阿斯顿维拉vs桑德兰 全场录像回放
2026年05月02日
04月19日 英超第33轮 埃弗顿vs利物浦 全场录像回放
2026年05月02日
04月19日 英超第33轮 切尔西vs曼联 全场录像回放
2026年05月02日
04月25日 德甲第31轮 美因茨vs拜仁慕尼黑 全场录像回放
2026年05月02日
04月25日 德甲第31轮 海登海姆vs圣保利 全场录像回放
2026年05月02日
04月25日 德甲第31轮 科隆vs勒沃库森 全场录像回放
2026年05月02日
04月25日 德甲第31轮 奥格斯堡vs法兰克福 全场录像回放
2026年05月02日
04月25日 德甲第31轮 沃尔夫斯堡vs门兴 全场录像回放
2026年05月02日
04月25日 德甲第31轮 莱比锡vs柏林联合 全场录像回放
2026年05月02日
04月26日 德甲第31轮 多特蒙德vs弗赖堡 全场录像回放
2026年05月02日
04月26日 德甲第31轮 斯图加特vs不莱梅 全场录像回放
2026年05月02日
04月26日 德甲第31轮 汉堡vs霍芬海姆 全场录像回放
2026年05月02日
04月20日 德甲第30轮 门兴vs美因茨 全场录像回放
2026年05月02日
04月19日 德甲第30轮 拜仁慕尼黑vs斯图加特 全场录像回放
2026年05月02日
04月19日 德甲第30轮 弗赖堡vs海登海姆 全场录像回放
2026年05月02日
04月19日 德甲第30轮 法兰克福vs莱比锡 全场录像回放
2026年05月02日
04月18日 德甲第30轮 霍芬海姆vs多特蒙德 全场录像回放
2026年05月02日
04月18日 德甲第30轮 柏林联合vs沃尔夫斯堡 全场录像回放
2026年05月02日
04月25日 法甲第31轮 里昂vs欧塞尔 全场录像回放
2026年05月02日
04月25日 法甲第31轮 布雷斯特vs朗斯 全场录像回放
2026年05月02日
04月23日 法甲第26轮 巴黎圣日耳曼vs南特 全场录像回放
2026年05月02日
04月27日 法甲第31轮 马赛vs尼斯 全场录像回放
2026年05月02日
04月26日 法甲第31轮 勒阿弗尔vs梅斯 全场录像回放
2026年05月02日
04月26日 法甲第31轮 雷恩vs南特 全场录像回放
2026年05月02日
04月26日 法甲第31轮 巴黎FCvs里尔 全场录像回放
2026年05月02日
04月26日 法甲第31轮 洛里昂vs斯特拉斯堡 全场录像回放
2026年05月02日
04月26日 法甲第31轮 图卢兹vs摩纳哥 全场录像回放
2026年05月02日
04月26日 法甲第31轮 昂热vs巴黎圣日耳曼 全场录像回放
2026年05月02日
04月20日 法甲第30轮 巴黎圣日耳曼vs里昂 全场录像回放
2026年05月02日
04月19日 法甲第30轮 南特vs布雷斯特 全场录像回放
2026年05月02日
04月19日 法甲第30轮 梅斯vs巴黎FC 全场录像回放
2026年05月02日
04月19日 法甲第30轮 斯特拉斯堡vs雷恩 全场录像回放
2026年05月02日
04月19日 法甲第30轮 摩纳哥vs欧塞尔 全场录像回放
2026年05月02日
04月25日 西甲第32轮 赫塔费vs巴塞罗那 全场录像回放
2026年05月02日
04月25日 西甲第32轮 阿拉维斯vs马略卡 全场录像回放
2026年05月02日
04月25日 西甲第32轮 皇家贝蒂斯vs皇家马德里 全场录像回放
2026年05月02日
04月24日 西甲第33轮 皇家奥维耶多vs比利亚雷亚尔 全场录像回放
2026年05月02日
04月24日 西甲第33轮 巴列卡诺vs西班牙人 全场录像回放
2026年05月02日
04月24日 西甲第33轮 莱万特vs塞维利亚 全场录像回放
2026年05月02日
04月23日 西甲第33轮 巴塞罗那vs塞尔塔 全场录像回放
2026年05月02日
04月23日 西甲第33轮 皇家社会vs赫塔费 全场录像回放
2026年05月02日
04月23日 西甲第33轮 埃尔切vs马德里竞技 全场录像回放
2026年05月02日
04月22日 西甲第33轮 皇家马德里vs阿拉维斯 全场录像回放
2026年05月02日
04月22日 西甲第33轮 赫罗纳vs皇家贝蒂斯 全场录像回放
2026年05月02日
04月22日 西甲第33轮 毕尔巴鄂竞技vs奥萨苏纳 全场录像回放
2026年05月02日
04月28日 西甲第32轮 西班牙人vs莱万特 全场录像回放
2026年05月02日
04月27日 西甲第32轮 比利亚雷亚尔vs塞尔塔 全场录像回放
2026年05月02日
04月27日 西甲第32轮 奥萨苏纳vs塞维利亚 全场录像回放
2026年05月02日
04月26日 意甲第34轮 博洛尼亚vs罗马 全场录像回放
2026年05月02日
04月25日 意甲第34轮 帕尔马vs比萨 全场录像回放
2026年05月02日
04月25日 意甲第34轮 那不勒斯vs克雷莫内塞 全场录像回放
2026年05月02日
04月28日 意甲第34轮 拉齐奥vs乌迪内斯 全场录像回放
2026年05月02日
04月28日 意甲第34轮 卡利亚里vs亚特兰大 全场录像回放
2026年05月02日
04月27日 意甲第34轮 AC米兰vs尤文图斯 全场录像回放
2026年05月02日
04月27日 意甲第34轮 都灵vs国际米兰 全场录像回放
2026年05月02日
04月26日 意甲第34轮 热那亚vs科莫 全场录像回放
2026年05月02日
04月26日 意甲第34轮 佛罗伦萨vs萨索洛 全场录像回放
2026年05月02日
04月26日 意甲第34轮 维罗纳vs莱切 全场录像回放
2026年05月02日
04月21日 意甲第33轮 莱切vs佛罗伦萨 全场录像回放
2026年05月02日
04月20日 意甲第33轮 尤文图斯vs博洛尼亚 全场录像回放
2026年05月02日
04月20日 意甲第33轮 比萨vs热那亚 全场录像回放
2026年05月02日
04月19日 意甲第33轮 维罗纳vsAC米兰 全场录像回放
2026年05月02日
04月19日 意甲第33轮 克雷莫内塞vs都灵 全场录像回放
2026年05月02日
05月01日 NBA季后赛西部首轮G6 掘金vs森林狼 全场录像回放
2026年05月02日
05月01日 NBA季后赛东部首轮G6 凯尔特人vs76人 全场录像回放
2026年05月02日
05月01日 NBA季后赛东部首轮G6 尼克斯vs老鹰 全场录像回放
2026年05月02日
04月30日 NBA季后赛西部首轮G5 火箭vs湖人 全场录像回放
2026年05月02日
04月30日 NBA季后赛东部首轮G5 猛龙vs骑士 全场录像回放
2026年05月02日
04月30日 NBA季后赛东部首轮G5 魔术vs活塞 全场录像回放
2026年05月02日
04月29日 NBA季后赛西部首轮G5 开拓者vs马刺 全场录像回放
2026年05月02日
04月29日 NBA季后赛东部首轮G5 老鹰vs尼克斯 全场录像回放
2026年05月02日
04月29日 NBA季后赛东部首轮G5 76人vs凯尔特人 全场录像回放
2026年05月02日
04月28日 NBA季后赛西部首轮G5 森林狼vs掘金 全场录像回放
2026年05月02日
04月28日 NBA季后赛西部首轮G4 雷霆vs太阳 全场录像回放
2026年05月02日
04月28日 NBA季后赛东部首轮G4 活塞vs魔术 全场录像回放
2026年05月02日
04月27日 NBA季后赛西部首轮G4 湖人vs火箭 全场录像回放
2026年05月02日
04月27日 NBA季后赛东部首轮G4 凯尔特人vs76人 全场录像回放
2026年05月02日
04月27日 NBA季后赛西部首轮G4 马刺vs开拓者 全场录像回放
2026年05月02日