Skip to content

Farbod-Siahkali/Artificial-Intelligence

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GitHub Repository for AI Course Projects

This repository contains the code for the computer assignments of the Artificial Intelligence course at the University of Tehran, taught by Dr. Fadaei.

Computer Assignment 0: Data Analysis for Income Estimation

This project is an implementation of various data manipulation techniques using the pandas library in Python. The code performs data cleaning, data filtering, and data visualization. It also implements data normalization and Gaussian curve plotting. The dataset used is related to income estimation based on various demographic features.

Computer Assignment 1: Pathfinding Algorithms for Delivering Pizza

This project contains various search algorithms, such as Depth-First Search, Breadth-First Search, and A*. The algorithms are used to find the shortest path between the delivery person and a customer's location. The project also implements the Iterative Deepening Search algorithm for pathfinding.

Computer Assignment 2: Genetic Algorithms in Stock Market and Minmax Game in Othello

This project contains two parts. The first part focuses on using a genetic algorithm approach to optimize the allocation of capital among various assets in the stock market. The second part implements the Minimax algorithm to create an AI player for the Othello game.

Part 1: Genetic Algorithm for Stock Market Investment

This project aims to maximize the return and minimize the risk in the stock market. It uses a genetic algorithm approach to optimize the coefficients that represent the proportion of the capital invested in each asset. These coefficients are restricted to sum up to 1, meaning that the capital is fully invested.

Part 2: Minimax Game in Othello

This project implements the Minimax algorithm to create an AI player for the Othello game. The algorithm searches through the game tree and selects the move that maximizes the AI's chances of winning, assuming the opponent will also play optimally. The project also implements alpha-beta pruning to improve the algorithm's efficiency.

Computer Assignment 3: Gaussian Naive Bayes and Bernoulli Naive Bayes on Image Classification of Iranian Digits

This project focuses on implementing Gaussian Naive Bayes and Bernoulli Naive Bayes algorithms for image classification of Iranian digits. The dataset used is related to handwritten digits, and the code preprocesses the data by applying various image processing techniques, such as thresholding and binarization. The project also visualizes the data and evaluates the performance of the algorithms using various metrics.

Computer Assignment 4: Linear Regression and Decision Trees for Housing Price Prediction

This project involves using linear regression and decision tree models to predict housing prices. The first-degree regression model is implemented using the method of least squares to calculate the alpha and beta values. The project also performs exploratory data analysis and correlation analysis to determine the most informative feature for price prediction. Additionally, a decision tree classifier is trained using grid search and cross-validation to find the best hyperparameters. The project explores ensemble learning techniques such as random forest classifier, gradient boosting, and XGBoost to further improve the prediction accuracy.

Part 1: Linear Regression for Housing Price Prediction

The first part of this assignment focuses on implementing a linear regression model to predict housing prices. The alpha and beta values are calculated using the method of least squares. Exploratory data analysis and correlation analysis are performed to determine the most informative feature for price prediction.

Part 2: Decision Tree Classifier for Housing Price Prediction

In the second part, a decision tree classifier is trained to predict housing prices. Grid search with cross-validation is used to find the best hyperparameters for the decision tree. The best parameters and corresponding mean cross-validated score are printed.

Part 3: Ensemble Learning for Housing Price Prediction

The third part explores ensemble learning techniques to improve the accuracy of housing price prediction. Random forest classifier, gradient boosting, and XGBoost are implemented and evaluated to assess their impact on prediction performance.

Computer Assignment 5: Multilayer Perceptron (MLP) and Convolutional Neural Network (CNN) for Image Classification

Phase 1: MLP from Scratch and MLP in PyTorch

This phase involves implementing a multilayer perceptron (MLP) from scratch and using the PyTorch library to build an MLP model. The MLP models are trained and evaluated on the IMDB dataset. The code also compares the performance of different learning rates, activation functions, and batch sizes.

Phase 2: CNN Training on CIFAR-10 Dataset

This phase focuses on training a convolutional neural network (CNN) on the CIFAR-10 dataset. The initial model without dropout and batch normalization exhibits signs of overfitting. To address this, the dataset is manipulated by creating an imbalanced version and applying data augmentation techniques. Dropout and batch normalization layers are incorporated into the model to improve its performance and alleviate overfitting. The outcomes are evaluated using precision, recall, F1 score, and accuracy metrics.

Contact Information:

Emails: farbodsiahkali80@gmail.com, farbodsiahkali80@ut.ac.ir

About

University of Tehran Artificial Intelligence Course Projects

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published