Skip to content

A novel two-class classification algorithm implemented in python.

Notifications You must be signed in to change notification settings

nmannheimer/paragonpoints

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 

Repository files navigation

Paragon Points Classifier

A novel two-class classification algorithm implemented in python.

The Paragon Points algorithm is a novel two-class classification algorithm that offers comparable performance to a Support Vector Machine on some classification problems with two distinct classes. The training step of the model defines a sample in each n-dimensional class that most differentiates that class from the opposite class. This point is defined by iterating through each sample in a given class and calculating the sum of the euclidian distances between that point and all points in the opposing class. Once the most differentiated point, the "Paragon Point", in each class is defined, classification is performed for any new samples by simply calculating the euclidian distance between that sample and the paragon points for each class. A sample is classified as belongning to the class with the paragon point nearest to that sample.

Though the model uses distance to calculate class like a nearest Nearest Neighbors algorithm, the performance characteristics are reversed. While a KNN model is trained almost instantly by simply loading a matrix of the training data into the model, the majority of the work in the Paragon Points model occurs at training time, as the paragon points are calculated from the training data. Classification in a KNN model can become time consuming for large or high-dimensional data, since distances between a test sample must be calculated for all training points. Conversely, for the Paragon Points model, classification is extremely efficient, since each test sample is only compared to two samples: the paragons for each class.

In future, it would be interesting to expand the model to classify with N Paragon Points instead of a single point to increase flexibility. It would also be useful to expand the model to be able to handle multi-class classifications with a one vs many approach. Additionally, class probability could be calculated by comparing the distances between each test sample and both paragon points.

About

A novel two-class classification algorithm implemented in python.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages