Как вычислить сходство строк во фрейме данных с неравномерным сходством между категориями атрибута?

Я вычисляю сходство строк во фрейме данных с помощью показателя сходства Гауэра, как показано ниже.

library(cluster)
myDF <- data.frame(x1 = 1:10, x2 = c(rep("a", 4), rep("b", 3), rep("c", 3)), 
                   x3 = c(rep("A", 2), rep("B", 2), "C", "D", rep("E", 4)))
similarity <- 1 - daisy(myDF, metric = "gower",
                        weights = c(1, 1, 1))

Выше я предположил, что различия между категориями во всех категориальных атрибутах (2-й и 3-й столбцы) одинаковы.

Но что, если s является неоднородной матрицей различий между 5 категориями 3-го атрибута (A, B, C, D, E):

s <- matrix(c(0.00,    0.09,    0.12,    0.10,    0.12,  
              0.09,    0.00,    0.05,    0.13,    0.16,    
              0.12,    0.05,    0.00,    0.17,    0.20,
              0.10,    0.13,    0.17,    0.00,    0.09,
              0.12,    0.16,    0.20,    0.09,    0.00),5)

Каков наилучший способ включить эту часть информации в вычислительное сходство строк этого фрейма данных через сходство Гауэра?

1 ответ

Ну, это больше не сходство Гауэра.

Но нет ничего плохого в определении вашей собственной функции расстояния

$$d(x,y)=\left(\sum_i d_i(x_i, y_i)^p\right^{1/p}$$

Где $ d_i $ - матрица расстояний категориальных значений в столбце i.

Я думаю, что такие меры довольно распространены в биоинформатике. Может быть, трудно измерить эту матрицу $ d_i $ достаточно надежной, чтобы быть полезной.

Другие вопросы по тегам