Я пытаюсь создать ограничивающую рамку вокруг данного набора данных.
Поэтому моя идея состояла в том, чтобы использовать PCA. Я читал, что он не всегда находит оптимальные решения, но это не имеет значения.
Что я сделал до сих пор, так это вычислил ковариационную матрицу и использовал ее для вычисления SVD этой матрицы.
Допустим, у нас есть образец ввода, например
[40, 20], [-40, -20],[40, -20],[-40, 20],[30, 30]
Ковариационная матрица станет
[1780.0, 180.0] [180.0, 580.0]
С СВД получаю матрицу вращения U:
[0.99, 0.15] [0.15, -0.99]
и диагональная матрица D:
[1806.41, 0] [0, 553.58]
С моими собственными векторами я могу вычислить наклон линий, представляющих прямоугольник.
Теперь мне нужно получить центр PCA в исходном пространстве, а не в 0-центрированном пространстве. И мне также нужно узнать длину этих векторов.
Кто-нибудь знает, как их получить?