决策树
首先区分树模型和线性模型的区别:
线性模型:
- 对所有特征给予权重相加得到一个新的值
(例:逻辑回归通过大于某一概率阈值的划分为一类,小于某一概率阈值的为另一类) - 逻辑回归只能找到线性的分割
(输入特征x与logit之间是线性的,除非对x进行多维映射)
树型模型: - 决策树对每一个特征做一个划分
- 决策树可以找到非线性分割
- 树模型拟合出来的函数是分区间的阶梯函数,可以产生可视化的分类规则
决策树原理:
采用自顶向下的递归的方法,基本思想是以信息熵为度量构造一棵熵值下降最快的树,到叶子节点处熵值为0(叶节点中的实例都属于一类)
决策树的使用的例子是 :
预测电子邮件是垃圾邮件或非垃圾邮件,预测肿瘤癌变,或者基于这些因素预测贷款的信用风险。
R----决策树应用:
关于R包
“party”包具有用于创建和分析决策树的函数ctree()。
install.packages("party")
ctree()函数:
ctree(formula, data)
- formula是描述预测变量(自变量x)和响应变量(因变量y)的公式。
- data是所使用的数据集的名称。
举个栗子:
我们将使用名为readingSkills的R内置数据集来创建决策树。
输入:
# Load the party package. It will automatically load other dependent packages.
library(party)
# Print some records from data set readingSkills.
print(head(readingSkills))
输出:
nativeSpeaker age shoeSize score