pascalabcnet/InstallerSamples/MachineLearning/08_Datasets/Iris/05_CompareModels.pas
2026-03-31 12:38:47 +03:00

27 lines
818 B
ObjectPascal

uses MLABC;
procedure TestModel(model: ISupervisedModel; Xtrain, Xtest: Matrix; ytrain, ytest: Vector);
begin
model.Fit(Xtrain, ytrain);
var pred := model.Predict(Xtest);
var acc := Metrics.Accuracy(ytest, pred);
Println(model.Name:26, ':', acc:0:3);
end;
begin
var ds := Datasets.Iris;
var df := ds.Data;
var X := df.ToMatrix(ds.Features);
var y := df.EncodeLabels(ds.Target);
var (Xtrain, Xtest, ytrain, ytest) := Validation.TrainTestSplit(X, y, 0.2, seed := 5);
TestModel(new LogisticRegression, Xtrain, Xtest, ytrain, ytest);
TestModel(new DecisionTreeClassifier(seed := -1), Xtrain, Xtest, ytrain, ytest);
TestModel(new RandomForestClassifier(seed := -1), Xtrain, Xtest, ytrain, ytest);
TestModel(new GradientBoostingClassifier(seed := -1), Xtrain, Xtest, ytrain, ytest);
end.