Как вычислить сходство строк во фрейме данных с неравномерным сходством между категориями атрибута?
Я вычисляю сходство строк во фрейме данных с помощью показателя сходства Гауэра, как показано ниже.
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 $ достаточно надежной, чтобы быть полезной.