2026-05-28 10:23:22 +03:00
|
|
|
|
// В этом примере MatrixPipeline используется
|
2026-05-07 22:53:13 +03:00
|
|
|
|
// для задачи регрессии.
|
|
|
|
|
|
|
|
|
|
|
|
uses MLABC;
|
|
|
|
|
|
|
|
|
|
|
|
begin
|
|
|
|
|
|
var ds := Datasets.MoscowHousing;
|
|
|
|
|
|
|
2026-05-28 10:23:22 +03:00
|
|
|
|
var features := ['rooms', 'area', 'kitchen_area', 'floor', 'floors_total', 'metro_minutes'];
|
2026-05-07 22:53:13 +03:00
|
|
|
|
|
|
|
|
|
|
var (trainDs, testDs) := ds.TrainTestSplit(testRatio := 0.2, seed := 42);
|
|
|
|
|
|
|
|
|
|
|
|
var XTrain := trainDs.Data.ToMatrix(features);
|
|
|
|
|
|
var yTrain := trainDs.Data.ToVector(ds.Target);
|
|
|
|
|
|
|
|
|
|
|
|
var XTest := testDs.Data.ToMatrix(features);
|
|
|
|
|
|
var yTest := testDs.Data.ToVector(ds.Target);
|
|
|
|
|
|
|
|
|
|
|
|
var pipe :=
|
2026-05-28 10:23:22 +03:00
|
|
|
|
MatrixPipeline.BuildRegression(
|
2026-05-07 22:53:13 +03:00
|
|
|
|
new StandardScaler,
|
|
|
|
|
|
new LinearRegression
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
pipe.Fit(XTrain, yTrain);
|
|
|
|
|
|
var pred := pipe.Predict(XTest);
|
|
|
|
|
|
var r2 := RegressionMetrics.R2(yTest, pred);
|
|
|
|
|
|
|
|
|
|
|
|
Println('MatrixPipeline для задачи регрессии');
|
|
|
|
|
|
Println;
|
|
|
|
|
|
Println($'R² на тестовой выборке: {r2:F3}');
|
|
|
|
|
|
end.
|