2026-05-07 22:53:13 +03:00
|
|
|
|
// Полный пример задачи классификации:
|
|
|
|
|
|
// загружаем датасет, делим его на выборки,
|
|
|
|
|
|
// обучаем pipeline и оцениваем качество.
|
|
|
|
|
|
|
|
|
|
|
|
uses MLABC;
|
|
|
|
|
|
|
|
|
|
|
|
begin
|
|
|
|
|
|
var ds := Datasets.Iris;
|
|
|
|
|
|
var (trainDs, testDs) := ds.StratifiedTrainTestSplit(testRatio := 0.3, seed := 42);
|
|
|
|
|
|
|
2026-05-28 10:23:22 +03:00
|
|
|
|
var pipe := DataPipeline.BuildClassification(
|
2026-05-07 22:53:13 +03:00
|
|
|
|
ds.Target,
|
|
|
|
|
|
ds.Features,
|
|
|
|
|
|
new StandardScaler,
|
|
|
|
|
|
new LogisticRegression(learningRate := 0.05, epochs := 1000)
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
pipe.Fit(trainDs.Data);
|
|
|
|
|
|
|
|
|
|
|
|
var pred := pipe.Predict(testDs.Data);
|
|
|
|
|
|
var yTest := pipe.GetEncodedLabels(testDs.Data);
|
|
|
|
|
|
var acc := ClassificationMetrics.Accuracy(yTest, pred);
|
|
|
|
|
|
|
|
|
|
|
|
Println('Классификация Iris: полный пример');
|
|
|
|
|
|
Println;
|
|
|
|
|
|
Println($'Accuracy = {acc:F3}');
|
|
|
|
|
|
end.
|