SE Primer v2 — kötü sona gidiş riski (v2.0-rc1)

Seçimli hastane krizi oyununda oyuncunun davranışından (tereddüt, seçim değiştirme, ipucu, riskli seçimler) oturumun KÖTÜ sonla bitme olasılığını tahmin eder. Yalnız bu oyun içindir; kişiyi değerlendirmek için KULLANILMAZ.

Amaç

SE Primer, yazılım mühendisi adayları için seçimli bir hastane krizi hikâyesidir. Model, her karardan sonra oyuncunun o ana kadarki davranışından oturumun KÖTÜ sonla bitme olasılığını verir. p ≥ 0.5 ise oyun müdahale eder: Mentor Deniz Sokratik bir soru sorar, 60 sn süre baskısı kalkar, sonuç açıklamaları derinleşir.

Kullanılmaması gereken durumlar

  • Kişiyi değerlendirmek, notlamak, işe almak veya "yetenekli/yeteneksiz" diye sınıflandırmak için.
  • Bu oyunun dışındaki herhangi bir senaryo, sahne sayısı veya seçenek düzeni için (özellikler bu oyuna özgü).
  • Gerçek bir olay yönetiminde (incident) nöbetçi mühendisin performansını tahmin etmek için.

Model

  • Pipeline(StandardScaler → LogisticRegression(class_weight="balanced")), seed = 13
  • Eğitim: Python 3.12, scikit-learn 1.9.1; ONNX opset 17 (skl2onnx)
  • Girdi input float32 [n, 8], çıktı probabilities float32 [n, 2] (sıra: classes = ['0', '1'])
# Özellik Anlamı Birim
0 sahne_no Kararın verildiği sahne (1–5) sıra
1 seviye Girişte beyan edilen seviye: 0 yeni, 1 orta, 2 deneyimli kategori
2 karar_suresi_sn Sahne açılışından onaya kadar geçen süre (tereddüt) saniye
3 ilk_tiklama_sn Sahne açılışından ilk seçenek tıklamasına kadar geçen süre saniye
4 secim_degistirme Onaydan önce seçimin kaç kez değiştirildiği adet
5 ipucu_goruldu Bu sahnede tutor ipucu görüldü mü 0/1
6 onceki_riskli Bu karardan önceki riskli seçim sayısı adet
7 bu_secim_riskli Bu kararda riskli seçenek mi onaylandı 0/1

Standartlaştırılmış katsayılar (büyükten küçüğe; + kötü son riskini artırır):

Özellik Katsayı
onceki_riskli +3.738
sahne_no -2.799
bu_secim_riskli +1.440
karar_suresi_sn +0.845
ipucu_goruldu +0.294
seviye -0.224
ilk_tiklama_sn +0.003
secim_degistirme +0.001

Veri

  • sentetik: 300 oturum / 1500 karar
  • Bölme: GroupShuffleSplit(oturum, test=0.3), random_state=13 · eğitim 210 / test 90 oturum
  • Veri dosyası sha256: 4fe100f93a3884f8… (sözlük: data/SOZLUK.md GitHub reposunda)
  • Sentetik üretici kuralı ve tohumu: data/veri_hazirla.py başındaki açıklama

Metrikler (test kümesi, oturum bazlı hold-out)

Metrik Değer Kabul eşiği (spec.md, eğitimden önce)
ROC-AUC 0.9594 ≥ 0.75
Recall (kötü son) @ p≥0.5 0.897 ≥ 0.7
Precision (kötü son) 0.8 —
Accuracy 0.88 —
Brier skoru 0.0845 — (düşük iyi)
AUC, yalnız sahne 1–2 (erken uyarı) 0.8864 —
AUC, yalnız gerçek oturumlar — — (az veri, güven aralığı geniş)
ONNX ↔ sklearn maks. fark 1.6e-07 ≤ 0.0001

Sınırlar ve dürüst notlar

  • Etiket büyük ölçüde seçimlerden gelir. Son, riskli seçim sayısıyla belirlenir; bu yüzden onceki_riskli ve bu_secim_riskli en güçlü özelliklerdir. Modelin katkısı, aynı seçimi yapan iki oyuncuyu davranışlarıyla (tereddüt, değiştirme) ayırabilmesidir: hızlı riskli seçim p≈0.20, 45 sn tereddütlü aynı seçim p≈0.88 (bkz. tests/parite.json).
  • Sentetik veri ağırlıklı. Gerçek oturum sayısı küçüktür; sentetik üretici bizim varsayımlarımızı taşır (ör. "bocalayan oyuncu daha uzun düşünür"). Gerçek davranış farklıysa model yanılır. Gerçek verideki AUC ayrıca raporlanır ve yeni sürüm kararı ona göre verilir.
  • Geri besleme döngüsü: Model müdahale ettiğinde oyuncu daha az kötü sona gider; bu oturumlar etiket olarak kullanılırsa model kendi etkisini öğrenir. Bu yüzden eğitim verisi yalnız Veri Toplama Modu'ndan (model gölgede, oyunu etkilemiyor) toplanır.
  • Tarayıcı ve cihaz hızı karar süresini etkileyebilir; mobilde dokunma daha yavaş olabilir.
  • Model dosyası istemciye iner (public). Kişisel veriyle eğitilmediği için kabul edilebilir.

Kullanım

// onnxruntime-web
const s = await ort.InferenceSession.create("https://huggingface.co/<repo>/resolve/<commit>/model.onnx");
const x = new ort.Tensor("float32", Float32Array.from([2, 2, 45, 12, 3, 0, 0, 1]), [1, 8]);
const p = (await s.run({ input: x })).probabilities.data[1]; // ≈ 0.88
Downloads last month
123
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support