我只是从R
开始机器学习。我的目标是愚蠢的,请原谅。我试图训练评论一个人的BMI是超重,体重不足还是健康。
到目前为止,这是我的代码:-
dataset <- data.frame(
BMI = c(15.5, 16.7, 17.8, 18.9, 19.0, 19.5, 20.7, 21.9,
22.5, 23.5, 24.5, 25.0, 26.0, 27.7, 26.6, 29.3),
Result = c("Underweight", "Underweight", "Underweight",
"Healthy", "Healthy", "Healthy", "Healthy",
"Healthy", "Healthy", "Healthy", "Healthy",
"Overweight", "Overweight", "Overweight",
"Overweight", "Overweight")
)
head(dataset)
x <- dataset[,-2]
y <- dataset[2]
model_svm <- svm(Result ~ ., data = dataset)
summary(model_svm)
pred <- predict(model_svm, x)
但是我在predict
的最后一行遇到此错误:-
eval(predvars,data,env)中的错误:找不到对象'BMI'
答案 0 :(得分:2)
子集数据集以创建x
(和y
)时,将隐式删除维,并且仅 保留列向量。换句话说,x
是 vector ,而不是数据帧。这是基本R数据帧子集运算符的烦人特性。
您可以避免这种情况:
x <- dataset[, -2, drop = FALSE]