The term "classifier" is widely used for (at least) three very different entities:

  1. A particular type of mathematical function, often viewed as resulting from the operation of a supervised learning algorithm.

  2. The declarative representation of #1, as created by hand or output by software implementing a supervised learning algorithm.

  3. A software component that takes #2, plus examples, and outputs predictions for those examples.

The overloading of vocabulary between #1 and #2 tends not to problematic, but the use of the same term for both #2 and #3 causes endless grief when I'm working with software developers. I've tried out various terms for #3 over the years: "applier", "interpreter", "executer", etc., alone or prefixed by "classifier", but keep wishing there was something both standard and distinctive.

So consider this a poll: what do you call #3 in conversation and/or when naming a software component?

asked Aug 26 '11 at 12:22

Dave%20Lewis's gravatar image

Dave Lewis
890202846

edited Aug 27 '11 at 12:23


5 Answers:

In our commercial application we call this piece of software a "scoring server".

A scoring server collates the explicit raw inputs, if necessary retrieves additional data needed from a database, computes the derived inputs, computes the value of the model's score function, and returns the score to another application. A scoring server does not update ("retrain") or alter the model and is designed for production use in scalability, availability and diagnostics, as opposed to scientific model development.

Following the scoring server, a commercial application typically applies some rule engine of business rules to perform certain actions depending on the returned score and other data.

answered Jul 12 '13 at 02:46

Matt's gravatar image

Matt
0113

edited Jul 12 '13 at 02:49

We often refer to the run-time component as the "decoder". This probably shows my bias in coming from the natural language processing and speech recognition communities.

answered Jul 11 '13 at 15:19

johndburger's gravatar image

johndburger
813

edited Jul 11 '13 at 15:19

  1. "the algorithm" (as in, we use the SVM algorithm); 2. "the model" (as in, save the SVM model to a file); 3. "the code" (as in, there's a bug in the svm code).

answered Aug 27 '11 at 12:14

Alexandre%20Passos's gravatar image

Alexandre Passos ♦
2554154278421

FYI, for 1. I meant the mathematical object output by the algorithm, i.e. a hyperplane for linear SVMs, or a tree structure for decision tree learners. But one would like a generic term for this across all learning algorithms. "Code" is true for 3, but one would ideally like a way to talk about this part of a piece of software vs. other parts.

(Aug 28 '11 at 09:34) Dave Lewis

I'd call 1) a model, to an instance of the model and 3) as the prediction function of this model. Or maybe predictor?

answered Aug 27 '11 at 07:43

Andreas%20Mueller's gravatar image

Andreas Mueller
2686185893

I think the problem is that "the prediction function" could very well be the mathematical expression of the function (i.e., 1)

(Aug 27 '11 at 12:12) Alexandre Passos ♦

I tend to refer to #2 as a model, and #3 as a classifier. For #1, I think I also use classifier, or sometimes classification algorithm.

answered Aug 26 '11 at 14:06

Bryan%20Rink's gravatar image

Bryan Rink
163

Your answer
toggle preview

powered by OSQA

User submitted content is under Creative Commons: Attribution - Share Alike; Other things copyright (C) 2010, MetaOptimize LLC.