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

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

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

#导入数据集并解析日期导入熊猫作为pd df = pd 。read_csv (“NBA_2017_regularGames.csv” ,parse_dates = [ “Date” ])

从游戏玩法的描述中,我们可以计算机会率。在每场比赛中,主队和客队都有可能赢得一半时间

预测类

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

df [ “主队获胜” ] = df [ “访客积分” ] < df [ “主队积分” ]

主队胜率:58.4%

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

特征工程

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

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

一般认为哪个团队更好?

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

决策树实现提供了一种方法来停止构建树,以防止过度使用以下选项:

• min_samples_split: can create arbitrary small leaves in order to create a new node in the decision tree• min_samples_leaf: guarantees a minimum number of samples in a leaf resultingfrom a node

建议使用min_samples_split或min_samples_leaf来控制叶节点处的采样数。一个非常小的数字通常意味着树将过度拟合,而大量的数据将阻止树学习数据。

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

• Gini impurity: measures how often a decision node would incorrectly predict a sample's class•`Information gain: indicate how much extra information is gained by the decision node

功能选择

我们通过指定我们希望使用的列并使用数据框视图的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%

通过选择我们制作的功能,精确度下降到56%。是否有可能通过添加更多功能来提高准确性。

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

导入pydotplus 图

出于探索的目的,测试较少数量的变量以便首先获得决策树输出的感觉会很有帮助。最终的树开始于X的分裂,我们的第一个解释变量,主队队列更高。如果主队排名较高的值小于4.5,那么主队就会松动,因为我们的二元变量具有虚假等值亏损值和真实同赢。

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

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

    最近我们被要求撰写关于预测NBA的研究报告,包括一些图形和统计输出.我们将以Scikit-learn的决策树和随机森林预测NBA获胜者.美国国家篮球协会(NBA)是北美主要的男子职业篮球联赛,被广泛认 ...

  2. 使用决策树和随机森林预测NBA获胜球队

    NBA比赛通常是难分胜负,有些时候会在最后一刻才会决出胜负,因此,预测哪支球队最后获胜会非常困难.通常你看好的球队恰恰在这场比赛中就会输给比它弱的球队. 许多预测比赛胜负的研究往往会有准确率上限,根据 ...

  3. python 决策树和随机森林_【python机器学习笔记】使用决策树和随机森林预测糖尿病...

    决策树:一种有监督的机器学习分类算法,可以训练已知数据,做出对未知数据的预测. 机器学习中的分类任务殊途同归,都是要根据已知的数据特征获得最佳的分类方法.对于一个有多个特征的数据,我们需要知道根据哪些 ...

  4. R语言CART决策树、随机森林、chaid树预测母婴电商平台用户寿命、流失可视化

    全文链接:http://tecdat.cn/?p=31644 借着二胎政策的开放与家庭消费升级的东风,母婴市场迎来了生机盎然的春天,尤其是母婴电商行业,近年来发展迅猛(点击文末"阅读原文&q ...

  5. 数据分享|R语言用主成分PCA、 逻辑回归、决策树、随机森林分析心脏病数据并高维可视化...

    全文链接:http://tecdat.cn/?p=22262 在讨论分类时,我们经常分析二维数据(一个自变量,一个因变量)(点击文末"阅读原文"获取完整代码数据). 但在实际生活中 ...

  6. 使用决策树和随机森林分析预测糖尿病

    使用决策树与随机森林预测糖尿病 数据源: https://www.kaggle.com/uciml/pima-indians-diabetes-database#diabetes.csv 目的:生成决 ...

  7. 数据分享|Python决策树、随机森林、朴素贝叶斯、KNN(K-最近邻居)分类分析银行拉新活动挖掘潜在贷款客户...

    原文链接:http://tecdat.cn/?p=23518 项目背景:银行的主要盈利业务靠的是贷款,这些客户中的大多数是存款大小不等的责任客户(存款人).银行拥有不断增长的客户(点击文末" ...

  8. python决策树 value_直播案例 | 决策树、随机森林和 AdaBoost 的 Python 实现

    获取案例链接.直播课件.数据集在本公众号内发送"机器学习". 本案例使用 Python 逐步实现了三种基于树的模型:分类回归决策树(CART).随机森林和 AdaBoost .在实 ...

  9. Python进行决策树和随机森林

    Python进行决策树和随机森林 一.决策树 第一步,导入库: 第二步,导入数据: 第三步,数据预处理: 第四步,决策树: 第五步,决策树评价: 第六步,生成决策树图. 二.随机森林 第一步,随机森林 ...

最新文章

  1. webform(七)分页
  2. C#网页数据采集(二)WebBrowser
  3. java Socket Tcp 浏览器和服务器(一)
  4. 03:Poor Herobrine 直接插入排序
  5. Fedora 32发布时间表(Fedora 32 Schedule)
  6. golang日期时间格式format()
  7. xml json 比较_JSON和XML:它们如何比较?
  8. c语言中状态机的作用,C语言中的状态机
  9. subgradients
  10. 活动目录实战之六 使用ADMT 3.2迁移用户和计算机
  11. Hdfview安装教程ubuntu
  12. 加码游戏直播 快手已成腾讯防御今日头条的重要棋子?
  13. 两台计算机如何打印机共享打印机,两台计算机如何共享一个打印机?
  14. Python的学习笔记案例4--52周存钱挑战1.0
  15. nRF52832 ble_app_blinky 例程
  16. 关于/etc/hosts文件
  17. NVIDIA NCCL 源码学习(二)- bootstrap网络连接的建立
  18. 计算机专业选什么笔记本cpu,笔记本电脑什么配置好?来看看这款硬核办公本
  19. 微信网页audio标签无法正常播放音频
  20. android onCreate与onCreateView的区别

热门文章

  1. C# .Net 使用多个Dbcontext
  2. Python制作基础学生信息管理系统
  3. 惩罚因子(penalty term)与损失函数(loss function)
  4. szshunjia储存不干胶标签的心得简述分享
  5. 1.20e 的maphack
  6. WIN7下网络共享设置
  7. ERROR: Cannot uninstall 'PyYAML'. It is a distutils installed project and thus we cannot accurately
  8. 关于Idea合并不同分支代码你怎么看
  9. idea debug图解
  10. 小程序请求后端接口步骤