Code Monkey home page Code Monkey logo

auto-anomaly's Introduction

SLO HACKS 2019

Best AI/ML Hack

1st Place in iTradeNetwork’s anomaly detection challenge

Top 5 Overall Hacks

Inspiration

iTradeNetwork's Anomaly Detection Challenge!

What it does

The iTradeNetwork challenge is to develop a system to detect anomalies within their provided dataset of perishable good supply chain invoices. The dataset is almost 500,000 entries, so our solution leverages unsupervised ML to tackle the issue! The challenge does not provide any examples of anomalous data, so we were free to create our own metric. To solve this problem, our system assigns all data samples an anomaly score, allowing us to provide the end user with a stream of potential anomalies, prioritized by likelihood to be anomalous.

How we built it

After extensive data cleaning, we trained an autoencoder neural network to develop embeddings for the data samples. From there, we used the Local Outlier Factor algorithm to detect outliers among the embedded samples within the latent space. The samples that corrspond to those embeddings can then be examined as potential anomalies that rule-sets are likely to miss.

We provide the service to the end-user through an easy-to-use web application. Built with React/Node.js/Flask, the user can easily explore the potential anomalies.

Challenges we ran into

At the start of the hackathon, our team composed of four group members. However, as time went on, the team size fell to two. With the same goal in mind, we worked with machine learning algorithms that neither of us had much experience with. Additionally, we were working with quite dirty data and utilizing web frameworks that we have minimal experience in.

Accomplishments that we're proud of

We are extremely happy about the systems we developed to clean and analyze the data! We fought through the struggles of losing teammates and learning new packages/frameworks and were still able to reach most of our goals!

Running the web app locally

  1. npm install
  2. pip3 install -r requirements.txt
  3. npm run dev (or "npm run start" in a different terminal to have the changes incorporate live
  4. python3 server.py
  5. Go to http://localhost:3000
  6. Use 'CTRL+SHIFT+R' to override the cache and reload the page

auto-anomaly's People

Contributors

kyle-maxwell avatar alexlao avatar

Stargazers

 avatar

Watchers

James Cloos avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.