如何使用 R 的遗传算法优化 CART 的参数
How to optimize parameters of CART by using the genetic algorithm with R
为了训练支持向量机,我们必须确定各种参数。
比如有cp、minsplit等参数
我现在正在使用交叉验证来查找这些参数,我得到了 cp=0.02。
下面是代码:
library(caTools)
set.seed(3000)
spl = sample.split(dat$Incident.Category, SplitRatio = 0.8)
Train = subset(dat, spl==TRUE)
Test = subset(dat, spl==FALSE)
library(caret)
library(e1071)
# Define cross-validation experiment
numFolds = trainControl( method = "cv", number = 10 )
cpGrid = expand.grid( .cp = seq(0.01,0.5,0.01))
train(Incident.Category ~ Working.Condition + Observation.Type +Injury.Potential.Score + Equipment.Damage.Score + Safety.Standards + Incident.Type, data = Train, method = "rpart", trControl = numFolds, tuneGrid = cpGrid )
CartMOdel = rpart(Incident.Category ~ Working.Condition + Observation.Type + Injury.Potential.Score+ Equipment.Damage.Score + Safety.Standards + Incident.Type,data = Train, method="class", cp = 0.02)
现在我想知道如何使用GA来优化这些参数。
我的数据是分类的,所以我也很困惑如何选择适应度函数。
只有一个参数。使用遗传算法没有意义。
相反,网格搜索是合适的。
为了训练支持向量机,我们必须确定各种参数。
比如有cp、minsplit等参数
我现在正在使用交叉验证来查找这些参数,我得到了 cp=0.02。
下面是代码:
library(caTools)
set.seed(3000)
spl = sample.split(dat$Incident.Category, SplitRatio = 0.8)
Train = subset(dat, spl==TRUE)
Test = subset(dat, spl==FALSE)
library(caret)
library(e1071)
# Define cross-validation experiment
numFolds = trainControl( method = "cv", number = 10 )
cpGrid = expand.grid( .cp = seq(0.01,0.5,0.01))
train(Incident.Category ~ Working.Condition + Observation.Type +Injury.Potential.Score + Equipment.Damage.Score + Safety.Standards + Incident.Type, data = Train, method = "rpart", trControl = numFolds, tuneGrid = cpGrid )
CartMOdel = rpart(Incident.Category ~ Working.Condition + Observation.Type + Injury.Potential.Score+ Equipment.Damage.Score + Safety.Standards + Incident.Type,data = Train, method="class", cp = 0.02)
现在我想知道如何使用GA来优化这些参数。 我的数据是分类的,所以我也很困惑如何选择适应度函数。
只有一个参数。使用遗传算法没有意义。
相反,网格搜索是合适的。