object

isolation_forest_anomaly_detector

Extended Isolation Forest (EIF) algorithm for anomaly detection. Implements the improved version described by Hariri et al. (2019) that uses random hyperplane cuts instead of axis-aligned cuts, eliminating score bias artifacts. Builds an ensemble of isolation trees from baseline training examples selected from a dataset object implementing the anomaly_dataset_protocol protocol. Missing attribute values are represented using anonymous variables.

Availability:
logtalk_load(isolation_forest_anomaly_detector(loader))
Author: Paulo Moura
Version: 2:0:0
Date: 2026-05-06
Compilation flags:
static, context_switching_calls
Remarks:
(none)

Public predicates

score/3

Computes the anomaly score for a given instance using the learned model. The instance is a list of Attribute-Value pairs where missing values are represented using anonymous variables. The score is in the range [0.0, 1.0]. Scores close to 1.0 indicate anomalies. Scores close to 0.5 or below indicate normal instances.

Compilation flags:
static
Template:
score(Model,Instance,Score)
Mode and number of proofs:
score(+compound,+list,-float) - one

score_all/3

Computes the anomaly scores for all instances in the dataset. Returns a list of Id-Class-Score triples sorted by descending anomaly score.

Compilation flags:
static
Template:
score_all(Dataset,Model,Scores)
Mode and number of proofs:
score_all(+object_identifier,+compound,-list) - one

Protected predicates

(no local declarations; see entity ancestors if any)

Private predicates

(no local declarations; see entity ancestors if any)

Operators

(none)