R e1071:平衡误差率(BER)作为调谐功能的误差标准

时间:2014-08-26 23:58:27

标签: r parameters machine-learning classification knn

我对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

有没有人有改变此功能评估错误的经验?

1 个答案:

答案 0 :(得分:0)

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

<块引用>

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

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

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