原文链接: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 机器学习分类预测银行客户散失