BMML is the final project for the subject Machine Learning teached at Universidad Complutense de Madrid.
This isn't a tool as such, but a compilation of different classification techniques of Machine Learning that allows to do a prediction about if a client will subscribe a term deposit given several attributes
In addition, this repository can be used as a very basic Machine Learning framework to do basic predictions using the API of the program.
The three techniques used in this study are the following ones:
- Logistic Regression
- Neural Networks
- Support Vector Machines
The program is written in Octave, so you will need to have it installed in your computer.
- Checkout the source:
$ git clone https://github.com/franloza/BMML.git
- Adapt the function getData() to return the positive and the negative examples
- Configure the parameters for each algorithm
- Comment/Decomment the algorithms you want to use in
main.m
- Run
$ octave main.m
#Index Analysis using logistic regression
theta = logReg(posExamples,negExamples,lCurves);
#Index Analysis using Neural networks
theta = neuralNetwork(posExamples,posExamples,lCurves);
#Index Analysis using Support Vector Machines
model = svm(posExamples,negExamples);
- Enable learning curves
- Select the portion of total data to be used
- Data is equally distributed in positive and negative examples
- Normalization support
- Select distribution of examples in percentages (Training/Validation/Adjustment)
- Select range of lambda values to be used in adjustment (Only LogReg and Neural Netwroks)
- Select minimum degree of certainty required (Threshold)
- Select the learning rate of the learning curves (Granularity of the graphics)
- Select maximum number of iterations in the training process
- Enable selection of the best number of nodes in the hidden layer (Only Neural Networks)
- Select the range of nodes to be used in the adjustment process (Only Neural Networks)
- Select default C value (Only SVM)
- Select default sigma value (Only SVM)
- Select the range of C and sigma values to be used in the adjustment process (Only SVM)
The data is related with direct marketing campaigns of a Portuguese banking institution. The marketing campaigns were based on phone calls. Often, more than one contact to the same client was required, in order to access if the product (bank term deposit) would be ('yes') or not ('no') subscribed.
The dataset used for this practice has been downloaded from the UCI Machine Learning Repository corresponding to the Bank Marketing Data Set
Moreover, there is a paper that make reference to this data set: S. Moro, P. Cortez and P. Rita. A Data-Driven Approach to Predict the Success of Bank Telemarketing. Decision Support Systems
BMML is released under the MIT License. For more information, see the License;