Перейти к содержимому

Наборы данных

Библиотека ML PascalABC.NET содержит встроенные наборы данных для учебных примеров, демонстраций и проверки моделей.

Они позволяют сразу перейти к анализу данных и машинному обучению: не нужно искать CSV-файлы, приводить столбцы к нужным типам и вручную описывать, какой столбец является целевым.

Датасет в ML PascalABC.NET — это не просто таблица.

Обычно датасет содержит:

  • таблицу данных DataFrame;
  • список признаков;
  • целевой столбец, если он есть;
  • тип задачи;
  • типы столбцов;
  • список категориальных столбцов;
  • описания и переводы.

Например, у датасета может быть заранее указано, какие столбцы являются признаками, а какой столбец нужно предсказывать.

var ds := Datasets.MoscowHousing;
var df := ds.Data;
var features := ds.Features;
var target := ds.Target;

Здесь ds — датасет с метаданными, а df — сама таблица.

Встроенные датасеты делятся на две группы.

Реальные датасеты хранятся в подготовленных CSV-файлах. Это таблицы с осмысленными данными: квартиры, города, автомобили, пассажиры и т.п.

Синтетические датасеты создаются программно. Они нужны для учебных задач, когда важно получить данные с заранее понятной структурой: несколько кластеров, две луны, круги, спираль или данные для регрессии.

Все стандартные CSV-датасеты хранятся в папке Files\Datasets.

Их можно загрузить по имени файла:

var ds := Datasets.Load('moscow_housing');
var df := ds.Data;

Но обычно удобнее использовать готовый метод:

var ds := Datasets.MoscowHousing;
var df := ds.Data;

Оба варианта дают датасет с данными и метаданными. Второй вариант короче и лучше читается в учебных программах.

Встроенные датасеты специально подобраны для обучения.

В них есть разные учебные ситуации:

  • маленькие датасеты для первых шагов;
  • более крупные датасеты для сравнения моделей;
  • числовые и категориальные признаки;
  • пропущенные значения;
  • задачи классификации, регрессии и кластеризации;
  • данные для визуализации.

Это позволяет изучать машинное обучение постепенно: от простого просмотра таблицы до обучения моделей, оценки качества и построения конвейеров.

Часть датасетов имеет русскую основу.

Например:

  • MoscowHousing — данные о московских квартирах;
  • RussianCities — данные о городах России.

Часть датасетов адаптирована для русскоязычного обучения.

Например, TitanicRu содержит русскоязычные значения в важных столбцах. В UsedCarsPrice используются привычные единицы измерения: пробег в километрах, расход топлива в литрах на 100 км.

Такие данные проще читать и использовать в примерах: смысл столбцов понятен сразу, а единицы измерения привычны.

ДатасетТип задачиДля чего подходит
Irisклассификацияпервый классический пример классификации
MnistSmallклассификацияраспознавание рукописных цифр
MoscowHousingрегрессияпредсказание цены квартиры
RussianCitiesкластеризациягруппировка городов по признакам
TitanicRuклассификациятабличные данные с категориями и пропусками
UsedCarsPriceрегрессияпредсказание цены автомобиля

На страницах отдельных датасетов описаны их назначение, признаки, целевая переменная и несколько характерных примеров.

Синтетические датасеты создаются с помощью специальных генераторов.

Например:

var (X, y) := Datasets.MakeBlobs(
n := 300,
centers := 3,
seed := 42
);

Такие данные особенно удобны для визуализации и объяснения алгоритмов.

Основные генераторы:

ГенераторДля чего подходит
MakeBlobsкластеры точек
MakeMoonsкластеры сложной формы
MakeRegressionучебная регрессия
MakeCirclesкруговые структуры
MakeSpiralспиральные данные

Дальше можно перейти к отдельным страницам:

  1. Iris
  2. MNIST Small
  3. MoscowHousing
  4. RussianCities
  5. TitanicRu
  6. UsedCarsPrice
  7. Синтетические датасеты