This repository showcases various coding projects related to different machine learning concepts. I will provide detailed information about each project below:
In this project, I implemented linear regression from scratch and compared my model with the linear regression model from the sklearn library.
In this project, I implemented Linear Discriminant Analysis (LDA) and Quadratic Discriminant Analysis (QDA) from scratch. I then compared these custom implementations with the LDA and QDA models from the sklearn library. Additionally, I analyzed the results using metrics such as precision, recall, F1 score, and ROC AUC score.
In this project, I implemented logistic regression from scratch, using custom gradient descent logistic regression, as well as utilizing PyTorch. I then compared these implementations with the logistic regression model from the sklearn library, evaluating them with various metrics.
In this project, I began by applying several NLP techniques to prepare the data for the model. Following the data preprocessing, I implemented Naive Bayes from scratch to classify documents. I then compared my custom Naive Bayes implementation with the Naive Bayes model from the sklearn library. The comparison was conducted using various metrics to evaluate their performance.
In this project, I implemented Lasso and Ridge regression, which are L1 and L2 regularization techniques, respectively. I then compared my implementations with the Lasso and Ridge regression models from scikit-learn. The comparison was conducted using various metrics to evaluate their performance.
In this project, I initially conducted data exploration and preprocessing to prepare the data. Following that, I applied non-linear models, such as polynomial regression and spline regression, and compared their results using various metrics.
In this project, I constructed a face recognition model using Support Vector Machine (SVM) from individuals' images, implemented entirely from scratch. I then compared this custom SVM model with the SVM model from scikit-learn. Afterward, I applied PCA dimension reduction techniques from scratch to reduce the dimensions of these images.
Additionally, I implemented the k-means algorithm from scratch to cluster the images. Subsequently, I augmented the dataset by applying techniques such as random flipping and random rotation to increase its size.
In the next phase, I built a neural network using TensorFlow, trained it, and used it to classify the images. I evaluated the model's performance using various metrics.