39 lines
1.5 KiB
ObjectPascal
39 lines
1.5 KiB
ObjectPascal
// Первый пример классификации.
|
||
//
|
||
// В этом примере:
|
||
// 1) загружаем готовый датасет Iris;
|
||
// 2) выделяем признаки и целевую переменную;
|
||
// 3) делим данные на обучающую и тестовую выборки;
|
||
// 4) обучаем логистическую регрессию;
|
||
// 5) оцениваем точность модели.
|
||
uses MLABC;
|
||
|
||
begin
|
||
// Загружаем учебный датасет Iris
|
||
var ds := Datasets.Iris;
|
||
|
||
// Берём таблицу данных из датасета
|
||
var df := ds.Data;
|
||
|
||
// Преобразуем выбранные признаки в числовую матрицу
|
||
var X := df.ToMatrix(ds.Features);
|
||
|
||
// Кодируем названия классов в числа 0, 1, 2
|
||
var y := df.EncodeLabels(ds.Target);
|
||
|
||
// Делим данные на обучающую и тестовую выборки
|
||
var (Xtrain, Xtest, ytrain, ytest) := Validation.TrainTestSplit(X, y, 0.2, seed := 3);
|
||
|
||
// Создаём модель логистической регрессии
|
||
var model := new LogisticRegression(0.001);
|
||
|
||
// Обучаем модель на обучающей выборке
|
||
model.Fit(Xtrain, ytrain);
|
||
|
||
// Получаем предсказания для тестовой выборки
|
||
var pred := model.Predict(Xtest);
|
||
|
||
// Считаем долю правильных ответов
|
||
Println('Точность:', Metrics.Accuracy(ytest, pred):0:3);
|
||
end.
|