// Первый пример регрессии. // // В этом примере: // 1) загружаем готовый датасет с ценами на квартиры; // 2) выбираем признаки и целевую переменную; // 3) делим данные на обучающую и тестовую выборки; // 4) обучаем линейную регрессию; // 5) оцениваем качество модели по метрике R². uses MLABC; begin // Загружаем учебный датасет с ценами на квартиры в Москве var ds := Datasets.MoscowHousing; // Берём таблицу данных из датасета var df := ds.Data; // Выбираем числовые признаки, по которым будем предсказывать цену var features := ['rooms', 'area', 'kitchen_area', 'floor', 'floors_total', 'metro_minutes']; // Целевая переменная - цена квартиры var target := 'price'; // Преобразуем выбранные признаки в числовую матрицу var X := df.ToMatrix(features); // Преобразуем целевую переменную в числовой вектор var y := df.ToVector(target); // Делим данные на обучающую и тестовую выборки var (Xtrain, Xtest, ytrain, ytest) := Validation.TrainTestSplit(X, y, 0.2, 42); // Создаём модель линейной регрессии var model := new LinearRegression; // Обучаем модель на обучающей выборке model.Fit(Xtrain, ytrain); // Получаем предсказания для тестовой выборки var pred := model.Predict(Xtest); // Считаем, насколько хорошо модель объясняет данные. // Для простой линейной модели R² около 0.6 и выше здесь уже неплохой результат, // но более сложные модели могут работать точнее. Println('R²:', Metrics.R2(ytest, pred):0:3); end.