Прежде всего я знаю, что такое евклидово расстояние и что оно делает или вычисляет между двумя векторами.
Но мой вопрос о том, как рассчитать расстояние между двумя объектами класса, например, на Java или любом другом языке ООП. Я читал довольно много материала о машинном обучении, уже написал классификатор с использованием библиотек и т.д., но я хочу знать, как рассчитывается евклидово расстояние, когда у меня есть, например, этот объект:
class Object{
String name;
Color color;
int price;
int anotherProperty;
double something;
List<AnotherObject> another;
}
Что я уже знаю (если я не ошибаюсь!), так это то, что мне нужно преобразовать этот объект в (n) вектор / массив, представляющий свойства или 'Возможности' ( называется в машинном обучении?)
Но как я могу это сделать? Это как раз этот кусок головоломки, который мне нужен, чтобы понять еще больше.
Нужно ли мне собирать все возможные значения свойства, чтобы преобразовать его в число и записать в массив / вектор?
Пример:
Я предполагаю, что вышеупомянутый объект будет представлен 6-мерным массивом или меньше на основе «функций», которые необходимы для расчета. Допустим, цвет, имя и цена - это те необходимые характеристики массива / вектора на основе следующих данных:
- цвет: зеленый (допустим, перечисление с 5 возможными значениями, где зеленый - третье)
- name: "foo" (я бы не знал, как преобразовать это, возможно, добавив ascii-код?)
- цена: 14 (взять целое число?)
будет выглядеть так?
[3,324,14]
И если я сделаю это с каждым объектом из того же класса, я смогу вычислить евклидово расстояние. Прав ли я, или я что-то неправильно понял, или это совершенно неправильно?