Decision trees are a commonly used machine learning technique. They often are preferred to neural networks or more complex models for small problems that wouldn’t need deep learning; libraries implementing decision tree “forests” trained via gradient boosting like XGBoost and CatBoost are some of the most popular ML frameworks out there.
A decision tree generally works as follows: given your input feature vector $\v{x}$, each binary node $i$ computes a linear function $\v{v}_i\cdot\v{x}+b_i$. If this comes out > 0, go one side, otherwise go the other. Once you’re at a leaf, you can read out its related outcome, and that’s your answer. There are variations; forests for example aggregate multiple trees to obtain a more robust judgement. But the core principle stays the same.