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

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

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