R语言-决策树算法(C4.5和CART)的实现
来源:互联网 发布:打电话的软件 编辑:程序博客网 时间:2024/05/22 15:17
决策树算法的实现:
一、C4.5算法的实现
a、需要的包:sampling、party
library(sampling)library(party)
sampling用于实现数据分层随机抽样,构造训练集和测试集。
party用于实现决策树算法
另外,还可以设置随机数种子,可以获得相同的随机数。方便数据重复检验。
#设置随机数种子,可以获得相同的随机数set.seed(100)
我们使用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。
二、CART算法的实现
添加以来的包
library(xts)library(TTR)library(quantmod)library(ROCR)library(DMwR)可用于查看连续变量的相关性
#查看所有连续变量的相关性,所有分类变量的卡方值#连续变量idx.num=which(sapply(algae,is.numeric))idx.numcorrelation=cor(algae$a1,algae[,idx.num],use = "pairwise.complete.obs")correlationcorrelation=abs(correlation)correlation=correlation[,order(correlation,decreasing = T)]correlation分类变量的卡方值
# 所有分类变量的卡方值idx.factor=which((sapply(algae, is.factor)))idx.factorclass(idx.factor)algae[,idx.factor]t1=table(algae$season,algae$size)t1chisq.test(t1)
0 1
- R语言-决策树算法(C4.5和CART)的实现
- R语言之决策树CART、C4.5算法
- 三个有名的决策树算法:CHAID、CART和C4.5
- 经典决策树算法:ID3、C4.5和CART
- 【机器学习】分类算法:决策树(ID3、C4.5、CART)
- 决策树算法ID3,C4.5, CART
- 决策树分类算法:ID3 & C4.5 & CART
- 基于决策树系列算法(ID3, C4.5, CART, Random Forest, GBDT)的分类和回归探讨
- 决策树(ID3 C4.5 CART)
- 决策树(ID3,C4.5,CART)
- 基于R语言的分类算法之CART决策树
- 决策树ID3;C4.5详解和python实现与R语言实现比较
- C4.5决策树算法(Python实现)
- 决策树:ID3\C4.5\Cart
- 决策树、ID3、C4.5以及CART算法小结
- 《机器学习实战》基于信息论的三种决策树算法(ID3,C4.5,CART)
- Python实现决策树算法 C4.5和ID3算法
- 决策树系列算法总结(ID3, C4.5, CART, Random Forest, GBDT)
- Android
- iOS CAShapeLayer & UIBezierPath画线、画图
- javascript里面的数组,json对象,动态添加,修改,删除示例
- JavaWeb 入门级项目实战
- 如何批量修改文件名
- R语言-决策树算法(C4.5和CART)的实现
- JavaScript Tips
- 关于svn的安装部署
- web上种图片应用的优缺点
- BZOJ4663: Hack
- Angular跳坑之旅——入门
- 矩阵连乘
- 注册页面需要的js代码
- Win平台安装Docker