This project will be the last submitted at WGU to earn my Bachelor of Science in Computer Science. I have chosen to use this opportunity to explore the data science & machine learning ecosystem that is currently present in the Rust community.
For the evaluator:
.github
- Contains GitHub actions workflows to build/test/lint the project.data
- Contains data files - specifically, thehyperaktiv
dataset, sourced from Kaggledocs
- Contains documentation artifactssrc
- Contains Rust source code for the project.algo
- Contains application of machine learning algorithms.api
- Contains API handlers for axum.enums
- Contains enum mappings & trait impl for Hyperaktiv datasetframes
- Contains data frames built on top of thehyperaktiv
data. This is where data is enriched through cleaning & transformations.'http
- Contains elements for API interop - request & response models + trait implementationsplots
- Contains a collection of visualizations built on top offrames
andexperiments
predict
- Contains machine learning model training implementations.traits
- Contains Rust traits used to extend dataframes - clean, filter, translate, and query data.
web
- Contains Angular web application serving as frontend for the project.
- Linfa is used to apply machine learning algorithms. This is standing in for Python's
scikit-learn
, in this context. - Polars is used for IO & DataFrame processing. This fills the functionality
pandas
would provide in a Python environment. - Plotlars is used for visualizations of data frames. Plotlars, specifically, is used to bridge functionality between the
plotly
andpolars
crates, greatly simplifying the process of convertingpolars
data frames into graphical formats. This crate provides what thematplotlib
library would in a Python environment.
- Angular with Typescript was used to build the frontend project, contained in the
web
folder. - PlotlyJS is used for the visualizations. This works in conjunction with the backend Plotlars crate to show the data visually.
- BulmaCSS was used to style the application.