/ml-visualizer

Visualizer of the decision boundaries of various ML algorithms, made at Treehacks.

Primary LanguagePythonOtherNOASSERTION

ML Visualizer

This is a learning tool and exploration app made using the Dash interactive Python framework developed by Plotly.

Inspiration

Sagnik is a student-instructor for the UC Berkeley Intro to ML class. Some students complained that they had no intuitive idea what happened when they changed model parameters, and that they'd like to see how the model's output changed interactively with change in parameters.

What it does

Visualizes the decision boundary of various machine learning algorithms (SVM, decision trees, boosted trees, multilayer perceptrons, etc.).

This helps democratize access to machine learning education. There are many people who are getting started with machine learning on their own, and they rely completely on free resources available online. This visualizer will be a great tool for such people to get an in-depth understanding of decision boundaries, overfitting, generalization, etc.

Since this is a free, open-source tool available online, instructors across the world can use it in their classrooms to teach, explain, and demo machine learning algorithms, and then students can go home and use it to further their understanding.

How we built it

We started with the code of Dash's SVM visualizer and heavily modified it to add support for other machine learning algorithms.

Challenges we ran into

  • Refining the UI -- positioning the logo correctly
  • Python issues with libraries

Accomplishments that we're proud of

  • Sagnik: Finishing a project at a hackathon!!!
  • Completing the parameters for other ML algorithms.

What I learned

  • Sagnik: Making a web app and deploying it to Heroku
  • Colin: Changing around frontend attributes using python 8 Komila: Finishing designs using Adobe Illustrator

What's next for ML Algorithm Visualizer

Sagnik will use this as a teaching tool in class, and keep adding to the web app as needed to maximize students' learning. The following are planned for the very near future:

  • adding more options for the existing algorithms
  • ability to import custom data
  • add animated APIs
  • add the ability for students to interactively click on their graph data points
  • add descriptions for each ML algorithm so students can get exposed to new ones
  • add a separated frontend component so that visuals can become more customized