- Introduction
- Course Objectives and Outcomes
- Programs Included
- Installation
- Usage
- Project Structure
- Contributing
- Contact Information
Machine learning is all about teaching computers how to learn from data and make smart decisions on their own—pretty cool, right? This repository is here to help you get started on that journey. It’s packed with hands-on examples and case studies in Jupyter notebooks, covering everything from basic data processing to advanced ensemble methods. And the best part? Students are welcome to dive in, explore, and contribute to these projects, making them even better as you learn and grow in the world of machine learning.
- Demonstrate different classifiers on various datasets.
- Demonstrate ensembling of classifiers for solving real-world problems.
- Implement machine learning models using real-world data.
After completing the course, students will be able to:
- Apply machine learning algorithms including dataset preparation, model selection, and model building.
- Evaluate various machine learning approaches.
- Use scikit-learn, Keras, and TensorFlow to apply ML techniques.
- Design and develop solutions to real-world problems using ML techniques.
- Apply unsupervised learning methods and interpret the results.
-
Python Environment Setup
- Installation of Python/Anaconda.
- Setting up IDE and installing required packages (scikit-learn, Keras, TensorFlow).
-
Data Handling and Libraries
- Programs utilizing pandas, NumPy, and SciPy.
-
Regression Models
- Building models using linear regression and logistic regression.
-
Decision Trees
- Building models using Decision Tree classifiers.
-
K-Nearest Neighbour (KNN)
- Building models using the KNN algorithm.
-
Naïve Bayes
- Building models using Naïve Bayes classifier.
-
Support Vector Machines (SVM)
- Building models using SVM.
-
Clustering Techniques
- Demonstration of clustering using k-means, including cluster interpretation.
- Demonstration of hierarchical clustering (agglomerative and divisive) with cluster interpretation.
-
Ensemble Techniques
- Demonstration of ensemble methods like boosting, bagging, and random forest.
- Building a classifier and comparing its performance with an ensemble technique like random forest.
-
Model Evaluation
- Evaluating various classification algorithms using performance measures such as True Positive Rate, False Positive Rate, precision, and recall.
-
Case Study
- A case study on supervised and unsupervised learning algorithms using the Weka tool.
- Python: Ensure you have Python installed. Download from python.org. its even available on the microsoft store, stuff couldn't be easier
- Anaconda (Recommended): Install Anaconda for an all-in-one Python environment from anaconda.com.
- NumPy: Documentation
- scikit-learn: Documentation
- Jupyter Lab: Documentation
- (Other libraries such as pandas and SciPy are also used. Their installation instructions are available on their respective websites.)
Steps
-
Clone the repository:
git clone https://github.com/mssanamateen/Mathematical-Foundations-of-ML.git cd Mathematical-Foundations-of-ML -
(Optional) Create and activate a virtual environment:
- On macOS/Linux:
python3 -m venv venv source venv/bin/activate - On Windows:
python -m venv venv venv\Scripts\activate
- On macOS/Linux:
-
Install required packages:
pip install numpy scikit-learn pandas scipy jupyterlab
-
Launch Jupyter Notebook:
jupyter notebook
-
Explore the Notebook Content: Each notebook is self-contained, featuring detailed comments and markdown cells that explain the concepts, code, and expected outcomes. Some notebooks also include interactive visualizations or widgets, so feel free to experiment with parameters.
-
Navigating the Repository:
Familiarize yourself with the folder structure to quickly locate key notebooks, datasets, and supplementary materials. This will help you find the right files for different topics and projects. -
Interactive Elements:
Some notebooks include interactive visualizations or widgets. These interactive components let you experiment with parameters and see real-time updates in the output. Make sure to explore these features to get a better understanding of the concepts. -
Troubleshooting Tips:
If you run into issues (like kernel crashes or dependency errors), try restarting the kernel or checking that all required packages are correctly installed. You can also refer to online documentation or community forums for further help. -
Saving and Sharing Your Work:
After running or modifying a notebook, you can save your changes, export the notebook (e.g., as HTML or PDF), and share your work with others. This makes it easier to collaborate, submit assignments, or even include your work in your portfolio.
Mathematical-Foundations-of-ML/
│
├── notebooks/
│ ├── Maths for ML
│ │ └── Plotting a system of Linear Equations
│ │
│ ├── Numpy Example
│ │
│ └── Pandas Example
│ └── datasets
│
└── README.md
Note: more directories or notebooks will be added as the project grows.
We welcome contributions from students and the community! Below are some basic guidelines along with helpful links for more details:
-
Fork the Repository:
Start by forking the repository and creating your branch. For more details, check out Forking a Repository on GitHub. -
Coding Standards:
Ensure your code is well-documented and follows standard Python coding practices. -
Pull Requests:
Submit pull requests with clear descriptions of the changes made. Learn more about creating effective pull requests in GitHub's Pull Request Guide. -
Discussion:
If you have any ideas or encounter issues, please open an issue to discuss before making major changes. Get started with GitHub Issues for more guidance. -
Testing:
Please test your code thoroughly before submitting a pull request. For best practices on testing Python code, see the unittest documentation or explore pytest.
For any questions or suggestions, please feel free to contact, would love to help with even the smallest doubts:
Feel free to reach out if you have any further questions or need additional modifications. Keep learning, keep growing.



