2010-03-07 61 views
1

當使用R的rpart函數時,我可以很容易地使用它的模型。例如:「anova」(對於lm)是否與rpart對象等價?

# Classification Tree with rpart 
library(rpart) 

# grow tree 
fit <- rpart(Kyphosis ~ Age + Number + Start, 
    method="class", data=kyphosis) 

printcp(fit) # display the results 
plotcp(fit) 
summary(fit) # detailed summary of splits 

# plot tree 
plot(fit, uniform=TRUE, 
    main="Classification Tree for Kyphosis") 
text(fit, use.n=TRUE, all=TRUE, cex=.8) 

我的問題是 - 我如何測量每個我的三個解釋變量(年齡,人數,開始)模式的「重要性」?

如果這是一個迴歸模型,我可以從「anova」F-檢驗(在lm模型之間有和沒有變量之間)看p值。但是,如何將lm上的「anova」與rpart對象等同使用?

(我希望我能夠清楚地表明我的問題)

謝謝。

回答

3

當然anova是不可能的,因爲anova涉及計算響應變量的總體變化並將其分成信息組件(SSA,SSE)。我看不出如何計算類似變量的平方和,例如脊椎病。

我認爲你實際上談論的是屬性選擇(或評估)。例如,我會使用information gain度量。我認爲這是用來選擇樹中每個節點的測試屬性的,並且選擇具有最高信息增益(或最大熵降低)的屬性作爲當前節點的測試屬性。該屬性可以最小化分類結果分區中樣本所需的信息。

我不知道是否有根據R中的信息增益等級屬性的方法,但是我知道,有在WEKA,被命名爲InfoGainAttributeEval它通過測量相對於信息增益評估屬性的價值去上課。如果您使用Ranker作爲Search Method,則這些屬性按其各自的評估進行排名。

編輯 我終於找到了一種方法R中做到這一點使用圖書館CORElearn

estInfGain <- attrEval(Kyphosis ~ ., kyphosis, estimator="InfGain") 
print(estInfGain) 
+0

感謝gd047, 這是一個非常有益的指導! 我期待着來自人們的其他想法。 謝謝! Tal – 2010-03-07 20:33:04

+0

gd047,我只是到處尋找信息增益措施的R實現 - 我似乎無法找到任何人談論它。 也許我會把R和wekka連接起來。 再次感謝領先! Tal – 2010-03-07 21:52:11

相關問題