R e1071:平衡误码率(BER)作为调谐函数中的误差准则



我对R和机器学习有点陌生,所以如果这看起来很愚蠢,我很抱歉!

我正在使用e1071软件包来调整各种型号的参数。我的数据集非常不平衡,我希望错误标准是平衡错误率。。。非整体分类错误。然而,我对如何做到这一点感到困惑。

这是我的代码:

#Find optimal value 'k' value for k-NN model (feature subset).
c <- data_train_sub[1:13]
d <- data_train_sub[,14]
knn2 <- tune.knn(c, d, k = 1:10, tunecontrol = tune.control(sampling = "cross", performances = TRUE, sampling.aggregate = mean)
)
summary(knn2)
plot(knn2)

返回这个:

Parameter tuning of ‘knn.wrapper’:
- sampling method: 10-fold cross validation 
- best parameters:
 k
 1
- best performance: 0.001190476 
- Detailed performance results:
    k       error  dispersion
1   1 0.001190476 0.003764616
2   2 0.005952381 0.006274360
3   3 0.003557423 0.005728122
4   4 0.005924370 0.008352124
5   5 0.005938375 0.008407043
6   6 0.005938375 0.008407043
7   7 0.007128852 0.008315090
8   8 0.009495798 0.009343555
9   9 0.008305322 0.009751997
10 10 0.008319328 0.009795292

是否有人有更改此功能中评估的错误的经验?

查看svm()函数的class.weights参数:

不同类的命名权重向量,用于不对称类大小。。。

系数可以很容易地计算如下:

class.weights = table(Xcal$species)/sum(table(Xcal$species))

最新更新