Nota: In che modo i nomi delle colonne duplicate non possono essere estratti dalla "Formula etichetta foglia" del modello di albero decisionale?
Come ottenere nomi di colonne non duplicati dalla "formula dell'etichetta foglia" del modello dell'albero decisionale?Ad esempio, utilizza il seguente JSL per ottenere la formula dell'etichetta foglia. Estrai i nomi delle colonne dalla formula nelle prime 10 righe.
Grazie!
d0 = Open( "$SAMPLE_DATA/Equity.jmp" );
p=Partition(
Y( :BAD ),
X(
:LOAN, :MORTDUE, :VALUE, :REASON, :JOB, :YOJ, :DEROG, :DELINQ, :CLAGE, :NINQ,
:CLNO, :DEBTINC
),
Validation Portion( 0.3 )
);
p<<GO></GO>
Automazione e scriptingNota: In che modo i nomi delle colonne duplicate non possono essere estratti dalla "Formula etichetta foglia" del modello di albero decisionale?Current Data Table( d0 );
txt = "";
For( i = 1, i <= 10, i++,
If( i == 1,
a = "",
a = "aaa"
);
nn = d0[i, "Leaf Label Formula"];
txt = txt || a || nn;
);
tx = "ccc\!n" || Substitute( txt, "&", "\!n", "aaa", "\!n", " or Missing", "", " not Missing", "", " Is Missing", "" );
tx = Substitute( tx, ">", "\!t>", "<", "\!t<", "(", "\!t(" );
d1 = Open( Char To Blob( tx ), "text" );
d2 = d1 << Summary( Group( ccc ), Freq( 0 ), Weight( 0 ), Link to original data table( 0 ) );Ri: Come ottenere nomi di colonne non duplicati dalla "formula dell'etichetta foglia" del modello dell'albero decisionale?Puoi scorrere tutti i possibili nomi di colonna e, se viene trovata una corrispondenza, aggiungerla all'array associativo (e rimuoverla dall'elenco delle colonne se lo desideri)
Names Default To Here(1);
input_cols = {"LOAN", "MORTDUE", "VALUE", "REASON", "JOB", "YOJ", "DEROG", "DELINQ", "CLAGE", "NINQ", "CLNO", "DEBTINC"};
dt = Open("$SAMPLE_DATA/Equity.jmp");
part = dt << Partition(
Y(:BAD),
X(Eval(input_cols)),
Validation Portion(0.3)
);
part << go;
part << save leaf label formula;
part << close window;
aa_cols = Associative Array();
For Each({row_val}, dt[1::10, "Leaf Label Formula"],
input_cols_temp = input_cols;
For Each({input_col, idx}, input_cols,
If(Contains(row_val, input_col),
aa_cols[input_col] = 1;
Remove From(input_cols_temp, idx);
);
);
input_cols = input_cols_temp;
);