Skip to content

Feature/bkt fitting - #16

Open
mjyang00001 wants to merge 6 commits into
CAHLR:mainfrom
mjyang00001:feature/bkt-fitting
Open

Feature/bkt fitting#16
mjyang00001 wants to merge 6 commits into
CAHLR:mainfrom
mjyang00001:feature/bkt-fitting

Conversation

@mjyang00001

Copy link
Copy Markdown

No description provided.

mjyang001 added 5 commits May 15, 2026 11:43
Adds scripts for pulling student submissions, fitting Bayesian Knowledge Tracing models, and exploring knowledge components.
- fill_disqualified_kc.py: fill disqualified KCs with domain-average
  BKT params (subject-level, global fallback), with provenance + validation
- evaluate_bkt.ipynb: KC quality tiering (param flags + RMSE/AUC baseline)
- refit_merged_kc.py: refit merged typo-variant KCs
Both fit_bkt.py and fill_disqualified_kc.py now use indent=4, matching the
committed experimentalBKTParams.json so re-runs don't reformat the whole file.
Rework fill_disqualified_kc.py into the full param-write pipeline: pull the current CAHLR/OATutor-Content remote, write fitted values for 76 donor KCs (Tier 3+4) and donor-average fills for 29 disqualified KCs (Tier 1+2), handle the 7 "_in_openstax_precalc" renames, and emit per-repo files for the external Chemistry/Calbright KCs. Outputs land in bkt/output/ (nothing edited in place); defaultBKTParams.json untouched.
Document the full BKT fitting/evaluation/fill/deploy pipeline in
bkt/bkt_process.md (step-by-step, known pitfalls, current PR status),
and add a condensed overview + pointer in the top-level README.
…perimental

The OATutor content-staging cron regenerates defaultBKTParams.json on
every run and previously blind-copied it to experimentalBKTParams.json,
which would also collapse the fitted values from this repo. merge_experimental.py
keeps default as the source of truth for the KC set (so new/renamed/removed
KCs stay in sync) while applying this repo's fitted value per-KC where present.
mjyang00001 pushed a commit to mjyang00001/OATutor-CalbrightContent that referenced this pull request Jul 21, 2026
…erimental

A straight cp from Tooling's committed output decouples experimental's KC
set from default's — if default gains/renames/drops KCs, experimental goes
stale until someone reruns the fitting pipeline. Use OATutor-Tooling's
merge_experimental.py instead: default's KC set wins (stays in sync
automatically), Tooling's fitted value wins per-KC where present.

Must merge after CAHLR/OATutor-Tooling#16, which adds merge_experimental.py
and bkt/output/experimentalBKTParams.json to Tooling's main branch.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants