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