pascalabcnet/InstallerSamples/MachineLearning/01_GettingStarted/01_FirstClassification_DataFrame.pas

39 lines
1.5 KiB
ObjectPascal
Raw Normal View History

// Первый пример классификации.
//
// В этом примере:
// 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, 1);
// Создаём модель логистической регрессии
var model := new LogisticRegression;
// Обучаем модель на обучающей выборке
model.Fit(Xtrain, ytrain);
// Получаем предсказания для тестовой выборки
var pred := model.Predict(Xtest);
// Считаем долю правильных ответов
Println('Точность:', Metrics.Accuracy(ytest, pred):0:3);
end.