ML - исправление падения в DTC - из за ранней инициализации критерия

This commit is contained in:
Mikhalkovich Stanislav 2026-04-15 22:21:22 +03:00
parent 4b02fb9c94
commit 13a1804dda

View file

@ -4391,7 +4391,8 @@ begin
fMaxDepth := maxDepth; fMaxDepth := maxDepth;
fMinSamplesSplit := minSamplesSplit; fMinSamplesSplit := minSamplesSplit;
fMinSamplesLeaf := minSamplesLeaf; fMinSamplesLeaf := minSamplesLeaf;
fCriterion := if criterion = nil then new GiniCriterion else criterion;
fCriterion := criterion;
fRandomSeed := ResolveRandomSeed(seed, fUserProvidedSeed); fRandomSeed := ResolveRandomSeed(seed, fUserProvidedSeed);
fRng := new System.Random(fRandomSeed); fRng := new System.Random(fRandomSeed);
@ -4437,6 +4438,9 @@ begin
// --- encode // --- encode
var classes: array of integer; var classes: array of integer;
var yEncArr := EncodeLabelsInt(yInt, classes); var yEncArr := EncodeLabelsInt(yInt, classes);
if fCriterion = nil then
fCriterion := new GiniCriterion(classes.Length);
if classes.Length < 2 then if classes.Length < 2 then
ArgumentError(ER_NEED_AT_LEAST_TWO_CLASSES); ArgumentError(ER_NEED_AT_LEAST_TWO_CLASSES);