  There has been recent interest in the use of machine learning (ML) approaches
within mathematical software to make choices that impact on the computing
performance without affecting the mathematical correctness of the result. We
address the problem of selecting the variable ordering for cylindrical
algebraic decomposition (CAD), an important algorithm in Symbolic Computation.
Prior work to apply ML on this problem implemented a Support Vector Machine
(SVM) to select between three existing human-made heuristics, which did better
than anyone heuristic alone. The present work extends to have ML select the
variable ordering directly, and to try a wider variety of ML techniques.
  We experimented with the NLSAT dataset and the Regular Chains Library CAD
function for Maple 2018. For each problem, the variable ordering leading to the
shortest computing time was selected as the target class for ML. Features were
generated from the polynomial input and used to train the following ML models:
k-nearest neighbours (KNN) classifier, multi-layer perceptron (MLP), decision
tree (DT) and SVM, as implemented in the Python scikit-learn package. We also
compared these with the two leading human constructed heuristics for the
problem: Brown's heuristic and sotd. On this dataset all of the ML approaches
outperformed the human made heuristics, some by a large margin.
