2017-09-14 10 views
1

パッケージパーティキットでは、プレディクタと分割を指定してカスタムツリーを構築する方法があります。例:Rパーティーキット - カスタムモデルのツリーノードと分割

data("WeatherPlay", package = "partykit") 

#create a split 
sp_o <- partysplit(3L, breaks = 75) 

#create a node 
n1 <- partynode(id = 1L, split = sp_o, kids = lapply(2L:3L, partynode)) 

#and make a "tree" out of it 
t2 <- party(
    n1, 
    data = WeatherPlay, 
    fitted = data.frame(
    "(fitted)" = fitted_node(n1, data = WeatherPlay), 
    "(response)" = WeatherPlay$play, 
    check.names = FALSE 
), 
    terms = terms(play ~ ., data = WeatherPlay), 
) 

t2 <- as.constparty(t2) 
t2 
plot(t2) 

これは、モデルツリー(mob()によって返されます)で可能ですか?ノードごとにツリーノードを構築し、指定された関数を端末ノードに適合させることはできますか?

答えて

1

オブジェクト(mob()によって返されたもの)を手作業で構築することが可能です。しかし、あなたが引用した例では、as.constparty()のような簡単な強制関数はありません。理由は、モデルツリーを構築し、印刷し、特にそれらを予測するために、モデルに関するより詳細な情報が必要であるからです。

私はその後(callformulaFormulatermsfitcontroldots、およびnregで)全体的な$infoスロットを埋め、最初のツリー構造("partynode")を構築することをお勧めします。そして、refit.modelparty()に電話して、すべての終端ノードでモデルを再構築することが可能でなければなりません。そして、これは$node$infocoefficientsobjfunnobs、...)を記入するために使用することができます。

免責事項:これはすべて完全にテストされていません。しかし、"modelparty"を模倣するのではなく、"party"オブジェクトにモデルを格納する独自の方法を作成し、partykitによって提供されるより基本的なビルディングブロックを使用することもできます。

+0

ありがとうございました。私はこれについては既に実装されているツールをいくつか見逃していないかどうかはわかりませんでした。私はホイールを再発明していません:) –

+0

もちろん、問題ありません。今後、この方向で「パーティーキット」を拡張するかもしれない。私たちは、さまざまな分割基準を差し込むことを可能にする2つのアイデアに取り組んでいます。しかし、現時点では、最良のアプローチは「独自の」ツリーをロールすることです。 –