29 lines
916 B
ObjectPascal
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.
|