Skip to content

Jamil226/SP25-AI

Repository files navigation

Python Pandas NumPy Jupyter Hugging Face TensorFlow PyTorch Kaggle Google Colab

Visual Studio Code PyCharm Keras Matplotlib Scikit-Learn NLTK Spacy OpenCV Beautiful Soup Selenium

AI Course - Lab Work

Welcome to the AI Labs! This repository contains the lab work for the course, covering fundamental and advanced Python programming, data structures, searching and sorting algorithms, data analysis with Pandas and NumPy, web scraping, digital image processing using OpenCV, and machine learning model tracking with MLFlow. Additionally, it explores large language model fine-tuning with Hugging Face, enabling students to gain hands-on experience in AI-driven applications. This structured curriculum ensures a comprehensive understanding of AI, programming, and data science techniques, preparing students for real-world problem-solving.

Lab-0: Python Fundamentals

  • IDE Setup
  • Python Virtual Environment
  • VS Code Shortcuts

Lab-01: Python Fundamentals

  • Python Basics
  • Variables, data types, String Formatting, Operators
  • Control structures: if-else, loops
  • Lists, Tuples, Sets, Dictionaries, Arrays
  • Assignments (Lists, Tuples, Sets, Dictionaries)
  • Functions with Functions' Examples
  • Lambda Functions, Map Functions, Filter Functions
  • Functions Assignment

Lab-02: Python Advanced

  • Python Imports (Modules and Packages, Standard Library Overview)
  • Packages Assignment
  • File Handling (File Operations, File Paths)
  • File Handling Assignment
  • Exception Handling (Try, except, finally)
  • Exception Handling Assignment
  • Classes and Objects (OOPs)
  • Inheritance
  • Polymorphism
  • Encapsulation
  • Abstraction
  • Magic Methods
  • Operator Overloading
  • Custom Exceptions
  • OOPs Assignment

Lab-03: Searching & Sorting

  • Linear Search
  • Binary Search
  • Bubble Sort
  • City Map Dictionary using BFS
  • Pathfinding in Maps using DFS

Lab-04: Data Analysis

  • Dataset Analysis
    • Reading data from CSV files.
    • Overview of Dataset
    • Data Types and Structure
    • Descriptive Statistics
    • Correlation Analysis
    • Identifying Missing Values
    • Strategies for Handling Missing Data
    • Sorting DataFrames
    • Filtering Data Based on Conditions
    • Grouping Data
    • Aggregating Functions
    • Importance of Visualization
    • Visualization Techniques
  • Matplot Fundamentals
    • Line Chart
    • Pie Chart
    • Scatter Charts
    • Heatmaps
    • Bubble Charts
    • Histogram
  • Numpy Fundamentals
    • Installing and Importing NumPy
    • Creating NumPy Arrays
    • Comparing NumPy Arrays and Python Lists
    • Performance Comparison
    • Input Handling and Checking Variable Types
    • Converting the List to a NumPy Array
    • Weekly Temperature Analysis Using NumPy
    • Weekly Sales Data Analysis Using NumPy
    • Introduction to 2D Arrays
    • Grocery Store Inventory Analysis
  • Pandas Fundamentals
  • Requirements.txt File Explanation
  • Introduction to Kaggle Datasets
  • Downloading Datasets from Kaggle
  • Exploring and Visualizing Data
  • Basic Data Preprocessing
  • Applying Machine Learning Models on Kaggle Datasets
  • Conditional Filtering: Filtering data based on conditions.
  • Handling Missing Data: Managing and identifying missing data.
  • Sorting and Grouping: Techniques for organizing data.
  • Data Manipulation:
    • Renaming Columns
    • Adding New Columns
    • Summing and Averaging Column Values
  • Temperature Analysis for Sahiwal and Okara
    • Reading the Uploaded CSV File
    • Summary of Statistics for Numerical Columns in Dataset
    • Dataset Dimensions (Number of Rows and Columns)
    • Dataset Filtering
    • Data Visualization
    • Hottest Days
    • Average Temperature Line
    • Plot the Graph with the Highest Temperature Highlighted
    • Monthly Temperature Trends
    • Box Plot to Visualize Temperature Spread
    • Plotting the Hottest Days

Lab-05: LLM Fine Tuning with HuggingFace

  • Introduction to Hugging Face
  • Using pre-trained models for text summarization
  • Implementing text summarization using Hugging Face transformers
  • Fine-tuning models for better performance
  • Evaluating summarization results

Lab-06: Web Scrapping

  • Web Scrapping using BeatifulSoup
  • Basic Workflow of Web Scraping
  • How to Add a User-Agent Header
  • HTML Parse Tree
    • Accessing the Childs of the Tree
    • Fetching Data from Nested Childs
  • BeatifulSoup find_all() function
    • Extracting the Original Text from the HTML Elements and Selectors
    • Extracting the data from Elements and Selectors

Lab-07: Digital Image Processing using OpenCV

  • OpenCV Overview
  • RGB to Grayscale
  • Guassian Blue
  • Canny Edge Detection
  • Object Detection through Template and Frame using CV2

Lab-08: MLFLow Part I

  • Introduction To MLFLOW
  • Getting Started With MLFLOW
  • Creating MLFLOW Environment
  • Getting Started With MLFLow Tracking Server
  • Deep Diving Into MLFlow Experiments
  • Getting Started With MLFlow ML Project
  • First ML Project With MLFLOW
  • Inferencing Model Artifacts With MLFlow Inferencing
  • MLFLOW Model Registry Tracking

Lab-09: MLFLow Part II

  • ML Project Integration With MLFLOW Tracking
    • Data Preparation House Price Prediction
    • Model Building And MLFLOW Tracking
  • Deep Learning ANN Model Building Integration With MLFLOW
    • ANN With MLFLOW

Lab 10: MLFLOW With AWS Cloud

  • Content In process

How to Use This Repository

  1. Clone this repository to your local machine:
    git clone https://github.com/Jamil226/SP25-AI
    

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

For queries please email me at: [email protected]

Licenses

FOSS - Free and Open Source Licenses

MIT - Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so.