Machine learning can be of types - supervised, unsupervised and others such as semi-supervised, reinforcement learning, etc. When we look at how to choose which algorithm to select, it depends on input data type primarily and what are we trying to accomplish out of it. If the target variable is continuous, then we will use regression algorithms (which are part of supervised learning). e.g. Simple Linear Regression, Multiple Linear Regression, etc. If the target variable is categorical, then we will use classification algorithms (this is also part of supervised learning). e.g. Logistic Regression, Random Forest, Decision Trees, kNN, Neural Network, Support Vector Machine, Naive Bayes, etc. If the target variable is not available, then we will use any of the unsupervised learning such as Clustering or Association or Recommendation Algorithms. Other types of machine learning also used in different scenarios. Generative, Graph-based and Heuristic approaches are part of semi-supervised learning while reinforcement learning can be active and passive categories. This is how different machine learning algorithms, methods, approaches can be used at different scenarios at a high level.