This project is a collection of three mini-projects designed to provide a hands-on introduction to Machine Learning (ML) using the C programming language. The three mini-projects cover different types of ML algorithms, including a classification algorithm (K-Nearest Neighbors), a clustering algorithm (K-Means), and a reinforcement learning algorithm (Q-Learning for Tic Tac Toe).
-
K-Nearest Neighbors (KNN): This is a simple yet powerful algorithm used for classification and regression in machine learning. The KNN algorithm assumes the similarity between the new case/data and available cases and put the new case into the category that is most similar to the available categories. KNN algorithm stores all the available data and classifies a new data point based on the similarity. This means when new data appears then it can be easily classified into a well suite category by using KNN algorithm.
-
K-Means Clustering: K-Means is a type of partitioning clustering, that is, it divides the data into K non-overlapping subsets (or clusters) without any cluster-internal structure or labels. This means, it’s an unsupervised algorithm. Objects within a cluster are very similar, and objects across different clusters are very different or dissimilar.
-
Tic Tac Toe with Q-Learning: This project involves creating an AI that can learn to play the game of Tic Tac Toe using a reinforcement learning technique called Q-Learning. The AI starts with no knowledge of the game and learns by playing many games and updating its strategy based on the outcomes of these games.
Each mini-project has its own directory in the project repository, and each directory contains a README file with instructions on how to build and run the corresponding program.