National Institute of Technology Rourkela

राष्ट्रीय प्रौद्योगिकी संस्थान राउरकेला

ଜାତୀୟ ପ୍ରଯୁକ୍ତି ପ୍ରତିଷ୍ଠାନ ରାଉରକେଲା

An Institute of National Importance

Syllabus

Course Details

Subject {L-T-P / C} : CS2672 : AI and ML Laboratory { 0-0-2 / 1}

Subject Nature : Practical

Coordinator : Puneet Kumar Jain

Syllabus

Assignment 1: Introduction to Python Programming
Objective: Gain a basic understanding of Python programming and installation.
Tasks:
Install Python and set up Anaconda.
Write basic Python scripts including loops, conditional statements, and functions.

Assignment 2: Introduction to Python for Machine Learning
Objective: Learn essential Python libraries for ML.
Tasks:
NumPy: Perform matrix operations, loops, and conditions.
Matplotlib: Create and customize plots.
Pandas: Load, explore, and summarize datasets.

Assignment 3: Graph Search Algorithms (BFS & DFS)
Objective: Implement BFS and DFS to solve graph search problems.
Tasks:
Implement BFS to find the shortest path in an unweighted graph.
Implement DFS to find any path in a given graph.
Handle cases where no path exists.

Assignment 4: Linear Regression from Scratch
Objective: Understand and implement supervised learning using regression.
Tasks:
Generate synthetic data for a linear model.
Implement Linear Regression using gradient descent.
Compare results with Scikit-learn’s Linear Regression model.

Assignment 5: Model Evaluation and Cross-validation
Objective: Learn evaluation metrics and cross-validation techniques.
Tasks:
Train a Logistic Regression model for binary classification.
Implement k-fold cross-validation.
Compare metrics like accuracy, precision, recall, and F1-score.

Assignment 6: Bayesian Classification using the UCI Heart Disease Dataset
Objective: Apply Bayesian classifiers for real-world classification tasks.
Tasks:
Clean and preprocess the dataset.
Implement a Naïve Bayes classifier.
Evaluate model performance using precision, recall, and F1-score.

Assignment 7: Implementing a Single-Layer MLP from Scratch
Objective: Learn forward propagation, backward propagation, and training loops.
Tasks:
Initialize weights and biases randomly.
Compute forward propagation using the sigmoid activation function.
Implement backpropagation using the chain rule and gradient descent.
Train and test the model on sample data.

Assignment 8: Multi-Layer Perceptron (MLP) for Classification
Objective: Implement an MLP using TensorFlow/PyTorch for classification tasks.
Tasks:
Load datasets (e.g., Iris, MNIST).
Preprocess and normalize data.
Design an MLP architecture with at least one hidden layer.
Train and evaluate the model using accuracy and F1-score.
Visualize training results and confusion matrix.

Assignment 9: Classification using k-Nearest Neighbors (k-NN)
Objective: Understand and implement k-NN for classification.
Tasks:
Load the Iris dataset using Scikit-learn.
Implement k-NN from scratch.
Evaluate performance using train-test split.

Assignment 10: Clustering with k-Means
Objective: Explore unsupervised learning techniques.
Tasks:
Generate synthetic clusters using make_blobs.
Apply k-Means clustering and visualize results.
Evaluate clustering using the silhouette score.

Assignment 11: Clustering Using DBSCAN
Objective: Implement DBSCAN for clustering and noise detection.
Tasks:
Generate and visualize synthetic data.
Apply DBSCAN and analyze clusters.
Compare results with k-Means clustering.

Course Objectives

  • To develop proficiency in Python programming and essential libraries (NumPy, Pandas, Matplotlib) for AI and ML applications.
  • To understand and implement fundamental AI/ML algorithms and machine learning models.
  • To implement neural networks, including Multi-Layer Perceptrons (MLP), from scratch and using frameworks like TensorFlow/PyTorch.
  • To explore and apply unsupervised learning techniques, such as k-Means and DBSCAN, for clustering and pattern recognition.

Course Outcomes

Upon successful completion, students will be able to:
• Implement fundamental AI/ML algorithms efficiently in Python.
• Develop and evaluate supervised and unsupervised learning models.
• Use appropriate ML evaluation metrics to analyse model performance.
• Design and train neural networks for classification and regression tasks.
• Apply AI/ML techniques to real-world datasets for better generalisation.

Essential Reading

  • Sebastian Raschka & Vahid Mirjalili, Python Machine Learning: Machine Learning and Deep Learning with Python, Scikit-Learn, and TensorFlow 2, Packt Publishing , 4th Edition (2023), ISBN: 978-1801819312
  • Aurélien Géron, Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow, O’Reilly Media , 3rd Edition (2022), ISBN: 978-1098125974

Supplementary Reading

  • Ian Goodfellow, Yoshua Bengio, Aaron Courville, Deep Learning, MIT Press , 2016, ISBN: 978-0262035613
  • Christopher M. Bishop, Pattern Recognition and Machine Learning, Springer , 2006 ISBN: 978-0387310732

Journal and Conferences

  • IEEE Transactions on Pattern Analysis and Machine Intelligence (TPAMI)
  • International Conference on Machine Learning (ICML)