Liigu sisu juurde

NB-4 — IRT vs BKT

Esitusküsimus: “Miks mitte IRT? Kas see pole mitte testimise standard?”

IRTBKT
ModelidÕpilase võimekus + eseme raskusAja jooksul arenev oskuste seisund
AegHetktõmmis (ühekordne haldus)Dünaamika (ülesannete jada)
Latentne muutujaθ\theta — skalaarvõimeLtL_t — meisterlikkuse bitt
Tüüpiline kasutusSAT, GRE, diagnostikaAdaptiivne juhendamine
Tarnib”Ivan sai skaalal 78 punkti”“Ivani sulgude valdamine P=0,42”
import numpy as np
import matplotlib.pyplot as plt
from scipy.optimize import minimize

Kolme parameetriga logistika:

P(correctθ,a,b,c)=c+(1c)σ ⁣(a(θb))P(\text{correct} \mid \theta, a, b, c) = c + (1 - c) \cdot \sigma\!\left(a (\theta - b)\right)
  • θ\theta — võime;
  • aa — diskrimineerimine;
  • bb — raskusastmega kääne;
  • cc — oletusasümptoot.
def irt_3pl(theta, a, b, c):
return c + (1 - c) / (1 + np.exp(-a * (theta - b)))
# trio типичных задач
fig, ax = plt.subplots(figsize=(8, 4))
xs = np.linspace(-3, 3, 200)
for a, b, c, label in [
(1.0, -1.0, 0.1, 'легкая (b=−1)'),
(1.5, 0.0, 0.15, 'средняя (b=0)'),
(1.0, 1.5, 0.05, 'сложная (b=+1.5)'),
]:
ax.plot(xs, irt_3pl(xs, a, b, c), label=label)
ax.set_xlabel('θ — способность'); ax.set_ylabel('P(correct)')
ax.legend(); ax.grid(alpha=0.3)
plt.title('IRT 3PL — кривые задач')
plt.show()

Õpilane aadressil θ=0\theta = 0:

  • lihtne kaup ~0,65 õige;
  • keskmine ~0,50;
  • kõva ~0,13.
  • 30-minutiline test: ~20 eset, üks hetktõmmis → täpne θ\theta.
  • Standardeerimine: võrreldavad skoorid rühmade lõikes.
  • Kauba kalibreerimine: raskused märgistamise eel.

Kus IRT võitleb adaptiivse juhendamise nimel

Jaotis «Kus IRT võitleb adaptiivse juhendamise nimel»
  1. Ajalisi värskendusi pole. θ\theta on vormi ajal fikseeritud – kümme õiget vastust ei „õpeta” IRT-d; nad lihtsalt viimistlevad sama konstruktsiooni.
  2. Ei mingeid selgesõnalisi oskuste vektoreid. Üksused erinevad skalaari poolest bb, mitte mikrooskuste komplektide poolest, nagu „sulud vs märgid”.
  3. Pimeda õppimine. Harjutamisest tulenev kasv muutub θ\theta triiviks. BKT kirjutab sulgudes välja ”P(L)P(L) tõusis 0,4→0,8.”
  4. Õpetaja läbipaistmatu. "θ=0.3\theta = 0.3" tähendab vähe; ”P(L)P(L) sulud = 0,42, märgid = 0,83” on kasutatav.

Demo – miks BKT sobib dünaamikaga

Jaotis «Demo – miks BKT sobib dünaamikaga»

Simuleerige õppijat, kes paraneb korduva edu kaudu.

def bkt_update(pL, c, p={'pT':0.1,'pS':0.1,'pG':0.2}):
if c:
post = (pL*(1-p['pS'])) / (pL*(1-p['pS'])+(1-pL)*p['pG'])
else:
post = (pL*p['pS']) / (pL*p['pS']+(1-pL)*(1-p['pG']))
return post + (1-post)*p['pT']
def fit_irt_theta(answers, b=0.0, a=1.0, c=0.1):
"""МLE оценка theta при фиксированных параметрах задач."""
def neg_log_lik(theta):
p = irt_3pl(theta, a, b, c)
return -sum(np.log(p if x else 1-p) for x in answers)
res = minimize(neg_log_lik, x0=0.0, bounds=[(-4, 4)])
return res.x[0]
answers = [0, 1, 1, 0, 1, 1, 1, 1, 1, 1] # подтянулся
# BKT — состояние P(L) на каждом шаге
pL_traj = [0.2]
pL = 0.2
for a in answers:
pL = bkt_update(pL, a)
pL_traj.append(pL)
# IRT — оценка theta после 1, 2, ... наблюдений
theta_traj = []
for k in range(1, len(answers)+1):
theta_traj.append(fit_irt_theta(answers[:k]))
fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(11, 4))
ax1.plot(pL_traj, marker='o', color='#9333ea', linewidth=2)
ax1.set_title('BKT — P(L) растёт во времени')
ax1.set_xlabel('шаг'); ax1.set_ylabel('P(L)')
ax1.grid(alpha=0.3); ax1.set_ylim(0, 1)
ax2.plot(theta_traj, marker='s', color='#0ea5e9', linewidth=2)
ax2.set_title('IRT — θ-оценка плавает на одном уровне')
ax2.set_xlabel('после k наблюдений'); ax2.set_ylabel('θ MLE')
ax2.grid(alpha=0.3)
plt.tight_layout(); plt.show()

BKT tõuseb ~0,2→0,85 — õppimine nähtav. IRT θ\theta hinnang kõigub ümber platoo – sama võime eeldus.

Uurimissüsteemid (nt CMU Cognitive Tutor) hübridiseeruvad mõnikord:

  • IRT pardadiagnostika jaoks;
  • BKT pideva meisterlikkuse jälgimise jaoks.

MVP üldkulud ei ole seda väärt – pInit=0,2 + BKT piisab.

IRT vs BKT — Q&A punktid

Jaotis «IRT vs BKT — Q&A punktid»

“IRT teeb eksameid; BKT jälgib kasvu. Saadame adaptiivset õpet, mitte akrediteerimist. Lisaks räägib BKT mikrooskustest – õpetajad näevad konkreetseid lünki, mitte abstraktseid võimete skalaare.”