[ANN] OutlierDetection.jl - Outlier / Anomaly Detection Ecosystem

Hi everyone,
I’m happy to announce that there exists an Outlier/Anomaly Detection ecosystem for Julia now :slight_smile:!

Julia is the perfect language to develop novel outlier detection algorithms, and I hope that more people join our effort to make Julia a first-class outlier detection ecosystem.

We tightly integrate with MLJ such that you can easily re-use the existing machine learning ecosystem.

using MLJ, OutlierDetection
using OutlierDetectionData: ODDS

X, y = ODDS.load("thyroid")
train, test = partition(eachindex(y), 0.5, shuffle=true)

KNN = @iload KNNDetector pkg=OutlierDetectionNeighbors
knn_classifier = machine(DeterministicDetector(KNN()), X)
fit!(knn_classifier, rows=train)
predict(knn_classifier, rows=test)

Have a look at the docs if you would like to try out the packages. Most importantly: Please let me know what you think about the current system; I would love to hear your feedback and improvement ideas.

Also, if you are a researcher working on outlier/anomaly detection - join our ecosystem and become a contributor or maintainer; there will be many opportunities for collaboration!

22 Likes

This is very impressive, and I look forward to playing with it!

Any image-level algorithms?

1 Like

Fantastic stuff, well done! very nice docs too :+1:

There are two semi-supervised deep learning algorithms available and a general autoencoder implementation, but the MLJ API is currently not really suited for those use cases. E.g. there are fundamental open discussions on how to implement lazy loading, batching and so forth.

It would probably require work on MLJ first, or we would have to add another interface/frontend for those methods.

1 Like