Как найти точность между двумя столбцами в R - PullRequest
0 голосов
/ 28 октября 2018

У меня есть два столбца: один для прогнозируемого значения и другой для истинного значения.
Я хочу рассчитать точность между этими столбцами и сделать недостающие значения засчитанными как истинные, если в обоих столбцах есть пропущенные значения.
Так когда

Pred True
1     2
2     2
NA    NA
3     2

Точность будет 50%.
Кроме того, как мне сделать то же самое со значениями символов?

Ответы [ 2 ]

0 голосов
/ 29 октября 2018

Вы можете сделать:

pred <- c(1,2,NA,3)
true <- c(2,2,NA,2)
(sum(pred==true, na.rm=T) + sum(is.na(pred) & is.na(true))) / length(pred)

То есть, добавить количество раз, когда pred и true равны sum(pred==true, na.rm=T) вместе с количеством раз, когда они оба NA значения sum(is.na(pred) & is.na(true)). Разделите на длину вектора.

0 голосов
/ 28 октября 2018

Вы можете сделать что-то вроде этого:

sum(data$Pred == data$True, na.rm = T) / nrow(data) *100

, чтобы получить точность так, как вы ее определили.Это будет работать для целых чисел и строк.Проблема в том, что вы не можете реально сравнивать NA, поэтому, если в обоих столбцах есть NA для данной строки, и вы действительно считаете это точным прогнозом, вам нужно будет подсчитать эти экземпляры отдельно.Например, вы можете просто получить объединение индексов, где оба столбца являются NA, и добавить это к сумме:

s <- sum(data$Pred == data$True, na.rm = T)
na <- length(union(which(is.na(data$Pred)), which(is.na(data$True))))
(s + na) / nrow(data) * 100
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...