Что такое вектор: точка, стрелка и список чисел

Вектор — это одновременно стрелка в пространстве и список чисел; в ML он описывает один объект через его признаки.

Вектор — упорядоченный список чисел (координат). Геометрически это стрелка из начала координат в точку с этими координатами.

Два взгляда на одно и то же

Слово «вектор» пугает, пока не увидишь, что за ним стоят две простые картинки, и они про одно.

  • Геометрический взгляд: вектор — стрелка. У неё есть длина и направление. Вектор (3, 4) на плоскости — это стрелка из точки (0, 0) в точку (3, 4).
  • Алгебраический взгляд: вектор — просто список чисел [3, 4]. Каждое число — координата вдоль своей оси.

В машинном обучении мы почти всегда работаем со вторым взглядом (список чисел), но держим в голове первый (геометрию), потому что именно он даёт интуицию: «близкие» объекты — это стрелки, смотрящие примерно туда же.

Объект как вектор признаков

Вот центральная идея всего ML. Любой объект мы описываем числами — признаками (features), — и складываем их в вектор. Квартиру можно описать вектором [площадь, этаж, число_комнат, расстояние_до_метро]. Тогда квартира — это точка в четырёхмерном пространстве. Похожие квартиры окажутся рядом, непохожие — далеко. Вся геометрия векторов начинает работать на нас: «расстояние», «угол», «направление» обретают смысл «похожести» и «различия».

# Один объект = один вектор признаков (список чисел)
flat = [42.0, 5, 2, 800]   # площадь, этаж, комнаты, метро (м)

print("Вектор квартиры:", flat)
print("Размерность (число признаков):", len(flat))
print("Признак 'площадь':", flat[0])
print("Признак 'комнаты':", flat[2])

Вывод:

Вектор квартиры: [42.0, 5, 2, 800]
Размерность (число признаков): 4
Признак 'площадь': 42.0
Признак 'комнаты': 2

Размерность и зачем она важна

Размерность вектора — это сколько в нём чисел. Вектор из 2 чисел живёт на плоскости (2D), из 3 — в обычном пространстве (3D), из 784 — в 784-мерном пространстве (так кодируют картинку 28×28 пикселей в задаче распознавания цифр). Рисовать выше 3D мы не умеем, но вся арифметика работает одинаково в любой размерности — в этом сила алгебраического взгляда.

Где встречаетсяЧто вектор описываетРазмерность
Координаты на картеширота, долгота2
Цвет пикселяR, G, B3
Картинка 28×28яркость каждого пикселя784
Эмбеддинг словаскрытые смыслы300–1536

Представление в коде

В чистом Python вектор — это обычный список list. Этого достаточно, чтобы реализовать всю линейную алгебру вручную, что мы и будем делать. В реальных проектах берут библиотеку numpy (её массивы быстрее и удобнее), но математика под капотом — ровно та же.

# Тот же вектор в numpy (в браузере не запустится — это для практики)
import numpy as np
flat = np.array([42.0, 5, 2, 800])
print(flat.shape)   # (4,)

Итог

  • Вектор — это стрелка (геометрия) и список чисел (алгебра) одновременно.
  • В ML объект описывается вектором признаков; число признаков — это размерность.
  • В коде вектор — обычный list; вся арифметика работает в любой размерности.
Проверьте себя
1. Что такое размерность вектора?
AЕго длина (норма)
BКоличество чисел (координат) в нём
CУгол наклона стрелки
DСумма всех координат
2. Почему в ML объект удобно представлять вектором признаков?
AЧтобы объект занимал меньше памяти
BЧтобы к похожести объектов применить геометрию: расстояния и углы
CПотому что Python не умеет работать с текстом
DЧтобы обязательно использовать numpy
3. Вектор [3, 4] — это...
Aстрелка из (0,0) в точку (3,4) и список из двух координат
Bтолько число 7
Cматрица 2×2
Dтри отдельных вектора
Поддержать проект