Decision tree in qlikview using R without macro

    Notas Previas:

    Para descargar ejemplo, ir a nota publicada AQUI

    Para este ejemplo debe estar instalado R con package rattle y rpart

     

     

    Si se tienen en qlikview datos históricos sobre clientes que sí compraron un producto y clientes que no compraron, y se quiere crear un algoritmo de clasificación para predecir si los nuevos clientes comprarán o no el producto, teniendo algo como:

     

    qlikview_mas_r_arbol.jpg

     

     

     

    Puede usarse la siguiente técnica:

     

    // Crea datos
    // ------------------------------------------------------------------------------
    Datos:
    LOAD * INLINE [
    IdCliente,    EstadoCivil, Profesion,  Universitario,  TieneVehiculo,  Compra
    1,        Casado,      Empresario,     Si,            No,          No
    2,        Casado,      Empresario,     Si,            Si,          No
    3,        Soltero,    Empresario,      Si,            No,          Si
    4,        Viudo,      Desempleado,     Si,            No,          Si
    5,        Viudo,      Empleado,        No,            No,          Si
    6,        Viudo,      Empleado,        No,            Si,          No
    7,        Soltero,    Empleado,        No,            Si,          Si
    8,        Casado,      Desempleado,    Si,            No,          No
    9,        Casado,      Empleado,       No,            No,          Si
    10,        Viudo,      Desempleado,    No,            No,          Si
    11,        Casado,      Desempleado,   No,            Si,          Si
    12,        Soltero,    Desempleado,    Si,            Si,          No
    13,        Soltero,    Empresario,     No,            No,          Si
    14,        Viudo, Desempleado,         Si,            Si,          No
    111,      Soltero,    Empresario,      No,            Si,           ?
    222,    Casado,        Desempleado,    Si,            No,           ?
    333,    Soltero,      Empleado,        No,            No,           ?]
    ;


    // Crea datos de entrenamiento y guarda en csv
    // ------------------------------------------------------------------------------
    Datos_Train: NoConcatenate LOAD * Resident Datos Where Compra<>'?' and Rand()<.8;
    STORE Datos_Train into C:\Qlikview_mas_R_2\Datos_Train.csv (txt);
    DROP Table Datos_Train;

    // crea datos de test y guarda en csv
    // ------------------------------------------------------------------------------
    Datos_Nuevos: NoConcatenate LOAD * Resident Datos Where Compra='?';
    STORE Datos_Nuevos into C:\Qlikview_mas_R_2\Datos_Nuevos.csv (txt);
    DROP Table Datos_Nuevos;

    // ejecuta script de R 
    // ------------------------------------------------------------------------------
    EXECUTE "C:\Program Files\R\R-3.1.0\bin\R.exe" CMD BATCH "C:\Qlikview_mas_R_2\rpart_script.r";

    // hace join del resultado de la prediccion en clientes nuevos 
    // ------------------------------------------------------------------------------
    Left Join (Datos)
    LOAD IdCliente, Prediccion_Compra
    FROM Datos_con_prediccion.csv
    (
    txt, codepage is 1252, embedded labels, delimiter is ',', msq);