This document reviews various machine learning algorithms that can be used for botnet detection, including decision trees, naive Bayes, K-nearest neighbor, support vector machines, JRIP, PART, clonal selection algorithm, random forest, artificial neural networks, local outlier factor, hidden Markov models, and artificial fish-swarm algorithm. It also summarizes several research papers that have applied these algorithms to detect botnets using metrics like accuracy, precision, recall, and F1-score. The document finds that ensemble and hybrid models generally perform best, with accuracy rates often above 95%.