[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"me":3,"catalog:tr:ml-engineer\u002Fjunior":4,"config":128},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","junior","","tr",394,600,[7,13,14],"mid","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,75,88,101,114],{"id":44,"topic":18,"difficulty":45,"body":46,"options":47,"correct_key":52,"explanation":60},"019f6b80-b762-792b-8675-5d62a3c3d6c1",1,"Bir makine öğrenmesi pipeline'ında 'feature engineering' (öznitelik mühendisliği) en iyi şekilde neyi tanımlar?",[48,51,54,57],{"key":49,"text":50},"a","Ham kayıtları tek bir tabloya toplamak",{"key":52,"text":53},"b","Girdi değişkenlerini oluşturmak ya da dönüştürmek",{"key":55,"text":56},"c","Eğitim sırasında modelin parametrelerini ayarlamak",{"key":58,"text":59},"d","Görülmemiş veri üzerinde doğruluğu ölçmek","Feature engineering, modelin tükettiği girdi değişkenlerini (ham ya da türetilmiş) şekillendirmekle ilgilidir; eğitim algoritmasının kendisi ya da sonrasındaki değerlendirme ile ilgili değildir. İyi feature'lar çoğu zaman algoritma seçiminden daha çok fark yaratır.",{"id":62,"topic":18,"difficulty":63,"body":64,"options":65,"correct_key":58,"explanation":74},"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?",[66,68,70,72],{"key":49,"text":67},"Eksik değerler yüzünden eğitim başarısız olur",{"key":52,"text":69},"Kategorik sütunlar yanlış sırayla encode edilir",{"key":55,"text":71},"Test setindeki bilgi eğitime sızar",{"key":58,"text":73},"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":76,"topic":18,"difficulty":63,"body":77,"options":78,"correct_key":49,"explanation":87},"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?",[79,81,83,85],{"key":49,"text":80},"Model, şehirler arasında yanlış bir sıra çıkarabilir",{"key":52,"text":82},"Model, encoding'in sırasız olduğunu otomatik algılar",{"key":55,"text":84},"Bu eşlemeden sonra kategori sayısı azalır",{"key":58,"text":86},"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":89,"topic":18,"difficulty":45,"body":90,"options":91,"correct_key":55,"explanation":100},"019f6b80-b769-73b4-bdab-51228fc331f4","Bir feature'ı sabit bir aralığa (örn. 0-1) ölçeklemek ile ortalaması sıfır, varyansı bir olacak şekilde ölçeklemek arasındaki kavramsal fark nedir?",[92,94,96,98],{"key":49,"text":93},"Biri sadece metne, diğeri sadece sayıya uygulanır",{"key":52,"text":95},"İkisi tamamen aynı dönüşümdür",{"key":55,"text":97},"Biri aralığa sıkıştırır, diğeri ortalamaya göre merkezler",{"key":58,"text":99},"Biri aykırı değerleri temizler, diğeri önce temizlenmesini ister","Sabit bir aralığa ölçekleme ile ortalama\u002Fbirim varyansa göre merkezleme, ikisi de feature'ları karşılaştırılabilir bir ölçeğe getirme yoludur ama farklı büyüklükler (min\u002Fmax aralığı vs. ortalama\u002Fvaryans) hesaplarlar ve aykırı değerler karşısında farklı davranabilirler.",{"id":102,"topic":18,"difficulty":63,"body":103,"options":104,"correct_key":52,"explanation":113},"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?",[105,107,109,111],{"key":49,"text":106},"Bu şekilde hesaplanan parametreler her zaman hatalıdır",{"key":52,"text":108},"Test setinin istatistikleri eğitim ölçeklemesine sızar",{"key":55,"text":110},"Kategorik sütunların encode edilmesi imkansız olur",{"key":58,"text":112},"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":115,"topic":18,"difficulty":116,"body":117,"options":118,"correct_key":58,"explanation":127},"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?",[119,121,123,125],{"key":49,"text":120},"Kullanışlı olamayacak kadar çok eksik değeri var",{"key":52,"text":122},"Sayısal gibi görünen kategorik bir feature'dır",{"key":55,"text":124},"Diğer feature'larla aynı aralığa ölçeklenmesi gerekir",{"key":58,"text":126},"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.",{"fields":129,"seniorities":312,"interview_shapes":313,"locales":318,"oauth":320,"question_count":323,"coach_enabled":324,"jd_match_enabled":324},[130,155,175,191,215,228,247,266,288,295,301,308],{"key":131,"name_tr":132,"name_en":132,"sort":45,"specializations":133},"backend","Backend",[134,137,140,143,146,149,152],{"key":135,"name":136,"field":131},"general","Genel",{"key":138,"name":139,"field":131},"go","Go",{"key":141,"name":142,"field":131},"python","Python",{"key":144,"name":145,"field":131},"java","Java",{"key":147,"name":148,"field":131},"csharp","C#\u002F.NET",{"key":150,"name":151,"field":131},"nodejs","Node.js",{"key":153,"name":154,"field":131},"php","PHP",{"key":156,"name_tr":157,"name_en":157,"sort":63,"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":116,"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":131},{"key":141,"name":142,"field":131},{"key":144,"name":145,"field":131},{"key":147,"name":148,"field":131},{"key":150,"name":151,"field":131},{"key":153,"name":154,"field":131},{"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},[7,13,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]