Вычислить условную энтропию в R - PullRequest
0 голосов
/ 14 сентября 2018

У меня есть фрейм данных 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)

...