Skip to content

This repository contains implementations of various machine learning algorithms in Python, with a focus on the underlying mathematical concepts.

License

Notifications You must be signed in to change notification settings

SherryS997/Machine-Learning-Algorithms

Repository files navigation

Machine Learning Algorithms

This website is a comprehensive resource for machine learning algorithms. Here, you will find explanations of the most popular algorithms, as well as code implementations in Python.

The website is divided into two main sections: supervised learning and unsupervised learning. Supervised learning algorithms are used to learn from labeled data, while unsupervised learning algorithms are used to learn from unlabeled data.

Within each section, the algorithms are further divided into regression, classification, and clustering. Regression algorithms are used to predict continuous values, while classification algorithms are used to predict discrete values. Clustering algorithms are used to group data points together.

Each algorithm page includes the following information:

  • A brief overview of the algorithm
  • The math behind the algorithm
  • A Python implementation of the algorithm
  • Examples of how the algorithm can be used

I hope you find this website to be a valuable resource for learning about machine learning algorithms.

Here is a more detailed overview of the algorithms covered on this website:

Unsupervised Learning

  • Representation learning
    • Principal component analysis (PCA): PCA is a dimensionality reduction algorithm that projects data points onto a lower-dimensional subspace while preserving as much of the variance as possible.
    • Kernel PCA: Kernel PCA is a generalization of PCA that can be used to project data points onto a nonlinear subspace.
  • Clustering
    • K-means clustering: K-means clustering is a simple and efficient algorithm for clustering data points into a predefined number of clusters.
    • Kernel K-means clustering: Kernel K-means clustering is a generalization of K-means clustering that can be used to cluster data points into nonlinear clusters.
  • Estimation
    • Maximum likelihood estimation (MLE): MLE is a statistical method for estimating the parameters of a probability distribution from data.
    • Bayesian estimation: Bayesian estimation is a statistical method for estimating the parameters of a probability distribution using prior knowledge about the parameters.
    • Gaussian mixture model (GMM): GMM is a probabilistic model that can be used to represent data that is generated by a mixture of Gaussian distributions.
    • Expectation-maximization (EM) algorithm: EM is an iterative algorithm that can be used to fit a GMM to data.

Supervised Learning

  • Regression
    • Least squares regression: Least squares regression is a linear regression model that minimizes the sum of the squares of the errors between the predicted values and the observed values.
    • Bayesian view of least squares regression: The Bayesian view of least squares regression provides a probabilistic interpretation of the model.
    • Ridge regression: Ridge regression is a linear regression model that penalizes the model coefficients to prevent overfitting.
    • LASSO regression: LASSO regression is a linear regression model that shrinks the model coefficients to zero to prevent overfitting.
  • Classification
    • K-nearest neighbors (KNN): KNN is a non-parametric classification algorithm that classifies a new data point by finding the K nearest neighbors of the data point and then assigning the new data point to the class that is most common among its neighbors.
    • Decision tree: Decision trees are a type of supervised learning algorithm that can be used for both classification and regression tasks. Decision trees are constructed by recursively partitioning the data space until all of the data points in each leaf node belong to the same class.
  • Generative models
    • Naive Bayes: Naive Bayes is a simple probabilistic classification algorithm that assumes that the features of a data point are independent of each other.
  • Discriminative models
    • Perceptron: The perceptron model is a discriminative model that uses a linear decision boundary to classify data points into different categories.
    • Logistic regression: Logistic regression is a probabilistic classification algorithm that is used to model the probability of a binary outcome.
    • Support vector machines (SVMs): SVMs are a type of supervised learning algorithm that can be used for both classification and regression tasks. SVMs are constructed by finding a hyperplane that separates the data points into two classes.
  • Ensemble methods
    • Bagging: Bagging is an ensemble method that combines the predictions of multiple models to improve the overall accuracy of the predictions.
    • Boosting: Boosting is an ensemble method that trains a sequence of models, each of which is trained to correct the mistakes of the previous models.
  • Artificial neural networks (ANNs): ANNs are a type of machine learning algorithm that is inspired by the human brain. ANNs are composed of artificial neurons that are connected to each other in a network. Each neuron receives input from other neurons, and it outputs a signal that is determined by a nonlinear function of the input. ANNs can be used to solve a variety of problems, including classification, regression, and time series forecasting.

Credits

I would like to express my gratitude to Professor Arun Rajkumar for his valuable content and notations, which have greatly influenced my understanding. Additionally, I would like to acknowledge the contribution of IIT Madras, where I had the opportunity to learn from Professor Arun Rajkumar in the Machine Learning Techniques Course.

About

This repository contains implementations of various machine learning algorithms in Python, with a focus on the underlying mathematical concepts.

Resources

License

Stars

Watchers

Forks