我对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
有没有人有改变此功能评估错误的经验?
答案 0 :(得分:0)
查看 class.weights
函数的 svm()
参数:
不同类别权重的命名向量,用于不对称的类别大小...
系数可以很容易地计算如下:
class.weights = table(Xcal$species)/sum(table(Xcal$species))