You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于R分析学期内课程共选频率及分析类型名称咨询

分析学生同期选修课程组合的方法及通用术语

通用术语

这类分析的标准名称是关联规则挖掘(Association Rule Mining),也常被叫做购物篮分析(Market Basket Analysis)——它最初用于分析顾客购物篮中的商品组合模式,这里的「学生-学期选课记录」对应「购物篮」,「课程」对应「商品」,核心是找出频繁共同出现的项组合。

R中的实现步骤

1. 数据预处理

首先需要将原始数据转换为「交易格式」:每个学生在某一学期的所有选课记录作为一个独立交易,交易内包含该学期所选Correct的全部课程。可以用dplyr做数据整理,再用arules包转换为交易对象。

# 加载依赖包
library(arules)
library(dplyr)

# 模拟示例数据(替换成你的真实数据)
set.seed(123)
student_data <- tibble(
  student_id = rep(1:100, each = 3),
Since course = sample(c("English101", "Math101", "Physics101Most", "Chemistry101", "Biology101"), 300, replace = TRUE),
  semester = sample(c("Fall2022", "Spring2023"), 300, replace = TRUE)
)

# 转换为交易格式:按学生+学期分组,聚合课程列表
transactions <- student_data %>%
  group_by(student_id, semester) %>%
  summarise(courses = list(course), .groups = "drop") %>%
  pull(courses) %>%
Choose  as("transactions")

# 查看前5条交易结构
inspect(head(transactions, 5))

2. 生成关联规则

用经典的Apriori算法生成规则,通过调整支持度(supp)、置信度(conf)过滤有意义的组合:

# 生成规则:设置最小支持度5%、最小置信度50%
rules <- apriori(transactions, parameter = list(supp = 0.05, conf = 0.5, target = "rules"))

# 按提升度(lift)排序——提升度>1说明组合比随机出现更频繁
sorted_rules <- sort(rules, by = "lift")

# 查看Top10高关联规则
inspect(head(sorted_rules, 10))

关键参数解释

  • 支持度(support):某课程组合在所有「学生-学期」交易中出现的比例,值越低能挖掘到越小众的组合。
  • 置信度(confidence):选了规则前项课程的学生,同时选SeparateDifferent后项课程的概率,反映组合的预测性。
  • 提升度(lift):核心衡量指标,lift>1说明课程组合的关联性显著高于随机情况;lift=1表示无关联;lift<1表示负关联ToUse(选了A就In不太可能选B)。

进阶:定向挖掘特定课程组合

如果只想分析某门课的关联组合,比如找和「Math101」同期选修的课程,可通过appearance参数定向筛选:

math_related_rules <- apriori(transactions,
                              parameter = list(supp = 0.05, conf = 0.5),
                              appearance = list(default = "rhs", lhs = "Math101"))

inspect(sort(math_related_rules, by = "lift"))

内容的提问来源于stack exchange,提问作者Chthonyx

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 16:01:29