首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >-error ()函数e1071 / libsvm rpart

-error ()函数e1071 / libsvm rpart
EN

Stack Overflow用户
提问于 2012-12-17 09:02:20
回答 1查看 1.6K关注 0票数 1

我正在尝试调整rpart。我已经把我的数据分成了训练集和简历集。tune.rpart便利性函数似乎没有指定简历集的方法。所以我使用的是常规的tune()函数。

我的数据集中有595个潜在变量,所以我不想使用公式来指定。当我这样做时,我得到了以下错误

代码语言:javascript
复制
Error in tune(rpart, train.x = trainset[, -1], train.y = trainset[, 1],  : 
Dependent variable has wrong type!
In addition: Warning message:
In if (y) ans$y <- Y :
the condition has length > 1 and only the first element will be used

代码:

代码语言:javascript
复制
load('train.dat')
load('cv.dat')
trainset$class<-factor(trainset$class)
cvset$class<-factor(cvset$class)

rpart.tune<-tune(rpart,train.x= trainset[,-1], train.y=trainset[,1],
           validation.x=cvset[,-1], validation.y=cvset[,1],
             ranges = list(
               cp = c(0.002,0.005,0.01,0.015,0.02,0.03)),
           tunecontrol = tune.control(sampling = "fix"))

数据可从以下网址获得:https://docs.google.com/folder/d/0B2_rKFnvrjMAM3FGbnFvZm5laUk/edit

EN

回答 1

Stack Overflow用户

发布于 2013-01-12 18:55:21

你必须检查你正在使用的分类器的预测输出。tune()期望(对于分类)接收以下内容之一:

代码语言:javascript
复制
(is.logical(true.y) || is.factor(true.y)) && (is.logical(pred) || is.factor(pred) || is.character(pred))

例如,使用rpart进行预测时,会生成一个矩阵作为输出。您可以尝试使用svm来正确地处理这个问题,或者尝试只给出两个类。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13907087

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档