[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"me":3,"catalog:tr:ml-engineer\u002Fmid":4,"config":127},null,{"field_key":5,"field_name":6,"seniority":7,"topic_key":8,"topic_name":8,"spec_key":8,"spec_name":8,"locale":9,"cell_total":10,"field_total":11,"seniorities":12,"topics":15,"specs":41,"samples":42},"ml-engineer","ML Engineer","mid","","tr",503,600,[13,7,14],"junior","senior",[16,20,23,26,29,32,35,38],{"key":17,"name":18,"count":19},"ml-data-preparation","Ml Data Preparation",75,{"key":21,"name":22,"count":19},"ml-deployment-serving","Ml Deployment Serving",{"key":24,"name":25,"count":19},"ml-experimentation-reproducibility","Ml Experimentation Reproducibility",{"key":27,"name":28,"count":19},"ml-model-selection-tuning","Ml Model Selection Tuning",{"key":30,"name":31,"count":19},"ml-model-training-evaluation","Ml Model Training Evaluation",{"key":33,"name":34,"count":19},"ml-monitoring-drift","Ml Monitoring Drift",{"key":36,"name":37,"count":19},"ml-problem-framing","Ml Problem Framing",{"key":39,"name":40,"count":19},"ml-scaling-performance","Ml Scaling Performance",[],[43,61,74,87,101,114],{"id":44,"topic":18,"difficulty":45,"body":46,"options":47,"correct_key":58,"explanation":60},"019f6b80-b767-7ac0-a701-65d3733be558",2,"Bir veri setinde bir feature kabaca 0-1 arasında, diğeri ise kabaca 0-1.000.000 arasında değer alıyor. Mesafe ya da gradyan tabanlı bir model eğitilmeden önce bu durum giderilmezse en olası sonuç nedir?",[48,51,54,57],{"key":49,"text":50},"a","Eksik değerler yüzünden eğitim başarısız olur",{"key":52,"text":53},"b","Kategorik sütunlar yanlış sırayla encode edilir",{"key":55,"text":56},"c","Test setindeki bilgi eğitime sızar",{"key":58,"text":59},"d","Büyük ölçekli feature modele baskın gelir","Feature'lar çok farklı sayısal ölçeklerde olduğunda, geniş aralıklı olan feature genelde mesafe hesaplamalarına ya da gradyan büyüklüklerine baskın gelir ve küçük ölçekli feature'ın sinyalini bastırır. Bu, bu tür modeller eğitilmeden önce feature'ları karşılaştırılabilir aralıklara ölçeklemenin temel gerekçesidir.",{"id":62,"topic":18,"difficulty":45,"body":63,"options":64,"correct_key":49,"explanation":73},"019f6b80-b768-7851-b1f5-dfc6c33fe6b4","Bir veri setinde 'city' sütununda Istanbul, Ankara, Izmir gibi değerler var. Yeni bir mühendis bunları alfabetik olarak tam sayıya eşliyor (Ankara=0, Istanbul=1, Izmir=2) ve bunları, sayısal girdileri sıralı\u002Fsürekli kabul eden bir modele doğrudan veriyor. Buradaki temel risk nedir?",[65,67,69,71],{"key":49,"text":66},"Model, şehirler arasında yanlış bir sıra çıkarabilir",{"key":52,"text":68},"Model, encoding'in sırasız olduğunu otomatik algılar",{"key":55,"text":70},"Bu eşlemeden sonra kategori sayısı azalır",{"key":58,"text":72},"Metin sütunları hiçbir modelde encode edilemez","Sırasız kategorilere keyfi sıralı tam sayılar atamak, gerçekte olmayan bir büyüklük\u002Fsıra hissi yaratır (örn. Izmir'in Ankara'nın 'iki katı' olduğunu ima etmek gibi) ve girdiyi sıralı\u002Fsürekli kabul eden modelleri yanıltabilir. Encoding seçimi, kategorik değişkenin gerçekten doğal bir sırası olup olmadığına saygı göstermelidir.",{"id":75,"topic":18,"difficulty":45,"body":76,"options":77,"correct_key":52,"explanation":86},"019f6b80-b769-7d78-b0fc-f87c7bb4bf38","Bir mühendis, bir feature için ölçekleme parametrelerini (örn. min\u002Fmax ya da ortalama\u002Fvaryans) tüm veri seti üzerinden hesaplıyor, ardından veriyi train ve test olarak bölüyor. Bu işlem sırasının sorunu nedir?",[78,80,82,84],{"key":49,"text":79},"Bu şekilde hesaplanan parametreler her zaman hatalıdır",{"key":52,"text":81},"Test setinin istatistikleri eğitim ölçeklemesine sızar",{"key":55,"text":83},"Kategorik sütunların encode edilmesi imkansız olur",{"key":58,"text":85},"Eğitim seti her zaman istenenden küçük çıkar","Herhangi bir veriden türetilen istatistiği (ölçekleme parametreleri, imputation değerleri, encoding) bölme işleminden önce tüm veri üzerinde fit etmek, test setindeki bilginin modelin eğitim sırasında gördüğü şeyi etkilemesine izin verir — klasik bir data leakage biçimidir. Çözüm, bu tür dönüşümleri yalnızca eğitim bölümü üzerinde fit edip validation\u002Ftest'e uygulamaktır.",{"id":88,"topic":18,"difficulty":89,"body":90,"options":91,"correct_key":58,"explanation":100},"019f6b80-b76a-7695-a10b-6a7b8522978b",3,"Bir kredinin temerrüde düşüp düşmeyeceğini tahmin eden bir modelde 'days_since_last_payment_before_default' adlı bir feature var; bu feature yalnızca gerçekten temerrüde düşen krediler için doludur (null değildir) ve temerrüt olayından sonra kaydedilen kayıtlardan hesaplanmıştır. Bu feature'ı kullanmanın temel sorunu nedir?",[92,94,96,98],{"key":49,"text":93},"Kullanışlı olamayacak kadar çok eksik değeri var",{"key":52,"text":95},"Sayısal gibi görünen kategorik bir feature'dır",{"key":55,"text":97},"Diğer feature'larla aynı aralığa ölçeklenmesi gerekir",{"key":58,"text":99},"Target leakage'dır — ancak sonuçtan sonra bilinir","Bir feature'ın yalnızca hedef sonuç zaten gerçekleştiği için dolu olması (ve sonuç-sonrası kayıtlardan türetilmesi), klasik bir target leakage örneğidir: model, gerçek bir tahmin anında var olmayan bilgiye dayanmayı öğrenir, bu da gerçekçi olmayan derecede güçlü offline metriklere ama production'da çöken performansa yol açar.",{"id":102,"topic":18,"difficulty":45,"body":103,"options":104,"correct_key":55,"explanation":113},"019f6b80-b76b-734c-a087-7401d723d108","Bir veri seti rastgele train ve test olarak bölünüyor, fakat satırların yaklaşık %8'inin veri setindeki başka satırların birebir kopyası olduğu ve bunların bir kısmının bölmenin her iki tarafına da düştüğü ortaya çıkıyor. Bu durumun yarattığı temel risk nedir?",[105,107,109,111],{"key":49,"text":106},"Kopyalar sayesinde eğitim çok daha hızlı olur",{"key":52,"text":108},"Test seti otomatik olarak mükemmel stratifiye olur",{"key":55,"text":110},"Model, ezberlediği satırlar üzerinde değerlendirilir",{"key":58,"text":112},"Kopyalanan satırların sayısal değil kategorik olması gerekir","Aynı (ya da neredeyse aynı) kayıtlar bölmenin her iki tarafında da bulunduğunda, model esasen zaten görmüş olduğu veri üzerinde değerlendirilebilir; bu da test metriklerini şişirir ve modelin gerçekten yeni veriye ne kadar iyi genelleştiğine dair yanlış bir izlenim verir. Bölmeden önce tekrarları temizlemek standart bir önlemdir.",{"id":115,"topic":18,"difficulty":45,"body":116,"options":117,"correct_key":49,"explanation":126},"019f6b80-b76b-7a25-b7b5-dc5e72faf0cc","Aşağıdakilerden hangisi bir makine öğrenmesi sürecinde 'data leakage'ın ne anlama geldiğini en iyi özetler?",[118,120,122,124],{"key":49,"text":119},"Tahmin anında olmayacak bilginin eğitimi çarpıtması",{"key":52,"text":121},"Tahminlerin beklenenden yavaş sunulması",{"key":55,"text":123},"Bir veri setinin depolama kapasitesini aşması",{"key":58,"text":125},"Bir feature'ın dağılımının çalıştırmalar arası hafifçe kayması","Data leakage genel olarak, gerçek bir tahmin anında mevcut olmayacak bilginin (gelecek veri, hedeften türetilmiş sinyaller, test seti istatistikleri, tekrarlanan kayıtlar) eğitime ya da değerlendirmeye sızdığı her durumu kapsar ve gereğinden fazla iyimser, güvenilmez metrikler üretir.",{"fields":128,"seniorities":312,"interview_shapes":313,"locales":318,"oauth":320,"question_count":323,"coach_enabled":324,"jd_match_enabled":324},[129,155,175,191,215,228,247,266,288,295,301,308],{"key":130,"name_tr":131,"name_en":131,"sort":132,"specializations":133},"backend","Backend",1,[134,137,140,143,146,149,152],{"key":135,"name":136,"field":130},"general","Genel",{"key":138,"name":139,"field":130},"go","Go",{"key":141,"name":142,"field":130},"python","Python",{"key":144,"name":145,"field":130},"java","Java",{"key":147,"name":148,"field":130},"csharp","C#\u002F.NET",{"key":150,"name":151,"field":130},"nodejs","Node.js",{"key":153,"name":154,"field":130},"php","PHP",{"key":156,"name_tr":157,"name_en":157,"sort":45,"specializations":158},"frontend","Frontend",[159,160,163,166,169,172],{"key":135,"name":136,"field":156},{"key":161,"name":162,"field":156},"javascript","JavaScript",{"key":164,"name":165,"field":156},"typescript","TypeScript",{"key":167,"name":168,"field":156},"react","React",{"key":170,"name":171,"field":156},"vue","Vue",{"key":173,"name":174,"field":156},"angular","Angular",{"key":176,"name_tr":177,"name_en":177,"sort":89,"specializations":178},"fullstack","Fullstack",[179,180,181,182,183,184,185,186,187,188,189,190],{"key":135,"name":136,"field":176},{"key":138,"name":139,"field":130},{"key":141,"name":142,"field":130},{"key":144,"name":145,"field":130},{"key":147,"name":148,"field":130},{"key":150,"name":151,"field":130},{"key":153,"name":154,"field":130},{"key":161,"name":162,"field":156},{"key":164,"name":165,"field":156},{"key":167,"name":168,"field":156},{"key":170,"name":171,"field":156},{"key":173,"name":174,"field":156},{"key":192,"name_tr":193,"name_en":193,"sort":194,"specializations":195},"devops-cloud","DevOps \u002F Cloud",4,[196,197,200,203,206,209,212],{"key":135,"name":136,"field":192},{"key":198,"name":199,"field":192},"aws","AWS",{"key":201,"name":202,"field":192},"gcp","GCP",{"key":204,"name":205,"field":192},"azure","Azure",{"key":207,"name":208,"field":192},"kubernetes","Kubernetes",{"key":210,"name":211,"field":192},"terraform","Terraform",{"key":213,"name":214,"field":192},"linux","Linux",{"key":216,"name_tr":217,"name_en":217,"sort":218,"specializations":219},"ai-engineer","AI Engineer",5,[220,221,222,225],{"key":135,"name":136,"field":216},{"key":141,"name":142,"field":216},{"key":223,"name":224,"field":216},"llm-rag","LLM\u002FRAG",{"key":226,"name":227,"field":216},"mlops","MLOps",{"key":229,"name_tr":230,"name_en":231,"sort":232,"specializations":233},"database","Veritabanı","Database",6,[234,235,238,241,244],{"key":135,"name":136,"field":229},{"key":236,"name":237,"field":229},"postgresql","PostgreSQL",{"key":239,"name":240,"field":229},"mysql","MySQL",{"key":242,"name":243,"field":229},"mongodb","MongoDB",{"key":245,"name":246,"field":229},"redis","Redis",{"key":248,"name_tr":249,"name_en":250,"sort":251,"specializations":252},"mobile","Mobil","Mobile",7,[253,254,257,260,263],{"key":135,"name":136,"field":248},{"key":255,"name":256,"field":248},"ios-swift","iOS (Swift)",{"key":258,"name":259,"field":248},"android-kotlin","Android (Kotlin)",{"key":261,"name":262,"field":248},"flutter","Flutter",{"key":264,"name":265,"field":248},"react-native","React Native",{"key":267,"name_tr":268,"name_en":269,"sort":270,"specializations":271},"security","Güvenlik","Security",8,[272,273,276,279,282,285],{"key":135,"name":136,"field":267},{"key":274,"name":275,"field":267},"appsec","AppSec",{"key":277,"name":278,"field":267},"offensive-pentest","Offensive \u002F Pentest",{"key":280,"name":281,"field":267},"cloud-security","Cloud Security",{"key":283,"name":284,"field":267},"devsecops","DevSecOps",{"key":286,"name":287,"field":267},"blue-team-incident","Blue Team \u002F Incident",{"key":289,"name_tr":290,"name_en":291,"sort":292,"specializations":293},"qa-test-automation","QA \u002F Test Otomasyonu","QA \u002F Test Automation",9,[294],{"key":135,"name":136,"field":289},{"key":296,"name_tr":297,"name_en":297,"sort":298,"specializations":299},"data-engineer","Data Engineer",10,[300],{"key":135,"name":136,"field":296},{"key":302,"name_tr":303,"name_en":304,"sort":305,"specializations":306},"game-dev","Oyun Geliştirme","Game Development",11,[307],{"key":135,"name":136,"field":302},{"key":5,"name_tr":6,"name_en":6,"sort":309,"specializations":310},12,[311],{"key":135,"name":136,"field":5},[13,7,14],{"junior":314,"mid":316,"senior":317},{"questions":315,"median_sec":3},20,{"questions":315,"median_sec":3},{"questions":315,"median_sec":3},[9,319],"en",[321,322],"google","github",21750,true]