R语言-决策树算法(C4.5和CART)的实现
2017-04-27 09:53
239 查看
决策树算法的实现:
一、C4.5算法的实现
a、需要的包:sampling、party
library(sampling)
library(party)
sampling用于实现数据分层随机抽样,构造训练集和测试集。
party用于实现决策树算法
另外,还可以设置随机数种子,可以获得相同的随机数。方便数据重复检验。
#设置随机数种子,可以获得相同的随机数
set.seed(100)
b、数据准备
我们使用iris数据集作为算法使用的数据集,通过下列各方法可以查看数据集的各种指标。
head(iris)
str(iris)
dim(iris)然后构造训练集和测试集
sub_train = strata(iris,
stratanames = "Species",
size = rep(35, 3),
method = "srswor")
data_train = iris[sub_train$ID_unit, ]
data_test = iris[-sub_train$ID_unit, ]抽样方法是分层不放回抽样。
c、训练模型
iris_tree = ctree(Species ~ ., data = data_train)我们可以通过方法print()或者plot()查看模型:
#查看模型
print(iris_tree)
plot(iris_tree)
plot(iris_tree,type="simple")得到的结果如下:
d、用测试集检验模型
test_pre = predict(iris_tree,newdata = data_test)
table(test_pre,data_test$Species)
correct = sum(as.numeric(test_pre)==as.numeric(data_test$Species))/nrow(data_test)得到的结果如下图:
对测试集的判断准确率0.9333。
我们也可以看一下模型对训练集的判断准确率:
table(predict(iris_tree),data_train$Species)
correct = sum(as.numeric(predict(iris_tree))==as.numeric(data_train$Species))/nrow(data_train)得到结果:
准确率0.97143。
二、CAR
9b6b
T算法的实现
添加以来的包
library(xts)
library(TTR)
library(quantmod)
library(ROCR)
library(DMwR)可用于查看连续变量的相关性
#查看所有连续变量的相关性,所有分类变量的卡方值
#连续变量
idx.num=which(sapply(algae,is.numeric))
idx.num
correlation=cor(algae$a1,algae[,idx.num],use = "pairwise.complete.obs")
correlation
correlation=abs(correlation)
correlation=correlation[,order(correlation,decreasing = T)]
correlation分类变量的卡方值
# 所有分类变量的卡方值
idx.factor=which((sapply(algae, is.factor)))
idx.factor
class(idx.factor)
algae[,idx.factor]
t1=table(algae$season,algae$size)
t1
chisq.test(t1)
一、C4.5算法的实现
a、需要的包:sampling、party
library(sampling)
library(party)
sampling用于实现数据分层随机抽样,构造训练集和测试集。
party用于实现决策树算法
另外,还可以设置随机数种子,可以获得相同的随机数。方便数据重复检验。
#设置随机数种子,可以获得相同的随机数
set.seed(100)
b、数据准备
我们使用iris数据集作为算法使用的数据集,通过下列各方法可以查看数据集的各种指标。
head(iris)
str(iris)
dim(iris)然后构造训练集和测试集
sub_train = strata(iris,
stratanames = "Species",
size = rep(35, 3),
method = "srswor")
data_train = iris[sub_train$ID_unit, ]
data_test = iris[-sub_train$ID_unit, ]抽样方法是分层不放回抽样。
c、训练模型
iris_tree = ctree(Species ~ ., data = data_train)我们可以通过方法print()或者plot()查看模型:
#查看模型
print(iris_tree)
plot(iris_tree)
plot(iris_tree,type="simple")得到的结果如下:
d、用测试集检验模型
test_pre = predict(iris_tree,newdata = data_test)
table(test_pre,data_test$Species)
correct = sum(as.numeric(test_pre)==as.numeric(data_test$Species))/nrow(data_test)得到的结果如下图:
对测试集的判断准确率0.9333。
我们也可以看一下模型对训练集的判断准确率:
table(predict(iris_tree),data_train$Species)
correct = sum(as.numeric(predict(iris_tree))==as.numeric(data_train$Species))/nrow(data_train)得到结果:
准确率0.97143。
二、CAR
9b6b
T算法的实现
添加以来的包
library(xts)
library(TTR)
library(quantmod)
library(ROCR)
library(DMwR)可用于查看连续变量的相关性
#查看所有连续变量的相关性,所有分类变量的卡方值
#连续变量
idx.num=which(sapply(algae,is.numeric))
idx.num
correlation=cor(algae$a1,algae[,idx.num],use = "pairwise.complete.obs")
correlation
correlation=abs(correlation)
correlation=correlation[,order(correlation,decreasing = T)]
correlation分类变量的卡方值
# 所有分类变量的卡方值
idx.factor=which((sapply(algae, is.factor)))
idx.factor
class(idx.factor)
algae[,idx.factor]
t1=table(algae$season,algae$size)
t1
chisq.test(t1)
相关文章推荐
- 经典决策树算法:ID3、C4.5和CART
- C4.5决策树算法(Python实现)
- 机器学习算法的R语言实现(二):决策树算法
- python实现C4.5决策树算法
- 决策树算法ID3,C4.5, CART
- 决策树学习(下)——ID3、C4.5、CART深度剖析及源码实现
- 《机器学习实战》基于信息论的三种决策树算法(ID3,C4.5,CART)
- 【机器学习2】决策树算法之CART、C4.5
- Python实现决策树算法 C4.5和ID3算法
- 『原创』机器学习算法的R语言实现(二):决策树算法
- 决策树ID3;C4.5详解和python实现与R语言实现比较
- R语言实现决策树算法
- 分类-回归树模型(CART)在R语言中的实现
- 三个有名的决策树算法:CHAID、CART和C4.5
- R+openNLP︱openNLP的六大可实现功能及其在R语言中的应用
- 数据挖掘-CART,C4.5,ID3,决策树,朴素贝叶斯
- 机器学习经典算法——KNN算法R语言实现
- R语言实现固定分组汇总的方法
- 用GA算法设计22个地点之间最短旅程-R语言实现
- R语言实现电影评分推荐