Data Science Essentials
Scikit-learn Introduction
Basic machine learning modeling using Python's Scikit-learn library.
Interview: Machine learning fundamentals. Frequently questioned on model API (fit/predict), preprocessing, train-test splits, and evaluation metrics.
Scikit-learn is Python's most popular machine learning library. It provides a clean, unified API for supervised and unsupervised algorithms, covering classification, regression, clustering, and dimensional reduction.
The Estimator API Design
Scikit-learn is famous for its clean interface consistency. Almost all algorithms implement the same API:
Estimator.fit(X, y)— Trains the model on features matrix X and targets y.Predictor.predict(X)— Predicts the target values for new feature data X.Transformer.transform(X)— Preprocesses and transforms features X.
Training Workflow
A typical ML workflow splits data into training (to teach the model) and testing (to evaluate accuracy on unseen data). This is accomplished via train_test_split().
Use Cases
Customer Churn Prediction — Building binary classification models to predict which customers are likely to leave.
Sales Forecasting — Training regression models (like Linear Regression) to predict future revenue based on historical data.
Spam Detection — Categorizing emails into spam vs ham based on message features.
Common Mistakes
Data leakage — Preprocessing/scaling the entire dataset together before running train_test_split, which leaks test dataset information into the training data.
Ignoring class imbalance — Evaluating model performance solely on accuracy when one class is extremely rare (e.g. 99% non-spam vs 1% spam - a dummy model predicting 0 is 99% accurate but useless).
Overfitting — Training overly complex models that achieve 100% accuracy on training data but perform poorly on test datasets.