kurtulus7182 commited on
Commit
2e720cf
·
verified ·
1 Parent(s): ba02de7

v2.0: synthetic demo model (not a real-data candidate)

Browse files
Files changed (5) hide show
  1. README.md +61 -0
  2. config.json +89 -0
  3. config.schema.json +117 -0
  4. contract.json +11 -0
  5. model.onnx +3 -0
README.md ADDED
@@ -0,0 +1,61 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ language: tr
3
+ library_name: sklearn
4
+ tags:
5
+ - onnx
6
+ - tabular-classification
7
+ - education
8
+ - synthetic-demo
9
+ - logistic-regression
10
+ model-index:
11
+ - name: SE Primer Kriz Freni
12
+ results: []
13
+ ---
14
+
15
+ # SE Primer — Kriz freni model kartı
16
+
17
+ > **Sentetik demo (`synthetic-demo`):** Bu artefakt yalnız `scripts/generate_demo.py`
18
+ > tarafından üretilen sentetik veriyle eğitilmiştir. Gerçek kullanıcı verisiyle
19
+ > eğitilmedi; gerçek öğrenci başarımı, genelleme veya üretim kullanımı iddiası taşımaz.
20
+ > Gerçek veri adayı eval kapısını geçemediği için yayınlanmamıştır.
21
+
22
+ ## Amaç
23
+ Muhteşem Cuma ödeme krizi oyununda oyuncunun yönlendirici ipucu isteyip istemediğini
24
+ tahmin etmek. Lojistik regresyon + StandardScaler tek ONNX pipeline'ıdır. Ölçeklemeyi
25
+ istemci ayrıca yapmaz. Pozitif sınıf 1; karar eşiği 0.60. Sahneye özgü soru, mentorun
26
+ açılma zamanı ve deneyimli modun sayaç durdurması bu kararı kullanır.
27
+
28
+ ## Veri ve ölçüm
29
+ Güncel durum ve kesin metrikler aynı commit'teki `config.json` içindedir.
30
+ `status=synthetic-demo` ise gerçek insan başarımı **ölçülmemiştir**; sentetik doğruluk
31
+ gerçek kullanıcılarda başarı demek değildir. 240 sentetik oturumun üreticisi seed=42 ile
32
+ `scripts/generate_demo.py` dosyasında; veri sözlüğünde açık kuralı yazılıdır.
33
+ Gerçek veri adayı yalnız en az 15 tamamlanmış gerçek oturumdan eğitilebilir.
34
+ Etiket karar öncesi öz bildirimdir; modelden veya A/B sonucundan üretilmez.
35
+
36
+ Holdout oturum bazlı %25; seed=42. Test doğruluğu `p>=0.60` kararıyla hesaplanır.
37
+ Kabul kapısı accuracy>=0.75. Her iki sınıf hem eğitim hem testte bulunmalıdır.
38
+ Ayrıca holdout çoğunluk baseline'ı hesaplanır; model bunu kesin olarak aşmalıdır,
39
+ eşitlik de reddedilir. Tek sınıfı tahmin eden model yayımlanmaz.
40
+ ONNX/sklearn tüm veri ve referanslarda mutlak olasılık farkı <1e-4.
41
+ Test kümesiyle model seçimi yapılmaz; başarısızlıkta daha çeşitli veri toplanır.
42
+
43
+ ## Sözleşme ve yeniden üretim
44
+ `contract.json` eğitim öncesi özellik sırası, aralıklar ve eşiklerdir.
45
+ `config.json` giriş `[N,5] float32`, çıkış adı, sınıf sırası, metrikler, veri/model SHA256
46
+ ve bağımlılık sürümlerini içerir. Model dosyası ile config birlikte sürümlenir.
47
+ Tam bağımlılıklar `requirements-lock.txt`; eğitim komutu repo README'sinde.
48
+ Python oracle ve gerçek tarayıcı WASM'ı aynı beş referansla karşılaştırılır.
49
+
50
+ ## Sınırlar / kullanılmaması gereken durumlar
51
+ Küçük ve tek hikâyeye ait veri; tekrar oyunlarında öğrenme etkisi; öz bildirim yanlılığı.
52
+ Profil seçimi uzmanlığın nesnel ölçümü değildir. Uzun düşünmek başarısızlık değildir.
53
+ Oturum ayrımı kişi ayrımı garantilemez. Model olasılıkları kalibre edilmiş güven puanı değildir.
54
+ Öğrenci notlandırma, işe alım, kişilik/sağlık değerlendirmesi veya gerçek ödeme sistemlerinde
55
+ karar verme için kullanılmaz. İstemciye indirilen model gizli değildir.
56
+
57
+ ## Kaynaklar
58
+ - https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html
59
+ - https://scikit-learn.org/stable/modules/generated/sklearn.model_selection.GroupShuffleSplit.html
60
+ - https://onnx.ai/sklearn-onnx/auto_tutorial/plot_dbegin_options_zipmap.html
61
+ - https://onnxruntime.ai/docs/tutorials/web/deploy.html
config.json ADDED
@@ -0,0 +1,89 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "schema_version": 1,
3
+ "features": [
4
+ "seviye",
5
+ "karar_suresi_sn",
6
+ "onceki_yanlis_sayisi",
7
+ "ipucu_sayisi",
8
+ "sahne_no"
9
+ ],
10
+ "ranges": [
11
+ [
12
+ 0,
13
+ 1
14
+ ],
15
+ [
16
+ 0,
17
+ 600
18
+ ],
19
+ [
20
+ 0,
21
+ 2
22
+ ],
23
+ [
24
+ 0,
25
+ 30
26
+ ],
27
+ [
28
+ 1,
29
+ 3
30
+ ]
31
+ ],
32
+ "integer_features": [
33
+ 0,
34
+ 2,
35
+ 3,
36
+ 4
37
+ ],
38
+ "labels": {
39
+ "0": "normal_akis",
40
+ "1": "kriz_freni"
41
+ },
42
+ "decision_threshold": 0.6,
43
+ "acceptance_accuracy": 0.75,
44
+ "tolerance": 0.0001,
45
+ "seed": 42,
46
+ "model_version": "2.0.0",
47
+ "status": "synthetic-demo",
48
+ "input": {
49
+ "name": "features",
50
+ "dtype": "float32",
51
+ "shape": [
52
+ null,
53
+ 5
54
+ ]
55
+ },
56
+ "output": {
57
+ "name": "probabilities",
58
+ "positive_class_index": 1
59
+ },
60
+ "model_sha256": "c4f7734a68d93a40d114960c44b47111e950fcaef02c1db5a28a71e5ceb46289",
61
+ "data_sha256": "d1dcd344e2f7815763143fd40d984577312bed3bc04a140f9bad6caf7697df6b",
62
+ "metrics": {
63
+ "accuracy": 0.9055555555555556,
64
+ "onnx_max_abs_error": 1.3763748296646838e-07,
65
+ "confusion_matrix": [
66
+ [
67
+ 99,
68
+ 3
69
+ ],
70
+ [
71
+ 14,
72
+ 64
73
+ ]
74
+ ],
75
+ "train_sessions": 180,
76
+ "test_sessions": 60,
77
+ "train_rows": 540,
78
+ "test_rows": 180,
79
+ "real_sessions": 0
80
+ },
81
+ "split": "GroupShuffleSplit: oturum_id, holdout=0.25; test oturumlari egitimde yok",
82
+ "dependencies": {
83
+ "numpy": "2.2.6",
84
+ "scikit-learn": "1.7.2",
85
+ "skl2onnx": "1.19.1",
86
+ "onnx": "1.19.1",
87
+ "onnxruntime": "1.23.2"
88
+ }
89
+ }
config.schema.json ADDED
@@ -0,0 +1,117 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "title": "Primer v2 model config",
4
+ "type": "object",
5
+ "required": [
6
+ "schema_version",
7
+ "features",
8
+ "ranges",
9
+ "labels",
10
+ "decision_threshold",
11
+ "acceptance_accuracy",
12
+ "metrics",
13
+ "input",
14
+ "output",
15
+ "model_sha256",
16
+ "status"
17
+ ],
18
+ "properties": {
19
+ "schema_version": {
20
+ "const": 1
21
+ },
22
+ "features": {
23
+ "const": [
24
+ "seviye",
25
+ "karar_suresi_sn",
26
+ "onceki_yanlis_sayisi",
27
+ "ipucu_sayisi",
28
+ "sahne_no"
29
+ ]
30
+ },
31
+ "decision_threshold": {
32
+ "const": 0.6
33
+ },
34
+ "acceptance_accuracy": {
35
+ "const": 0.75
36
+ },
37
+ "tolerance": {
38
+ "const": 0.0001
39
+ },
40
+ "status": {
41
+ "enum": [
42
+ "synthetic-demo",
43
+ "real-data-candidate"
44
+ ]
45
+ },
46
+ "model_sha256": {
47
+ "type": "string",
48
+ "pattern": "^[a-f0-9]{64}$"
49
+ },
50
+ "input": {
51
+ "type": "object",
52
+ "required": [
53
+ "name",
54
+ "dtype",
55
+ "shape"
56
+ ],
57
+ "properties": {
58
+ "name": {
59
+ "const": "features"
60
+ },
61
+ "dtype": {
62
+ "const": "float32"
63
+ },
64
+ "shape": {
65
+ "const": [
66
+ null,
67
+ 5
68
+ ]
69
+ }
70
+ }
71
+ },
72
+ "output": {
73
+ "type": "object",
74
+ "required": [
75
+ "name",
76
+ "positive_class_index"
77
+ ],
78
+ "properties": {
79
+ "name": {
80
+ "type": "string"
81
+ },
82
+ "positive_class_index": {
83
+ "const": 1
84
+ }
85
+ }
86
+ },
87
+ "metrics": {
88
+ "type": "object",
89
+ "required": [
90
+ "accuracy",
91
+ "onnx_max_abs_error",
92
+ "real_sessions"
93
+ ],
94
+ "properties": {
95
+ "accuracy": {
96
+ "type": "number",
97
+ "minimum": 0.75,
98
+ "maximum": 1
99
+ },
100
+ "majority_baseline": {
101
+ "type": "number",
102
+ "minimum": 0,
103
+ "maximum": 1
104
+ },
105
+ "onnx_max_abs_error": {
106
+ "type": "number",
107
+ "minimum": 0,
108
+ "exclusiveMaximum": 0.0001
109
+ },
110
+ "real_sessions": {
111
+ "type": "integer",
112
+ "minimum": 0
113
+ }
114
+ }
115
+ }
116
+ }
117
+ }
contract.json ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "schema_version": 1,
3
+ "features": ["seviye", "karar_suresi_sn", "onceki_yanlis_sayisi", "ipucu_sayisi", "sahne_no"],
4
+ "ranges": [[0, 1], [0, 600], [0, 2], [0, 30], [1, 3]],
5
+ "integer_features": [0, 2, 3, 4],
6
+ "labels": {"0": "normal_akis", "1": "kriz_freni"},
7
+ "decision_threshold": 0.6,
8
+ "acceptance_accuracy": 0.75,
9
+ "tolerance": 0.0001,
10
+ "seed": 42
11
+ }
model.onnx ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:c4f7734a68d93a40d114960c44b47111e950fcaef02c1db5a28a71e5ceb46289
3
+ size 541