Scikit-learn provides consistent APIs for classical ML algorithms: classification (random forest, gradient boosting, SVM, logistic regression), regression (linear, ridge, lasso, gradient boosting), clustering (K-means, DBSCAN, hierarchical), and dimensionality reduction (PCA, t-SNE). Preprocessing pipelines chain together scaling, encoding, imputation, and feature selection.
Use scikit-learn when: your problem is classical ML (tabular data, structured features), you need fast prototyping with consistent APIs, interpretability matters (decision trees, logistic regression), or deep learning would be overkill. Use TensorFlow/PyTorch when: your data is unstructured (images, text, audio) or model complexity requires neural networks.