为了训练支持向量机,我们必须确定各种参数。
例如,有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)# 定义交叉验证实验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)
现在我想知道如何使用遗传算法来优化这些参数。我的数据是分类数据,所以我对如何选择适应度函数也感到困惑。
回答:
只有一个参数。使用遗传算法没有意义。
相反,网格搜索更合适。