2013-11-11 6 views
1

У меня есть небольшой вопрос о J48 от Weka. Я запускаю этот алгоритм из R, используя RWeka. Наверное, это простое решение, но я не могу найти его в Интернете. Очень маленький пример:Как сообщить данные J48

require(RWeka) 
Attr1 <- as.factor(c('0302','0302','0320')) 
Attr2 <- as.factor(c('2','1','1')) 
Target <- as.factor(c('target1','target2','target3')) 
input <- data.frame(Attr1,Attr2,Target) 
J48(Target ~ Attr1 + Attr2 , data= input, control= Weka_control(W=list(J48,m=1,U=T))) 

Я хочу, чтобы подгонка по алгоритму J48 соответствовала данным. Это означает, что я помещал минимальные предметы в листы в 1, и я не обрезал дерево. Я получаю следующий вывод:

J48 pruned tree 
------------------ 
: target1 (3.0/2.0) 
Number of Leaves :  1 
Size of the tree : 1 

Почему это не сделать attR1 = 0320 -> target3 или attr2 = 2 -> Target1?

ответ

2

Я немного упростил ваш код и выявил проблему. Параметр для минимального количества листьев задается как «M», а не «m». Я обнаружил это на первых запрашивая возможные варианты

WOW(J48) 

Соответствующий выход которого говорит:

-M <minimum number of instances> 
    Set minimum number of instances per leaf. (default 2) 

важная часть вашего кода становится:


J48(Target ~ Attr1 + Attr2 , data= input, control= Weka_control(M=1,U=TRUE)) 

J48 unpruned tree 
------------------ 

Attr1 = 0302 
| Attr2 = 1: target2 (1.0) 
| Attr2 = 2: target1 (1.0) 
Attr1 = 0320: target3 (1.0) 

Number of Leaves :  3 

Size of the tree : 5 
+0

Это один из эти вопросы ineedmorecoffee. Спасибо, что просветил меня. – Freddy

+0

Эй, я был немного в тупике! Было весело найти. – Walter

Смежные вопросы