Skip to content

cperales/pyridge

Repository files navigation

PyRidge

Build Status Coverage Status

This repository contains some supervised machine learning algorithms from the family of Ridge Classification, also known as Tikhonov regularization or Extreme Learning Machine. A nice discussion about these terms can be seen in this discussion in StackExchange.

Although ELM is a polemic topic, due to the accusations of plagiarism (see more here and here), some actual research is done by applying ensemble techniques to Ridge Classification ([3, 4]), thus some some papers are used for implementing algorithms.

Main motivation of this repository is collecting the ML algorithms from my research while I was doing my PhD in Data Science in Universidad Loyola Andalucía.

Documentation and examples are in progress, but some part is available here.

Install

To install the library along with the dependencies,

python setup.py install

How to use a virtual environment

It is recommended to install the framework in a virtual environment

virtualenv -p python3.9 env

In order to activate the virtual environment

source env/bin/activate

To deactivate, just write deactivate.

Algorithms

List of algorithms implemented:

Kernel algorithms (or Ridge classification)

  • Kernel Ridge (KRidge) [1]

Neural algorithms (or ELM classification)

  • ELM [2]
  • AdaBoost ELM (AdaBoostELM) [3]
  • AdaBoost Negative Correlation (AdaBoostNCELM) [4]
  • Bagging ELM (BaggingELM) [5]
  • Diverse ELM (DiverseELM) [6]
  • Regularized Ensemble ELM (RegularizedEnsembleELM) [7]
  • PCA ELM [10]
  • PCA LDA ELM [11]
  • Sobol ELM [12]
  • Paralell Layer ELM [13]
  • Boosting Ridge ELM [14]

Negative Correlation algorithms

  • Negative Correlation ELM [8]
  • Negative Corelation with Neural Networks [9]

Code documentation

Documentation is published online. It can also be compiled locally, just having sphinx installed. In the main directory, run the following code:

sphinx-build docs/source docs/

Data

Some data can be downloaded here for classification and here for regression. In order to run the tests, data and data_regression folders should be in main directory.

Also, repository uci-download-process could help you to download some examples from UCI dataset.

An example

You can run a test for every algorithm, just simply

pytest

By default, logging level is set to INFO.

Bibliography

[1]: S. An, W. Liu and S. Venkatesh, "Face Recognition Using Kernel Ridge Regression," 2007 IEEE Conference on Computer Vision and Pattern Recognition, Minneapolis, MN, 2007, pp. 1-7.

[2]: G.-B. Huang, H. Zhou, X. Ding, and R. Zhang, “Extreme learning machine for regression and multiclass classification,” IEEE Trans. Syst. man, Cybern. Part B, Cybern., vol. 42, no. 2, pp. 513–29, 2012.

[3]: A. Riccardi, F. Fernández-Navarro, S. Carloni, F. Fernandez-Navarro, and S. Carloni, “Cost-sensitive AdaBoost algorithm for ordinal regression based on extreme learning machine,” IEEE Trans. Cybern., vol. 44, no. 10, pp. 1898–1909, 2014.

[4]: Wang, S., Chen, H., & Yao, X. (2010, July). Negative correlation learning for classification ensembles. In Neural Networks (IJCNN), The 2010 International Joint Conference on (pp. 1-8). IEEE.

[5]: Tian, H., & Meng, B. (2010, September). A new modeling method based on bagging ELM for day-ahead electricity price prediction. In Bio-Inspired Computing: Theories and Applications (BIC-TA), 2010 IEEE Fifth International Conference on (pp. 1076-1079). IEEE.

[6]: Perales-González, C., Carbonero-Ruz, M., Becerra-Alonso, D., & Fernández-Navarro, F. (2018, June). A Preliminary Study of Diversity in Extreme Learning Machines Ensembles. In International Conference on Hybrid Artificial Intelligence Systems (pp. 302-314). Springer, Cham.

[7]: Perales-González, C., Carbonero-Ruz, M., Becerra-Alonso, D., Pérez-Rodríguez, F., & Fernández-Navarro, F. (2019, June). Regularized Ensemble Neural Networks models in the Extreme Learning Machine framework. In Neurocomputing (DOI: 10.1016/j.neucom.2019.06.040)

[8]: Perales-González, C., Carbonero-Ruz, M., Pérez-Rodríguez, J., Becerra-Alonso, D., & Fernández-Navarro, F. (2020, March). Negative correlation learning in the extreme learning machine framework. In Neural Comput & Applic (DOI: 10.1007/s00521-020-04788-9)

[9]: Wang, S., Chen, H., & Yao, X. (2010, July). Negative correlation learning for classification ensembles. In The 2010 International Joint Conference on Neural Networks (IJCNN) (pp. 1-8). IEEE.

[10]: Castaño, A., Fernández-Navarro, F., & Hervás-Martínez, C. (2013). PCA-ELM: a robust and pruned extreme learning machine approach based on principal component analysis. Neural processing letters, 37(3), 377-392.

[11]: Castaño, A., Fernández-Navarro, F., Riccardi, A., & Hervás-Martínez, C. (2016). Enforcement of the principal component analysis–extreme learning machine algorithm by linear discriminant analysis. Neural Computing and Applications, 27(6), 1749-1760.

[12]: Cervellera, C., & Macciò, D. (2015). Low-discrepancy points for deterministic assignment of hidden weights in extreme learning machines. IEEE transactions on neural networks and learning systems, 27(4), 891-896.

[13]: Henríquez, P. A., & Ruz, G. A. (2017). Extreme learning machine with a deterministic assignment of hidden weights in two parallel layers. Neurocomputing, 226, 109-116.

[14]: Yangjun, R., Xiaoguang, S., Huyuan, S., Lijuan, S., & Xin, W. (2012, June). Boosting ridge extreme learning machine. 2012 IEEE Symposium on Robotics and Applications (ISRA) (pp. 881-884). IEEE.