سؤال

عند استخدام R 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)

سؤالي هو - كيف يمكنني قياس "أهمية" كل من متغيراتي التوضيحية الثلاثة (العمر ، العدد ، البدء) إلى النموذج؟

إذا كان هذا نموذجًا للانحدار ، كان بإمكاني النظر في قيم P من اختبار "ANOVA" F (بين lm نماذج مع وبدون المتغير). ولكن ما هو معادلة استخدام "ANOVA" lm إلى rpart هدف؟

(آمل أن أتمكن من توضيح سؤالي)

شكرًا.

هل كانت مفيدة؟

المحلول

بالطبع سيكون ANOVA مستحيلًا ، حيث أن ANOVA تتضمن حساب التباين الكلي في متغير الاستجابة وتقسيمه إلى مكونات مفيدة (SSA ، SSE). لا أستطيع أن أرى كيف يمكن للمرء أن يحسب مجموع المربعات لمتغير فئوي مثل التشنج.

أعتقد أن ما تتحدث عنه بالفعل هو اختيار السمة (أو التقييم). أود استخدام information gain قياس على سبيل المثال. أعتقد أن هذا هو ما يتم استخدامه لتحديد سمة الاختبار في كل عقدة في الشجرة ويتم اختيار السمة التي تحتوي على أعلى كسب المعلومات (أو أعظم تخفيض إنتروبيا) كسمة اختبار للعقدة الحالية. تقلل هذه السمة من المعلومات اللازمة لتصنيف العينات في الأقسام الناتجة.

لا أدرك ما إذا كانت هناك طريقة لتصنيف السمات وفقًا لكسب المعلومات في R ، لكنني أعلم أن هناك في ويكا ويسمى infogainattributeeval يقيم قيمة السمة من خلال قياس مكاسب المعلومات فيما يتعلق بالفئة. وإذا كنت تستخدم Ranker كما Search Method, ، يتم تصنيف السمات من خلال تقييماتها الفردية.

تعديللقد وجدت أخيرًا طريقة للقيام بذلك في R باستخدام المكتبة CORElearn

estInfGain <- attrEval(Kyphosis ~ ., kyphosis, estimator="InfGain")
print(estInfGain)
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top