The most effective way to partition the world of ML algorithms is to consider the task at hand, or the desired results and purpose of the algorithm. If you can identify the goal of your problem—that is, whether you need to predict continuous values based on inputs, categorize data, classify text, reduce dimensionality, and so on—you'll be able to reduce your choices to only a handful of algorithms.
For example, in cases where you need to predict a continuous output value—such as a prediction for server load at a future date—you will likely need a regression algorithm. There are only a handful of regression algorithms to choose from, and the other decision points in this guide will help to reduce those options further.
In cases where you need to inspect data and identify data points that look similar to one another, a clustering...