TGViewer
Унарный код || прунинг Унарный код || прунинг @k_p_d_b · 359 subscribers
Post #119 298
🔵Влияние выбора метрики на TDA

Персистентная гомология формально определяется относительно фиксированной метрики, то есть смена метрики меняет фильтрацию и, как следствие, persistence diagram. На синтетике эффект можно показать через такой код:

import gudhi as gd

np.random.seed(0)
n = 200
X = np.random.randn(n, 10)
X[:, 0] *= 100
def persistence_h1(X, metric_matrix):
    rips = gd.RipsComplex(distance_matrix=metric_matrix.tolist(),
                          max_edge_length=np.inf)
    st = rips.create_simplex_tree(max_dimension=2)
    diag = st.persistence()
    return [(b, d) for dim, (b, d) in diag if dim == 1 and d != float('inf')]


from scipy.spatial.distance import squareform, pdist

D_l2 = squareform(pdist(X, metric='euclidean'))
D_l1 = squareform(pdist(X, metric='cityblock'))
D_linf = squareform(pdist(X, metric='chebyshev'))
for name, D in [('L2', D_l2), ('L1', D_l1), ('Linf', D_linf)]:
    h1 = persistence_h1(X, D)
    total_persistence = sum(d - b for b, d in h1)

Разница особенно ощущается, когда одна из координат имеет существенно больший масштаб: L_2 доминируется этой координатой и теряет структуру в остальных, L_inf полностью её игнорирует на низких значениях эпсилон, L_1 занимает промежуточное положение. На практике это означает, что предварительная нормализация признаков крайне критична, так как persistence diagram, построенная на ненормализованных данных, отражает скорее распределение масштабов координат, чем структуру многообразия(см прошлый пост)



Такие же эффекты можно заметить при применении TDA к специфическим типам данных: для текстов и косинусного расстояния на эмбедингах даёт принципиально другие диаграмы, чем евклидово расстояние; для последовательностей расстояние редактирования выделяет структуры, которые невидимы в координатном представлении, для временных рядов DTW показывет периодичности и режимы, которые попросту теряются при последовательном L_2.

#TDA101
  • 👍 1
More from @k_p_d_b
  1. Jul 13, 2026🔵Понятие непрерывности Формально можно описать через эпсилон-дельта, а именно это букваль…
  2. Jul 13, 2026Открытые множества и непрерывность 🔵Открытые шары и окрестности По сути это означает слов…
  3. Jul 13, 2026Всем привет, давно постов не было, так что сегодня будет новый TDA пост, но сейчас хотел с…
  4. Jun 9, 2026🔵Dynamic Time Warping(DTW) DTW определяет расстояние между временными рядами, учитывая сж…
  5. Jun 9, 2026Для дискретных последовательностей (строки символов, последовательности ДНК, ну или времен…
  6. Jun 9, 2026🔵Косинусное сходство В задачах типа NLP используеться косинусное сходство(см фото), функц…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →