R SVM预测

我在R语言方面是新手,请帮助我理解哪里出了问题。我试图预测一些数据,但predict函数返回的对象(这是一个奇怪的类(因子))包含的数据很少。测试集大小为5886个观测值,160个变量,而predict对象的长度是110… 我期望得到一个预测类别的向量或数据框。我理解错什么了吗?

library(MASS)library(e1071)set.seed(333)data <- read.csv(file="D:\\MaсhLearningAssign\\pml-training.csv", head=TRUE, sep=",")index <- 1:nrow(data)testindex <- sample(index, trunc(length(index)*30/100))train <- data[-testindex, ]test <- data[testindex, ]model  <- svm(classe~., data = train, kernel="radial", gamma=0.001, cost=10)prediction <- predict(model, test)summary(prediction)Output:    A  B  C  D  E     28 24 25 12 22 

数据集在这里


回答:

svm无法处理缺失的观测值,而你的数据集中充满了NA值:

> dim(data[complete.cases(data), ])[1] 406 160

你可以尝试删除包含NA值的列,然后再训练svm

> data <- data[, which(colSums(apply(data, 2, is.na)) == 0)]> dim(data)[1] 19622    93

现在你可以尝试分割你的数据并拟合svm。不过要小心。数据集仍然相当大,而svm对资源消耗较大。

提示:我查看了你的数据,如果它是我认为的那样,请务必仔细阅读数据集描述。你有两种完全不同的行类型。这不仅能解释NA值的丰富性,还能提供一个有助于预测的想法,考虑到你的测试集。

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中创建了一个多类分类项目。该项目可以对…

发表回复

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