# Towards a Predictive Analytics-Based Intelligent Malaria Outbreak Warning System+
## 3 Intelligent Malaria Outbreak Warning System
### Machine Learning  
The next stage is to identify a pattern/model from the data processed in Section 3.1 that will be used to make an accurate prediction of malaria incidence. Evolved from traditional pattern recognition approaches, machine learning methods explore the algorithms that can learn from the data and overcome prediction tasks by building a mathematical model with a data sample input. A learning algorithm will mark each given Malaria epidemic data sample as one category, then after being trained using the training dataset, it will build a model to predict which category a forthcoming data sample falls into. We have applied several machine learning algorithms, including Support Vector Machine (SVM), K-Nearest Neighbours (KNN), Naive Bayes and Decision Trees, to find the best predicting algorithm from the scikit framework [45] in Python. To evaluate the prediction of machine learning algorithms on the training set, we have used the 10-fold cross-validation technique by selecting a training set and test sets that are mutually independent. Table 7 shows the prediction results in comparison to seven different Machine Learning methods. Linear Regression (LiR) method gives overall good prediction results, but it seems that the method failed to produce any medium predictions. Logistic Regression (LoR) method predicts the probability of occurrence of an event by fitting the dataset, as a set of independent variables, into a logic function. In other words, for a correlated data set, LoR may not be able to find the intrinsic-relationships between events. Decision Tree (DT) works very well for both categorical and continuous dependent variables; however, this dataset cannot be separated as distinct groups since the edges of the samples are fuzzy. Therefore, DT gave a bad prediction after all. \begin{table}
\begin{tabular}{c c c c c} \hline \hline
**Number of Clusters (k)** & **2** & **3** & **4** & **5** \\ \hline iteration & 3 & 4 & 9 & 6 \\ convergence & yes & yes & yes & no \\ \(\frac{SSB}{SST}\) & 66.4\% & 82\% & 89.9\% & 93\% \\ \hline \hline \end{tabular}
\end{table} 
Table 6: Summary of data discretization using the k-means algorithm. SSB: The sum of squares of errors between the clusters; SST: The total sum of squares of the entire clusters. \begin{table}
\begin{tabular}{c c c c c c c c c c} \hline \hline
**Algorithm** & **LiR** & **LoR** & **DT** & **SVM** & **SVM (o)** & **NB** & **KNN1** & **KNN5** & **KNN10** & **K-M (3)** \\ \hline
**Accuracy** & 83.8\% & 75.0\% & 63.8\% & 80.6\% & 99.0\% & 63.9\% & 58.3\% & 80.6\% & 80.6\% & 47.2\% \\ \hline \hline \end{tabular}
\end{table} 
Table 7: Comparison of the accuracy of model checking algorithms. LiR: Linear Regression; LoR: Logistic Regression; DT: Decision Tree; SVM: Support Vector Machine; SVM (o): Optimized Support Vector Machine; NB: Naive Bayes; KNN: K-Nearest Neighbours; K-M: K-Means. * Support Vector Machine (SVM) is one of the most efficient supervised machine learning algorithms, which is mainly used for solving classification and regression problems. The best part of this algorithm is that training and testing data can be plotted as a point in a n-dimensional plane, with a feature being the value of a particular coordinate. Without optimisation of the parameters, SVM gave a 80.56% predicting result. After parameter optimisation, especially on the penalty parameter and gamma coefficient adjustment, SVM (o) gave a 99.0% predicting result. * Naive Bayes (NB) is a well-known classification method, which is based on Bayes' Theorem with an oversimplified assumption of independence between classifiers. Moreover, NB is a conditional probability model, which means that the method needs to be assigned a series of certain events. For this data set, NB did not produce a good prediction overall. * K-Nearest Neighbours (KNN) method is able to deal with both classification and regression problems. In comparison to KNN5 (where k = 5) and KNN10 (where k = 10), KNN1 (where k = 1) failed to make a good prediction.