- 大数据分析教程
- 大数据分析 - 首页
- 大数据分析 - 概述
- 大数据分析 - 特征
- 大数据分析 - 数据生命周期
- 大数据分析 - 架构
- 大数据分析 - 方法论
- 大数据分析 - 核心交付成果
- 大数据采用与规划考虑因素
- 大数据分析 - 关键利益相关者
- 大数据分析 - 数据分析师
- 大数据分析 - 数据科学家
- 大数据分析有用资源
- 大数据分析 - 快速指南
- 大数据分析 - 资源
- 大数据分析 - 讨论
大数据分析 - 决策树
决策树是一种用于监督学习问题的算法,例如分类或回归。决策树或分类树是一棵树,其中每个内部(非叶子)节点都用一个输入特征标记。来自用特征标记的节点的弧线用该特征的每个可能值标记。树的每个叶子都用一个类或一个类上的概率分布标记。
可以通过基于属性值测试将源集拆分为子集来“学习”树。此过程以递归方式重复应用于每个派生子集,称为**递归分区**。当节点处的子集的目标变量值都相同时,或者拆分不再增加预测值时,递归完成。这种自上而下归纳决策树的过程是贪婪算法的一个例子,也是学习决策树最常用的策略。
数据挖掘中使用的决策树主要有两种类型:
**分类树** - 当响应为名义变量时,例如电子邮件是否为垃圾邮件。
**回归树** - 当预测结果可以被视为实数时(例如,工人的工资)。
决策树是一种简单的方法,因此存在一些问题。其中一个问题是决策树产生的结果模型方差很大。为了缓解这个问题,开发了决策树的集成方法。目前广泛使用两种集成方法:
**装袋决策树** - 这些树用于通过重复替换训练数据进行重新采样并对树进行投票以达成共识预测来构建多个决策树。该算法被称为随机森林。
**提升决策树** - 梯度提升将弱学习器组合起来;在这种情况下,决策树以迭代方式组合成一个强大的学习器。它将一个弱树拟合到数据中,并迭代地继续拟合弱学习器以纠正先前模型的错误。
# Install the party package
# install.packages('party')
library(party)
library(ggplot2)
head(diamonds)
# We will predict the cut of diamonds using the features available in the
diamonds dataset.
ct = ctree(cut ~ ., data = diamonds)
# plot(ct, main="Conditional Inference Tree")
# Example output
# Response: cut
# Inputs: carat, color, clarity, depth, table, price, x, y, z
# Number of observations: 53940
#
# 1) table <= 57; criterion = 1, statistic = 10131.878
# 2) depth <= 63; criterion = 1, statistic = 8377.279
# 3) table <= 56.4; criterion = 1, statistic = 226.423
# 4) z <= 2.64; criterion = 1, statistic = 70.393
# 5) clarity <= VS1; criterion = 0.989, statistic = 10.48
# 6) color <= E; criterion = 0.997, statistic = 12.829
# 7)* weights = 82
# 6) color > E
#Table of prediction errors
table(predict(ct), diamonds$cut)
# Fair Good Very Good Premium Ideal
# Fair 1388 171 17 0 14
# Good 102 2912 499 26 27
# Very Good 54 998 3334 249 355
# Premium 44 711 5054 11915 1167
# Ideal 22 114 3178 1601 19988
# Estimated class probabilities
probs = predict(ct, newdata = diamonds, type = "prob")
probs = do.call(rbind, probs)
head(probs)
广告