C4.5算法

C4.5算法的R语言实现

#步骤1 数据集准备

library(sampling) #用于实现数据分层抽样

library(party)  #用于实现决策树算法

set.seed(100) #设置随机种子

head(iris)

str(iris)

dim(iris)

class(iris)

n=round(7/10*nrow(iris)/3) #计算每个种类的抽样数目,按照每种“Species”抽取7/10个样本进行抽样

sub_train=strata(iris,stratanames="Species",size=rep(n,3),method="srswor")

data_train=iris[sub_train$ID_unit,] #构造训练集

data_test=iris[-sub_train$ID_unit,] #构造测试集

dim(data_train)

 

dim(data_test)

 

#步骤2 建立模型

iris_tree=ctree(Species~.,data=data_train)

 

#步骤3 结果显示

plot(iris_tree)

 

plot(iris_tree,type="simple")

 

#步骤4 训练集和测试集的预测结果显示

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)

correct  #测试集准确率

 

table(predict(iris_tree),data_train$Species)  #训练集混淆矩阵

 

correct=sum(as.numeric(predict(iris_tree))==as.numeric(data_train$Species))/nrow(data_train)

correct  #训练集准确率

 

posted @ 2022-03-10 16:02  zhang-X  阅读(155)  评论(0)    收藏  举报