У меня есть фрейм данных df
, и я хотел бы рассчитать условную энтропию на основе 2 столбцов.
df<-structure(list(Col1 = structure(1:10, .Label = c("A", "B", "C",
"D", "E", "F", "G", "H", "I", "J"), class = "factor"), Col2 = c(1,
4, 5, 3, 6, 3, 1, 3, 6, 7)), .Names = c("Col1", "Col2"), row.names = c(NA,
-10L), class = "data.frame")
Я знаю, как рассчитать энтропию, скажем, H (X) для случайно выбранного значения в Col2, используя следующий код:
vec<-as.vector(df$Col2)
freq <- table(vec)/length(vec)
vector1 <- as.data.frame(freq)[,2]
#Entropy
-sum(vector1 * log2(vector1))
Теперь, как мне поступить с вычислениемусловная энтропия на основе Col 1 и Col 2.Допустим, Y обозначает Col1 и, следовательно, я хотел бы вычислить H (X | Y)