美文网首页郭志敏的程序员书屋机器学习
Python机器学习算法之二元决策树

Python机器学习算法之二元决策树

作者: 54b59ee78c42 | 来源:发表于2017-03-09 10:46 被阅读587次

二元决策树就是基于属性做一系列的二元(是/否)决策。每次决策对应于从两种可能性中选择一个。每次决策后,要么引出另外一个决策,要么生成最终的结果。一个实际训练决策树的例子有助于加强对这个概念的理解。了解了训练后的决策树是什么样的,就学会了决策树的训练过程。

代码清单6-1为使用Scikitlearn的DecisionTreeRegressor工具包针对红酒口感数据构建二元决策树的代码。图6-1为代码清单6-1生成的决策树。

代码清单6-1 构建一个决策树预测红酒口感-winTree.py

__author__ = 'mike-bowles'

import urllib2
import numpy
from sklearn import tree
from sklearn.tree import DecisionTreeRegressor
from sklearn.externals.six import StringIO
from math import sqrt
import matplotlib.pyplot as plot

#read data into iterable
target_url = ("http://archive.ics.uci.edu/ml/machine-learning-"
"databases/wine-quality/winequality-red.csv")
data = urllib2.urlopen(target_url)

xList = []
labels = []
names = []
firstLine = True
for line in data:
    if firstLine:
        names = line.strip().split(";")
        firstLine = False
    else:
        #split on semi-colon
        row = line.strip().split(";")
        #put labels in separate array
        labels.append(float(row[-1]))
        #remove label from row
        row.pop()
        #convert row to floats
        floatRow = [float(num) for num in row]
        xList.append(floatRow)

nrows = len(xList)
ncols = len(xList[0])

wineTree = DecisionTreeRegressor(max_depth=3)

wineTree.fit(xList, labels)

with open("wineTree.dot", 'w') as f:
    f = tree.export_graphviz(wineTree, out_file=f)
#Note: The code above exports the trained tree info to a
#Graphviz "dot" file.
#Drawing the graph requires installing GraphViz and the running the
#following on the command line
#dot -Tpng wineTree.dot -o wineTree.png
# In Windows, you can also open the .dot file in the GraphViz
#gui (GVedit.exe)]

图6-1为针对红酒数据的训练结果,即一系列的决策。决策树框图显示了一系列的方框,这些方框称作节点(nodes)。有两类节点,一种针对问题输出“是”或者“否”,另外一种是终止节点,输出针对样本的预测结果,并终止整个决策的过程。终止节点也叫作叶子节点(leaf)。在图6-1中,终止节点处在框图底部,它们下面没有分支或者进一步的决策节点。

《Python机器学习:预测分析核心算法》

作者简介

Michael Bowles拥有机械工程学士和硕士学位、仪器仪表博士学位以及MBA学位。他的履历涉及学术界、工业界以及商业界。他目前在一家初创公司工作,其中机器学习技术至关重要。他是多个管理团队的成员、咨询师以及顾问。他也曾经在加州山景城的黑客道场、创业公司孵化器和办公场所教授机器学习课程。

他出生于俄克拉荷马州并在那里获得学士和硕士学位。在东南亚待了一段时间后,他前往剑桥攻读博士学位,毕业后任职于MIT的Charles Stark Draper实验室。之后他离开波士顿前往南加州的休斯飞机公司开发通信卫星。在UCLA获得MBA学位后,他前往旧金山的湾区工作。作为创始人以及CEO,他目前经营两家公司,这两家公司都已获风险投资。

内容提要

本书遵循了着手解决一个预测问题的基本流程。开始阶段包括对数据的理解、如何形式化表示问题,然后开始尝试使用算法解决问题,评估其性能。

在这个过程中,本书将概要描述每一步采用的方法及其原因。第1章给出本书涵盖的问题和所用方法的完整描述,本书使用来自UC Irvine数据仓库的数据集作为例子;第2章展示了一些数据分析的方法和工具,帮助读者对新数据集具有一定的洞察力。第3章“预测模型的构建:平衡性能、复杂性以及大数据”主要介绍由上述三者带给预测分析技术的困难以及所采用的技术,勾勒了问题复杂度、模型复杂度、数据规模和预测性能之间的关系,讨论了过拟合问题以及如何可靠地感知到过拟合,以及不同类型问题下的性能评价标准。第4章、第5章分别介绍惩罚线性回归的背景及其应用,即如何解决第2章所述的问题。第6章、第7章分别介绍集成方法的背景及其应用。

面向的读者群

本书主要面向想提高机器学习技能的Python开发人员,不管是针对某一特定的项目,还是只想提升相关技能。开发人员很可能在工作中遇到新问题需要使用机器学习的方法来解决。当今机器学习的应用领域如此之广,使其已成为简历中一项十分有用的技能。

本书为Python开发人员提供如下内容:

  • 机器学习所解决的基本问题的描述;

  • 当前几种最先进的算法;

  • 这些算法的应用原则;

  • 一个机器学习系统的选型、设计和评估的流程;

  • 流程、算法的示例;

  • 可进一步修改扩展的代码。

相关文章

  • Python学习——决策树中纯度算法的实现

    决策树 决策树算法是机器学习中的一个基础算法,该算法有着诸多的优点。在python中实现决策树,现阶段都已经集成中...

  • Python实现决策树的构建

    Python机器学习-决策树的构建 决策树(ID3算法) 开发环境为anaconda中的spyder,所有库已经默...

  • Python机器学习算法之二元决策树

    二元决策树就是基于属性做一系列的二元(是/否)决策。每次决策对应于从两种可能性中选择一个。每次决策后,要么引出另外...

  • 决策树

    转自微信公众号:机器学习算法与Python学习 决策树 决策树很重要的一点就是选择一个属性进行分支,因此要注意一下...

  • [机器学习]决策树

    决策树 @(技术博客)[机器学习, 决策树, python] 学习决策树首先要搞清楚决策树是什么(what),在弄...

  • 决策树算法

    决策树 决策树也是经常使用的数据挖掘算法,其不用了解机器学习的知识,就能搞明白决策树是如何工作的。 决策树算法能够...

  • 机器学习之决策树(Decision Tree)及其Python

    机器学习之决策树(Decision Tree)及其Python代码实现

  • 决策树算法及python实现

    决策树算法是机器学习中的经典算法 1.决策树(decision tree) 决策树是一种树形结构,其中每个内部节点...

  • Machine Learning in Action:Decis

    概述 决策树这个算法比较接地气,就算你根本不懂机器学习算法也可以很好的理解决策树,决策树之前的算法就已经解释过了。...

  • 机器学习之决策树

    决策树是机器学习最基础的算法之一,基于决策树可衍生出AdaBoostTree、随机森林、GBDT等高级算法。本文重...

网友评论

  • 跑不动的猪:猫叔,郭老师,我可是关注你好久了呢,你是离开了人邮吗,你最近怎么样呀,我好担心你呀~猫叔

本文标题:Python机器学习算法之二元决策树

本文链接:https://www.haomeiwen.com/subject/jsrwgttx.html