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  #训练集准确率

相关