首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在R中不创建决策树,支持向量机工作

在R中不创建决策树,支持向量机工作
EN

Stack Overflow用户
提问于 2017-04-12 10:47:32
回答 1查看 801关注 0票数 2

我试图为分类创建一个决策树,但是它没有被创建。同样的数据以0.85的精度使用支持向量机(训练==测试数据),“播放”是目标。

知道我做错什么了吗?以下是数据和代码:https://gist.github.com/romeokienzler/c471819cbf156a69f73daf49f8c700c6

展望,温度,湿度,刮风,玩耍 阳光,热,高,假,不 阳光,热,高,真,不 阴天,热,高,假,是的 下雨,温和,高,假,是的 下雨,凉爽,正常,假的,是的 阴雨,凉爽,正常,真实,不 阴沉,酷,正常,真的,是的 阳光,温和,高,假,不 阳光,凉爽,正常,虚假,是的 下雨,温和,正常,假,是的 阳光,温和,正常,真实,是的 阴,温和,高,真的,是的 阴天,热,正常,假,是的 雨,轻,高,真,不

对于使用支持向量机,我对数据进行了编码:https://gist.github.com/romeokienzler/9bfce4182eda3d7662315621462c9cc6

展望,温度,湿度,刮风,玩耍 1,1,2,假,假 1,1,2,真,假 2,1,2,假,真 3,2,2,假,真 3,3,1,假,真 3,3,1,真,假 2,3,1,真,真 1,2,2,假,假 1,3,1,假,真 3,2,1,假,真 1,2,1,真,真 2,2,2,真,真 2,1,1,假,真 3,2,2,真,假

这就是支持向量机的情况:

代码语言:javascript
运行
复制
library(e1071)
df= read.csv("5.tennis_encoded.csv")
attach(df)
x <- subset(df, select=-play)
y <- play
detach(df)
model = svm(x,y,type = "C")
pred = predict(model,x)
truthVector = pred == y
good = length(truthVector[truthVector==TRUE])
bad = length(truthVector[truthVector==FALSE])
good/(good+bad)

1 0.8571429

这张是给决策树的

代码语言:javascript
运行
复制
df= read.csv("5.tennis_encoded.csv")
library(rpart)
model = rpart(play ~ .,method = "class", data=df)
print(model)

1)根14 5真(0.3571429 0.6428571) *

所以我基本上得到了一棵只有根的树,玩==的概率是0.64%

知道我做错什么了吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-04-12 11:25:39

最有可能的情况是,您传递给算法的数据太少,无法拆分。

有关更多细节,请查看rpart.control函数

代码语言:javascript
运行
复制
rpart.control(minsplit = 20, minbucket = round(minsplit/3), cp = 0.01, 
              maxcompete = 4, maxsurrogate = 5, usesurrogate = 2, xval = 10,
              surrogatestyle = 0, maxdepth = 30, ...)

正如你所看到的,最小的分割大小是20。

如果你

代码语言:javascript
运行
复制
model = rpart(play ~ .,method = "class", data=df, control= rpart.control(minsplit=2))

你应该得到更多的分裂

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

https://stackoverflow.com/questions/43367413

复制
相关文章

相似问题

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