## 5 Machine Learning Algorithms for SDN
### Routing Optimization
Traffic prediction results are utilized by the SDN controller for efficient traffic routing decisions in advance and distribute the dynamic routing policies to devices in the data plane. These routing policies are used as a guideline for traffic flow routing soon. Traffic prediction enables the SDN controller to avoid traffic congestion, improve QoS, and proactively provide the network. For dynamic optical routing, a dynamic optimal routing meta-heuristic algorithm is proposed in the literature [162]. These meta-heuristic algorithms consist of three stages: offline scheduling, offline planning, and online routing. In the offline scheduling phase, a neural network is used to predict network traffic load for optimal resource allocation. Online routing decisions are made based on the routing path with minimum cost. A load balance strategy is proposed for the optimization of path load [163]. SDN controllers use four features for predicting the path load through a neural network model, packet loss rate, transmission latency, transmission hop, and bandwidth utilization ratio. The path with the least load is selected for the new traffic flows. In paper, [164] LSTM based framework NeuTM is proposed to predict the network traffic matrix. GEANT backbone network [165] based real traffic data are used to train the LSTM model. Results from the simulation environment show that LSTM prediction performance is good for routing optimization. Researchers use QoS parameters such as throughput, delay, loss rate, and jitter for network performance assessment. User satisfaction level and perception are essential to service providers and network operators. QoE is used for the assessment of the performance of the network from user-oriented metrics. Service providers use prediction algorithms to predict QoS and QoE to provide network services to users with great customer satisfaction. Machine learning algorithms are applied to SDN controller collected statistics and information for the QoS and QoE prediction [166]. QoS management can be improved by predicting QoS parameters according to the key performance indicators (KPIs). Prediction of QoS parameters is considered a regression task because these QoS metric values are continuous. Algorithms based on supervised machine learning such as random forest, support vector regression, ANN-based regressor are used for QoS parameters prediction. QoE identifies a subjective metric over the network such as mean opinion score (MOS) [167]. MOS classifies the QoE values into five classes: excellent, good, fair, poor, and bad. QoE values are usually obtained from a feedback form regarding the QoS. The customers rate the quality of the services in 5 stars or a scale of 1 to 10. The subjective method is time-consuming as QoE is dependent on QoS parameters. Machine learning algorithms can be used to find the relationship between QoS parameters and QoE values. In the paper, ref. [168] QoE prediction experiment is performed in the case study of a video streaming. MoS value is estimated using network parameters such as delay, bandwidth, jitter, and RTT. SDN controller can adjust video parameters to improve the user QoE. In paper [167], QoE values are predicted based on video quality parameters using four machine learning algorithms, decision tree, K-NN, ANN, and random forest. Pearson correlation coefficient and root mean square error (RMSE) is used for the performance analysis.