This is a one predicate model where you configure the model with the input parameters and get returned the results in the same predicate.
```prolog
%% part of the predicate definition
dbscan(+float32,+integer,+integer,
+string,+string,
+pointer(float_array),+integer,+integer,
-pointer(float_array),-integer,
-pointer(float_array),-integer,-integer)
```
### Parameters
| Name | Type | Description | Default |
|------|------|-------------|---------|
| epsilon | +float | Radius of each range search | 1.0 |
| minPoints | +integer | Minimum number of points for a cluster | 5 |
| batchMode | +integer(bool) | If true, all points are searched in batch. | (1)true |
| selectionType | +string | If using point selection policy, the type of selection to use ("ordered", "random") | ordered |
| treeType | +string | The type of tree to use ("kd", "r", "r_star", "x", "hilbert_r", "r_plus", "r_plus_plus", "cover", "ball") | kd |
| data | +matrix | Input dataset to cluster | - |
| assignments | -vector | Output matrix for assignments of each point. | - |
| centroids | -matrix | Matrix to save output centroids to. | - |
---
# Connected Links/Resources
If you want a more detailed explanation, then go to the python documentation. There is most of the time a good explanation on how the methods work and what the parameters do.