2015-04-05 109 views
1

我不確定我做錯了什麼?我試圖從我的數據中發展出一個決策樹。如何設置決策樹

CasinoTree <- rpart(Default ~ Competition + FreeLiquor + RateofReturn + 
           Default, data = CasinoTree, method = class) 

***我懷疑我有不正確的信息在那裏說:data = CasinoTree

消息我得到的,當我嘗試這是.....在as.character

錯誤(x): 不能強制類型'內置'到類型'字符'的向量 另外:警告消息:
1:在model.matrix.default(attr(frame,「terms」),frame)中: 反應出現d在右側並且被丟棄
2:在model.matrix.default(attr(frame,「terms」),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 

我只是嘗試這樣做,在is.data.frame接收此錯誤消息

rpart包(默認〜競爭+ FreeLiquor + RateofReturn,數據= casinotree,方法= 「類」) 錯誤(數據):對象「casinotree」未找到

+0

可能重複的[這是什麼的rpart包在as.character「錯誤(X):不能強制類型'內建'類型'字符'的消息意味着什麼?](http://stackoverflow.com/questions/2337018/what-does-the-rpart-error-in-as-characterx-cannot-coerce- type-builtin-to) – user20650 2015-04-05 03:17:44

+0

第一條警告信息說'Default'在你的lhs和rhs中mula ...是這個意圖嗎?您還需要引用''class'' – user20650 2015-04-05 03:18:16

+1

re,您的編輯... R區分大小寫。首先你有'CasinoTree'然後'casinotree' – user20650 2015-04-05 03:21:48

回答

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)) 

enter image description here