Skip to content

JosephRemingston/machine_learning_models

Repository files navigation

Machine Learning Models

This repository contains a collection of Jupyter Notebooks implementing various machine learning algorithms. Each notebook demonstrates a different technique, including supervised and unsupervised learning, with detailed code and explanations. The primary technology used is Python, leveraging libraries such as NumPy, pandas, scikit-learn, and matplotlib for data manipulation, modeling, and visualization.

Contents

1. ANN and KNN.ipynb

Description:

  • Implements Artificial Neural Networks (ANN) and K-Nearest Neighbors (KNN) algorithms.
  • Demonstrates classification tasks using both methods.
  • Explains the theory behind ANN and KNN, including activation functions, training, and distance metrics.
  • Uses scikit-learn for KNN and custom code for ANN.

2. Decision Tree with ID3 Algorithm.ipynb

Description:

  • Implements a Decision Tree classifier using the ID3 algorithm.
  • Explains entropy, information gain, and tree construction.
  • Visualizes the decision tree and discusses pruning techniques.
  • Uses custom Python code for ID3 and visualization libraries.

3. Epectation Maximization.ipynb

Description:

  • Demonstrates the Expectation-Maximization (EM) algorithm for clustering and parameter estimation.
  • Explains the E-step and M-step in detail.
  • Applies EM to Gaussian Mixture Models (GMM).
  • Uses NumPy and matplotlib for computation and visualization.

4. K means Clustering.ipyb

Description:

  • Implements K-Means clustering algorithm.
  • Explains initialization, assignment, and update steps.
  • Visualizes clusters and discusses convergence.
  • Uses scikit-learn and matplotlib for clustering and plotting.

5. Linear Regression.ipynb

Description:

  • Demonstrates Linear Regression for predictive modeling.
  • Explains least squares fitting, cost function, and gradient descent.
  • Visualizes regression line and residuals.
  • Uses scikit-learn and matplotlib for modeling and visualization.

6. Naive Bayes for document classification_.ipynb

Description:

  • Implements Naive Bayes classifier for text/document classification.
  • Explains probability theory, prior, likelihood, and posterior.
  • Applies model to sample text data and evaluates accuracy.
  • Uses scikit-learn and pandas for preprocessing and modeling.

7. svm with multiple classification.ipynb

Description:

  • Demonstrates Support Vector Machine (SVM) for multi-class classification.
  • Explains kernel trick, margin maximization, and one-vs-rest strategy.
  • Visualizes decision boundaries for multiple classes.
  • Uses scikit-learn for SVM implementation and matplotlib for visualization.

8. svm.ipynb

Description:

  • Implements basic SVM for binary classification.
  • Explains theory behind SVM, including support vectors and hyperplanes.
  • Visualizes results and discusses parameter tuning.
  • Uses scikit-learn and matplotlib.

Technologies Used

  • Python: Main programming language.
  • Jupyter Notebook: Interactive coding and documentation.
  • NumPy: Numerical computations.
  • pandas: Data manipulation and analysis.
  • scikit-learn: Machine learning algorithms and utilities.
  • matplotlib: Data visualization.

How to Use

  1. Clone the repository.
  2. Open any notebook in Jupyter Notebook or JupyterLab.
  3. Follow the explanations and run the code cells to see results.
  4. Modify datasets or parameters to experiment with different scenarios.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published