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