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

**URL:** <https://discourse.julialang.org/t/ann-outlierdetection-jl-outlier-anomaly-detection-ecosystem/77422>\
**Category:** Package Announcements\
**Tags:** package\
**Created:** [March 4, 2022, 8:27pm UTC](https://discourse.julialang.org/t/ann-outlierdetection-jl-outlier-anomaly-detection-ecosystem/77422 "2022-03-04T20:27:31Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![davnn](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/davnn/32/33433_2.png) [@davnn](https://discourse.julialang.org/u/davnn)\
**Post date:** [March 4, 2022, 8:27pm UTC](https://discourse.julialang.org/t/ann-outlierdetection-jl-outlier-anomaly-detection-ecosystem/77422/1 "2022-03-04T20:27:31Z")

</div>

Hi everyone,  
I’m happy to announce that there exists an Outlier/Anomaly Detection [ecosystem](https://github.com/OutlierDetectionJL) for Julia now 🙂!

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.

```julia
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](https://outlierdetectionjl.github.io/OutlierDetection.jl/dev/) 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!

---

<div class="post-metadata">

**Author:** ![xzackli](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/xzackli/32/38301_2.png) [@xzackli](https://discourse.julialang.org/u/xzackli)\
**Post date:** [March 4, 2022, 9:52pm UTC](https://discourse.julialang.org/t/ann-outlierdetection-jl-outlier-anomaly-detection-ecosystem/77422/2 "2022-03-04T21:52:15Z")

</div>

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

Any [image-level](https://github.com/hoya012/awesome-anomaly-detection#image-level-anomaly-detection) algorithms?

---

<div class="post-metadata">

**Author:** ![tlienart](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tlienart/32/7640_2.png) [@tlienart](https://discourse.julialang.org/u/tlienart)\
**Post date:** [March 4, 2022, 11:23pm UTC](https://discourse.julialang.org/t/ann-outlierdetection-jl-outlier-anomaly-detection-ecosystem/77422/3 "2022-03-04T23:23:43Z")

</div>

Fantastic stuff, well done! very nice docs too 👍

---

<div class="post-metadata">

**Author:** ![davnn](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/davnn/32/33433_2.png) [@davnn](https://discourse.julialang.org/u/davnn)\
**Post date:** [March 5, 2022, 6:55am UTC](https://discourse.julialang.org/t/ann-outlierdetection-jl-outlier-anomaly-detection-ecosystem/77422/4 "2022-03-05T06:55:51Z")

</div>

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](https://github.com/FluxML/MLJFlux.jl/issues/97) 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.
