pascalabcnet/InstallerSamples/MachineLearning/13_Seminars/seminar4.pas
Mikhalkovich Stanislav 7eaddd9a54 ML - множество примеров
ML - устранение неточностей и багов
ML - оптимизация производительности DecisionTreeRegressor.Fit, RandomForestRegressor.Fit
ML - тесты
2026-05-07 22:53:13 +03:00

30 lines
1.2 KiB
ObjectPascal

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);
var pipe :=
DataPipeline.Build( // сборка pipeline: target + features + шаги
TaskKind.tkRegression,
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.