pascalabcnet/TestSuite/_MachineLearning/Regression/005_gradientboosting_predictlabels_contract.pas
Mikhalkovich Stanislav 3938120846 ML тесты поправлены
Небольшие правки ML-модулей
2026-05-28 23:56:46 +03:00

29 lines
916 B
ObjectPascal

uses MLABC;
uses TestHelpers in '..\TestHelpers.pas';
begin
var ds := Datasets.Iris;
var X := ds.Data.ToMatrix(ds.Features);
var classes: array of string;
var y := ds.Data.EncodeLabels(ds.Target, classes);
var model := new GradientBoostingClassifier(20, learningRate := 0.1, maxDepth := 3, seed := 1);
model.Fit(X, y);
var pred := model.Predict(X);
var labels := model.PredictLabels(X);
var modelClasses := model.GetClassLabels;
Check(modelClasses.Length = classes.Length, 'class count mismatch');
Check(pred.Length = X.RowCount, 'Predict length mismatch');
Check(labels.Length = X.RowCount, 'PredictLabels length mismatch');
for var i := 0 to X.RowCount - 1 do
begin
var pi := pred[i];
Check((pi >= 0) and (pi < modelClasses.Length), $'Predict[{i}] out of range');
Check(labels[i] = pi.ToString, $'Predict[{i}] and PredictLabels[{i}] are inconsistent');
end;
end.