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