首页 > 解决方案 > 在 R 中定义 n 的平衡样本

问题描述

我有一个用于情绪分析的不平衡数据集,大约有 65000 个观察值(约 60000 个正面和约 5000 个负面)。这个数据集应该是平衡的,这样我就有相同数量的正面和负面观察来训练我的机器学习算法。

caret和函数downSample帮助我获得约 5000 个负面和约 5000 个正面观察(下采样到少数类)。但我喜欢恰好有 2500 个随机选择的正面观察和 2500 个随机选择的负面观察。有谁知道如何做到这一点?

标签: rr-caretsentiment-analysisdownsampling

解决方案


你只想要2500个??

require(tidyverse)
df <- data.frame(class = c(rep('POS',60000), rep('NEG',5000)), random = runif(65000))
result <- df %>% 
  group_by(class) %>% 
  sample_n(2500)
table(result$class)

推荐阅读