pascalabcnet/InstallerSamples/MachineLearning/08_Datasets/Iris/04a_StratifiedTrainTestSplit.pas
Mikhalkovich Stanislav c8a1b87a2c ML TransformLabels
StratifiedTrainTestSplit в Dataset
2026-04-01 06:33:26 +03:00

25 lines
644 B
ObjectPascal

uses MLABC;
begin
var ds := Datasets.Iris;
// --- stratified split
var (train, test) := ds.StratifiedTrainTestSplit(0.2, 42);
var Xtrain := train.Data.ToMatrix(train.Features);
var Xtest := test.Data.ToMatrix(test.Features);
// неудобно, но правильно
var classes: array of string;
var ytrain := train.Data.EncodeLabels(train.Target, classes);
var ytest := test.Data.TransformLabels(test.Target, classes);
// --- модель
var model := new LogisticRegression;
model.Fit(Xtrain, ytrain);
var pred := model.Predict(Xtest);
Println('Accuracy:', Metrics.Accuracy(ytest, pred):0:3);
end.