R决策树实现

简介: R决策树实现

@TOC

1 加载包和数据集

#### random forest ############
install.packages('randomForest')
library(randomForest)   
data(iris)  
attach(iris)
table(iris$Species)
class=as.factor(iris$Species)

2 对数据集进行描述

######描述 ############
biplot(princomp(iris[,1:4], cor=TRUE))

在这里插入图片描述
根据相关性可以查看对数据集分类效果影响最重要的变量类型

3设置训练集和测试集

set.seed(100)   
ind=sample(2,nrow(iris),replace=TRUE,prob=c(0.75,0.25))  

#### 训练集、测试集########
train=iris[ind==1,]
test=iris[ind==2,]
####两种模型机制 ###############

4 随机森林建模

###### 1、模型#############
iris.rf1=randomForest(Species~.,train,ntree=50,nPerm=5,mtry=3,proximity=TRUE,importance=TRUE)   
print(iris.rf1) 

在这里插入图片描述

iris.pred1=predict( iris.rf1,iris[ind==2,] )   
table(observed=iris[ind==2,"Species"],predicted=iris.pred1 )  
iris.rf1$importance
iris.rf1$forest
iris.rf1$votes
iris.rf1$err.rate

在这里插入图片描述

5 随机森林调参

创造等差数列,循环创建随机森林观察误差最小的参数,选择误差最小的参数作为模型应用

m=seq(10,5000,by=50)
colMeans(iris.rf1$err.rate)
err=NULL
for (i in 1:length(m)) {
iris.rf1=randomForest(Species~.,train,ntree=m[i],nPerm=5,mtry=3,proximity=TRUE,importance=TRUE) 
  err[i]=colMeans(iris.rf1$err.rate)
}

画图观察误差,使用which可以判断误差在数列中的位置,查找到最小误差值

err
plot(m,err,type="l")
plot(m,err,type="h")
which(err==min(err))
which.min(err)
m[which.min(err)]

6 重要性观察

######2、数据集 ############
RF2 <- randomForest(train[,-5], train[,5],prox=TRUE, importance=TRUE)
imp <- importance(RF2)
impvar <- imp[order(imp[,3], decreasing=TRUE),];impvar
varImpPlot(RF2)

在这里插入图片描述

# 一些重要参数说明
# randomForest()对训练集的数据进行处理,生成决策树
# iris.rf=randomForest(Species~.,iris[ind==1,],ntree=50,nPerm=10,mtry=3,proximity=TRUE,importance=TRUE)
# Species~.:代表需要预测的列,species是列的名称。
# iris[ind==1,]:生成决策树的训练集
# ntree:生成决策树的数目
# nperm:计算importance时的重复次数
# mtry:选择的分裂属性的个数
# proximity=TRUE:表示生成临近矩阵
# importance=TRUE:输出分裂属性的重要性
# predict()
# iris.pred=predict( iris.rf,iris[ind==2,] )
# iris.rf:表示生成的随机森林模型
# iris[ind==2,] :进行预测的测试
目录
相关文章
|
25天前
|
机器学习/深度学习 算法 前端开发
决策树与随机森林算法在分类问题中的应用
本文探讨了决策树和随机森林两种监督学习算法,它们在分类任务中表现出强大的解释性和预测能力。决策树通过特征测试进行分类,构建涉及特征选择、树生成和剪枝。随机森林是集成学习方法,通过构建多棵决策树并汇总预测结果,防止过拟合。文中提供了Python代码示例,展示如何使用sklearn构建和应用这些模型,并讨论了参数调优和模型评估方法,如交叉验证和混淆矩阵。最后,强调了在实际问题中灵活选择和调整模型参数的重要性。
46 4
|
8月前
|
机器学习/深度学习 存储
随机森林是什么?
随机森林(Random Forest)是将多个决策树(Decision Tree)组合在一起形成一个强大的分类器或回归器,是一种集成学习(Ensemble Learning)方法。 随机森林的主要思想是通过随机选择样本和特征来构建多个决策树,并通过集成这些决策树的预测结果来达到更准确的分类或回归结果。具体步骤如下:
|
2月前
|
机器学习/深度学习 数据采集 并行计算
决策树
分类决策树
19 0
|
2月前
|
机器学习/深度学习 数据采集 算法
实现机器学习算法(如:决策树、随机森林等)。
实现机器学习算法(如:决策树、随机森林等)。
30 0
|
2月前
|
机器学习/深度学习 算法 数据库
决策树与随机森林算法
决策树和随机森林都是用于分类和回归的的算法。决策树的原理是通过一系列的问题进行if、else的推导。随机森林是集合学习算法,即把很多的机器学习算法综合在一起组成一个更大的模型。
|
机器学习/深度学习 人工智能 算法
连载|决策树(下)
连载|决策树(下)
|
机器学习/深度学习
随机森林(1)
随机森林(1)
|
机器学习/深度学习 算法
【算法系列】决策树
【算法系列】决策树
【算法系列】决策树

相关实验场景

更多