Ders 13 / 13
Model Emekliye Ayırma
Emekliye ayırma kararının hangi ölçüyle verildiğinin ve modeli kaldırmanın geriye dönük ne bıraktığının sayılması: gösterge ölçütü iki senaryonun ikisinde de 2026-10'da ateşler, birinde emeklilik haksızdır çünkü isabet 0,9700'den 0,9800'e gitmiştir; isabet ölçütü zararsız kaymada hiç ateşlemez ve zararlı kaymada 2026-09'daki bozulmayı 2026-11'de gösterir, iki dönem geç; aday karşılaştırma ölçütü veri kaymasında 0,0000, kavram kaymasında 0,0900 üstünlük ölçer ve iki senaryoyu ayıran tek ölçüttür. Kaldırma sonrası karar kaydı olmadan altı dönemin altısı açıklanamaz kalır; karar kaydı varken model sürüm kaydı silindiğinde 1200 tahmin okunur ama gerekçesi hesaplanan 0'dır. Ders kurs ve müfredat kapanışıdır.
İçindekiler
Bir önceki dersin tablosunda sonun sütunu eksikti: bir modelin ne zaman biteceği hiçbir yerde yazılı değildi. Bu ders iki soru sorar — hangi sayı kaldırmayı haklı çıkarır, kaldırma geriye dönük ne bırakır.
- MY53. Kaynak, hat, model ve iki kayma kurgudur; hiçbir ürün, servis ya da kurum çağrılmaz. Tohum 20260218.
- MY54. Model
(0.6, 0.0, 4), karar eşiği 18, dengeli isabet 0,9864; izleme altı dönem, taban sınıf oranı 0,5342, adım 0,0050, etiket iki dönem gecikmeli. - MY55. Veri kaymasında girdi kayar ve kural aynı kalır; kavram kaymasında girdi aynı kalır ve kural değişir (eşik 30’dan 27’ye).
- MY56. Üç ölçüt sınanır: gösterge (tahmin payı tabandan 0,05 sapar), isabet eşiği (dönem isabeti 0,95 altına iner), aday karşılaştırma (üstünlük sıfırdan büyük).
- MY57. Kaldırma, ağırlık ve eşik kaydının çözülemez olmasıdır; gerekçesi
hesaplanamayan dönem açıklanamaz sayılır. Emeklilik
2026-11, itiraz ve saklama üçer dönem.
Emekliye Ayırma Kararının Ölçüsü
İlk blok modeli ve iki kaymayı kurar, üç ölçütü ateşler.
# KURGUDUR. Kaynak , hattin tuketim asamasi , oznitelik yolu , esik modeli , # iki kayma ve emeklilik olcutleri ders icinde uretilir; hicbir urun , servis # ya da kurum cagrilmaz. Tohum 20260218. TOHUM, M32 = 20260218, 0xFFFFFFFF def uretec(t): x = ((t ^ (t >> 16)) * 2246822507) & M32 x = ((x ^ (x >> 13)) * 3266489909) & M32 s = [(x ^ (x >> 16)) & M32] def sonraki(): s[0] = (s[0] * 1664525 + 1013904223) & M32 return s[0] / 4294967296 return sonraki BOLGE, TIP = ["dogu", "bati", "kuzey", "guney", "merkez"], ["mesken", "isyeri"] DONEM = [f"2026-{a:02d}" for a in range(1, 13)] ABONE = {} for i in range(200): r = uretec(TOHUM + 37 * i) ABONE[f"A{i + 1:03d}"] = {"bolge": BOLGE[int(r() * 5)], "tip": TIP[int(r() * 2)], "baslangic": 10000 + int(r() * 60000)} def satirlar(): ham = [] for i, (ab, a) in enumerate(ABONE.items()): e = a["baslangic"] for d in DONEM: r = uretec(TOHUM + 101 * i + 7 * DONEM.index(d)) e += 4 + int(r() * 46) ham.append({"abone": ab, "donem": d, "bolge": a["bolge"], "tip": a["tip"], "endeks": e}) t = {(k["abone"], k["donem"]): k for k in ham} return [dict(k, m3=k["endeks"] - t[(k["abone"], DONEM[DONEM.index(k["donem"]) - 1])] ["endeks"]) for k in ham if DONEM.index(k["donem"])] def oznitelikler(kayitlar): """Agirliktan bagimsizdir , bir kez hesaplanir.""" ab, bo = {}, {} for k in sorted(kayitlar, key=lambda k: DONEM.index(k["donem"])): ab.setdefault(k["abone"], []).append((DONEM.index(k["donem"]), k["m3"])) bo.setdefault(k["bolge"], []).append((DONEM.index(k["donem"]), k["m3"])) def ort(dizi, i): s = [v for d, v in dizi if d < i] return round(sum(s) / len(s), 4) if s else 0.0 return {(k["abone"], k["donem"]): { "abone_ort": ort(ab[k["abone"]], DONEM.index(k["donem"])), "bolge_ort": ort(bo[k["bolge"]], DONEM.index(k["donem"])), "isyeri": 1 if k["tip"] == "isyeri" else 0} for k in kayitlar} IZGARA = [(a, b, c) for a in (0.6, 0.8, 1.0) for b in (0.0, 0.2, 0.4) for c in (0, 4, 8)] KARAR_IZGARA = (18, 22, 26, 30, 34) IZLEME, GECIKME = DONEM[6:], 2 KURAL_ESIK, KURAL_ISYERI, ISABET_ESIGI = 30, 6, 0.95 def puan(o, w): return w[0] * o["abone_ort"] + w[1] * o["bolge_ort"] + w[2] * o["isyeri"] def tahmin(o, w, karar): return 1 if puan(o, w) > karar else 0 def etiket(o, esik=KURAL_ESIK): return 1 if o["abone_ort"] + KURAL_ISYERI * o["isyeri"] > esik else 0 def egit(kayitlar, oz, donemler, etiketler=None): """Olcut dengeli isabet; karar esigi AYRI bir ayardir ve aranir.""" kume = [k for k in kayitlar if k["donem"] in donemler] en = (-1.0, None, None) for w in IZGARA: for karar in KARAR_IZGARA: dp = dn = yp = yn = 0 for k in kume: c = (k["abone"], k["donem"]) t = tahmin(oz[c], w, karar) g = etiketler[c] if etiketler else etiket(oz[c]) dp, yp, yn, dn = (dp + (t and g), yp + (t and not g), yn + (not t and g), dn + (not t and not g)) d = (dp / (dp + yn) if dp + yn else 0.0) + (dn / (dn + yp) if dn + yp else 0.0) if d / 2 > en[0]: en = (d / 2, w, karar) return {"agirlik": en[1], "karar_esigi": en[2], "dengeli": round(en[0], 4)} def olc(kayitlar, m, oz, donem, etiketler=None): kume = [(k["abone"], k["donem"]) for k in kayitlar if k["donem"] == donem] t = [tahmin(oz[c], m["agirlik"], m["karar_esigi"]) for c in kume] g = [etiketler[c] if etiketler else etiket(oz[c]) for c in kume] return (round(sum(t) / len(t), 4), round(sum(1 for a, b in zip(t, g) if a == b) / len(t), 4)) TEMIZ = satirlar() OZ = oznitelikler(TEMIZ) M = egit(TEMIZ, OZ, DONEM[1:9]) # KURGU veri kaymasi: girdi kayiyor , kural ayni. b = DONEM.index("2026-09") KAYAN = [dict(k, m3=round(k["m3"] * (1 + 0.06 * (DONEM.index(k["donem"]) - b + 1)), 4)) if DONEM.index(k["donem"]) >= b and k["tip"] == "isyeri" else dict(k) for k in TEMIZ] OZ_K = oznitelikler(KAYAN) # KURGU kavram kaymasi: girdi AYNI , kural degisiyor (esik 30'dan 27'ye iniyor). KAVRAM = {(k["abone"], k["donem"]): etiket( OZ[(k["abone"], k["donem"])], 27 if DONEM.index(k["donem"]) >= b else KURAL_ESIK) for k in TEMIZ} p1 = sum(etiket(OZ[(k["abone"], k["donem"])]) for k in TEMIZ if k["donem"] in IZLEME) / 1200 print(f"model {M['agirlik']} karar esigi {M['karar_esigi']} dengeli {M['dengeli']} ," f" taban sinif orani {round(max(p1, 1 - p1), 4)} , adim {round(1 / 200, 4)}") print("\ndonem veri: pay isabet | kavram: pay isabet") SENARYO = {"veri": (KAYAN, OZ_K, None), "kavram": (TEMIZ, OZ, KAVRAM)} OLCUM = {ad: [(d,) + olc(k, M, o, d, e) for d in IZLEME] for ad, (k, o, e) in SENARYO.items()} for i, d in enumerate(IZLEME): print(f"{d} {OLCUM['veri'][i][1]:>9} {OLCUM['veri'][i][2]:>6} |" f" {OLCUM['kavram'][i][1]:>11} {OLCUM['kavram'][i][2]:>6}") print(f"\n{'olcut':<37}{'senaryo':>7} {'atesleyen':>9} {'bozulma':>7}" f" {'gecikme':>7} {'hakli':>5}") for ad, (kay, oz, et) in SENARYO.items(): taban = OLCUM[ad][1][1] gost = [d for d, p, _ in OLCUM[ad] if abs(p - taban) / taban > 0.05] dus = [d for d, _, i in OLCUM[ad] if i < ISABET_ESIGI] gor = DONEM[DONEM.index(dus[0]) + GECIKME] if dus else "-" aday = egit(kay, oz, IZLEME, et) ust = round(olc(kay, aday, oz, "2026-12", et)[1] - OLCUM[ad][-1][2], 4) for olcut, ates, gec in (("gosterge (pay 0,05)", gost[0] if gost else "-", "-"), (f"isabet esigi {ISABET_ESIGI}", gor, GECIKME if dus else "-"), (f"aday karsilastirma (ustunluk {ust})", gor if ust > 0 else "-", GECIKME if ust > 0 else "-")): h = "hayir" if (ates != "-" and not dus) else ("evet" if ates != "-" else "-") print(f"{olcut:<37}{ad:>7} {str(ates):>9} {str(dus[0]) if dus else '-':>7}" f" {str(gec):>7} {h:>5}")
model (0.6, 0.0, 4) karar esigi 18 dengeli 0.9864 , taban sinif orani 0.5342 , adim 0.005 donem veri: pay isabet | kavram: pay isabet 2026-07 0.455 0.97 | 0.455 0.97 2026-08 0.47 0.97 | 0.47 0.97 2026-09 0.455 0.99 | 0.455 0.815 2026-10 0.515 0.975 | 0.51 0.87 2026-11 0.52 0.98 | 0.51 0.865 2026-12 0.545 0.98 | 0.515 0.85 olcut senaryo atesleyen bozulma gecikme hakli gosterge (pay 0,05) veri 2026-10 - - hayir isabet esigi 0.95 veri - - - - aday karsilastirma (ustunluk 0.0) veri - - - - gosterge (pay 0,05) kavram 2026-10 2026-09 - evet isabet esigi 0.95 kavram 2026-11 2026-09 2 evet aday karsilastirma (ustunluk 0.09) kavram 2026-11 2026-09 2 evet
Gösterge ölçütü iki senaryoda da 2026-10’da ateşler: birinde isabet 0,9700’den 0,9800’e
gitmiştir ve emeklilik haksızdır, öbüründe bozulma gerçektir. Ateşleyen dönem aynı,
doğru karar zıttır. Ateşlemesi ile bozulması ayrı ayrı gösterilmeyen bir gösterge bir modelin
kaldırılmasına gerekçe olamaz.
İsabet ölçütü ikisinde de doğrudur: bozulma 2026-09’da olur, ölçüt 2026-11’de tetiklenir —
aradaki iki dönem gecikmeli etiketin kendisidir. Aday karşılaştırma üstünlüğü 0,0000 ile
0,0900 ölçer, çözünürlüğün on sekiz adımı. Ayıran iki ölçüt de etiket okur ve geç gelir;
gecikmesiz olan tek ölçüt ayırt edemeyendir.
Kaldırmanın Geriye Dönük Bıraktığı
İkinci blok modeli kaldırır, kalanı sayar.
# Bu blok ilk bloktaki DONEM , IZLEME , OZ , M , TEMIZ , puan ve tahmin # tanimlarini surdurur. EMEKLILIK, SAKLAMA, ITIRAZ = "2026-11", 3, 3 defter = [dict(OZ[(k["abone"], k["donem"])], donem=k["donem"], model_surum="s1", tahmin=tahmin(OZ[(k["abone"], k["donem"])], M["agirlik"], M["karar_esigi"])) for k in TEMIZ if k["donem"] in IZLEME] TAM = {"s1": {"agirlik": M["agirlik"], "karar_esigi": M["karar_esigi"]}} kalan = [d for d in IZLEME if DONEM.index(d) > len(DONEM) - 1 - SAKLAMA] def gerekce(r, surum): """Gerekce ancak model surumu cozulebiliyorsa hesaplanir.""" s = surum.get(r["model_surum"]) return None if s is None else round(puan(r, s["agirlik"]) - s["karar_esigi"], 4) print("kurulum okunan tahmin gerekcesi hesaplanan" " aciklanamaz donem") for ad, kyt, sur in (("kayit yok , surum silindi", [], {}), ("karar kaydi var , surum silindi", defter, {}), ("karar kaydi + surum kaydi", defter, TAM), (f"ayni , saklama {SAKLAMA} donem", [r for r in defter if r["donem"] in kalan], TAM)): g = [r for r in kyt if gerekce(r, sur) is not None] print(f"{ad:<33}{len(kyt):>14} {len(g):>20}" f" {len(IZLEME) - len(set(r['donem'] for r in g)):>17}") e = DONEM.index(EMEKLILIK) sun = [d for d in IZLEME if DONEM.index(d) <= e] acik = [d for d in sun if DONEM.index(d) + ITIRAZ >= e] gec = [d for d in sun if DONEM.index(d) + GECIKME > e] print(f"\nemeklilik {EMEKLILIK}: sunulan donem {len(sun)} , karar {len(sun) * 200} ;" f" itirazi hala acik {len(acik)} donem / {len(acik) * 200} karar ;" f" etiketi hic gelmeyen {len(gec)} donem / {len(gec) * 200} karar")
kurulum okunan tahmin gerekcesi hesaplanan aciklanamaz donem kayit yok , surum silindi 0 0 6 karar kaydi var , surum silindi 1200 0 6 karar kaydi + surum kaydi 1200 1200 0 ayni , saklama 3 donem 600 600 3 emeklilik 2026-11: sunulan donem 5 , karar 1000 ; itirazi hala acik 4 donem / 800 karar ; etiketi hic gelmeyen 2 donem / 400 karar
İkinci satır dersin ikinci bulgusudur: karar defteri eksiksiz durur, 1200 tahminin 1200’ü okunur, ama gerekçesi hesaplanan sıfırdır ve altı dönem de açıklanamaz kalır. Eksik olan iki sayıdır: ağırlık üçlüsü ile karar eşiği. Tahmini okumak açıklamak değildir. Sürüm kaydı da saklandığında sayı 1200’e döner, üç dönemlik saklamada üçe çıkar. Veri Mühendisliğine Giriş kursu bunu veri tarafında ölçmüştü: saklama politikası geriye dönük denetlenemez dönem bırakır.
Son satır emekliliğin zamanlamasına ait bedeldir: 2026-11‘de kaldırılan modelin 1000
kararından 800’ü hâlâ itiraza açıktır ve iki dönemin 400 kararının etiketi hiç
gelmeyecektir, çünkü kaldırma ölçümü durdurur. Emekliye ayırma son iki
dönemi kalıcı olarak ölçülmemiş bırakır.
Özet
- Gösterge ölçütü iki senaryoda da
2026-10’da ateşler ve birinde emeklilik haksızdır; isabet ölçütü2026-09bozulmasını2026-11’de gösterir ve aday karşılaştırma üstünlüğü 0,0000 ile 0,0900 ölçer. - Sürüm kaydı silindiğinde 1200 tahmin okunur, gerekçesi hesaplanan 0’dır ve altı dönem açıklanamaz kalır.
2026-11‘de kaldırılan modelin 1000 kararından 800’ü itiraza açık, 400’ünün etiketi hiç gelmeyecektir.
Kurs Kapanışı
Ölçüt ders adının yanındadır; parantezdeki fark izlemeli kurulum eksi tabandır.
| Ders | İzlemesiz taban | İzlemeli kurulum | Bedel |
|---|---|---|---|
model-izlemesi/01 — dengeli isabet |
eski kurulum: duyarlılık 0,0000, dengeli 0,5000 | düzeltilmiş: duyarlılık 1,0000, dengeli 0,9835 (+0,4835) | pay 0,05’te üç dönem ateşler, üçünde de isabet 0,9700’den 0,9800’e çıkar |
model-izlemesi/02 — 2026-09 isabeti |
kayma görülmez: 0,9700 | kavram kaymasında 0,8150 (−0,1550) | otuz bir adım; girdi özeti hiçbir bantta ateşlemez, 1200 satırın 132’sinin etiketi değişir |
model-izlemesi/03 — ölçülen dönem |
etiket beklenmez: 0 | gecikme 2: bozulma 2026-09, uyarı 2026-11 |
boşlukta 400 tahmin ölçülmeden üretilir, 63’ü yanlış çıkar; her dönem 400 ölçülmemiş kalır |
model-izlemesi/04 — vekilin sapması |
vekil yok: 0 | üç vekil: 0,0185 / 0,0957 / 0,0000 | üçü de kavram kaymasında sağlam senaryoyla aynı; ayıran tek ölçü isabet (0,1598) |
model-izlemesi/05 — ateşleyen dönem |
bant yok: 0 | 0,05 bandında 13 (+13) | 6 yanlış alarm; geçerli yakalama 4, hepsi isabetten, yakalama gecikmesi 2 dönem |
model-izlemesi/06 — ölçülen isabet |
etiket gelmez: ölçüm yok | yalniz pozitif, kapsam 0,4858: 1,0000 |
sapma +0,0894; ölçülen isabet gerçek 0,9362’nin üstüne çıkar |
model-yonetisimi/01 — adayın ölçülen isabeti |
yayın yok: ölçüm yok | gölge, 0 istek: 0,9650; kanarya 0,10: 1,0000 | kanaryada çözünürlük 0,0500’e çıkar; tam geçişte 7 istek yanlışlanır |
model-yonetisimi/02 — ölçülen fark |
deney yok: 0 | altı dönem −0,0050, tek dönem +0,0250 ile −0,0150 | ayırt edilebilir en küçük fark 0,0275; gerçek örneklem 60 satır |
model-yonetisimi/03 — 2026-12 isabeti |
yeniden eğitim yok: 0,9800 | üç pencerenin üçü de 0,9800 (+0,0000) | 3.078.000 satır puanlanır; gösterge tetikleyicisi iki senaryoda da aynı dönemlerde ateşler |
model-yonetisimi/04 — tahmin başına okunan satır |
kayıtsız: 423,70 | karar kaydıyla 1,00 (−422,70) | 12.000 saklanan alan; kayıtsız aramada 189 tahminin modeli belirlenemez |
model-yonetisimi/05 — yeniden hesaplanan karar |
taban kayıt: 1164/1200 | kayıt tutmayla 1200/1200 (+36) | 3600’den 8402 saklanan değer; saklamada 600 karar itiraz açıkken silinir |
model-yonetisimi/06 — tahmin başına maliyet |
yeniden eğitim yok: 1,00 | sıklık 1: 811,00 (+810,00) | eğitim payı 0,9988, kazanılan isabet 0,0000, kazanç başına maliyet tanımsız |
model-yonetisimi/07 — açıklanamaz dönem |
kayıtsız kaldırma: 6/6 | karar ile sürüm kaydı: 0/6 (−6) | emeklilikte 400 kararın etiketi hiç gelmez, 800’ü itiraza açık kalır |
Tablo tek bir kuralın on üç kez yazılmasıdır. Bir göstergenin ateşlemesi bozulmanın kanıtı
değildir; ateşlemesi ile bozulması ayrı ayrı gösterilmeyen gösterge ölçülmemiş sayılır.
model-izlemesi/05 bunu sayar: 0,05 bandındaki 13 ateşlemenin 6’sı yanlış alarmdır, geçerli
yakalama 4’tür ve /01’de uyarı üç dönem ateşlerken isabet yükselir.
İkinci iddia aynı tablodan okunur: izleme de bozar. model-yonetisimi/01‘de kanarya payı
ölçüyü böler: 0,10’da kötü aday 1,0000 görünür, tam geçişte 7 istek yanlışlanır. /03‘te üç
tetikleyici 3.078.000 satır puanlatır ve kazanç 0,0000’dır; /06‘da seyreklik kararı toplamın
0,8323’ünü yine 0,0000 karşılığında taşır. model-izlemesi/06’da toplama yordamı ölçülen
isabeti gerçeğin üstüne çıkarır.
Üçüncü iddia vekil ölçütlerin adıyla yazılır: zararsız kaymada ateşliyorlar, zararlı kaymada
susuyorlar. model-izlemesi/04’te üç vekil de kavram kaymasında sağlam senaryoyla hane hane
aynı sayıyı verir; /02’de tahmin payı 0,10 bandında zararsız kaymada ateşleyip zararlı
kaymada susar. Bu dersin ilk tablosu bunun emeklilik hâlidir.
Altı kurs aynı ekseni altı yerde okudu: bozulma hattın aşamalarında sayıldı, düzen depolamada, koşum orkestrasyonda, bölüşüm dağıtık işlemede, yol modelin yeniden üretilmesinde ve görülme üretimdeki modelde. Müfredatın kuralı son kez yazılır: bir veri hattının sayısı taşıdığı satır değil, yanlış satırın kaç adım sonra yakalandığıdır; bozulmayı yakalayan denetimi yazılmayan hat ölçülmemiş sayılır.
Yetmiş dört derste veri taşındı, saklandı, dönüştürüldü, bölüştürüldü, modele verildi ve izlendi. Bütün bunlar sunucu tarafında duran bir sistemdi. Bu sistemin ürettiği sayının kullanıcının cebindeki bir aygıtta nasıl görüneceği, o aygıtın kendi kısıtlarıyla ne yapabileceği ve bağlantısız kaldığında ne olacağı hiç sorulmadı. Sonraki müfredat sayıyı üreten yerden aldığı yere taşır.
İlerlemeni kaydetmek ve not almak için Giriş yap
Notlarım
Not almak için giriş yapmalısın.