Data Scientist Interview Prep: Q&A Cheat Sheet

Automotive Insurance Risk Modeling & Telematics Analytics

Use this document to prepare for your presentation. It covers high-probability questions categorized by Business Strategy, Statistical Rigor, Machine Learning Methodology, and Production Engineering, complete with winning, defensible responses.


0. The Opening Pitch (The 60-Second “Tell Me About This Project”)

“This portfolio tackles two of the most critical challenges in the automotive and insurance industries: risk pricing under extreme class imbalance and unsupervised driver profiling from IoT telematics.

In Project 1, we modeled auto insurance claim risk on 58,500+ policies where only 6% filed a claim. We eliminated 56 collinear features using iterative VIF, used Stepwise Logistic Regression to extract auditable risk factors for actuaries, and tuned a boosted tree ensemble to capture 68% of actual claims while isolating a high-risk group filing at 1.5× the average rate.

In Project 2, we recognized that static demographic forms hit an honest ceiling around ~0.65 AUC. To break through, insurers need behavioral data. We engineered an unsupervised pipeline that compresses high-frequency sensor streams into 3 physical dimensions—Aggression, Distraction, and Steering Geometry—via PCA (80% variance explained). Using K-Means, we proved that unsupervised geometry autonomously recovers driver risk profiles with 0.999 out-of-sample ARI against withheld ground truth.

Together, they illustrate how an insurer evolves from traditional static underwriting to dynamic, usage-based insurance (UBI).”


Part 1: Business Context & Insurance Economics

Q1: “An AUC of 0.65 seems modest. Why couldn’t you achieve 0.85 or 0.90?”

The Winning Answer: > “In insurance underwriting, an AUC of 0.65 is an honest, realistic benchmark for static application data. At policy inception, you only observe demographics and vehicle specs. You cannot observe weather, daily traffic, split-second driver distraction, or road hazards. In academic literature and industry benchmarks for Kaggle’s insurance datasets, AUCs on tabular policy data almost always top out between 0.63 and 0.67. If a candidate presents an AUC of 0.85+ on this dataset, they almost certainly have target leakage (such as accidentally including post-accident claim identifiers). What matters commercially is risk concentration: our model identifies a subset of drivers filing at 1.5× the baseline rate and captures 68% of all losses ahead of time.”


Q2: “Your precision is only 9%. How does an insurance company monetize a model that is wrong 91% of the time?”

The Winning Answer: > “Precision must always be evaluated relative to the base rate. In this population, only 6% of drivers file a claim. If you pick drivers at random, precision is 6%. At 9%, our model concentrates risk by 50% over baseline. > > In insurance, the goal is not binary classification (‘will this person crash tomorrow, yes or no?’). The goal is loss cost estimation and adverse selection avoidance: > 1. Tiered Pricing: We don’t decline the 91% who haven’t claimed yet; we adjust their base rates by \(+15\text{–}30\%\) to match their elevated risk pool. > 2. Underwriting Routing: Flagged policies undergo secondary underwriting review or carry slightly higher deductibles. > 3. Loss Ratio Improvement: Because the model captures 68% of all claim payouts, correctly pricing that sub-population protects the insurer’s combined ratio by millions of dollars annually.”*


Q3: “Why did safety tech like Brake Assist (is_brake_assist_Yes) show a positive coefficient for claim risk (+0.09)?”

The Winning Answer: > “This is a well-known industry phenomenon often called the luxury/tech proxy effect or Peltzman risk compensation: > 1. Sensor Replacement Costs: Vehicles equipped with Advanced Driver Assistance Systems (ADAS) have ultrasonic sensors, cameras, and radar units embedded in the front bumper and windshield. A minor fender-bender that costs $300 on a basic car easily costs $2,000+ on an ADAS-equipped car, pushing minor incidents over the deductible and into reported insurance claims. > 2. Trim Level Proxy: Brake assist is standard on higher-end, newer trim packages, which carry comprehensive collision coverage and higher repair rates.”*


Q4: “Why did vehicle age (age_of_car) have a massive negative coefficient (-3.53)?”

The Winning Answer: > “Vehicle age is the single strongest protective factor in the dataset. Older vehicles have heavily depreciated book values. Owners of older cars frequently: > Drop comprehensive and collision coverage, retaining liability-only. > * Choose not to claim minor dents or scratches because the repair cost is near or below their $500 or $1,000 deductible, and they want to protect their claims-free discount. > * Conversely, brand-new car owners carry full coverage and file claims for minor cosmetic damage to maintain the vehicle’s resale value.”


Q5: “Why does longer policy tenure increase claim risk (+0.85)?”

The Winning Answer: > “In a 6-month observation window, brand-new policyholders are often in a ‘grace’ or low-utilization phase, or drive more conservatively during probationary onboarding. Long-tenured policyholders have higher policy confidence, know how to navigate the claims department, and feel entitled to utilize the coverage they have paid into for years without fearing immediate policy cancellation.”


Part 2: Statistical & Machine Learning Rigor

Q6: “Why use Variance Inflation Factor (VIF) instead of just checking a correlation heatmap?”

The Winning Answer: > “Pairwise Pearson correlation only measures the linear relationship between two variables at a time. It cannot detect group multicollinearity, where a single feature is a linear combination of three or four other features combined. > > VIF solves this by running an auxiliary regression of feature \(X_i\) against all other features combined: > \[\text{VIF}_i = \frac{1}{1 - R_i^2}\] > In our dataset, vehicle specs (length, width, cylinders, displacement, and brake types) were completely deterministic given the car model code (\(R^2 = 1.0 \implies \text{VIF} = \infty\)). Iterative VIF pruning systematically eliminated 56 redundant dimensions down to an orthogonal subset (\(VIF \le 5.0\), or \(R^2 \le 0.80\)), stabilizing coefficient variance.”*


Q7: “Why use Stepwise Logistic Regression if you were going to use HistGradientBoosting anyway?”

The Winning Answer: > “In regulated insurance environments, state insurance commissioners (like the DOI in the US or PRA/FCA in the UK) require transparent, auditable rating factors. You cannot submit an unconstrained black-box neural network or gradient boosted tree for filed base rates. > > Stepwise Logit gave us the parametric baseline: interpretable log-odds coefficients (\(\beta\)) that actuaries can directly audit. Then, the Model Bake-Off gave HistGradientBoosting the full post-VIF feature space to evaluate whether non-linear combinations and feature interactions could capture additional risk (raising CV AUC from 0.610 to 0.651). We used Stepwise for inference, and boosting for prediction.”


Q8: “How does your Stepwise Selection algorithm decide when to stop?”

The Winning Answer: > “It uses Bidirectional Stepwise Selection with alternating forward and backward passes: > 1. Forward Step: Tests every excluded feature and adds the one with the smallest \(p\)-value, provided \(p < 0.05\). > 2. Backward Step: Re-evaluates all included features; if adding the new feature inflated an older feature’s \(p\)-value above \(0.05\), the redundant feature is dropped. > 3. Stopping Rule: It stops as soon as the model reaches equilibrium: nothing left outside is significant enough to enter (\(p < 0.05\)), and nothing inside is weak enough to leave (\(p > 0.05\)).”*


Q9: “How did you ensure there was no data leakage in your cross-validation pipeline?”

The Winning Answer: > “We encapsulated preprocessing inside an sklearn.pipeline.Pipeline: > python > Pipeline([ > ('scaler', StandardScaler()), > ('clf', LogisticRegression(class_weight='balanced')) > ]) > > If you call fit_transform on the entire training set before cross-validation, the mean and standard deviation of the validation fold leak into the training fold. By embedding StandardScaler inside the pipeline within GridSearchCV, scaling is fit strictly on the 4 training folds and applied to the 5th validation fold. > Furthermore, for tree ensembles (RandomForest and HistGradientBoosting), we avoided scaling entirely because tree splitting and histogram binning are scale-invariant, preserving the clean discrete nature of our one-hot dummy variables.”


Q10: “Why did Youden’s J threshold land at 0.496 instead of something like 0.10?”

The Winning Answer: > “Because all our models were trained with class_weight='balanced'. In an unweighted model, probabilities reflect the raw 6% base rate, so the optimal threshold sits around 0.08–0.12. > However, class_weight='balanced' penalizes false negatives \(15\times\) more heavily during gradient descent, which pre-centers the model’s loss landscape around 0.50. Youden’s J (\(J = \text{TPR} - \text{FPR}\)) finding 0.496 confirms that the loss function’s internal reweighting already brought the decision boundary into mathematical equilibrium.”


Part 3: Unsupervised Telematics (Project 2)

Q11: “In Project 2, if you already had ground truth labels (driver_label), why did you treat it as an unsupervised problem?”

The Winning Answer: > “In real-world Usage-Based Insurance (UBI), streaming IoT sensors do not come with labels. Nobody is sitting in the passenger seat recording ‘aggressive’ or ‘distracted’. Treating it as a supervised classification problem would be an artificial academic exercise. > By stripping the labels, we simulated the real-world challenge: discovering behavior mathematically from pure sensor physics. We only used the withheld labels at the very end to compute out-of-sample Adjusted Rand Index (0.999 ARI), proving that the unsupervised geometry directly aligns with real driver behavioral archetypes.”


Q12: “How did PCA compress 8+ sensor channels into 3 dimensions? What do they mean physically?”

The Winning Answer: > “The scree plot and elbow method showed that 3 principal components account for 80% of total variance: > PC1 (Longitudinal Dynamics / Aggression): Dominated by throttle, brake_pressure, and longitudinal acceleration (accel_x). It captures aggressive stop-and-go driving. > * PC2 (Cognitive Load / Distraction): Dominated by phone_usage, reaction_time, and lane_deviation. It captures swerving and delayed braking caused by distracted driving. > * PC3 (Lateral Geometry): Dominated purely by steering_angle (\(R = 1.0\)). It captures road curvature and turns, separating driver intent from environmental geometry.”


Q13: “An Adjusted Rand Score (ARI) of 1.00 / 0.999 is almost suspiciously high. What’s the catch?”

The Winning Answer: > “I explicitly highlight this in the notebook conclusions: 1.00 ARI is a hallmark of synthetic data. The underlying data generator created cleanly separable cluster boundaries. In real telematics, sensor noise, GPS drift, road potholes, and weather would create overlapping distributions. > The contribution of this project is the reproducible pipeline: filtering multicollinear sensor streams, reducing dimensionality with PCA, clustering with K-Means, and deploying an end-to-end Pipeline that can ingest raw telematics records and assign a driver risk tier out-of-sample.”


Q14: “If a fleet client could only afford to install two sensors to save budget, which two would you recommend?”

The Winning Answer: > “Based on our PCA loadings: > 1. phone_usage (captures the single largest loading on the Distraction axis). > 2. brake_pressure (captures the single largest loading on the Aggression axis). > > With just these two sensors, an insurer can monitor both distinct hazard dimensions without paying for full accelerometer and gyro telemetry suites.”


Part 4: Production Architecture & MLOps

Q15: “How would you deploy these two pipelines into production?”

The Winning Answer: > * For Claim Prediction (Batch/REST Underwriting): > * Export the fitted scikit-learn Pipeline via ONNX or MLflow. > * Wrap it in a FastAPI microservice running in a container (Docker/Kubernetes). > * When a customer requests a quote online, the quote engine calls the REST API; the model returns a risk score and percentile tier in \(< 20\text{ ms}\) to dynamically set underwriting approval and deductibles. > > * For Telematics Profiling (Streaming IoT Architecture): > * Telematics data streams from mobile SDKs or OBD-II dongles via Apache Kafka. > * A streaming engine (Apache Flink or Spark Streaming) computes rolling 5-minute aggregations (mean throttle, braking jerk, phone screen-on time). > * Because PCA and K-Means centroids are simple linear matrix multiplications, the inference is lightweight enough to run either on the stream worker or directly on the driver’s smartphone (edge inference), syncing only weekly cluster scores to the cloud to preserve driver battery and cellular data.”*


Q16: “How would you monitor these models in production?”

The Winning Answer: > * Data Drift & Covariate Shift: Compute the Population Stability Index (PSI) and Wasserstein Distance on incoming feature distributions monthly (e.g., tracking if car age distribution shifts toward newer vehicles). If \(\text{PSI} > 0.25\), trigger retraining alerts. > * Concept Drift: Compare predicted claim probabilities against actual loss runs over rolling 6-month reporting windows using Brier Score and Calibration Curves. > * Fairness & Bias Auditing: Monitor approval and pricing differentials across geographic clusters (area_cluster) and policyholder age brackets to ensure compliance with insurance fair-lending regulations.”*


Part 5: 3 Smart Questions YOU Should Ask the Interviewer

At the end of the interview, ask these questions to demonstrate high-level strategic thinking:

  1. “How does the data science team currently collaborate with actuaries and underwriting when introducing non-linear models like gradient boosting?”
  2. “What is the infrastructure roadmap here for streaming telematics or real-time feature stores versus traditional batch scoring?”
  3. “When evaluating pricing models, does the team optimize directly for underwriting loss ratio, or do you incorporate price elasticity and policyholder retention curves?”