In my experience, unsupervised learning is more broadly useful (and easier to implement) than supervised learning. Use it for data exploration, data validation, anomaly detection, topic modeling, recommender systems, cluster analysis, etc.
Recommended algorithms:
- UMAP (https://github.com/lmcinnes/umap/blob/master/README.rst)
- HDBSCAN (https://github.com/scikit-learn-contrib/hdbscan/blob/master/...)
- MatrixProfile (https://github.com/target/matrixprofile-ts/blob/master/READM...)
- NMF (https://scikit-learn.org/stable/modules/generated/sklearn.de...)