2026-03-19 00:02:32 +03:00
|
|
|
|
uses MLABC;
|
|
|
|
|
|
|
2026-05-28 10:23:22 +03:00
|
|
|
|
procedure TestModel(model: IClassifier; Xtrain, Xtest: Matrix; ytrain, ytest: array of integer);
|
2026-03-19 00:02:32 +03:00
|
|
|
|
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);
|
2026-05-28 10:23:22 +03:00
|
|
|
|
end.
|