trainControl 函数产生参数是要控制用可能的值去创建模型:
method :重抽样方法:"boot" ,"cv" ,"LOOCV" ,"LGOCV" ,"repeatedcv" ,"timeslice" ,"none" 和"oob" 。最后一个出代估计(oob)只能应用于随机森林,袋装树,bagged earth,bagged flexible discriminant analysis或条件树森林模型。这并不包括GBM模型(gbm包作者指出,依照袋装树的OOB模型估计来选择调参并不是一个好主意)。对于留一法交叉验证,重抽样的性能度量并不能得到保证。
number和repeats :number 控制K折交叉验证的数目或者自助法和留组交叉验证的抽样迭代次数。假设method = "repeatedcv",number = 10和repeates = 3 ,3个分开的10折交叉验证作为重抽样的方案。
verboseIter :输出训练日志的逻辑变量。
returnData :逻辑变量,把数据保存到称作trainingData 的一个节点。
p :应用于LGOCV方法:训练比例。
对于method = "timeslice" ,trainControl 拥有参数initialWindow,horizon和fixedWindow 来控制交叉验证是怎样应用于时间序列数据的。 classProbs :逻辑变量,决定是否计算类别概率。
index和indexOut :每一次从抽样元素列表。每一个列表元素是用于迭代训练的样本行。当这些值没有设定时,train 函数会产生它们。
summaryFunction :用于计算备用性能的函数。
selectionFunction :选择最佳参数的函数。
PCAthresh :ICAcomp和k :这些选项传递到preProcss 函数中去。
returnResamp :包含一下值的字符串:"all","final","none" 。它们设定有多少抽样性能度量被保存。
allowParallel :逻辑变量,是否允许train 函数使用并行处理(如果可能的话)。 还有其它选项在这没有讨论。
5.5.5 Alternate Performance Metrics用户可以改变决定最佳设置的度量。默认的,回归使用RMSE和R2,而分类使用准确率和Kappa统计量。回归和分类分别使用准确率和Kappa统计量选择参数值。train 函数的metric 参数允许用户选择哪种最优准则。例如,对于不平衡类的问题,用metric = "Kappa" 来提高最中模型性能。 如果这些参数不理想,用户可以自定义性能度量。trainControl 函数中有summaryFunction 参数来设定计算性能的函数。这个函数应该有一下参数: * data :数据框或矩阵的参考表,列包含观测值obs 和预测结果pred 。现在,类概率没法传递到这个函数中去。数据中是调参组合的预测值。如果trainControl 函数中的classProbs 参数设定为TRUE ,在data 中就会加入一列包含类概率的值。这些列名与类水平一样。另外,如果train 函数中设定了weights ,那么在数据集中就会再加一列weights 的值。 * lev :是一个字符串,它有训练集中的输出因子水平。对于回归来说,NULL 值会传递到这额函数。 * model :应用模型的字符串,(例如传递到train 函数的参数method 中去的值)。 函数的输出应该是一个没有空名的数值度量向量。默认为,train 函数从预测类的及角度评估分类模型。另外,类概率也能用于性能测量。为了获得重抽样中预测的类概率,trainControl 函数中的参数classProbs 必须设定为TRUE 。这会将概率值加入到每次抽样产生的预测中去。 在最后一节展示出,自定义函数能用于计算性能的平均得分。另一个内置函数twoClassFunction 将会计算敏感度,特异性和ROC曲线下的面积。
|