Анализ доли голосов за класс-победитель в R: методы и примеры кода

В этой статье блога мы рассмотрим различные методы расчета доли голосов за победивший класс в R. Мы предоставим примеры кода вместе с каждым методом, чтобы продемонстрировать, как их реализовать. Понимание доли голосов за класс-победитель имеет решающее значение для анализа и интерпретации результатов модели классификации.

Методы:

  1. Использование функции table():
    Функция table() в R может использоваться для расчета частоты предсказания каждого класса. Разделив частоту победного класса на общее количество прогнозов, мы можем получить долю голосов за победный класс.
# Sample predicted classes
predicted_classes <- c("A", "A", "B", "B", "A", "C", "C", "C")
# Calculate the proportion of votes for the winning class
class_frequency <- table(predicted_classes)
winning_class <- names(class_frequency)[which.max(class_frequency)]
proportion_votes <- class_frequency[winning_class] / sum(class_frequency)
# Print the proportion of votes for the winning class
print(proportion_votes)
  1. Использование функции prop.table():
    Функция prop.table() в R позволяет нам вычислять пропорции непосредственно из таблицы частот. Мы можем использовать его для расчета доли голосов за класс-победитель.
# Using the same predicted_classes as before
# Calculate the proportion of votes for the winning class
class_frequency <- table(predicted_classes)
proportion_table <- prop.table(class_frequency)
proportion_votes <- proportion_table[which.max(class_frequency)]
# Print the proportion of votes for the winning class
print(proportion_votes)
  1. Применение пакета dplyr:
    Пакет dplyr предоставляет удобный способ выполнения задач манипулирования данными и суммирования в R. Мы можем использовать его для группировки прогнозируемых классов, подсчета их частот и расчета доли голосует за класс-победитель.
library(dplyr)
# Using the same predicted_classes as before
# Create a data frame
df <- data.frame(predicted_classes)
# Group by predicted class, count frequencies, and calculate proportions
proportion_votes <- df %>%
  group_by(predicted_classes) %>%
  summarise(frequency = n()) %>%
  mutate(proportion = frequency / sum(frequency)) %>%
  filter(frequency == max(frequency)) %>%
  select(proportion)
# Print the proportion of votes for the winning class
print(proportion_votes$proportion)