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, thehyperaktivdataset, 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 thehyperaktivdata. 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 offramesandexperimentspredict- 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
pandaswould provide in a Python environment. - Plotlars is used for visualizations of data frames. Plotlars, specifically, is used to bridge functionality between the
plotlyandpolarscrates, greatly simplifying the process of convertingpolarsdata frames into graphical formats. This crate provides what thematplotliblibrary would in a Python environment.
- Angular with Typescript was used to build the frontend project, contained in the
webfolder. - 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.