## 3 Methodology  
The principal aim of this research was to propose a neural network for the purpose of modeling churn in the realm of mobile telecommunications, with the ultimate goal of enhancing retention efforts targeted towards customers exhibiting a heightened likelihood of attrition. Our objective was to authenticate and demonstrate the application of multilayer-perceptron and radial-basis-function networks in establishing a churn modeling framework that generates high precision and accuracy. The MLP network is considered the vanilla architecture of neural network architectures, and it is frequently used in works in the literature due to its versatility and effectiveness in pattern recognition, classification, and regression, among others. At its core, the MLP network constitutes multiple layers of interconnected neurons, which are organized in a feed-forward manner. Each neuron processes information through a weighted sum of its inputs, after which the resulting value is passed through an activation function, which introduces non-linearity into the network's computations. This non-linearity is critical, as it enables the network to learn complex relationships within the data, making it well-suited for modeling intricate patterns present in real-world data sets. The architecture of an MLP typically consists of an input layer, one or more hidden layers, and an output layer. The input layer serves as the entry point for data, with each neuron serving as a placeholder for a value of a feature from the training data. The hidden layers encapsulate the network's capacity to extract and represent abstract features from the input data. The number of hidden layers and neurons within each layer is adjustable, allowing for flexibility in modeling complex relationships. Finally, the output layer produces the network's predictions or classifications based on the learned representations. Figure 1 represents an MLP neural network with three layers: an input layer, a hidden layer, and an output layer. In the input layer, we have two input features, denoted as  
\[x_{1}^{(in)},\quad x_{2}^{(in)} \tag{1}\]  
Of course, the number of neurons in the input layer depends on the types and number of features in the data set. The hidden layer (1 st layer) contains four neurons, labeled as  
\[a_{1}^{(h)},\quad a_{2}^{(h)},\quad a_{3}^{(h)},\quad a_{4}^{(h)} \tag{2}\]  
Each neuron in the hidden layer receives inputs from all the input nodes and computes a weighted sum, followed by a non-linear activation function. The number of hidden layer neurons is a parameter in the network structure that is changeable. Adapting the right number of neurons to the data is not a simple task, and it depends very much on the task and data set. In the output layer (2 nd layer), we have three output neurons, which are labeled as  
\[a_{1}^{(out)},\quad a_{2}^{(out)},\quad a_{3}^{(out)} \tag{3}\]  
Each neuron in the output layer receives inputs from all neurons in the hidden layer and produces the final predictions. The number of neurons in the final layer is determined by the data set, and it depends on the number of decision classes in the data set. The dashed lines from the input nodes and hidden nodes represent connections weighted by parameters learned during training. Weight terms are the connections between layers. For instance, the connection from input node \(x_{1}^{(in)}\) to hidden node \(a_{1}^{(h)}\) is associated with a weight, \(\omega_{11}\). The terms \(b^{(h)}\) represent the bias values added to each hidden neuron. The terms \(b^{(out)}\) represent the bias values added to the output layer neurons.