ADMMSVM is the implementation made for my master dissertation, University of Campinas (UNICAMP), Brazil, with the title Alternating directions method of multipliers with applications in distributed support vector problems. This dissertation lies in the area of mathematical optimization, specifically convex optimization, and it investigates the use of the Alternating Directions Method of Multipliers (ADMM) to make the Support Vector Machine (SVM) applicable over distributed classification problem, in which the training data are distributed and can not be shared between the node.
The dissertation can be found here ( in Portuguese) and the presentation is here (in Portuguese). Although the dissertation is in Portuguese, this reference is helpful to understanding this work, since my dissertation is based on it.
To run this implementation, it is require the following packages,
netwokx==1.8
numpy>=1.13
scikit-learn==0.18
matplotlib==2.0.1
seaborn==0.7.1
mpi4py==2.0.0
All centralized SVM results are achieved using sklearn
.
The graph below shows the linear approximation for a random simple dataset generated using sklearn
.
The graphs below show the non-linear approximation using both centralized and distributed SVM applied to a dataset modeled as a chess table. Note that the non-linear approximation is not the same in these two scenarios.
Centralized SVM | Distributed ADMMSVM |
---|---|
-- |
Furthermore, the following graph illustrates a possible wrong SVM estimation if only a part of the data are accessible to the model.
The graph below shows the accuracy over ADMMSVM iterations for different hyper-parameters compared with centralized SVM results. This numerical evaluation uses the Pima Indians diabetes database.