JP Morgan Chase Machine Learning Interview Questions & Answers
Curated interview practice questions with answers. These are practice scenarios, not a verified list of past interview questions.
About JP Morgan Chase hiring for Machine Learning roles
JPMorgan Chase is a global bank offering investment banking, commercial banking, asset management and consumer banking through Chase. Its India corporate centres in Mumbai, Bengaluru and Hyderabad support technology, operations, analytics and risk functions. It hires for software engineers, QA engineers, data analysts, data scientists and quantitative analysts.
For Machine Learning roles, this JP Morgan Chase practice set focuses most on Clustering and Dimensionality Reduction (7), Model Evaluation and Tuning (5), MLOps and Deployment (5), Classification Models (4). It has 8 easy, 21 medium, 1 hard questions, so you can start easy and work up to the harder ones.
Company type
Banking & finance
Headquarters
New York, USA
Main India offices
Mumbai, Bengaluru, Hyderabad
JP Morgan Chase Machine Learning interview process
Online assessment (coding + aptitude)
Video interview (HireVue style)
Technical round
Hiring manager round
HR round
Typical pattern based on public candidate experiences. Rounds vary by role, team and year.
Solved for JP Morgan ChaseStart practicing
3 QUESTIONS FREESign up to unlock the full question bank and track your progress.Unlock every question and answer, then continue practising company-wise and package-wise.
✓ 3 questions free • Unlock the rest in seconds
01
Print a confusion matrix and classification report in scikit-learn.
from sklearn.metrics import confusion_matrix, classification_report
pred = clf.predict(X_test)
print(confusion_matrix(y_test, pred))
print(classification_report(y_test, pred, digits=3))
The report shows precision, recall, F1 and support per class plus macro and weighted averages. ConfusionMatrixDisplay.from_estimator draws it as a plot.
A learning curve plots training and validation scores against training set size; if both converge at a low score the model underfits, and if a gap remains, more data may help. A validation curve plots scores against one hyperparameter, such as max_depth, showing where overfitting starts. Both help decide whether to collect data, add features or change complexity.
03
Your manager asks for a single number showing the model's business value. What do you give?
I would convert model outcomes into money or time using a cost matrix agreed with the business, for example savings from caught fraud minus the cost of reviewing false alerts. I would compare this against the current process or a rule-based baseline on holdout data and show a range rather than one point. A short note on assumptions keeps the number honest.
04
How do you plot an ROC curve and get AUC in scikit-learn?
from sklearn.metrics import roc_auc_score, RocCurveDisplay
import matplotlib.pyplot as plt
proba = clf.predict_proba(X_test)[:, 1]
print('AUC', roc_auc_score(y_test, proba))
RocCurveDisplay.from_predictions(y_test, proba)
plt.show()
Pass probabilities or decision scores, not hard labels, otherwise the curve has only one point.
k-means picks k initial centroids, assigns each point to its nearest centroid, recomputes each centroid as the mean of its points, and repeats until assignments stop changing. It minimises within-cluster sum of squares (inertia). It needs k in advance, scaled features, and assumes roughly spherical, similar-sized clusters. k-means++ initialisation and multiple runs with n_init reduce bad starting points.
06
What is the difference between batch, stochastic and mini-batch gradient descent?
Batch gradient descent uses the full dataset for each update, giving stable but slow and memory-heavy steps. Stochastic gradient descent updates after every single example, which is fast and noisy and can escape shallow minima. Mini-batch uses small groups such as 32 to 512 rows, balancing stability with speed and allowing vectorised computation. Mini-batch is the default in practice.
Data drift, or covariate shift, means the distribution of input features changes, such as average order value rising after a pricing change. Concept drift means the relationship between features and target changes, such as fraud patterns evolving. Data drift can be detected without labels using PSI or KS tests; concept drift usually needs labels and shows up as falling performance. Both trigger investigation and retraining.
08
Write a unit test for a model prediction function.
PCA is a linear method that preserves global variance, is fast, deterministic and can transform new data, so it is used for preprocessing. t-SNE and UMAP are non-linear methods that preserve local neighbourhoods, producing good 2D visualisations of clusters. t-SNE distances between clusters are not meaningful. UMAP is faster, keeps more global structure and can transform new points.
10
What is k-fold cross-validation and why is it better than a single split?
k-fold cross-validation splits training data into k folds, trains on k-1 folds and validates on the remaining one, repeating k times so every row is validated once. Averaging the k scores gives a more stable estimate than one random split and shows variance across folds. Five or ten folds are common. Use StratifiedKFold for classification and GroupKFold when rows from one user must stay together.
11
What makes XGBoost, LightGBM and CatBoost different?
XGBoost adds regularisation to the objective, uses second-order gradients and handles missing values natively. LightGBM grows trees leaf-wise and uses histogram binning, making it very fast on large data, though it can overfit small data. CatBoost handles categorical features with ordered target statistics and uses symmetric trees, giving strong defaults with less tuning. All three support GPU training.
12
Build RFM features for customer segmentation in pandas.
I would build product embeddings from content: TF-IDF or sentence embeddings of titles and descriptions, plus category and price features. Then use cosine similarity with nearest-neighbour search, such as scikit-learn NearestNeighbors or an approximate index like FAISS for large catalogues. I would review samples with the product team and later add co-view or co-purchase signals once collected.
14
How do you approach a time series forecasting problem differently from normal regression?
Time series data is ordered and autocorrelated, so random splits leak future information. I use time-based splits or TimeSeriesSplit, create lag and rolling-window features from past values only, and handle trend and seasonality. Baselines like last value or seasonal naive come first. Models range from ARIMA and Prophet to gradient boosting on lag features.
Map the value onto a circle with sine and cosine so the end connects to the start.
import numpy as np
df['hour_sin'] = np.sin(2 * np.pi * df['hour'] / 24)
df['hour_cos'] = np.cos(2 * np.pi * df['hour'] / 24)
Now 23:00 and 00:00 are close, which linear and distance-based models cannot see with raw integers. Tree models often manage with the raw value.
from sklearn.ensemble import IsolationForest
iso = IsolationForest(n_estimators=300, contamination=0.01, random_state=42)
iso.fit(X_train)
scores = -iso.score_samples(X_new)
flags = iso.predict(X_new) == -1
Higher scores mean more anomalous. Tune contamination to match how many alerts reviewers can handle.
Common methods are the elbow method, plotting inertia against k and looking for the bend; the silhouette score, which measures how close points are to their own cluster versus the next one; and the gap statistic. Business usability matters too: four clear segments a marketing team can act on are better than nine statistically optimal but confusing ones.
19
What is heteroscedasticity and why does it matter?
Heteroscedasticity means the variance of residuals changes with the level of the prediction, such as errors growing for expensive houses. Predictions remain unbiased, but standard errors and p-values become unreliable. Detect it with a residuals versus fitted plot or the Breusch-Pagan test. Fixes include log-transforming the target, weighted least squares, or robust standard errors.
20
What should you monitor for a model in production?
Monitor service health such as latency, error rate and throughput; input data quality such as missing values, schema changes and out-of-range values; feature and prediction distribution drift; and real performance once labels arrive. Also track business KPIs the model influences. Set alerts with thresholds and owners, and keep a dashboard so issues are found before users report them.
from sklearn.model_selection import StratifiedKFold, cross_validate
cv = StratifiedKFold(n_splits=5, shuffle=True, random_state=42)
res = cross_validate(pipe, X, y, cv=cv,
scoring=['roc_auc', 'average_precision', 'f1'], n_jobs=-1)
for k in ['test_roc_auc', 'test_average_precision', 'test_f1']:
print(k, res[k].mean().round(3), res[k].std().round(3))
23
How do you build a scikit-learn pipeline for mixed numeric and categorical data?
Use ColumnTransformer inside a Pipeline so preprocessing is fit only on training folds.
from sklearn.compose import ColumnTransformer
from sklearn.pipeline import Pipeline
from sklearn.impute import SimpleImputer
from sklearn.preprocessing import StandardScaler, OneHotEncoder
num = Pipeline([('imp', SimpleImputer(strategy='median')), ('sc', StandardScaler())])
pre = ColumnTransformer([
('num', num, num_cols),
('cat', OneHotEncoder(handle_unknown='ignore'), cat_cols)
])
model = Pipeline([('pre', pre), ('clf', LogisticRegression(max_iter=1000))])
24
The fraud team can only review 500 alerts a day. How do you set the threshold?
Instead of 0.5, rank transactions by predicted probability and pick the threshold that yields about 500 alerts per day on recent data. Then report precision and recall at that cut-off, or precision at k. I would monitor daily alert volume because drift can change it, and recompute the threshold periodically. If cost data exists, I would choose the threshold that maximises expected savings.
25
What is regularisation in general and why does it reduce overfitting?
Regularisation adds a constraint or penalty that discourages overly complex models, such as large weights in linear models, deep trees or too many boosting rounds. It trades a little extra bias for a larger drop in variance, so test error falls. Examples include L1 and L2 penalties, dropout in neural networks, early stopping, pruning and limiting tree depth.
26
How would you build a quick baseline before trying complex models?
Use a DummyClassifier or DummyRegressor to see the score of a trivial guess, then a simple model.
from sklearn.dummy import DummyClassifier
base = DummyClassifier(strategy='most_frequent')
base.fit(X_train, y_train)
print(base.score(X_test, y_test))
Any real model must clearly beat this number; otherwise the features carry little signal.
27
Your team retrains models manually in notebooks every month. How would you improve it?
I would convert the notebook into a versioned training pipeline with separate steps for data extraction, validation, feature building, training and evaluation, scheduled with Airflow or a cloud pipeline. Each run would log to MLflow, compare against the production model on a fixed holdout, and register the new model only if it passes thresholds. Promotion would stay a reviewed step, at least initially.
28
How do you choose a classification threshold that maximises F1?
from sklearn.metrics import precision_recall_curve
import numpy as np
proba = clf.predict_proba(X_val)[:, 1]
p, r, t = precision_recall_curve(y_val, proba)
f1 = 2 * p * r / (p + r + 1e-9)
best = t[np.argmax(f1[:-1])]
print(best)
Choose it on validation data, not the test set. scikit-learn 1.5+ also offers TunedThresholdClassifierCV.
Agglomerative hierarchical clustering starts with each point as its own cluster and repeatedly merges the two closest clusters. Linkage defines closeness: single, complete, average or Ward, which minimises variance. A dendrogram shows the merge history, and cutting it at a height gives the clusters. It does not need k upfront but scales poorly, roughly O(n squared) memory, so it suits smaller datasets.
30
Why do skewed features often need a log or power transform?
Heavily right-skewed features like income or transaction amount have long tails that can dominate linear models and distance metrics. A log1p, Box-Cox or Yeo-Johnson transform compresses large values and makes the distribution closer to normal, which often improves linear and distance-based models. Yeo-Johnson works with zero and negative values. Tree models usually do not need these transforms.
Tips to crack the JP Morgan Chase Machine Learning interview
Practise recorded video interview answers, keeping responses structured and within time limits.
Learn banking basics like payments, loans, KYC and risk controls for domain questions in technology and analytics roles.
Look up the Code for Good hackathon and JPMorgan's technology programmes if you are applying as a student or fresher.
Keep a one-minute story ready for every project on your CV: problem, your part, tools, result.
Practise the hard questions on this page aloud; JP Morgan Chase interviewers usually ask follow-ups on your first answer.
Frequently asked questions
How many rounds are there in the JP Morgan Chase Machine Learning interview?
Candidates usually go through 5 stages: Online assessment (coding + aptitude); Video interview (HireVue style); Technical round; Hiring manager round; HR round. The exact rounds change with the role, team, location and your experience, so confirm the process with the recruiter.
Which topics should I prepare for the JP Morgan Chase Machine Learning interview?
This practice set leans on Clustering and Dimensionality Reduction (7), Model Evaluation and Tuning (5), MLOps and Deployment (5), Classification Models (4). Revise those first, then practise explaining one or two of your own projects end to end, because most JP Morgan Chase interviewers ask you to walk through real work.
Are these the exact questions asked at JP Morgan Chase?
No. These are curated practice questions that match the skills and difficulty usually tested in banking & finance interviews like JP Morgan Chase's. They are not a leaked or verified list of past questions.
Where does JP Morgan Chase hire Machine Learning professionals in India?
JP Morgan Chase has large teams in Mumbai, Bengaluru, Hyderabad. Openings and locations change often, so check the JP Morgan Chase careers page and filter by city and experience.