{"id":796,"date":"2017-03-13T17:53:41","date_gmt":"2017-03-13T17:53:41","guid":{"rendered":"http:\/\/www.kelp-ml.org\/?page_id=796"},"modified":"2017-03-16T08:21:13","modified_gmt":"2017-03-16T08:21:13","slug":"classificationlearningalgorithm","status":"publish","type":"page","link":"http:\/\/www.kelp-ml.org\/?page_id=796","title":{"rendered":"Classification Algorithms"},"content":{"rendered":"<p>Algorithms that learn from labeled data how to classify new instances.<\/p>\n<p>The following classification learning algorithm are divided\u00a0into:<\/p>\n<ul>\n<li><strong>Kernel Methods<\/strong>: methods operating in the\u00a0Reproducing Kernel Hilbert Space<\/li>\n<li><strong>Linear Methods<\/strong>: methods operating in the explicit primal space<\/li>\n<\/ul>\n<h1 style=\"padding-left: 30px;\"><strong><span style=\"color: #800000;\">Kernel Methods<\/span><\/strong><\/h1>\n<hr \/>\n<h3>Binary C SVM<\/h3>\n<p><strong>Java class<\/strong>:\u00a0<a href=\"http:\/\/www.kelp-ml.org\/kelp-javadoc\/current-version\/it\/uniroma2\/sag\/kelp\/learningalgorithm\/classification\/libsvm\/BinaryCSvmClassification.html\">BinaryCSvmClassification<\/a><\/p>\n<p><strong>Source code<\/strong>:\u00a0<a id=\"2ff919d5a7ca28e1932ee40f5cb12283-5af41493ed6e0c12cbf7822a3e9076490f2bcb84\" class=\"js-navigation-open\" title=\"BinaryCSvmClassification.java\" href=\"https:\/\/github.com\/SAG-KeLP\/kelp-core\/blob\/master\/src\/main\/java\/it\/uniroma2\/sag\/kelp\/learningalgorithm\/classification\/libsvm\/BinaryCSvmClassification.java\">BinaryCSvmClassification.java<\/a><\/p>\n<p><strong>Maven Project<\/strong>:\u00a0kelp-core<\/p>\n<p><strong>JSON type<\/strong>:\u00a0binaryCSvmClassification<\/p>\n<p><strong>Description<\/strong>:\u00a0It is the KeLP implementation of C-Support Vector Machine learning algorithm [Cortes and Vapnik(1995)]. It is a learning algorithm for binary classification and it relies on kernel functions. It is a Java porting of the library LIBSVM v3.17, written in C++ [Chang and Lin(2011)]<\/p>\n<p><strong>Parameters:<\/strong><\/p>\n<ul>\n<li><em>kernel<\/em>: The kernel function<\/li>\n<li><em>label<\/em>: The label to be learned<\/li>\n<li><em>cp<\/em>: The regularization parameter for positive examples<\/li>\n<li><em>cn<\/em>: The regularization parameter for negative examples<\/li>\n<li><em>useFairness<\/em>: A boolean parameter to force the fairness policy<\/li>\n<\/ul>\n<hr \/>\n<h3>Binary \u03bd-SVM<\/h3>\n<p><strong>Java class<\/strong>:\u00a0<a href=\"http:\/\/www.kelp-ml.org\/kelp-javadoc\/current-version\/it\/uniroma2\/sag\/kelp\/learningalgorithm\/classification\/libsvm\/BinaryNuSvmClassification.html\">BinaryNuSvmClassification<\/a><\/p>\n<p><strong>Source code<\/strong>:\u00a0<a href=\"https:\/\/github.com\/SAG-KeLP\/kelp-core\/blob\/master\/src\/main\/java\/it\/uniroma2\/sag\/kelp\/learningalgorithm\/classification\/libsvm\/BinaryNuSvmClassification.java\">BinaryNuSvmClassification.java<\/a><\/p>\n<p><strong>Maven Project<\/strong>:\u00a0kelp-core<\/p>\n<p><strong>JSON type<\/strong>:\u00a0binaryNuSvmClassification<\/p>\n<p><strong>Description<\/strong>:\u00a0It is the KeLP implementation of the \u03bd-Support Vector Machine learning algorithm [Scholkopf et al.(2000)]. It is a learning algorithm for binary classification and it relies on kernel functions. It is a Java porting of the library LIBSVM v3.17, written in C++ [Chang and Lin(2011)].<\/p>\n<p><strong>Parameters:<\/strong><\/p>\n<ul>\n<li><em>kernel<\/em>: The kernel function<\/li>\n<li><em>label<\/em>: The label to be learned<\/li>\n<li><em>nu<\/em>: The <em>\u03bd<\/em> parameter, i.e., the percentage of training example to be used as Support Vectors<\/li>\n<li><em>useFairness<\/em>: A boolean parameter to force the fairness policy<\/li>\n<\/ul>\n<hr \/>\n<h3>One-Class SVM<\/h3>\n<p><strong>Java class<\/strong>:\u00a0<a title=\"class in it.uniroma2.sag.kelp.learningalgorithm.classification.libsvm\" href=\"http:\/\/www.kelp-ml.org\/kelp-javadoc\/current-version\/it\/uniroma2\/sag\/kelp\/learningalgorithm\/classification\/libsvm\/OneClassSvmClassification.html\" target=\"classFrame\">OneClassSvmClassification<\/a><\/p>\n<p><strong>Source code<\/strong>:\u00a0<a id=\"2d41e69c6efa5ee9a4f7502d3fe02880-6e4e8b6a144f5c119f1a5be8c53e526eb79e3b3d\" class=\"js-navigation-open\" title=\"OneClassSvmClassification.java\" href=\"https:\/\/github.com\/SAG-KeLP\/kelp-core\/blob\/master\/src\/main\/java\/it\/uniroma2\/sag\/kelp\/learningalgorithm\/classification\/libsvm\/OneClassSvmClassification.java\">OneClassSvmClassification.java<\/a><\/p>\n<p><strong>Maven Project<\/strong>: kelp-core<\/p>\n<p><strong>JSON type<\/strong>:\u00a0oneClassSvmClassification<\/p>\n<p><strong>Description<\/strong>:\u00a0It is KeLP implementation of One-Class Support Vector Machine learning algorithm [Scholkopf et al.(2001)]. It is a learning algorithm for estimating the Support of a HighDimensional Distribution and it relies on kernel functions. The model is acquired only by considering positive examples. It is useful in anomaly detection (a.k.a. novelty detection). It is a Java porting of the library LIBSVM v3.17, written in C++ [Chang and Lin(2011)]<\/p>\n<p><strong>Parameters:<\/strong><\/p>\n<ul>\n<li><em>kernel<\/em>: The kernel function<\/li>\n<li><em> label<\/em>: The label to be learned<\/li>\n<li><em>nu<\/em>: The \u03bd parameter, i.e., the percentage of training example to be used as Support Vectors<\/li>\n<\/ul>\n<hr \/>\n<h3>Kernel-based Perceptron<\/h3>\n<p><strong>Java class<\/strong>:\u00a0<a title=\"class in it.uniroma2.sag.kelp.learningalgorithm.classification.perceptron\" href=\"http:\/\/www.kelp-ml.org\/kelp-javadoc\/current-version\/it\/uniroma2\/sag\/kelp\/learningalgorithm\/classification\/perceptron\/KernelizedPerceptron.html\" target=\"classFrame\">KernelizedPerceptron<\/a><\/p>\n<p><strong>Source code<\/strong>:\u00a0<a id=\"debfa5133754d966dfa668502ad39059-788ad3635dd150ebbd8e8d90b6f12f48e58a0795\" class=\"js-navigation-open\" title=\"KernelizedPerceptron.java\" href=\"https:\/\/github.com\/SAG-KeLP\/kelp-additional-algorithms\/blob\/master\/src\/main\/java\/it\/uniroma2\/sag\/kelp\/learningalgorithm\/classification\/perceptron\/KernelizedPerceptron.java\">KernelizedPerceptron.java<\/a><\/p>\n<p><strong>Maven Project<\/strong>:\u00a0kelp-additional-algorithms<\/p>\n<p><strong>JSON type<\/strong>:\u00a0kernelizedPerceptron<\/p>\n<p><strong>Description<\/strong>:\u00a0The perceptron learning algorithm for classification tasks (Kernel machine version, presented in [Rosenblat(1958)]).<\/p>\n<p><strong>Parameters:<\/strong><\/p>\n<ul>\n<li><em>kernel<\/em>: The kernel function<\/li>\n<li><em> label<\/em>: The label to be learned<\/li>\n<li><em>alpha<\/em>: The learning rate, i.e., the weight associated to misclassified examples during the learning process<\/li>\n<li><em>margin<\/em>: The minimum distance from the hyperplane that an example must have in order to be not considered misclassified<\/li>\n<li><em>unbiased<\/em>: This boolean parameter determines the use of bias b in the classification function<img decoding=\"async\" loading=\"lazy\" src=\"http:\/\/www.kelp-ml.org\/wp-content\/ql-cache\/quicklatex.com-e3e97d9ecf31e6006910b4b8ec1c509d_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#102;&#40;&#120;&#41;&#61;&#119;&#120;&#32;&#43;&#32;&#98;\" title=\"Rendered by QuickLaTeX.com\" height=\"18\" width=\"111\" style=\"vertical-align: -4px;\"\/>. If usebias is set to true the bias is set to 0.<\/li>\n<\/ul>\n<hr \/>\n<h3>Kernel-based Passive Aggressive (PA) Classification<\/h3>\n<p><strong>Java class<\/strong>:\u00a0<a title=\"class in it.uniroma2.sag.kelp.learningalgorithm.classification.passiveaggressive\" href=\"http:\/\/www.kelp-ml.org\/kelp-javadoc\/current-version\/it\/uniroma2\/sag\/kelp\/learningalgorithm\/classification\/passiveaggressive\/KernelizedPassiveAggressiveClassification.html\" target=\"classFrame\">KernelizedPassiveAggressiveClassification<\/a><\/p>\n<p><strong>Source code<\/strong>:\u00a0<a id=\"d0d0951002e0ba12a788a0fce954254f-6c3c2c200f02a5fbc36bc254481c36fe73aa289c\" class=\"js-navigation-open\" title=\"KernelizedPassiveAggressiveClassification.java\" href=\"https:\/\/github.com\/SAG-KeLP\/kelp-additional-algorithms\/blob\/master\/src\/main\/java\/it\/uniroma2\/sag\/kelp\/learningalgorithm\/classification\/passiveaggressive\/KernelizedPassiveAggressiveClassification.java\">KernelizedPassiveAggressiveClassification.java<\/a><\/p>\n<p><strong>Maven Project<\/strong>:\u00a0kelp-additional-algorithms<\/p>\n<p><strong>JSON type<\/strong>:\u00a0kernelizedPA<\/p>\n<p><strong>Description<\/strong>:\u00a0Online Passive-Aggressive Learning Algorithm for classification tasks with Kernels (presented in [Crammer et al.(2006)] and extended in [Filice et al.(2014)])). Every time an example is misclassified it is added as support vector, with the weight that solves the passive aggressive minimization problem.<\/p>\n<p><strong>Parameters:<\/strong><\/p>\n<ul>\n<li><em>label<\/em>: The label to be learned<\/li>\n<li><em>kernel<\/em>: The kernel function<\/li>\n<li><em>loss<\/em>: The loss function to weight each misclassification<\/li>\n<li><em>policy<\/em>: The updating policy applied by the Passive Aggressive Algorithm when a miss-prediction occurs<\/li>\n<li><em>cp<\/em>: The aggressiveness parameter for positive examples<\/li>\n<li><em>cn<\/em>: The aggressiveness parameter for negative examples<\/li>\n<li><em>useFairness<\/em>: A boolean parameter to force the fairness policy<\/li>\n<\/ul>\n<hr \/>\n<h3>Budgeted Online Learning: Budgeted Passive Aggressive Classification<\/h3>\n<p><strong>Java class<\/strong>:\u00a0<a title=\"class in it.uniroma2.sag.kelp.learningalgorithm.classification.passiveaggressive\" href=\"http:\/\/www.kelp-ml.org\/kelp-javadoc\/current-version\/it\/uniroma2\/sag\/kelp\/learningalgorithm\/classification\/passiveaggressive\/BudgetedPassiveAggressiveClassification.html\" target=\"classFrame\">BudgetedPassiveAggressiveClassification<\/a><\/p>\n<p><strong>Source code<\/strong>:\u00a0<a id=\"5fc644e9187ae5d18d349dc881909289-568c1e1d998b003387027d5b598d1a1146f5ec15\" class=\"js-navigation-open\" title=\"BudgetedPassiveAggressiveClassification.java\" href=\"https:\/\/github.com\/SAG-KeLP\/kelp-additional-algorithms\/blob\/master\/src\/main\/java\/it\/uniroma2\/sag\/kelp\/learningalgorithm\/classification\/passiveaggressive\/BudgetedPassiveAggressiveClassification.java\">BudgetedPassiveAggressiveClassification.java<\/a><\/p>\n<p><strong>Maven Project<\/strong>:\u00a0kelp-additional-algorithms<\/p>\n<p><strong>JSON type<\/strong>:\u00a0budgetedPA<\/p>\n<p><strong>Description<\/strong>:\u00a0It is the implementation of the Budgeted Passive Aggressive Algorithm proposed in [Wang and Vucetic(2010)]. When the budget is full, the schema proposed in [Wang and Vucetic(2010)] to update examples (and weights) is adopted.<\/p>\n<p><strong>Parameters:<\/strong><\/p>\n<ul>\n<li><em>label<\/em>: The label to be learned<\/li>\n<li><em>label<\/em>: The label to be learned<\/li>\n<li><em>kernel<\/em>: The kernel function<\/li>\n<li><em>loss<\/em>: The loss function to weight each misclassification<\/li>\n<li><em>policy<\/em>: The updating policy applied by the Passive Aggressive Algorithm when a miss-prediction occurs<\/li>\n<li><em> deletingPolicy<\/em>: The policy for the removal of examples from the budget before adding new examples. This can be\n<ul>\n<li><em>BPA S<\/em>: Budgeted Passive Aggressive Simple: when a new support vector must be added, one is removed and the weight of the other support vectors is kept unchanged<\/li>\n<li><em>BPA 1NN<\/em>: Budgeted Passive Aggressive Nearest Neighbor: when a new support vector must be added, one is removed and the weight of its nearest neighbor is adjusted<\/li>\n<\/ul>\n<\/li>\n<li><em>cp<\/em>: The aggressiveness parameter for positive examples<\/li>\n<li><em>cn<\/em>: The aggressiveness parameter for negative examples<\/li>\n<li><em>useFairness<\/em>: A boolean parameter to force the fairness policy<\/li>\n<li><em>budget<\/em>: The maximum number of support vectors allowed in the budget<\/li>\n<\/ul>\n<hr \/>\n<h1 style=\"padding-left: 30px;\"><strong><span style=\"color: #800000;\"> Linear Methods<\/span><\/strong><\/h1>\n<hr \/>\n<h3>LibLinear SVM Classification<\/h3>\n<p><strong>Java class<\/strong>:\u00a0<a title=\"class in it.uniroma2.sag.kelp.learningalgorithm.classification.liblinear\" href=\"http:\/\/www.kelp-ml.org\/kelp-javadoc\/current-version\/it\/uniroma2\/sag\/kelp\/learningalgorithm\/classification\/liblinear\/LibLinearLearningAlgorithm.html\" target=\"classFrame\">LibLinearLearningAlgorithm<\/a><\/p>\n<p><strong>Source code<\/strong>:\u00a0<a id=\"ed55c8070a2fc9321124fbd77cdeef43-9c38086b913364f9a09e85ccbb16bd8e4966717f\" class=\"js-navigation-open\" title=\"LibLinearLearningAlgorithm.java\" href=\"https:\/\/github.com\/SAG-KeLP\/kelp-additional-algorithms\/blob\/master\/src\/main\/java\/it\/uniroma2\/sag\/kelp\/learningalgorithm\/classification\/liblinear\/LibLinearLearningAlgorithm.java\">LibLinearLearningAlgorithm.java<\/a><\/p>\n<p><strong>Maven Project<\/strong>:\u00a0kelp-additional-algorithms<\/p>\n<p><strong>JSON type<\/strong>:\u00a0liblinear<\/p>\n<p><strong>Description<\/strong>:\u00a0This class implements linear SVMs models trained using a coordinate descent algorithm [Fan et al.(2008)]. It operates in an explicit feature space (i.e., it does not rely on any kernel). This code has been adapted from the Java port of the original LIBLINEAR C++ sources.<\/p>\n<p><strong>Parameters:<\/strong><\/p>\n<ul>\n<li><em>label<\/em>: The label to be learned<\/li>\n<li><em>cp<\/em>: The regularization parameter for positive examples<\/li>\n<li><em>cn<\/em>: The regularization parameter for negative examples<\/li>\n<li><em> representation<\/em>: The identifier of the representation to be considered for the training step<\/li>\n<\/ul>\n<hr \/>\n<h3>Pegasos Classification<\/h3>\n<p><strong>Java class<\/strong>:\u00a0<a title=\"class in it.uniroma2.sag.kelp.learningalgorithm.classification.pegasos\" href=\"http:\/\/www.kelp-ml.org\/kelp-javadoc\/current-version\/it\/uniroma2\/sag\/kelp\/learningalgorithm\/classification\/pegasos\/PegasosLearningAlgorithm.html\" target=\"classFrame\">PegasosLearningAlgorithm<\/a><\/p>\n<p><strong>Source code<\/strong>:\u00a0<a id=\"f34aa67b46d334fe4059f2829e061f47-f235ba851b496c439868a33e3024006de071b8ce\" class=\"js-navigation-open\" title=\"PegasosLearningAlgorithm.java\" href=\"https:\/\/github.com\/SAG-KeLP\/kelp-additional-algorithms\/blob\/master\/src\/main\/java\/it\/uniroma2\/sag\/kelp\/learningalgorithm\/classification\/pegasos\/PegasosLearningAlgorithm.java\">PegasosLearningAlgorithm.java<\/a><\/p>\n<p><strong>Maven Project<\/strong>:\u00a0kelp-additional-algorithms<\/p>\n<p><strong>JSON type<\/strong>:\u00a0pegasos<\/p>\n<p><strong>Description<\/strong>:\u00a0It implements the Primal Estimated sub-GrAdient SOlver (PEGASOS) for SVM. It is a learning algorithm for binary linear classification Support Vector Machines. It operates in an explicit feature space (i.e., it does not rely on any kernel). Further details can be found in [Shalev-Shwartz et al.(2007)].<\/p>\n<p><strong>Parameters:<\/strong><\/p>\n<ul>\n<li><em>label<\/em>: The label to be learned<\/li>\n<li><em>lambda<\/em>: The regularization coefficient<\/li>\n<li><em>iterations<\/em>: The number of iterations required from the learning algorithm<\/li>\n<li><em> k<\/em>: The number of examples k that PEGASOS exploits in its mini-batch learning approach<\/li>\n<li><em>representation<\/em>: The identifier of the representation to be considered for the training step<\/li>\n<\/ul>\n<hr \/>\n<h3>A Dual Coordinate Descent Learning Algorithm<\/h3>\n<p><strong>Java class<\/strong>:\u00a0<a title=\"class in it.uniroma2.sag.kelp.learningalgorithm.classification.dcd\" href=\"http:\/\/www.kelp-ml.org\/kelp-javadoc\/current-version\/it\/uniroma2\/sag\/kelp\/learningalgorithm\/classification\/dcd\/DCDLearningAlgorithm.html\" target=\"classFrame\">DCDLearningAlgorithm<\/a><\/p>\n<p><strong>Source code<\/strong>:\u00a0<a id=\"efde384e3d725977f83a4f85ef4220f4-8eb5f251c719d35e38b6ce3fb4291d4595ed9635\" class=\"js-navigation-open\" title=\"DCDLearningAlgorithm.java\" href=\"https:\/\/github.com\/SAG-KeLP\/kelp-additional-algorithms\/blob\/master\/src\/main\/java\/it\/uniroma2\/sag\/kelp\/learningalgorithm\/classification\/dcd\/DCDLearningAlgorithm.java\">DCDLearningAlgorithm.java<\/a><\/p>\n<p><strong>Maven Project<\/strong>:\u00a0kelp-additional-algorithms<\/p>\n<p><strong>JSON type<\/strong>:\u00a0dcd<\/p>\n<p><strong>Description<\/strong>:\u00a0the KeLP implementation of Dual Coordinate Descent (DCD) training algorithm for a Linear<img decoding=\"async\" loading=\"lazy\" src=\"http:\/\/www.kelp-ml.org\/wp-content\/ql-cache\/quicklatex.com-4bcbda644029cb93675c1aef8486449f_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#76;&#32;&#36;&#94;&#49;&#36;\" title=\"Rendered by QuickLaTeX.com\" height=\"15\" width=\"18\" style=\"vertical-align: 0px;\"\/> or<img decoding=\"async\" loading=\"lazy\" src=\"http:\/\/www.kelp-ml.org\/wp-content\/ql-cache\/quicklatex.com-9f84f841a6a7b22155628eb6102a9774_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#76;&#36;&#94;&#32;&#50;&#36;\" title=\"Rendered by QuickLaTeX.com\" height=\"15\" width=\"19\" style=\"vertical-align: 0px;\"\/> Support Vector Machine for binary classification [Hsieh et al.(2008)].<\/p>\n<p><strong>Parameters:\u00a0<\/strong><\/p>\n<ul>\n<li><em>label<\/em>: The label to be learned<\/li>\n<li><em>dcdLoss<\/em>: The considered Loss function (<img decoding=\"async\" loading=\"lazy\" src=\"http:\/\/www.kelp-ml.org\/wp-content\/ql-cache\/quicklatex.com-4bcbda644029cb93675c1aef8486449f_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#76;&#32;&#36;&#94;&#49;&#36;\" title=\"Rendered by QuickLaTeX.com\" height=\"15\" width=\"18\" style=\"vertical-align: 0px;\"\/> or<img decoding=\"async\" loading=\"lazy\" src=\"http:\/\/www.kelp-ml.org\/wp-content\/ql-cache\/quicklatex.com-9f84f841a6a7b22155628eb6102a9774_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#76;&#36;&#94;&#32;&#50;&#36;\" title=\"Rendered by QuickLaTeX.com\" height=\"15\" width=\"19\" style=\"vertical-align: 0px;\"\/> )<\/li>\n<li><em>useBias<\/em>: This boolean parameter determines the use of bias <img decoding=\"async\" loading=\"lazy\" src=\"http:\/\/www.kelp-ml.org\/wp-content\/ql-cache\/quicklatex.com-f56d50c26583f9a035ff6b4e3c0ca5c0_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#98;\" title=\"Rendered by QuickLaTeX.com\" height=\"13\" width=\"8\" style=\"vertical-align: 0px;\"\/> in the classification function <img decoding=\"async\" loading=\"lazy\" src=\"http:\/\/www.kelp-ml.org\/wp-content\/ql-cache\/quicklatex.com-a0991460c816e2f2285b43f30842f344_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#102;&#40;&#120;&#41;&#61;&#119;&#40;&#120;&#41;&#43;&#98;\" title=\"Rendered by QuickLaTeX.com\" height=\"18\" width=\"125\" style=\"vertical-align: -4px;\"\/>. If usebias is set to false the bias is set to 0<\/li>\n<li><em>cp<\/em>: The regularization parameter for positive examples<\/li>\n<li><em>cn<\/em>: The regularization parameter for negative examples<\/li>\n<li><em>maxIterations<\/em>: The number of iterations required from the learning algorithm<\/li>\n<li><em>representation<\/em>: The identifier of the representation to be considered for the training step<\/li>\n<\/ul>\n<hr \/>\n<h3>Linear Passive Aggressive (PA) Classification<\/h3>\n<p><strong>Java class<\/strong>:\u00a0<a title=\"class in it.uniroma2.sag.kelp.learningalgorithm.classification.passiveaggressive\" href=\"http:\/\/www.kelp-ml.org\/kelp-javadoc\/current-version\/it\/uniroma2\/sag\/kelp\/learningalgorithm\/classification\/passiveaggressive\/LinearPassiveAggressiveClassification.html\" target=\"classFrame\">LinearPassiveAggressiveClassification<\/a><\/p>\n<p><strong>Source code<\/strong>:\u00a0<a id=\"0632542fe08023b7d1658a4736bebe86-be5df731255042dcdf4ddf58ffb9ec157bc81949\" class=\"js-navigation-open\" title=\"LinearPassiveAggressiveClassification.java\" href=\"https:\/\/github.com\/SAG-KeLP\/kelp-additional-algorithms\/blob\/master\/src\/main\/java\/it\/uniroma2\/sag\/kelp\/learningalgorithm\/classification\/passiveaggressive\/LinearPassiveAggressiveClassification.java\">LinearPassiveAggressiveClassification.java<\/a><\/p>\n<p><strong>Maven Project<\/strong>:\u00a0kelp-additional-algorithms<\/p>\n<p><strong>JSON type<\/strong>:\u00a0linearPA<\/p>\n<p><strong>Description<\/strong>:\u00a0Online Passive-Aggressive Learning Algorithm for classification tasks (linear version, presented in [Crammer et al.(2006)] and extended in [Filice et al.(2014)]). Every time an example is misclassified it is added the current hyperplane, with the weight that solves the passive aggressive minimization problem.<\/p>\n<p><strong>Parameters:\u00a0<\/strong><\/p>\n<ul>\n<li><em>label<\/em>: The label to be learned<\/li>\n<li><em>loss<\/em>: The loss function to weight each misclassification<\/li>\n<li><em>policy<\/em>: The updating policy applied by the Passive Aggressive Algorithm when a miss-prediction occurs<\/li>\n<li><em>cp<\/em>: The aggressiveness parameter for positive examples<\/li>\n<li><em>cn<\/em>: The aggressiveness parameter for negative examples<\/li>\n<li><em>useFairness<\/em>: A boolean parameter to force the fairness policy<\/li>\n<li><em>representation<\/em>: The identifier of the representation to be considered for the training step<\/li>\n<\/ul>\n<hr \/>\n<h3>Linear Perceptron<\/h3>\n<p><strong>Java class<\/strong>:\u00a0<a title=\"class in it.uniroma2.sag.kelp.learningalgorithm.classification.perceptron\" href=\"http:\/\/www.kelp-ml.org\/kelp-javadoc\/current-version\/it\/uniroma2\/sag\/kelp\/learningalgorithm\/classification\/perceptron\/LinearPerceptron.html\" target=\"classFrame\">LinearPerceptron<\/a><\/p>\n<p><strong>Source code<\/strong>:\u00a0<a id=\"2c67980db14f48f2965f311615293b9a-84b1f04321b7973e8ed49a8b2b2c0c221ec8a1da\" class=\"js-navigation-open\" title=\"LinearPerceptron.java\" href=\"https:\/\/github.com\/SAG-KeLP\/kelp-additional-algorithms\/blob\/master\/src\/main\/java\/it\/uniroma2\/sag\/kelp\/learningalgorithm\/classification\/perceptron\/LinearPerceptron.java\">LinearPerceptron.java<\/a><\/p>\n<p><strong>Maven Project<\/strong>:\u00a0kelp-additional-algorithms<\/p>\n<p><strong>JSON type<\/strong>: \u00a0linearPerceptron<\/p>\n<p><strong>Description<\/strong>:\u00a0The perceptron learning algorithm for classification tasks (linear version, presented in [Rosenblat(1958)]).<\/p>\n<p><strong>Parameters:<\/strong><\/p>\n<ul>\n<li><em>label<\/em>: The label to be learned<\/li>\n<li><em>alpha<\/em>: The learning rate, i.e., the weight associated to misclassified examples during the learning process<\/li>\n<li><em>margin<\/em>: The minimum distance from the hyperplane that an example must have in order to be not considered misclassified<\/li>\n<li><em>unbias<\/em>: This boolean parameter determines the use of bias b in the classification function <img decoding=\"async\" loading=\"lazy\" src=\"http:\/\/www.kelp-ml.org\/wp-content\/ql-cache\/quicklatex.com-e3e97d9ecf31e6006910b4b8ec1c509d_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#102;&#40;&#120;&#41;&#61;&#119;&#120;&#32;&#43;&#32;&#98;\" title=\"Rendered by QuickLaTeX.com\" height=\"18\" width=\"111\" style=\"vertical-align: -4px;\"\/>. If usebias is set to true the bias is set to 0.<\/li>\n<li><em>representation<\/em>: The identifier of the representation to be considered for the training step<\/li>\n<\/ul>\n<hr \/>\n<h3>Soft Confidence Weighted Classification<\/h3>\n<p><strong>Java class<\/strong>:\u00a0<a title=\"class in it.uniroma2.sag.kelp.learningalgorithm.classification.scw\" href=\"http:\/\/www.kelp-ml.org\/kelp-javadoc\/current-version\/it\/uniroma2\/sag\/kelp\/learningalgorithm\/classification\/scw\/SoftConfidenceWeightedClassification.html\" target=\"classFrame\">SoftConfidenceWeightedClassification<\/a><\/p>\n<p><strong>Source code<\/strong>:\u00a0<a id=\"cb56662fc295c18dc5f166c916bc09ac-849fb9a91d6512ff9b29a4136cbb75fae9b12256\" class=\"js-navigation-open\" title=\"SoftConfidenceWeightedClassification.java\" href=\"https:\/\/github.com\/SAG-KeLP\/kelp-additional-algorithms\/blob\/master\/src\/main\/java\/it\/uniroma2\/sag\/kelp\/learningalgorithm\/classification\/scw\/SoftConfidenceWeightedClassification.java\">SoftConfidenceWeightedClassification.java<\/a><\/p>\n<p><strong>Maven Project<\/strong>:\u00a0kelp-additional-algorithms<\/p>\n<p><strong>JSON type<\/strong>:\u00a0scw<\/p>\n<p><strong>Description<\/strong>:\u00a0Implements Exact Soft Confidence-Weighted (SCW) algorithms, an on-line learning algorithm for binary classification [Wang et al.(2012)]. This class implements both the SCW-I and SCW-II variants.<\/p>\n<p><strong>Parameters:<\/strong><\/p>\n<ul>\n<li><em>label<\/em>: The label to be learned<\/li>\n<li><em>scwType<\/em>: The type of SCW learning algorithm (SCW-I or SCW-II)<\/li>\n<li><em>eta<\/em>: The probability of correct classification required for the updated distribution on the current instance<\/li>\n<li><em>cp<\/em>: The regularization parameter for positive examples<\/li>\n<li><em>cn<\/em>: The regularization parameter for negative examples<\/li>\n<li><em>useFairness<\/em>: A boolean parameter to force the fairness policy<\/li>\n<li><em>representation<\/em>: The identifier of the representation to be considered for the training step<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\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><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\">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>Algorithms that learn from labeled data how to classify new instances. The following classification learning algorithm are divided\u00a0into: Kernel Methods: methods operating in the\u00a0Reproducing Kernel Hilbert Space Linear Methods: methods operating in the explicit primal space Kernel Methods Binary C SVM Java class:\u00a0BinaryCSvmClassification Source code:\u00a0BinaryCSvmClassification.java Maven Project:\u00a0kelp-core JSON type:\u00a0binaryCSvmClassification Description:\u00a0It is the KeLP implementation of <a href=\"http:\/\/www.kelp-ml.org\/?page_id=796\" rel=\"nofollow\"><span class=\"sr-only\">Read more about Classification Algorithms<\/span>[&hellip;]<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":[],"_links":{"self":[{"href":"http:\/\/www.kelp-ml.org\/index.php?rest_route=\/wp\/v2\/pages\/796"}],"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=796"}],"version-history":[{"count":33,"href":"http:\/\/www.kelp-ml.org\/index.php?rest_route=\/wp\/v2\/pages\/796\/revisions"}],"predecessor-version":[{"id":911,"href":"http:\/\/www.kelp-ml.org\/index.php?rest_route=\/wp\/v2\/pages\/796\/revisions\/911"}],"wp:attachment":[{"href":"http:\/\/www.kelp-ml.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=796"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}