python在Scikit-learn中用决策树和随机森林预测NBA获胜者

科技   科技   2025-01-14 16:53   浙江  

原文链接:http://tecdat.cn/?p=5222


在本文中,我们将以Scikit-learn的决策树和随机森林预测NBA获胜者。美国国家篮球协会(NBA)是北美主要的男子职业篮球联赛,被广泛认为是首屈一指的男子职业篮球联赛在世界上。它有30个队(美国29个,加拿大1个)点击文末“阅读原文”获取完整代码数据


相关视频



在常规赛期间,每支球队打82场比赛,每场41场。一支球队每年会有四次面对对手(16场比赛)。每个小组在其四次(24场比赛)中的其他两个小组中的六个小组中进行比赛,其余四个小组三次(12场)进行比赛。最后,每个队都会在另一场比赛中两次参加所有的球队(30场比赛)。

用决策树和随机森林预测NBA获胜者

#导入数据集并解析日期
df = pd.read\_csv("NBA\_regularGames.csv",parse_dates=\["Date"\])

从描述中,我们可以计算概率。在每场比赛中,主队和客队都有一半概率赢得比赛。

预测类

在下面的代码中,我们将指定我们的分类。这将帮助我们查看决策树分类的预测是否正确。如果主队获胜,我们将指定我们的等级为1,如果访客队在另一个名为“主队赢”的列中获胜,我们将指定为0。

df\["Home Team Win"\] = df\["Visitor Points"\] < df\["Home Points"\]

主队胜率:58.4%

数组现在拥有scikit-learn可以读取的格式。

特征工程

我们将创建以下功能来帮助我们预测NBA的获胜者。

无论是来访者还是主队都赢得了最后一场比赛。



点击标题查阅往期内容


NBA体育决策中的数据挖掘分析:线性模型和蒙特卡罗模拟


左右滑动查看更多


01

02

03

04




哪个队更好?

scikit-learn软件包实现CART(分类和回归树)算法作为其默认 决策树类

决策树实现提供了一种方法来停止构建树,以防止过度拟合:

•min\_samples\_split:可以创建任意叶子,以便在决策树中创建一个新节点。

•min\_samples\_leaf:保证从节点得到的叶子中的样本数量最少

建议使用min\_samples\_split或min\_samples\_leaf来控制叶节点处的采样数。非常小的数字通常意味着树将过度拟合,而大的数据将阻止树学习。

决策的另一个参数是创建决策的标准。基尼的不纯和信息收益是两种流行的:

•基尼:测量决策节点错误预测样本类别的频率

•信息增益:指示决策节点获得了多少额外信息

函数选择

我们通过指定我们希望使用的列并使用数据框视图的values参数,从数据集中提取要素以与我们的scikit-learn的DecisionTreeClassifier一起使用。我们使用cross\_val\_score函数来测试结果。

X\_features\_only = df \[\[ 'Home Win Streak' ,'Visitor Win Streak' ,'Home Team Ranks Higher' ,'Home Team Won Last' ,'Home Last Win' ,'Visitor Last Win' \]\]

结果准确性:56.0%

有可能通过添加更多参数来提高准确性。

混淆矩阵显示了我们决策树的正确和不正确的分类。对角线1,295分别表示主队的真正获胜与否。左下角的1表示假阴性的数量。而右上角的195,误报的数量。我们也可以查看大约0.602的准确性分数,这表明决策树模型已经将60.2%的样本正确地归类为主队获胜与否。

导入pydotplus 图

出于探索的目的,较少数量的变量对获得决策树输出的理解会很有帮助。我们的第一个解释变量,主队获胜概率更高。如果主队排名低于4.5,那么主队输的概率更高。



本文中分析的数据、代码分享到会员群,扫描下面二维码即可加群! 


点击文末“阅读原文”

获取全文完整代码数据资料


本文选自《python在Scikit-learn中用决策树和随机森林预测NBA获胜者》。




点击标题查阅往期内容

数据分享|PYTHON用决策树分类预测糖尿病和可视化实例
样条曲线、决策树、Adaboost、梯度提升(GBM)算法进行回归、分类和动态可视化
SAS分类决策树预测贷款申请评分剪枝和结果可视化
分类回归决策树交互式修剪和更美观地可视化分析细胞图像分割数据集
PYTHON用户流失数据挖掘:建立逻辑回归、XGBOOST、随机森林、决策树、支持向量机、朴素贝叶斯和KMEANS聚类用户画像
PYTHON集成机器学习:用ADABOOST、决策树、逻辑回归集成模型分类和回归和网格搜索超参数优化
Python对商店数据进行lstm和xgboost销售量时间序列建模预测分析
PYTHON集成机器学习:用ADABOOST、决策树、逻辑回归集成模型分类和回归和网格搜索超参数优化
R语言集成模型:提升树boosting、随机森林、约束最小二乘法加权平均模型融合分析时间序列数据
Python对商店数据进行lstm和xgboost销售量时间序列建模预测分析
R语言用主成分PCA、 逻辑回归、决策树、随机森林分析心脏病数据并高维可视化
R语言基于树的方法:决策树,随机森林,Bagging,增强树
R语言用逻辑回归、决策树和随机森林对信贷数据集进行分类预测
spss modeler用决策树神经网络预测ST的股票
R语言中使用线性模型、回归决策树自动组合特征因子水平
R语言中自编基尼系数的CART回归决策树的实现
R语言用rle,svm和rpart决策树进行时间序列预测
python在Scikit-learn中用决策树和随机森林预测NBA获胜者
python中使用scikit-learn和pandas决策树进行iris鸢尾花数据分类建模和交叉验证
R语言里的非线性模型:多项式回归、局部样条、平滑样条、 广义相加模型GAM分析
R语言用标准最小二乘OLS,广义相加模型GAM ,样条函数进行逻辑回归LOGISTIC分类
R语言ISLR工资数据进行多项式回归和样条回归分析
R语言中的多项式回归、局部回归、核平滑和平滑样条回归模型
R语言用泊松Poisson回归、GAM样条曲线模型预测骑自行车者的数量
R语言分位数回归、GAM样条曲线、指数平滑和SARIMA对电力负荷时间序列预测
R语言样条曲线、决策树、Adaboost、梯度提升(GBM)算法进行回归、分类和动态可视化
如何用R语言在机器学习中建立集成模型?
R语言ARMA-EGARCH模型、集成预测算法对SPX实际波动率进行预测
在python 深度学习Keras中计算神经网络集成模型
R语言ARIMA集成模型预测时间序列分析
R语言基于Bagging分类的逻辑回归(Logistic Regression)、决策树、森林分析心脏病患者
R语言基于树的方法:决策树,随机森林,Bagging,增强树
R语言基于Bootstrap的线性回归预测置信区间估计方法
R语言使用bootstrap和增量法计算广义线性模型(GLM)预测置信区间
R语言样条曲线、决策树、Adaboost、梯度提升(GBM)算法进行回归、分类和动态可视化
Python对商店数据进行lstm和xgboost销售量时间序列建模预测分析
R语言随机森林RandomForest、逻辑回归Logisitc预测心脏病数据和可视化分析
R语言用主成分PCA、 逻辑回归、决策树、随机森林分析心脏病数据并高维可视化
Matlab建立SVM,KNN和朴素贝叶斯模型分类绘制ROC曲线
matlab使用分位数随机森林(QRF)回归树检测异常值



拓端数据部落
拓端(tecdat.cn)创立于2016年,提供专业的数据分析与挖掘服务,致力于充分挖掘数据价值。
 最新文章