# 필요한 패키지 설치 install.packages("caret")
# 패키지 로드 library(caret)
# 예시 데이터 생성 # 실제 값 (True labels) actual <- factor(c('A', 'B', 'A', 'C', 'A', 'B', 'C', 'C', 'B', 'A'))
# 예측 값 (Predicted labels) predicted <- factor(c('A', 'B', 'A', 'A', 'A', 'B', 'C', 'C', 'A', 'B'))
# 혼동 행렬 계산 conf_matrix <- confusionMatrix(predicted, actual) print(conf_matrix)
# 각 클래스에 대한 민감도와 특이도 계산 함수 calculate_sensitivity_specificity <- function(conf_matrix) { sensitivity <- c() specificity <- c() for (class in levels(actual)) { tp <- conf_matrix$table[class, class] fn <- sum(conf_matrix$table[class, ]) - tp fp <- sum(conf_matrix$table[, class]) - tp tn <- sum(conf_matrix$table) - tp - fn - fp sensitivity[class] <- tp / (tp + fn) specificity[class] <- tn / (tn + fp) } return(list(sensitivity = sensitivity, specificity = specificity)) }
# 민감도와 특이도 계산 result <- calculate_sensitivity_specificity(conf_matrix) print(result$sensitivity) print(result$specificity) |
첫댓글 https://towardsdatascience.com/multi-class-classification-one-vs-all-one-vs-one-94daed32a87b
관련 내용