Package Bio :: Module kNN
[show private | hide private]
[frames | no frames]

Module Bio.kNN

This module provides code for doing k-nearest-neighbors classification.

k Nearest Neighbors is a supervised learning algorithm that classifies
a new observation based the classes in its surrounding neighborhood.

Glossary:
distance   The distance between two points in the feature space.
weight     The importance given to each point for classification. 


Classes:
kNN           Holds information for a nearest neighbors classifier.


Functions:
train        Train a new kNN classifier.
calculate    Calculate the probabilities of each class, given an observation.
classify     Classify an observation into a class.

    Weighting Functions:
equal_weight    Every example is given a weight of 1.

Classes
kNN Holds information necessary to do nearest neighbors classification.

Function Summary
  calculate(knn, x, weight_fn, distance_fn)
calculate(knn, x[, weight_fn][, distance_fn]) -> weight dict
  classify(knn, x, weight_fn, distance_fn)
classify(knn, x[, weight_fn][, distance_fn]) -> class
  equal_weight(x, y)
equal_weight(x, y) -> 1
  train(xs, ys, k, typecode)
train(xs, ys, k) -> kNN

Function Details

calculate(knn, x, weight_fn=<function equal_weight at 0xb6f92fb4>, distance_fn=<function euclidean at 0xb71b9c6c>)

calculate(knn, x[, weight_fn][, distance_fn]) -> weight dict

Calculate the probability for each class. knn is a kNN object. x is the observed data. weight_fn is an optional function that takes x and a training example, and returns a weight. distance_fn is an optional function that takes two points and returns the distance between them. Returns a dictionary of the class to the weight given to the class.

classify(knn, x, weight_fn=<function equal_weight at 0xb6f92fb4>, distance_fn=<function euclidean at 0xb71b9c6c>)

classify(knn, x[, weight_fn][, distance_fn]) -> class

Classify an observation into a class. If not specified, weight_fn will give all neighbors equal weight and distance_fn will be the euclidean distance.

equal_weight(x, y)

equal_weight(x, y) -> 1

train(xs, ys, k, typecode=None)

train(xs, ys, k) -> kNN

Train a k nearest neighbors classifier on a training set. xs is a list of observations and ys is a list of the class assignments. Thus, xs and ys should contain the same number of elements. k is the number of neighbors that should be examined when doing the classification.

Generated by Epydoc 2.1 on Thu Aug 10 20:01:05 2006 http://epydoc.sf.net