Базовая терминология ML

Маленький словарь, который превратит непонятные термины в привычные слова.

Дальше эти слова будут встречаться постоянно. Разберём их на одном сквозном примере: предсказываем цену квартиры.

Датасет, объекты, признаки, метки

Датасет (dataset) — таблица с данными, на которых учится модель. Строки — объекты, столбцы — признаки (и метка).

Представьте таблицу квартир. Каждая строка — один объект (одна квартира). Столбцы делятся на две части:

  • Признаки (features) — характеристики объекта, по которым делаем предсказание: площадь, этаж, число комнат, расстояние до метро. Их часто обозначают буквой X.
  • Метка / целевая переменная (label, target) — то, что хотим предсказать: цена квартиры. Её обозначают буквой y.
ПлощадьКомнатыДо метро, минЦена (метка)
401108 млн
602513 млн
8031515 млн

Первые три столбца — признаки (X), последний — метка (y).

Модель, обучение, инференс

  • Модель (model) — то, что связывает признаки с предсказанием. По сути это функция: подаёшь признаки квартиры — получаешь оценку цены.
  • Обучение (training, fit) — процесс настройки модели по датасету. Модель «смотрит» на примеры с известными ответами и подбирает внутренние параметры так, чтобы её предсказания были как можно ближе к правде.
  • Инференс / предсказание (inference, predict) — применение уже обученной модели к новым данным, для которых ответа ещё нет.

Аналогия: обучение — это как студент решает задачник с ответами в конце и учится на них. Инференс — это экзамен: новые задачи, ответы он выдаёт сам.

Как это выглядит в коде

Почти все ML-библиотеки следуют одному шаблону: сначала fit (обучить), потом predict (предсказать). Этот пример — иллюстрация (библиотека scikit-learn в браузере не запустится), но запомните схему — она везде одинаковая.

# Иллюстрация. Запоминаем шаблон fit / predict
from sklearn.linear_model import LinearRegression

X = [[40, 1, 10], [60, 2, 5], [80, 3, 15]]   # признаки
y = [8, 13, 15]                                # метки (цена, млн)

model = LinearRegression()
model.fit(X, y)                 # ОБУЧЕНИЕ на известных примерах

new_flat = [[55, 2, 7]]
price = model.predict(new_flat) # ИНФЕРЕНС: предсказание для новой квартиры
print(price)

Признаки и метки своими руками

Чтобы термины не остались абстрактными, посчитаем кое-что без всяких библиотек — на чистом Python. Возьмём столбец «площадь» и найдём по нему простую статистику. Этот код реально запускается:

# Признак "площадь" из нашего датасета
areas = [40, 60, 80]
prices = [8, 13, 15]   # метки, млн руб.

# Простейшая оценка: цена за квадратный метр у каждого объекта
for a, p in zip(areas, prices):
    per_m2 = p * 1_000_000 / a
    print(f"Площадь {a} м2 -> {per_m2:.0f} руб/м2")

avg_area = sum(areas) / len(areas)
print("Средняя площадь:", avg_area, "м2")

Вывод:

Площадь 40 м2 -> 200000 руб/м2
Площадь 60 м2 -> 216667 руб/м2
Площадь 80 м2 -> 187500 руб/м2
Средняя площадь: 60.0 м2

Итог

  • Датасет — таблица: строки-объекты, столбцы-признаки и метка.
  • Признаки (X) — входные характеристики; метка (y) — то, что предсказываем.
  • Модель связывает X и y; обучение настраивает её, инференс применяет к новым данным.
  • Стандартный шаблон в коде: сначала fit, потом predict.
Проверьте себя
1. Что такое признаки (features) в машинном обучении?
AТо, что мы хотим предсказать
BВходные характеристики объекта, по которым делается предсказание
CНазвание модели
DОшибка предсказания
2. Чем обучение (training) отличается от инференса (inference)?
AЭто синонимы
BОбучение настраивает модель по примерам с ответами, инференс применяет готовую модель к новым данным
CИнференс происходит до обучения
DОбучение не требует данных
3. В таблице квартир столбец «цена», которую мы предсказываем, — это:
AПризнак (feature)
BМетка / целевая переменная (label, target)
CОбъект
DМодель
Поддержать проект