{"id":184,"date":"2017-02-13T18:04:12","date_gmt":"2017-02-13T18:04:12","guid":{"rendered":"http:\/\/sag.art.uniroma2.it\/kelp_wordpress\/?page_id=184"},"modified":"2017-03-20T09:39:13","modified_gmt":"2017-03-20T09:39:13","slug":"learning-algorithms","status":"publish","type":"page","link":"http:\/\/www.kelp-ml.org\/?page_id=184","title":{"rendered":"Machine Learning Algorithms"},"content":{"rendered":"<p>In Machine Learning, a wide plethora of learning algorithms have been defined for different purposes, and many variations of the existing ones as well as completely new learning methods are often proposed.<br \/>\nKeLP\u00a0provides a large number of learning algorithms that can be used to tackle a variety of learning scenarios, including (multi-class, multi-label, sequence) classification, regression and clustering.<\/p>\n<p>Many algorithms are implemented as a linear version to favor efficiency and to allow the exploration of very large datasets; other algorithms have a kernel-based implementation that exploits the expressiveness and efficacy of kernel-methods.<br \/>\nFurthermore KeLP\u00a0provides both Online Learning (e.g., Perceptron-like learners) and Batch Learning models (e.g., Support Vector Machines). In Batch Learning, the complete training dataset is supposed to be entirely available during the learning phase, and all the examples are exploited at the same time (usually optimizing a global objective function). In Online Learning individual examples are exploited one at a time to incrementally acquire the model.<\/p>\n<p>KeLP\u00a0proposes a comprehensive set of interfaces to support the implementation of new algorithms. The Figure below\u00a0illustrates a simplified class diagram of the algorithms in KeLP.<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full\" src=\"http:\/\/www.kelp-ml.org\/wp-content\/uploads\/2017\/02\/algos.png\" width=\"2924\" height=\"1338\" \/><\/p>\n<p>Three main classes\u00a0can be identified:<\/p>\n<ul>\n<li><a href=\"http:\/\/www.kelp-ml.org\/kelp-javadoc\/current-version\/it\/uniroma2\/sag\/kelp\/learningalgorithm\/LearningAlgorithm.html\">LearningAlgorithm<\/a>: it contains the learning procedure that is applied on training data to generate a <a href=\"http:\/\/www.kelp-ml.org\/kelp-javadoc\/current-version\/it\/uniroma2\/sag\/kelp\/predictionfunction\/PredictionFunction.html\">PredictionFunction<\/a>; for instance <a href=\"http:\/\/www.kelp-ml.org\/kelp-javadoc\/current-version\/it\/uniroma2\/sag\/kelp\/learningalgorithm\/classification\/liblinear\/LibLinearLearningAlgorithm.html\">LibLinearLearningAlgorithm<\/a> is a binary classification learning algorithm which implements the linear SVM algorithm described in (Fan et al., 2008): given a training dataset it finds the best separating hyperplane between the two classes.<\/li>\n<li><a href=\"http:\/\/www.kelp-ml.org\/kelp-javadoc\/current-version\/it\/uniroma2\/sag\/kelp\/predictionfunction\/PredictionFunction.html\">PredictionFunction<\/a>: it contains the logic to produce a <a href=\"http:\/\/www.kelp-ml.org\/kelp-javadoc\/current-version\/it\/uniroma2\/sag\/kelp\/predictionfunction\/Prediction.html\">Prediction <\/a>on a new data instance. For example, <a href=\"http:\/\/www.kelp-ml.org\/kelp-javadoc\/current-version\/it\/uniroma2\/sag\/kelp\/predictionfunction\/classifier\/BinaryLinearClassifier.html\">BinaryLinearClassifier<\/a> classifies a new instance performing a dot product with the classification hyperplane.<\/li>\n<li><a href=\"http:\/\/www.kelp-ml.org\/kelp-javadoc\/current-version\/it\/uniroma2\/sag\/kelp\/predictionfunction\/Prediction.html\">Prediction<\/a>:\u00a0it is the output associated to a test data. For instance, <a href=\"http:\/\/www.kelp-ml.org\/kelp-javadoc\/current-version\/it\/uniroma2\/sag\/kelp\/predictionfunction\/classifier\/BinaryMarginClassifierOutput.html\">BinaryMarginClassifierOutput<\/a> is the predicted label and score associated to a test data on a binary classification task.<\/li>\n<\/ul>\n<hr \/>\n<h3>Existing Learning Algorithms in KeLP<\/h3>\n<p>Algorithms are divided w.r.t. the\u00a0 <a href=\"http:\/\/www.kelp-ml.org\/kelp-javadoc\/current-version\/it\/uniroma2\/sag\/kelp\/learningalgorithm\/LearningAlgorithm.html\">LearningAlgorithm<\/a>\u00a0interfaces they implement, which reflect the learning scenario they solve.\u00a0Obviously, an algorithm can implement multiple interfaces.<\/p>\n<p><strong><a href=\"http:\/\/www.kelp-ml.org\/?page_id=796\">Classification Algorithms<\/a>:\u00a0<\/strong>for algorithms that learn from labeled data how to classify new instances.<\/p>\n<ul>\n<li><strong>BinaryCSvmClassification<\/strong><\/li>\n<li><strong>BinaryNuSvmClassification<\/strong><\/li>\n<li><strong>OneClassSvmClassification<\/strong><\/li>\n<li><strong>LibLinearLearningAlgorithm<\/strong><\/li>\n<li><strong>PegasosLearningAlgorithm<\/strong><\/li>\n<li><strong>DCDLearningAlgorithm<\/strong><\/li>\n<li><strong>LinearPassiveAggressiveClassification<\/strong><\/li>\n<li><strong>KernelizedPassiveAggressiveClassification<\/strong><\/li>\n<li><strong>BudgetedPassiveAggressiveClassification<\/strong><\/li>\n<li><strong>LinearPerceptron<\/strong><\/li>\n<li><strong>KernelizedPerceptron<\/strong><\/li>\n<li><strong>SoftConfidenceWeightedClassification<\/strong><\/li>\n<\/ul>\n<hr \/>\n<p><strong><a href=\"http:\/\/www.kelp-ml.org\/?page_id=798\">Regression Algorithms<\/a><\/strong>:\u00a0for algorithms that learn from labeled data a regression function.<\/p>\n<ul>\n<li><strong>EpsilonSvmRegression<\/strong><\/li>\n<li><strong>LibLinearRegression<\/strong><\/li>\n<li><strong>LinearPassiveAggressiveRegression<\/strong><\/li>\n<li><strong>KernelizedPassiveAggressiveRegression<\/strong><\/li>\n<\/ul>\n<hr \/>\n<p><strong><a href=\"http:\/\/www.kelp-ml.org\/?page_id=799\">Clustering Algorithms<\/a><\/strong>:<strong>\u00a0<\/strong>\u00a0for algorithms that are able to organize a dataset into clusters.<\/p>\n<ul>\n<li><strong>LinearKMeansEngine<\/strong><\/li>\n<li><strong>KernelBasedKMeansEngine<\/strong><\/li>\n<\/ul>\n<hr \/>\n<p><a href=\"http:\/\/www.kelp-ml.org\/?page_id=801\"><strong>Meta-learning Algorithms<\/strong><\/a>:\u00a0for learning approaches that rely on another learning algorithm performing some enrichment, variation, or generalization.<\/p>\n<ul>\n<li><strong>OneVsAllLearning<\/strong><\/li>\n<li><strong>OneVsOneLearning<\/strong><\/li>\n<li><strong>MultiLabelClassificationLearning<\/strong><\/li>\n<li><strong>MultiEpochLearning<\/strong><\/li>\n<li><strong>Stoptron<\/strong><\/li>\n<li><strong>RandomizedBudgetPerceptron<\/strong><\/li>\n<\/ul>\n<hr \/>\n<p><strong>Ensemble Algorithms<\/strong>:\u00a0for algorithms that combine other algorithms in order to provide a more robust solution.<\/p>\n<hr \/>\n<p><strong>Kernel Methods<\/strong>: for\u00a0algorithms exploiting kernel functions<\/p>\n<ul>\n<li><strong>BinaryCSvmClassification<\/strong>\u00a0(Chang and Lin, 2011)<\/li>\n<li><strong>BinaryNuSvmClassification<\/strong>\u00a0(Chang and Lin, 2011)<\/li>\n<li><strong>OneClassSvmClassification<\/strong>\u00a0(Chang and Lin, 2011)<\/li>\n<li><strong>KernelizedPassiveAggressiveRegression<\/strong><\/li>\n<li><strong>KernelizedPassiveAggressiveClassification<\/strong>\u00a0(Crammer et al., 2006)<\/li>\n<li><strong>BudgetedPassiveAggressiveClassification<\/strong> (Wang and Vucetic, 2010)<\/li>\n<li><strong>KernelizedPerceptron<\/strong>\u00a0(Rosenblatt, 1957)<\/li>\n<li><strong>SoftConfidenceWeightedClassification<\/strong> (Wang et al., 2012)<\/li>\n<li><strong>KernelBasedKMeansEngine<\/strong> (Kulis et al., 2005)<\/li>\n<li><strong>Stoptron<\/strong> (Orabona et al., 2008)<\/li>\n<li><strong>RandomizedBudgetPerceptron<\/strong>\u00a0(Cesa-Bianchi et al., 2006)<\/li>\n<\/ul>\n<hr \/>\n<p><strong>Linear Methods<\/strong>: for algorithms directly operating in an explicit feature space<\/p>\n<ul>\n<li><strong>LibLinearLearningAlgorithm<\/strong> (Fan et al., 2008)<\/li>\n<li><strong>LibLinearRegression<\/strong> (Fan et al., 2008)<\/li>\n<li><strong>PegasosLearningAlgorithm<\/strong>\u00a0(Shalev-Shwartz et al., 2007)<\/li>\n<li><strong>DCDLearningAlgorithm<\/strong> (Hsieh et al., 2008)<\/li>\n<li><strong>LinearPassiveAggressiveClassification<\/strong>\u00a0(Crammer et al., 2006)<\/li>\n<li><strong>LinearPassiveAggressiveRegression<\/strong>\u00a0(Crammer et al., 2006)<\/li>\n<li><strong>LinearPerceptron<\/strong>\u00a0(Rosenblatt, 1957)<\/li>\n<li><strong>SoftConfidenceWeightedClassification<\/strong> (Wang et al., 2012)<\/li>\n<li><strong>LinearKMeansEngine <\/strong>(Forgy, 1965)<\/li>\n<\/ul>\n<hr \/>\n<h3>References<\/h3>\n<p>Nicolo&#8217; Cesa-Bianchi and Claudio Gentile.\u00a0<em>Tracking the best hyperplane with a simple budget perceptron<\/em>.\u00a0In Proc. Of The Nineteenth Annual Conference On Computational Learning Theory, pages 483\u2013498. Springer-Verlag, 2006.<\/p>\n<p>Koby Crammer, Ofer Dekel, Joseph Keshet, Shai Shalev-Shwartz, and Yoram Singer.\u00a0<em>On-line passive-aggressive algorithms<\/em>. Journal of Machine Learning Research, 7:551\u2013585, December 2006. ISSN 1532-4435.<\/p>\n<p>R.-E. Fan, K.-W. Chang, C.-J. Hsieh, X.-R. Wang, and <b>C.-J. Lin<\/b>. <a href=\"https:\/\/www.csie.ntu.edu.tw\/~cjlin\/papers\/liblinear.pdf\">LIBLINEAR: A library for large linear classification <\/a><i><a href=\"http:\/\/www.jmlr.org\/\">Journal of Machine Learning Research<\/a><\/i> 9(2008), 1871-1874.<\/p>\n<p>E.W. Forgy, <em>Cluster analysis of multivariate data: efficiency versus interpretability of classifications<\/em>. Biometrics (1965).. <b>21<\/b>: 768\u2013769.<\/p>\n<p class=\"p1\"><span class=\"s1\">Hsieh<\/span>, C.<span class=\"s2\">&#8211;<\/span>J., <span class=\"s1\">Chang<\/span>, K.<span class=\"s2\">&#8211;<\/span>W., <span class=\"s1\">Lin<\/span>, C.<span class=\"s2\">&#8211;<\/span>J., <span class=\"s1\">Keerthi<\/span>, S. S. and\u00a0<span class=\"s1\">Sundararajan<\/span>, S.\u00a0(2008). <em>A Dual Coordinate Descent Method for Large<span class=\"s2\">&#8211;<\/span>scale Linear SVM.<\/em>\u00a0Proceedings of the 25th international conference on Machine learning <span class=\"s2\">&#8211;<\/span> ICML\u00a0&#8217;08 (<span class=\"s1\">pp<\/span>. 408<span class=\"s2\">&#8211;<\/span>415). New York, New York, USA: ACM Press.<\/p>\n<p class=\"p1\">Brian Kulis, Sugato Basu, Inderjit Dhillon, and Raymond Mooney.\u00a0<em>Semi-supervised graph clustering: A kernel approach<\/em>. In Proceedings of the ICML 2005, pages 457\u2013464, New York, NY, USA, 2005. ACM.<\/p>\n<p class=\"p1\"><span class=\"s1\">Francesco<\/span> <span class=\"s1\">Orabona<\/span>, <span class=\"s1\">Joseph<\/span> <span class=\"s1\">Keshet<\/span>\u00a0and <span class=\"s1\">Barbara<\/span> <span class=\"s1\">Caputo<\/span>. <em>The <span class=\"s1\">projectron<\/span>: a bounded kernel<span class=\"s2\">&#8211;<\/span>based <span class=\"s1\">perceptron<\/span><\/em>. In <span class=\"s1\">Int<\/span>. <span class=\"s1\">Conf<\/span>. on Machine Learning (2008)<\/p>\n<p class=\"p1\">F. <span class=\"s1\">Rosenblatt<\/span>. The <span class=\"s1\">Perceptron<\/span> \u2013 a perceiving and recognizing automaton. Report 85<span class=\"s2\">&#8211;<\/span>460<span class=\"s2\">&#8211;<\/span>1, <span class=\"s1\">Cornell<\/span> Aeronautical Laboratory (1957)<\/p>\n<p>S. Shalev-Shwartz, Y. Singer, and N. Srebro.\u00a0<em>Pegasos: Primal estimated sub\u2013gradient solver for SVM<\/em>. In Proceedings of the International Conference on Machine Learning, 2007.<\/p>\n<p class=\"p1\"><span class=\"s1\">Wang<\/span>, J., <span class=\"s1\">Zhao<\/span>, P. and\u00a0<span class=\"s1\">Hoi<\/span>, S.C.. <em>Exact soft confidence<span class=\"s2\">&#8211;<\/span>weighted learning<\/em>. In\u00a0Proceedings of the ICML 2012. ACM, New York, NY, USA (2012)<\/p>\n<p class=\"p1\"><span class=\"s1\">Zhuang<\/span> <span class=\"s1\">Wang<\/span> and <span class=\"s1\">Slobodan<\/span> <span class=\"s1\">Vucetic.<\/span>\u00a0<em>Online Passive<span class=\"s2\">&#8211;<\/span>Aggressive Algorithms on a Budget<\/em>.\u00a0JMLR W&amp;CP 9:908-915, 2010<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In Machine Learning, a wide plethora of learning algorithms have been defined for different purposes, and many variations of the existing ones as well as completely new learning methods are often proposed. KeLP\u00a0provides a large number of learning algorithms that can be used to tackle a variety of learning scenarios, including (multi-class, multi-label, sequence) classification, <a href=\"http:\/\/www.kelp-ml.org\/?page_id=184\" rel=\"nofollow\"><span class=\"sr-only\">Read more about Machine Learning Algorithms<\/span>[&hellip;]<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":112,"menu_order":12,"comment_status":"closed","ping_status":"closed","template":"","meta":[],"_links":{"self":[{"href":"http:\/\/www.kelp-ml.org\/index.php?rest_route=\/wp\/v2\/pages\/184"}],"collection":[{"href":"http:\/\/www.kelp-ml.org\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"http:\/\/www.kelp-ml.org\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"http:\/\/www.kelp-ml.org\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.kelp-ml.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=184"}],"version-history":[{"count":11,"href":"http:\/\/www.kelp-ml.org\/index.php?rest_route=\/wp\/v2\/pages\/184\/revisions"}],"predecessor-version":[{"id":921,"href":"http:\/\/www.kelp-ml.org\/index.php?rest_route=\/wp\/v2\/pages\/184\/revisions\/921"}],"up":[{"embeddable":true,"href":"http:\/\/www.kelp-ml.org\/index.php?rest_route=\/wp\/v2\/pages\/112"}],"wp:attachment":[{"href":"http:\/\/www.kelp-ml.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=184"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}