[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"me":3,"catalog:en:ml-engineer\u002Fcml-linear-logistic-internals":4,"config":148},null,{"field_key":5,"field_name":6,"seniority":7,"topic_key":8,"topic_name":9,"spec_key":7,"spec_name":7,"locale":10,"cell_total":11,"field_total":12,"seniorities":13,"topics":17,"specs":58,"samples":63},"ml-engineer","ML Engineer","","cml-linear-logistic-internals","Cml Linear Logistic Internals","en",75,1050,[14,15,16],"junior","mid","senior",[18,21,24,25,28,31,34,37,40,43,46,49,52,55],{"key":19,"name":20,"count":11},"cml-distance-clustering-dimreduction","Cml Distance Clustering Dimreduction",{"key":22,"name":23,"count":11},"cml-gradient-boosting-mechanics","Cml Gradient Boosting Mechanics",{"key":8,"name":9,"count":11},{"key":26,"name":27,"count":11},"cml-probabilistic-models-calibration","Cml Probabilistic Models Calibration",{"key":29,"name":30,"count":11},"cml-svm-kernels-margins","Cml Svm Kernels Margins",{"key":32,"name":33,"count":11},"cml-trees-randomforest-internals","Cml Trees Randomforest Internals",{"key":35,"name":36,"count":11},"ml-data-preparation","Ml Data Preparation",{"key":38,"name":39,"count":11},"ml-deployment-serving","Ml Deployment Serving",{"key":41,"name":42,"count":11},"ml-experimentation-reproducibility","Ml Experimentation Reproducibility",{"key":44,"name":45,"count":11},"ml-model-selection-tuning","Ml Model Selection Tuning",{"key":47,"name":48,"count":11},"ml-model-training-evaluation","Ml Model Training Evaluation",{"key":50,"name":51,"count":11},"ml-monitoring-drift","Ml Monitoring Drift",{"key":53,"name":54,"count":11},"ml-problem-framing","Ml Problem Framing",{"key":56,"name":57,"count":11},"ml-scaling-performance","Ml Scaling Performance",[59],{"key":60,"name":61,"count":62},"classical-ml","Classical ML",450,[64,82,96,109,122,135],{"id":65,"topic":9,"difficulty":66,"body":67,"options":68,"correct_key":73,"explanation":81},"01a03e80-262a-700e-a577-9d3d409b8e77",1,"What quantity does scikit-learn's LinearRegression actually minimise when it fits coefficients?",[69,72,75,78],{"key":70,"text":71},"a","The sum of the absolute differences between the predictions and the observed targets",{"key":73,"text":74},"b","The sum of the squared differences between the predictions and the observed targets",{"key":76,"text":77},"c","The largest single absolute residual produced on any row of the training matrix",{"key":79,"text":80},"d","The residual sum of squares plus the sum of the squared coefficients it learned","LinearRegression solves the ordinary least squares problem: it picks the coefficient vector that makes the sum of squared residuals as small as possible. Minimising absolute residuals is quantile\u002Fleast-absolute-deviation regression, minimising the worst residual is a minimax fit, and adding a squared-coefficient term is what Ridge does. Squaring is what makes the solution reachable in closed form through a linear system.",{"id":83,"topic":9,"difficulty":84,"body":85,"options":86,"correct_key":76,"explanation":95},"01a03e80-262d-7dbe-bfd3-1aae5191c1e2",2,"In logistic regression, which quantity is modelled as a plain linear function of the input features?",[87,89,91,93],{"key":70,"text":88},"The probability of the positive class itself, kept inside the zero-to-one range",{"key":73,"text":90},"The squared distance from the row to the fitted decision boundary in feature space",{"key":76,"text":92},"The natural logarithm of the odds that the row belongs to the positive class",{"key":79,"text":94},"The ratio of positive to negative labels observed across the whole training set","The logit link means that intercept plus weighted feature sum equals log(p \u002F (1 - p)); the sigmoid is just the inverse of that link, mapping the linear score back to a probability. Modelling the probability itself linearly would let predictions leave the zero-to-one range, which is exactly the problem the link solves. The class balance of the training set is a property of the data, not something the linear part predicts.",{"id":97,"topic":9,"difficulty":84,"body":98,"options":99,"correct_key":70,"explanation":108},"01a03e80-2630-75d1-8103-3209e743d306","A fitted binary LogisticRegression has coef_ = [[0.5]] and intercept_ = [-1.0]. What does predict_proba return for the positive class at x = 2.0?",[100,102,104,106],{"key":70,"text":101},"0.500",{"key":73,"text":103},"0.269",{"key":76,"text":105},"0.731",{"key":79,"text":107},"0.881","The linear predictor is 0.5 * 2.0 - 1.0 = 0.0, and the sigmoid of zero is exactly 0.5, so the row sits on the decision boundary. The other values correspond to linear predictors of -1.0, +1.0 and +2.0, which would need different feature values or a different intercept.",{"id":110,"topic":9,"difficulty":84,"body":111,"options":112,"correct_key":73,"explanation":121},"01a03e80-2631-7a2d-9aec-1618cca85463","In scikit-learn 1.6, what exactly does the C hyperparameter of LogisticRegression control?",[113,115,117,119],{"key":70,"text":114},"It is the penalty weight itself, so a smaller C leaves the coefficients closer to the unpenalised fit",{"key":73,"text":116},"It is the inverse of the penalty weight, so a smaller C shrinks the coefficients harder",{"key":76,"text":118},"It caps the absolute value that any single coefficient is allowed to reach while fitting",{"key":79,"text":120},"It sets how many passes the solver makes over the data before it stops and returns","scikit-learn writes the objective as C times the summed log-loss plus the squared-norm term, so C sits in front of the data-fit part and behaves as 1\u002Flambda. Lowering C therefore gives the penalty relatively more weight and pulls the coefficients toward zero. There is no per-coefficient clipping in this estimator, and the iteration budget lives in max_iter instead.",{"id":123,"topic":9,"difficulty":84,"body":124,"options":125,"correct_key":79,"explanation":134},"01a03e80-2633-7c8d-a094-238d62cf777d","A teammate claims that calling LogisticRegression() with no arguments in scikit-learn 1.6 gives a plain maximum-likelihood fit. What is actually being fitted?",[126,128,130,132],{"key":70,"text":127},"An unpenalised fit, because the penalty argument already defaults to None in this release",{"key":73,"text":129},"An L1-penalised fit, because the default lbfgs solver drives small weights to zero",{"key":76,"text":131},"An unpenalised fit whenever the two classes are balanced, and a penalised one otherwise",{"key":79,"text":133},"An L2-penalised fit, because the default penalty is 'l2' and the default C is 1.0","The defaults in scikit-learn 1.6 are penalty='l2', C=1.0 and solver='lbfgs', so regularisation is on unless you explicitly pass penalty=None. This is a deliberate library choice and it differs from the unpenalised convention used in classical statistics packages. Class balance never switches the penalty on or off, and lbfgs cannot fit an L1 penalty at all.",{"id":136,"topic":9,"difficulty":66,"body":137,"options":138,"correct_key":73,"explanation":147},"01a03e80-2637-7756-bbf1-51368038f5b8","LinearRegression solves for its coefficients in one shot, while LogisticRegression has to run an iterative solver. What forces that difference?",[139,141,143,145],{"key":70,"text":140},"Its targets are class labels rather than numbers, and no matrix formula is defined on labels",{"key":73,"text":142},"Setting its derivatives to zero gives equations that are nonlinear in the coefficients",{"key":76,"text":144},"Its objective has several local minima, so the solver must explore before settling on one",{"key":79,"text":146},"The squared-norm penalty is not differentiable, so gradients have to be approximated","Least squares differentiates a quadratic, so the stationarity conditions come out linear in the coefficients and a single linear system returns the answer. The logistic likelihood puts the coefficients inside a sigmoid, so the same conditions are nonlinear and no rearrangement isolates the coefficients; the solver has to walk toward the optimum instead. That walk is still dependable because the objective is convex and has one optimum rather than several. A categorical target does not block a closed form by itself, and the squared-norm penalty is perfectly differentiable.",{"fields":149,"seniorities":370,"interview_shapes":371,"locales":376,"oauth":378,"question_count":381,"coach_enabled":382,"jd_match_enabled":382},[150,175,195,212,236,249,268,287,309,328,343,365],{"key":151,"name_tr":152,"name_en":152,"sort":66,"specializations":153},"backend","Backend",[154,157,160,163,166,169,172],{"key":155,"name":156,"field":151},"general","Genel",{"key":158,"name":159,"field":151},"go","Go",{"key":161,"name":162,"field":151},"python","Python",{"key":164,"name":165,"field":151},"java","Java",{"key":167,"name":168,"field":151},"csharp","C#\u002F.NET",{"key":170,"name":171,"field":151},"nodejs","Node.js",{"key":173,"name":174,"field":151},"php","PHP",{"key":176,"name_tr":177,"name_en":177,"sort":84,"specializations":178},"frontend","Frontend",[179,180,183,186,189,192],{"key":155,"name":156,"field":176},{"key":181,"name":182,"field":176},"javascript","JavaScript",{"key":184,"name":185,"field":176},"typescript","TypeScript",{"key":187,"name":188,"field":176},"react","React",{"key":190,"name":191,"field":176},"vue","Vue",{"key":193,"name":194,"field":176},"angular","Angular",{"key":196,"name_tr":197,"name_en":197,"sort":198,"specializations":199},"fullstack","Fullstack",3,[200,201,202,203,204,205,206,207,208,209,210,211],{"key":155,"name":156,"field":196},{"key":158,"name":159,"field":151},{"key":161,"name":162,"field":151},{"key":164,"name":165,"field":151},{"key":167,"name":168,"field":151},{"key":170,"name":171,"field":151},{"key":173,"name":174,"field":151},{"key":181,"name":182,"field":176},{"key":184,"name":185,"field":176},{"key":187,"name":188,"field":176},{"key":190,"name":191,"field":176},{"key":193,"name":194,"field":176},{"key":213,"name_tr":214,"name_en":214,"sort":215,"specializations":216},"devops-cloud","DevOps \u002F Cloud",4,[217,218,221,224,227,230,233],{"key":155,"name":156,"field":213},{"key":219,"name":220,"field":213},"aws","AWS",{"key":222,"name":223,"field":213},"gcp","GCP",{"key":225,"name":226,"field":213},"azure","Azure",{"key":228,"name":229,"field":213},"kubernetes","Kubernetes",{"key":231,"name":232,"field":213},"terraform","Terraform",{"key":234,"name":235,"field":213},"linux","Linux",{"key":237,"name_tr":238,"name_en":238,"sort":239,"specializations":240},"ai-engineer","AI Engineer",5,[241,242,243,246],{"key":155,"name":156,"field":237},{"key":161,"name":162,"field":237},{"key":244,"name":245,"field":237},"llm-rag","LLM\u002FRAG",{"key":247,"name":248,"field":237},"mlops","MLOps",{"key":250,"name_tr":251,"name_en":252,"sort":253,"specializations":254},"database","Veritabanı","Database",6,[255,256,259,262,265],{"key":155,"name":156,"field":250},{"key":257,"name":258,"field":250},"postgresql","PostgreSQL",{"key":260,"name":261,"field":250},"mysql","MySQL",{"key":263,"name":264,"field":250},"mongodb","MongoDB",{"key":266,"name":267,"field":250},"redis","Redis",{"key":269,"name_tr":270,"name_en":271,"sort":272,"specializations":273},"mobile","Mobil","Mobile",7,[274,275,278,281,284],{"key":155,"name":156,"field":269},{"key":276,"name":277,"field":269},"ios-swift","iOS (Swift)",{"key":279,"name":280,"field":269},"android-kotlin","Android (Kotlin)",{"key":282,"name":283,"field":269},"flutter","Flutter",{"key":285,"name":286,"field":269},"react-native","React Native",{"key":288,"name_tr":289,"name_en":290,"sort":291,"specializations":292},"security","Güvenlik","Security",8,[293,294,297,300,303,306],{"key":155,"name":156,"field":288},{"key":295,"name":296,"field":288},"appsec","AppSec",{"key":298,"name":299,"field":288},"offensive-pentest","Offensive \u002F Pentest",{"key":301,"name":302,"field":288},"cloud-security","Cloud Security",{"key":304,"name":305,"field":288},"devsecops","DevSecOps",{"key":307,"name":308,"field":288},"blue-team-incident","Blue Team \u002F Incident",{"key":310,"name_tr":311,"name_en":312,"sort":313,"specializations":314},"qa-test-automation","QA \u002F Test Otomasyonu","QA \u002F Test Automation",9,[315,316,319,322,325],{"key":155,"name":156,"field":310},{"key":317,"name":318,"field":310},"test-automation","Test Automation",{"key":320,"name":321,"field":310},"sdet","SDET",{"key":323,"name":324,"field":310},"performance-testing","Performance Testing",{"key":326,"name":327,"field":310},"mobile-qa","Mobile QA",{"key":329,"name_tr":330,"name_en":330,"sort":331,"specializations":332},"data-engineer","Data Engineer",10,[333,334,337,340],{"key":155,"name":156,"field":329},{"key":335,"name":336,"field":329},"pipelines-etl","Pipelines \u002F ETL",{"key":338,"name":339,"field":329},"streaming","Streaming",{"key":341,"name":342,"field":329},"warehousing","Warehousing",{"key":344,"name_tr":345,"name_en":346,"sort":347,"specializations":348},"game-dev","Oyun Geliştirme","Game Development",11,[349,350,353,356,359,362],{"key":155,"name":156,"field":344},{"key":351,"name":352,"field":344},"unity-csharp","Unity (C#)",{"key":354,"name":355,"field":344},"unreal-cpp","Unreal (C++)",{"key":357,"name":358,"field":344},"gameplay","Gameplay",{"key":360,"name":361,"field":344},"graphics-rendering","Graphics \u002F Rendering",{"key":363,"name":364,"field":344},"multiplayer-netcode","Multiplayer \u002F Netcode",{"key":5,"name_tr":6,"name_en":6,"sort":366,"specializations":367},12,[368,369],{"key":155,"name":156,"field":5},{"key":60,"name":61,"field":5},[14,15,16],{"junior":372,"mid":374,"senior":375},{"questions":373,"median_sec":3},20,{"questions":373,"median_sec":3},{"questions":373,"median_sec":3},[377,10],"tr",[379,380],"google","github",27600,true]