簡體   English   中英

使用CHAID包生產樹木時Minbucket無法正常工作

[英]Minbucket not working when producing trees with CHAID package

我一直在努力確保使用CHAID包中實現的CHAID算法獲得的分類樹將生成一個樹,其終端節點(葉子)至少具有minbucket觀察數。 根據chaid過程的描述,這可以通過指定chaid_control函數來完成:

chaid_control(alpha2 = 0.05, alpha3 = -1, alpha4 = 0.05,
              minsplit = 20, minbucket = 7, minprob = 0.01,
              stump = FALSE, maxheight = -1)

這與控制rpart包中的樹類似。

然而,設置minbucket參數似乎不會對結果樹的最終形狀產生任何影響。 這是一個例子:

library("CHAID")
set.seed(290875)
USvoteS <- USvote[sample(1:nrow(USvote), 1000),]
chaid(vote3 ~ ., data = USvoteS)

Model formula:
vote3 ~ gender + ager + empstat + educr + marstat

Fitted party:
[1] root
|   [2] marstat in married
|   |   [3] educr <HS, HS, >HS: Gore (n = 311, err = 49.5%)
|   |   [4] educr in College, Post Coll: Bush (n = 249, err = 35.3%)
|   [5] marstat in widowed, divorced, never married
|   |   [6] gender in male: Gore (n = 159, err = 47.8%)
|   |   [7] gender in female
|   |   |   [8] ager in 18-24, 25-34, 35-44, 45-54: Gore (n = 127, err = 22.0%)
|   |   |   [9] ager in 55-64, 65+: Gore (n = 115, err = 40.9%)

Number of inner nodes:    4
Number of terminal nodes: 5

終端節點3,4,6,8和9分別由311,249,159,127和115個觀測值組成。 現在,通常,為了限制最小數量的觀測,應按如下方式進行:

ctrl <- chaid_control(minbucket = 200)

然而,援引

chaid(vote3 ~ ., data = USvoteS, control = ctrl)

產生與以前相同的樹(而不是具有至少200個觀察點的節點的樹)。

我不確定是否是我犯了錯誤或者在執行chaid程序時遺漏了chaid ......

每個終端節點中的最小觀察數由minbucketminprob控制。 前者給出絕對觀察次數,后者給出相對頻率(相對於當前節點的樣本大小)。 在內部,每個節點中使用兩個量的最小值 這對我來說也是違反直覺的,因為我預期會使用最大值 - 但我沒有檢查原始CHAID算法是否以這種方式描述。

如果要確保只有minbucket控制最小節點大小,則設置minbucket = 200, minprob = 1

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM