Combined Trees
Hello everyone,
I have the following questions/concern.
- Number of positive and negative examples
I provided 80 positive examples and 80 negative examples as my training set but the generated file target_learnedWILLregressionTrees.txt shows the following values:
% # of pos examples = 160
% # of neg examples = 0
It happens in all cases, the number of pos examples are the sum of pos and negative ones.
- Learning the combined tree even if we do not ask for
If you see file train_learn_dribble.txt, the algorithm is learning a combined tree even if we do not set parameter "-combine". The parameter "-combine" is just deciding if the model should be saved or not. Is it supposed to happen? Is this also affecting the learning time printed?
- More examples than provided reached in Combined Tree
I set the algorithm to learn 10 boosted trees from 80 pos and 80 neg examples. Lookingt the file target_learnedWILLregressionTrees.txt generated I realized the combined tree shows much more examples reaching its branches.
The boosted trees seems correct, showing a total of 80 pos and 80 neg examples as shown below:
%%%%% WILL-Produced Tree #1 @ 10:00:16 8/2/18. [Using 2.811.544 memory cells.] %%%%%
% FOR advisedby(A, B):
% if ( professor(B), student(A) )
% then if ( publication(C, B), publication(C, A) )
% | then return 0.8581489350995117; // std dev = 1,69e-07, 28,000 (wgt'ed) examples reached here. /* #pos=28 */
% | else if ( publication(D, A), publication(E, B) )
% | | then if ( ta(F, A, G) )
% | | | then return 0.6581489350995122; // std dev = 0,894, 5,000 (wgt'ed) examples reached here. /* #neg=1 #pos=4 */
% | | | else if ( tempadvisedby(H, B) )
% | | | | then return -0.14185106490048777; // std dev = 0,000, 3,000 (wgt'ed) examples reached here. /* #neg=3 */
% | | | | else return 0.2581489350995122; // std dev = 1,095, 5,000 (wgt'ed) examples reached here. /* #neg=3 #pos=2 */
% | | else if ( publication(I, B), publication(I, J), tempadvisedby(J, K) )
% | | | then return 0.8581489350995123; // std dev = 0,000, 8,000 (wgt'ed) examples reached here. /* #pos=8 */
% | | | else if ( publication(L, B), publication(L, M), ta(N, M, P) )
% | | | | then if ( ta(Q, A, P) )
% | | | | | then return 0.8581489350995121; // std dev = 2,11e-08, 3,000 (wgt'ed) examples reached here. /* #pos=3 */
% | | | | | else return 0.5010060779566552; // std dev = 1,793, 14,000 (wgt'ed) examples reached here. /* #neg=5 #pos=9 */
% | | | | else return 0.724815601766179; // std dev = 0,340, 30,000 (wgt'ed) examples reached here. /* #neg=4 #pos=26 */
% else return -0.14185106490048766; // std dev = 6,32e-08, 64,000 (wgt'ed) examples reached here. /* #neg=64 */
However, the combined tree shows 10 times the numbers of examples provided (they sum up to 800 for pos and neg)
%%%%% WILL-Produced Tree Combined @ 10:00:30 8/2/18. [Using 3.171.552 memory cells.] %%%%%
% FOR advisedby(A, B):
% if ( professor(B), student(A) )
% then if ( publication(C, B), publication(C, A) )
% | then return 3.8410209430497844; // std dev = 0,062, 280,000 (wgt'ed) examples reached here. /* #pos=280 */
% | else if ( publication(D, A), publication(D, E), professor(E) )
% | | then if ( publication(F, B) )
% | | | then if ( ta(G, A, H) )
% | | | | then if ( tempadvisedby(I, B), ta(J, I, H) )
% | | | | | then return -4.555077164707215; // std dev = 2,92e-07, 10,000 (wgt'ed) examples reached here. /* #neg=10 */
% | | | | | else return 5.0721091709174075; // std dev = 0,396, 20,000 (wgt'ed) examples reached here. /* #pos=20 */
% | | | | else return -0.5881219318434318; // std dev = 3,203, 70,000 (wgt'ed) examples reached here. /* #neg=60 #pos=10 */
% | | | else return 4.165151166989849; // std dev = 0,101, 40,000 (wgt'ed) examples reached here. /* #pos=40 */
% | | else if ( publication(K, A) )
% | | | then return 4.64639912008772; // std dev = 0,783, 40,000 (wgt'ed) examples reached here. /* #pos=40 */
% | | | else if ( tempadvisedby(L, B), ta(M, L, N) )
% | | | | then return 3.7122536909001296; // std dev = 2,383, 170,000 (wgt'ed) examples reached here. /* #neg=10 #pos=160 */
% | | | | else return 2.5656814524005243; // std dev = 3,877, 330,000 (wgt'ed) examples reached here. /* #neg=80 #pos=250 */
% else return -0.9437262371086457; // std dev = 0,000, 640,000 (wgt'ed) examples reached here. /* #neg=640 */
Is this related to the number of trees learned? Is this also supposed to happen?
- Inference using Combined tree
Is there a way to perform inference using the combined tree model instead of boosted trees?
Thank you so much.