我不确定我做错了什么?我正在尝试从我的数据中增加一个决策树。
CasinoTree <- rpart(Default ~ Competition + FreeLiquor + RateofReturn +
Default, data = CasinoTree, method = class)
***我怀疑我的信息不正确data = CasinoTree
我尝试这个时得到的信息是......
as.character(x)出错: 不能强迫类型内置&#39;对于类型&#39;字符&#39; 另外:警告信息:
1:在model.matrix.default(attr(frame,&#34; terms&#34;),frame)中: 响应出现在右侧并被丢弃 2:在model.matrix.default(attr(frame,&#34; terms&#34;),frame)中: model.matrix中第4项的问题:没有分配列
我的数据如下。
Competition FreeLiquor RateofReturn Default
1 Yes Yes High No
2 Yes No Low Yes
3 Yes Yes Low Yes
4 Yes Yes High No
5 Yes No Low Yes
6 Yes Yes Low No
7 Yes Yes High No
8 Yes No High No
9 Yes No Low Yes
10 Yes No High Yes
11 Yes No Low Yes
12 Yes No Low Yes
13 Yes No Low Yes
14 No No Low Yes
15 No No High No
16 No No Low Yes
17 No No High No
18 No Yes Low No
19 No No Low No
20 No Yes High No
21 No No High No
22 No No High No
23 No No Low No
24 No Yes High No
25 No Yes Low Yes
我刚试过这个并收到此错误消息
rpart(默认〜竞争+ FreeLiquor + RateofReturn,data = casinotree,method =&#34; class&#34;) is.data.frame(data)中的错误:object&#39; casinotree&#39;找不到
答案 0 :(得分:0)
我怀疑你在某种程度上与数据框的命名与产生的rpart对象(上面都称为CasinoTree
)和响应变量(也作为回归量之一)相混淆。可能一些数据准备也不正确,这很难从您的问题描述中分辨出来。如果避免这些问题(如下所示),一切都会顺利进行。
首先,我读取数据框并将其命名为CasinoData
:
CasinoData <- read.table(textConnection('Competition FreeLiquor RateofReturn Default
1 Yes Yes High No
2 Yes No Low Yes
3 Yes Yes Low Yes
4 Yes Yes High No
5 Yes No Low Yes
6 Yes Yes Low No
7 Yes Yes High No
8 Yes No High No
9 Yes No Low Yes
10 Yes No High Yes
11 Yes No Low Yes
12 Yes No Low Yes
13 Yes No Low Yes
14 No No Low Yes
15 No No High No
16 No No Low Yes
17 No No High No
18 No Yes Low No
19 No No Low No
20 No Yes High No
21 No No High No
22 No No High No
23 No No Low No
24 No Yes High No
25 No Yes Low Yes'))
这似乎运作良好:
summary(CasinoData)
## Competition FreeLiquor RateofReturn Default
## No :12 No :16 High:11 No :14
## Yes:13 Yes: 9 Low :14 Yes:11
然后可以使用CasinoTree
创建rpart()
:
library("rpart")
CasinoTree <- rpart(Default ~ Competition + FreeLiquor + RateofReturn,
data = CasinoData)
打印时看起来合理:
CasinoTree
## n= 25
##
## node), split, n, loss, yval, (yprob)
## * denotes terminal node
##
## 1) root 25 11 No (0.56000000 0.44000000)
## 2) RateofReturn=High 11 1 No (0.90909091 0.09090909) *
## 3) RateofReturn=Low 14 4 Yes (0.28571429 0.71428571) *
或绘制(使用partykit
包的增强绘图):
plot(partykit::as.party(CasinoTree))