pascalabcnet/InstallerSamples/MachineLearning/04_Models/01_RegressionBasic.pas
Mikhalkovich Stanislav 7b1f89fb4c Добавлены примеры ML
Улучшены параметры синтетических датасетов

Метрики разнесены по трем классам

PlotML - сделан Surface и улучшены палитры
2026-03-24 14:26:08 +03:00

40 lines
1.5 KiB
ObjectPascal

// Простейший пример линейной регрессии на синтетических данных.
//
// Датасет сгенерирован функцией MakeRegression:
// • признаки — случайные вещественные значения
// • зависимость — линейная комбинация признаков
// • добавлен небольшой гауссов шум
// • нелинейность отключена (nonlinearStrength = 0)
//
// Таким образом, модель полностью соответствует предположениям LinearRegression.
//
// Ожидаемый результат:
// • модель восстанавливает зависимость почти идеально
// • ошибка (MSE) близка к нулю
//
// Этот пример демонстрирует:
// • базовый pipeline регрессии (Fit → Predict → Metrics)
// • ситуацию "идеальной модели", когда данные линейны
// • нижнюю границу ошибки для линейных методов
uses MLABC;
begin
var (X, y) := Datasets.MakeRegression(
n := 300,
nFeatures := 10,
nInformative := 8,
noise := 0.1,
coefScale := 1.0,
bias := 0.0,
nonlinearStrength := 0.0,
shuffle := True,
seed := 42
);
var model := new LinearRegression;
model.Fit(X, y);
var yPred := model.Predict(X);
Println('LinearRegression MSE:', Metrics.MSE(y, yPred):0:4);
end.