# FerrousLearn Free of any dependencies, FerrousLearn is a Rust-based machine learning library focusing on providing efficient and reliable implementations of various algorithms. Our goal is to leverage Rust's performance and safety features to deliver a toolset for data scientists and machine learning engineers. Without any dependancies this simple approach is also a learning tool for felllow data scientist to get more aquianted with the algorithms we use. ## Features - Linear Regression: Implementation of linear regression for predictive modeling. - Logistic Regression: Binary classification using logistic regression. - K-Nearest Neighbors Regressor: A non-parametric method used for regression tasks. - Principal Component Analysis (PCA): Dimensionality reduction technique. // coming soon - Various Helper Functions: Including distance metrics, standardization, and matrix operations. ## Installation To use FerrousLearn in your project, add it as a dependency in your Cargo.toml: ```toml [dependencies] ferrouslearn = { git = "https://github.com/lm-bds/ferrouslearn.git" } ``` ## Usage Here's a quick overview of how you can use some of the features of FerrousLearn: Linear Regression ```rust use ferrouslearn::LinearRegression; let mut model = LinearRegression::new(0.1, 1000); let x_train = vec![vec![1.0, 2.0], vec![3.0, 4.0]]; let y_train = vec![5.0, 6.0]; model.fit(&x_train, &y_train, false); let predictions = model.predict(&vec![vec![2.0, 3.0]]); ``` K-Nearest Neighbors Regressor ```rust use ferrouslearn::{KNearestNeighboursRegressor, DistanceMetric, WeightingFunction}; let mut knn = KNearestNeighboursRegressor::new(3, WeightingFunction::Uniform, DistanceMetric::Euclidean); knn.fit(&x_train, &y_train, Verbosity::Silent); let predictions = knn.predict(&vec![vec![2.0, 3.0]]); ``` ## Contributing Contributions to FerrousLearn are welcome! If you have an idea for an improvement or have found a bug, please open an issue or submit a pull request. ## Developing ```rust // Clone the repository: git clone https://github.com/your-username/ferrouslearn.git // Create a new branch: // Copy code git checkout -b feature-your-feature // Make your changes and write tests to ensure functionality. // Push your branch and create a pull request. // Running Tests // To run tests, use the standard Cargo command: cargo test ``` ## License This project is licensed under MIT License.