object

# `knn_classifier`

k-Nearest Neighbors classifier with multiple distance metrics and weighting options. Learns from a dataset object implementing the `dataset_protocol` protocol and returns a classifier term that can be used for prediction and exported as predicate clauses.

Availability:
`logtalk_load(knn_classifier(loader))`
Author: Paulo Moura
Version: 2:0:0
Date: 2026-05-11
Compilation flags:
`static, context_switching_calls`
Imports:
`public` probabilistic_classifier_common
Uses:
format
list
pairs
type
Remarks:
(none)
Inherited public predicates:
check_classifier/1 check_option/1 check_options/1 classifier_options/2 default_option/1 default_options/1 diagnostic/2 diagnostics/2 export_to_clauses/4 export_to_file/4 learn/2 learn/3 option/2 option/3 predict/3 predict_probabilities/3 print_classifier/1 valid_classifier/1 valid_option/1 valid_options/1

## Public predicates

### `predict/4`

Predicts the class label for a new instance using the learned classifier and the given options. The instance is a list of `Attribute-Value` pairs.

Compilation flags:
`static`
Template:
`predict(Classifier,Instance,Class,Options)`
Mode and number of proofs:
`predict(+compound,+list,-atom,+list(compound))` - `one`

### `predict_probabilities/4`

Predicts class probabilities for a new instance using the learned classifier and the given options. Returns a list of `Class-Probability` pairs. The instance is a list of `Attribute-Value` pairs.

Compilation flags:
`static`
Template:
`predict_probabilities(Classifier,Instance,Probabilities,Options)`
Mode and number of proofs:
`predict_probabilities(+compound,+list,-list,+list(compound))` - `one`

## Protected predicates

(no local declarations; see entity ancestors if any)

## Private predicates

(no local declarations; see entity ancestors if any)

## Operators

(none)

See also

dataset_protocol, c45_classifier, isolation_forest_anomaly_detector, naive_bayes_classifier, nearest_centroid_classifier, random_forest_classifier, adaptive_boosting_classifier