pascalabcnet/InstallerSamples/MachineLearning/13_Seminars/seminar4.pas

30 lines
1.2 KiB
ObjectPascal
Raw Normal View History

2026-03-25 14:07:27 +03:00
uses MLABC;
begin
var ds := Datasets.MoscowHousing;
var df := ds.Data;
var features := ['rooms', 'area', 'kitchen_area', 'floor', 'floors_total', 'metro_minutes', 'renovation'];
var target := 'price';
var (trainDf, testDf) := df.TrainTestSplit(0.2, seed := 42);
2026-03-25 14:07:27 +03:00
var pipe :=
DataPipeline.Build( // сборка pipeline: target + features + шаги
TaskKind.tkRegression,
2026-03-25 14:07:27 +03:00
target, // целевая переменная
features, // список признаков
new OneHotEncoder('renovation'), // DataFrame-уровень: кодирование категории
// Внутри - преобразование .ToMatrix .ToVector
new StandardScaler, // Matrix-уровень: масштабирование признаков
new LinearRegression // модель (всегда последний шаг)
);
pipe.Fit(trainDf); // обучение: последовательно encoding → scaling → model
var pred := pipe.Predict(testDf); // предсказание: те же преобразования
var y := testDf.ToVector(target);
Println('R²:', Metrics.R2(y, pred):0:3);
end.