# -*- coding: utf-8 -*-
"""
Created on Sun Sep 23 16:15:30 2018
@author: asus
"""
#3 用决策树预测获胜球队
#3.1.2 用pandas加载数据集
import pandas as pd
dataset = pd.read_csv("NBA.csv")
dataset.ix[:5]
dataset[dataset.duplicated()] #检查重复元素
#3.1.3 数据集清洗
#日期是字符串格式,而不是日期对象
#第一行没有数据
#从视觉上检查结果,发现表头不完整或不正确
dataset = pd.read_csv("NBA.csv", parse_dates=["Date"]) #参数skiprows=[0,],表示
#数据从除去标题的第一行开始读取
dataset.columns = ["Date", "Score Type", "Visitor Team", "VisitorPts",
"Home Team", "HomePts", "OT?", "Notes"]
dataset.ix[:5]
print(dataset[dataset.duplicated()])
#每场比赛有两个队:主场队和客场队。最直接的方法就是拿几率作为基准,猜中的几率为50%。
#猜测任意一支球队获胜,都有一半胜算。
#3.1.4 提取新特征
#确定类别值,用1表示主场获胜,用0表示客场获胜。对于篮球比赛而言,得分最多的获胜。
dataset["HomeWin"] = dataset["VisitorPts"] < dataset["HomePts"]
y_ture = dataset["HomeWin"].values
#y_true数组保存的是类别数据,scikit-learn可直接读取
#首先,创建两个能帮助我们进行预测的特征,分别是这两支队伍上场比赛的胜负情况。赢得上场
#比赛,大致可以说明该球队的水平较高。
#遍历每一行数据,记录获胜球队。当到达一行新数据时,分别查看该行数据中两支球队在各自的
#上一场比赛中有没有获胜。
from collections import defaultdict
won_last = defaultdict(int) #作用为查询字典中没有的key时,返回一个默认值,如0
#字典的键为球队,值为是否赢得上一场比赛。
dataset['HomeLastWin'] = None #此两行书上没有,应增加改两行,否则下面的循环不能
dataset['VisitorLastWin'] = None #创建这两列
for index, row in dataset.iterrows():
home_team = row["Home Team"]
visitor_team = row["Visitor Team"]
3. 用决策树预测获胜球队
最新推荐文章于 2024-05-12 19:02:39 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)