2

私はいくつかの木を持っていますが、印刷すると 7 ページの長さになります。データのバランスを取り直す必要があり、頻度が最も高いブランチを調べて、それらが意味をなすかどうかを確認する必要があります。さまざまなクラスターのキャンセル率を特定する必要があります。

データが非常に長いことを考えると、必要なのは最大のブランチを持つことであり、210 のブランチを手動で処理するのではなく、それらを検証できます。たくさんの木があるので、重要な結果を見るためにこれを自動化する必要があります。

使用するコード例:

library(CHAID)
updatecars<-mtcars
updatecars$cyl<-as.factor(updatecars$cyl)
updatecars$vs<-as.factor(updatecars$vs)
updatecars$am<-as.factor(updatecars$am)
updatecars$gear<-as.factor(updatecars$gear)
plot(carsChaid)

carsChaid<-chaid(am~  cyl+vs+gear, data=updatecars)
carsChaid

このデータを印刷すると、最初のグループが n=15 であることがわかります。この値でソートできるテーブルが必要です。

必要なのは、変数値とツリーの各グループ内の番号を含む決定ツリー テーブルです。これは、この回答とまったく同じではありません。内の番号が表示されないため、木を歩き ますが、方向にあると思います。

誰か助けてくれませんか、
ありがとう、
ジェームズ

4

2 に答える 2

0

data.tree を使用して、並べ替え、ツリーのウォーク、カスタム プロットなど、パーティ オブジェクトに対してさらに操作を行うことができます。github からの最新リリース v0.3.7 には、パーティ クラス オブジェクトからの変換があります。

devtools::install_github("gluc/data.tree@v0.3.7")
library(data.tree)
tree <- as.Node(carsChaid)

tree$fieldsAll

最後のコマンドは、パーティ クラスの変換されたフィールドの名前を表示します。

[1] "data"        "fitted"      "nodeinfo"    "partyinfo"   "split"       "splitlevels" "splitname"   "terms"       "splitLevel" 

各ノードのデータの行など、関数で並べ替えることができます。

tree$Sort(attribute = function(node) nrow(node$data), decreasing = TRUE)

print(tree, 
      "splitname",
      count = function(node) nrow(node$data), 
      "splitLevel")

たとえば、次のように表示されます。

  levelName splitname count splitLevel
1     1          gear    32           
2      ¦--3              17       4, 5
3      °--2              15          3
于 2016-05-22T10:42:50.230 に答える