2014-09-08 3 views
0

У меня есть кадр данных, загружаемой в R.Использование LibSVM в R

Я еще новичок с R.

Я установил пакет e1071 для использования функции SVM.

Однако я не уверен, какие параметры являются сопоставлением. Я хотел бы иметь модель с параметрами, как в weka. enter image description here

Я не понимаю пример svm e1071, так как пример не работает.

svm(x, y = NULL, scale = TRUE, type = NULL, kernel = 
+ "radial", degree = 3, gamma = if (is.vector(x)) 1 else 1/ncol(x), 
+ coef0 = 0, cost = 1, nu = 0.5, 
+ class.weights = NULL, cachesize = 40, tolerance = 0.001, epsilon = 0.1, 
+ shrinking = TRUE, cross = 0, probability = FALSE, fitted = TRUE, 
+ ..., subset, na.action = na.omit) 
Error: '...' used in an incorrect context 

я в настоящее время этот код

x <- read.arff("contact-lenses.arff") 

где я загружен мой ARFF в кадр данных х.

Однако я не уверен в том, как продолжать использовать те же параметры, что и в WEKA для построения модели, как и в R.

Любая помощь, оказываемая очень ценится.

Это то, что я пробовал.

model <- svm(x, y = NULL, scale = TRUE, type = "C-classification", kernel = "linear") 
Error in if (any(co)) { : missing value where TRUE/FALSE needed 
In addition: Warning messages: 
1: In FUN(newX[, i], ...) : NAs introduced by coercion 
2: In FUN(newX[, i], ...) : NAs introduced by coercion 
3: In FUN(newX[, i], ...) : NAs introduced by coercion 
4: In FUN(newX[, i], ...) : NAs introduced by coercion 
5: In FUN(newX[, i], ...) : NAs introduced by coercion 

Чтобы быть честным, я не уверен в некоторых параметрах, например, о том, что это означает: y = NULL. Я буквально нажимаю на случайный воздух, пытаясь заставить его работать.

я решил его, используя ответ ниже

model <- svm(`contact-lenses` ~ . , data = x, type = "C-classification", kernel = "linear") 
+0

Вы видели примеры в нижней части документации svm()? – xgdgsc

ответ

2

ошибка вы получаете, потому что y = NULL означает, что вы на самом деле не предоставляя никаких ярлыков, чтобы узнать.

Попробуйте следующее, при условии, что это тот же контакт-lenses.arff файл я нашел через Google:

model <- svm(`contact-lenses` ~ . , data = x, type = "C-classification", kernel = "linear") 

Первый параметр, "` контакт-lenses` ~.", Формула, и означает, что вы будете прогнозировать статус контактных линз в сравнении с другими функциями. Обратные обрамления вокруг имени функции необходимы, потому что функция неудобно имеет в ней дефис, который иначе интерпретируется как вычитание. Параметр data = x означает, что вы будете использовать x в качестве базового фрейма данных для разрешения имен функций.

+0

Значит, форумла будет означать, что это классная метка? – aceminer

+1

Вещь перед '~' - это метка класса, а вещь после - это функции/столбцы в кадре данных, которые вы используете для составления прогноза; '.' представляет все, кроме функции слева. – bskaggs