Antwort: Wie können doppelte Spaltennamen nicht aus der „Blattbeschriftungsformel“ des Entscheidungsbaummodells extrahiert werden?
Wie erhalte ich nicht doppelte Spaltennamen aus der „Blattbeschriftungsformel“ des Entscheidungsbaummodells?Verwenden Sie beispielsweise die folgende JSL, um die Blattbeschriftungsformel abzurufen. Extrahieren Sie die Spaltennamen aus der Formel in den ersten 10 Zeilen.
Danke!
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>
Automatisierung und SkripterstellungAntwort: Wie können doppelte Spaltennamen nicht aus der „Blattbeschriftungsformel“ des Entscheidungsbaummodells extrahiert werden?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 ) );Betreff: Wie erhalte ich nicht doppelte Spaltennamen aus der „Blattbeschriftungsformel“ des Entscheidungsbaummodells?Sie könnten alle möglichen Spaltennamen durchlaufen und, wenn eine Übereinstimmung gefunden wird, diese zum assoziativen Array hinzufügen (und bei Bedarf aus der Spaltenliste entfernen).
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;
);