关于算法:python在Scikitlearn中用决策树和随机森林预测NBA获胜者

41次阅读

共计 1749 个字符,预计需要花费 5 分钟才能阅读完成。

原文链接: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 的获胜者。

无论是来访者还是客队都博得了最初一场较量。

哪个队更好?

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,那么客队输的概率更高。

如有任何问题、意见,请留言征询 


最受欢迎的见解

1. 从决策树模型看员工为什么到职

2.R 语言基于树的办法:决策树,随机森林

3.python 中应用 scikit-learn 和 pandas 决策树

4. 机器学习:在 SAS 中运行随机森林数据分析报告

5.R 语言用随机森林和文本开掘进步航空公司客户满意度

6. 机器学习助推快时尚精准销售工夫序列

7. 用机器学习辨认一直变动的股市情况——隐马尔可夫模型的利用

8.python 机器学习:举荐零碎实现(以矩阵合成来协同过滤)

9.python 中用 pytorch 机器学习分类预测银行客户散失

正文完
 0