Forum Discussion

freswood's avatar
freswood
Icon for Helper I rankHelper I
8 years ago
Solved

Decision Trees in Power BI

Hi all, has anybody tried to use the Decision Tree custom visual? Whenever I try to use it (even with < 150k rows as input), it turns out completely different to the output I get in RStudio. Even whe...
  • thekkm13's avatar
    thekkm13
    8 years ago

    Hey freswood Regulate,

     

    I came across this same issue today.

    In case you're still looking for a solution, here's what I have figured out so far:

     

    Every time you associate a target variable and select a few input variables, Power BI internally creates a data-table from your original set that contains only the fields you have selected.

    It then goes and deletes all duplicate rows.

     

    Assume your original input data is a 5x5 table like:

     Distinct Var AInput BInput CInput DTarget
    1a121TRUE
    2b122TRUE
    3c211FALSE
    4d231TRUE
    5e011FALSE



    At this point, you have 60% True, 40% False.

    Let's say you set your target and pick only Input D as the input variable.

    Your internal data-table being used for the decision tree looks like:

    Input DTarget
    1TRUE
    2TRUE
    1FALSE

    Now, you have 66.67% True, 33.33% False.

     

    Let's say you now use Input C as an additional input variable.
    Your new internal data-table for the decision tree looks like:

    Input CInput DTarget
    21TRUE
    22TRUE
    11FALSE
    31TRUE

    Following along, you're now at 75% True, 25% False

     

    This explains why the values in your root node keep changing every time you modify the input variables.

    I haven't yet been able to figure out a way to make this funny (maybe as designed, but I don't like it) behavior stop.

    As a workaround, I'm considering including a variable that is unique for each record. Ideally, the tree should never be splitting on that varaible and it'll ensure that all records of your data are considered, since there won't be any duplicates.

     

    Let me know if this makes sense/works. Cheers!

     

    KK