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.
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.
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.
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.
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.
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.
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.
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.
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.
- 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.
- Clone the repository.
- Open any notebook in Jupyter Notebook or JupyterLab.
- Follow the explanations and run the code cells to see results.
- Modify datasets or parameters to experiment with different scenarios.