This project contains a collection of notebooks that implement various Machine Learning problems, categorized into two main groups: supervised learning and unsupervised learning. These problems include classification, regression, and clustering, with each problem solved using different algorithms to provide a comprehensive understanding of Machine Learning techniques and tools.
Contains all the notebooks of the project, divided into two main groups:
1. supervised/
Includes supervised learning problems, with two main types: classification and regression.
-
breast_cancer_decision_tree_classifier.ipynb
: Decision tree classification for breast cancer data.iris_decision_tree_classifier.ipynb
: Iris flower classification using decision tree.wine_decision_tree_classifier.ipynb
: Wine classification using decision tree.
-
knn/
:digit_recognition.ipynb
: Handwritten digit recognition using K-Nearest Neighbors (KNN).
-
model_comparison_classification/
:classifier_comparison.ipynb
: Comparison of different classification models on a specific dataset.digit_classifier_comparison.ipynb
: Comparison of different classification models on the digit dataset.spam_classifier_comparison.ipynb
: Comparison of different models for spam classification.
-
-
diabetes_mlp_classifier.ipynb
: Using MLP network for diabetes classification.iris_mlp_classifier.ipynb
: Using MLP network for Iris flower classification.
-
diabetes_perceptron.ipynb
: Diabetes classification using Perceptron.iris_perceptron.ipynb
: Iris flower classification using Perceptron.perceptron_from_scratch.py
: Python file implementing Perceptron from scratch without using specialized libraries.perceptron_from_scratch_demo.ipynb
: Demo implementation of Perceptron from scratch.spam_perceptron.ipynb
: Spam classification using Perceptron.
-
linear/
:advertising.ipynb
: Predicting advertising effectiveness using linear regression.boston_house_price.ipynb
: Predicting Boston house prices using linear regression.linear_regression_from_scratch.ipynb
: Linear regression implemented from scratch without using specialized libraries.student_performance.ipynb
: Predicting student performance using linear regression.
Contains unsupervised learning problems, including clustering algorithms.
-
custom_dbscan_implementation.ipynb
: Custom implementation of DBSCAN from scratch without using specialized libraries.fresh_milk_clustering.ipynb
: Clustering theFresh
andMilk
dataset using DBSCAN.
-
kmeans_from_scratch.ipynb
: Implementation of the K-means algorithm from scratch without using specialized libraries.news_group_clustering.ipynb
: Clustering news articles into topic groups using K-means.
Contains datasets used in the project.
SMSSpamCollection
: Dataset for spam classification.and_gate_datasets.csv
: Dataset for AND gate classification.
2. regression/
advertising.csv
: Dataset for advertising effectiveness prediction.housing.csv
: Dataset for housing prices.student_performance.csv
: Dataset for student performance prediction.
To use the notebooks in this project, follow these steps:
-
Clone the Repository: Clone the repository to your local machine using:
git clone https://github.com/hoduy511/Machine-Learning-Projects.git cd Machine-Learning-Projects
-
Set Up the Environment: It is recommended to use a virtual environment to manage dependencies. You can create and activate a virtual environment using the following commands:
python -m venv venv source venv/bin/activate # On Windows use: venv\Scripts\activate
-
Install Required Libraries: Install the required libraries listed in the
requirements.txt
file:pip install -r requirements.txt
-
Run Notebooks: Open Jupyter Notebook and navigate to the
notebooks
directory to run the desired notebooks:jupyter notebook
This project requires the following:
- Python 3.10.12
- Jupyter Notebook
- NumPy
- Pandas
- Matplotlib
- Seaborn
- Scikit-learn
You can find a complete list of libraries in the requirements.txt
file, which can be installed using pip.
Contributions to this project are welcome! If you would like to contribute, please follow these steps:
-
Fork the repository.
-
Create a new branch:
git checkout -b feature-branch-name
-
Make your changes and commit them:
git commit -m "Add a meaningful commit message"
-
Push your branch:
git push origin feature-branch-name
-
Open a pull request.