Python 决策树预测 分类算法

准备工作:
安装pandas

pip3 install pandas

数据加载和清洗

import os
import numpy as np
import pandas as pd
home_folder = os.path.expanduser("~")#os.path.expanduser(path) 把path中包含的"~"和"~user"转换成用户目录
data_folder = os.path.join(home_folder, "Data", "basketball")
data_filename = os.path.join(data_folder, "leagues_NBA_2014_games_games.csv")#数据文件名
results = pd.read_csv(data_filename)#加载数据集
results.ix[:5]#输出前5行,ix索引数据

这里写图片描述

#results = pd.read_csv(data_filename, parse_dates=["Date"], skiprows=[0,])#parse_dates解析“Date”的值为日期; skiprows需要跳过的行号列表(从0开始)
results = pd.read_csv(data_filename, parse_dates=["Date"])#当前文件第一行不为空,不需要跳过
results.columns = ["Date", "Start", "Visitor Team", "VisitorPts", "Home Team", "HomePts", "Score Type","OT?", "Notes"]#修改列名

results.ix[:5]

这里写图片描述

提取新特征

results["HomeWin"] = results["VisitorPts"] < results["HomePts"]#找出主场获胜的队伍
y_true = results["HomeWin"].values#保存为类别数据,方便scikit-learn后续分析
print("Home Win percentage:{0:.1f}%".format(100*results["HomeWin"].sum()/results["HomeWin"].count()))#count返回数据长度

results["HomeLastWin"] = False#创建新特征
results["VisitorLastWin"] = False#创建新特征

from collections import defaultdict
won_last = defaultdict(int)

for index, row in results.sort_values("Date").iterrows():#sort_values将results按时间顺序排序,获取每行的index、row
    home_team = row["Home Team"]
    visitor_team = row["Visitor Team"]
    row["HomeLastWin"] = won_last[home_team]
    row["VisitorLastWin"] = won_last[visitor_team]
    results.loc[index] = row#更新当前行数据    
    # Set current win
    won_last[home_team] = row["HomeWin"]
    won_last[visitor_team] = not row["HomeWin"]

results.ix[20:25]

这里写图片描述

决策树
scikit-learn库生成决策树的默认算法是分类回归树算法(Classification and Regression Trees, CART)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值