R: 调整SVM参数 – {e1071}包中的class.weights

我想使用{e1071}包训练一个SVM分类器。我意识到class.weight是我想要调整的参数之一。例如,我想测试两种类别权重c(25, 50)与c(20, 55)。我想知道内置的tune函数是否能完成这项工作,如果可以,如何操作?

这是我的训练数据:

training.data  =   height0 height1 height2 weight0 weight1 gender class1     0      1       0       1       0      1       12     0      1       0       0       1      0       13     0      1       0       0       0      1       14     1      0       0       1       0      0       15     0      1       0       0       1      0       26     0      1       0       0       1      0       2

响应变量’class’有两个层次

training.data$class = [1] 1 1 1 1 2 2Levels: 1 2

我想使用类似这样的函数,

param.obj <- tune(svm, class ~., data = training.data,     ranges = list("1" = c(25, 20), "2" = c(50,55) ),    tunecontrol = tune.control(sampling = "cross", cross = 5) )

但我认为这不是正确的方法,因为如果我将”2″改为”3″,它仍然有效。

param.obj <- tune(svm, class ~., data = training.data,     ranges = list("1" = c(25, 20), "3" = c(50,55) ),    tunecontrol = tune.control(sampling = "cross", cross = 5) )

这不会给我报错。我在网上搜索了一番,但似乎找不到正确的方法…任何帮助都将不胜感激!


回答:

ranges列表是一个命名参数列表,你想要调整的参数是class.weights。我认为你的tune函数中的ranges行应该是这样的:

ranges=list (class.weights=list(c("1"=25, "2"=20), c("1"=50, "2"=55))

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注