Skip to content

Updated All readme files #51

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 21 commits into from
Mar 20, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 14 additions & 11 deletions Data Preprocessing/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,9 @@ Welcome to the **Data Preprocessing** section! This folder contains resources an
This folder currently includes:
- **NumPy & Pandas**: Core libraries for data manipulation and numerical operations.
- **Data Visualization**: Learn how to visually represent data insights effectively.
- **Data Transformation**: Transform raw data into useful data.
- **Feature Enginnering**: Extract useful information from data to make models work better and efficiently.
- **Feature Selection**: Choose the most relevant features from the data to make robust models.

Each section contains **assignments** to reinforce your understanding, along with **solutions** for self-assessment.

Expand Down Expand Up @@ -54,14 +57,14 @@ Follow these steps to build a strong foundation in data preprocessing:
- **Resources**:
- [Data Preprocessing and Transformation (sklearn Documentation)](https://scikit-learn.org/stable/modules/preprocessing.html)
- [Data Transformation and its types (GeeksForGeeks)](https://www.geeksforgeeks.org/data-transformation-in-data-mining/)

### 4. **Feature Engineering**
- **Purpose**: Feature Engineering helps in extracting useful information from data to make models better
- **Topics to Cover**:
- Encoding(One-Hot Encoder)
- Encoding(One-Hot Encoder)
- Feature Scaling Techniques
- Bining
- Dimensionality Reduction

- **Resources**:
- [One-hot Encoder(sklearn docs)(https://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.OneHotEncoder.html)
- [Introduction to Dimensionality Reduction(GFG)(https://www.geeksforgeeks.org/dimensionality-reduction/)
Expand All @@ -73,15 +76,12 @@ Follow these steps to build a strong foundation in data preprocessing:
- Mutual Information
- Recursive Feature Elimination
- **Resources**:
1. Correlation Analysis:
- [Article on Correlation Analysis(blog)](https://medium.com/@sariq16/correlation-based-feature-selection-in-a-data-science-project-3ca08d2af5c6)
- [Youtube Video](https://www.youtube.com/watch?v=1fFVt4tQjRE)
2. Mutual Information:
- [Feature Selection using Mutual Exclusion (sklearn Documentation)](https://scikit-learn.org/stable/modules/generated/sklearn.feature_selection.mutual_info_classif.html)
- [Article on Mutual Information (blog)](https://guhanesvar.medium.com/feature-selection-based-on-mutual-information-gain-for-classification-and-regression-d0f86ea5262a)
3. Recursive Feature Elimination:
- [Feature Selection using Recursive Feature Elimination (sklearn Documentation)](https://scikit-learn.org/stable/modules/generated/sklearn.feature_selection.RFE.html)
- [Youtube video on Recursive Feature Elimination](https://www.youtube.com/watch?v=vxdVKbAv6as)
- [Article on Correlation Analysis(blog)](https://medium.com/@sariq16/correlation-based-feature-selection-in-a-data-science-project-3ca08d2af5c6)
- [Youtube Video](https://www.youtube.com/watch?v=1fFVt4tQjRE)
- [Feature Selection using Mutual Exclusion (sklearn Documentation)](https://scikit-learn.org/stable/modules/generated/sklearn.feature_selection.mutual_info_classif.html)
- [Article on Mutual Information (blog)](https://guhanesvar.medium.com/feature-selection-based-on-mutual-information-gain-for-classification-and-regression-d0f86ea5262a)
- [Feature Selection using Recursive Feature Elimination (sklearn Documentation)](https://scikit-learn.org/stable/modules/generated/sklearn.feature_selection.RFE.html)
- [Youtube video on Recursive Feature Elimination](https://www.youtube.com/watch?v=vxdVKbAv6as)

## 📝 Assignments and Solutions

Expand All @@ -91,5 +91,8 @@ Each section includes assignments to help you apply the concepts you've learned.

1. **Start with NumPy & Pandas**: Begin with arrays (NumPy) and data frames (Pandas) to build your data manipulation skills.
2. **Move on to Data Visualization**: Use Matplotlib and Seaborn to create visualizations that highlight data insights.
3. **Use with Data Transformation**: Learn techniques like scaling, normalization, and encoding to preprocess raw data effectively.
4. **Explore Feature Engineering**: Create new meaningful features from existing data to improve model performance.
5. **Apply Feature Selection**: Use methods like correlation analysis, mutual information, and recursive feature elimination to select the most relevant features for your model.

Happy learning! Remember, mastering these tools will set you up for success in your journey with data science and machine learning. For more comprehensive learning, refer to the documentation and tutorials linked above.
82 changes: 37 additions & 45 deletions Ensemble Learning/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,61 +4,53 @@ Welcome to the **Ensemble Learning** section! This notebook introduces ensemble

**Note**: This notebook is intended for beginners, covering fundamental concepts and implementation steps. For a deeper understanding, please refer to the additional resources provided below.

## 📂 Contents
## 📂 Structure
This folder currently includes:
- **Introduction to Ensemble Learning**: What ensemble learning is and why it’s useful.
- **Types of Ensemble Learning**: Overview of different ensemble methods, including bagging and boosting.
- **Model Training**: Training ensemble models using preprocessed data.
- **Evaluation**: Techniques for evaluating ensemble models to understand their performance.

This notebook includes:
Each section includes **assignments** to help reinforce your understanding, along with **solutions** for self-assessment.

1. **Introduction to Ensemble Learning**
- What ensemble learning is and why it’s useful.

2. **Bias-Variance Tradeoff**
- Explaining the tradeoff between model bias and variance, a key concept in ensemble methods.

3. **Decision Trees**
- Basics of decision trees, splitting criteria, and decision tree calculations.

4. **Types of Ensemble Learning**
- Overview of different ensemble methods, including bagging and boosting.

5. **Data Preprocessing**
- Handling class imbalance, creating visualizations (histograms and scatterplots), calculating correlations, and preparing data with splitting, scaling, and managing missing values.

6. **Model Training**
- Training ensemble models using preprocessed data.

7. **Evaluation**
- Techniques for evaluating ensemble models to understand their performance.

8. **Difference Between Bagging and Random Forest**
- A comparison of bagging and random forest to highlight their distinctions.

9. **AdaBoost**
- Understanding and implementing AdaBoost, a boosting technique.

10. **Gradient Boosting**
- Introduction to gradient boosting, an iterative boosting method.

11. **XGBoost**
- Overview of XGBoost, a powerful and popular ensemble method for structured data.
---

## 🔗 Learning Flow

Follow these steps to build a strong foundation in Ensemble Learning techniques:

### 1. **Introduction**
- **Purpose**: Understand the basics of Ensemble Learning
- **Topics to cover**:
- What is Ensemble Learning
- Types of Ensemble Learning
- Bias - Variance Tradeoff
- Introduction to Decision Trees
- Data Preprocessing
- Model Training
- Evaluation
- Difference between Bagging and Random Forest
- AdaBoost (Advanced)
- Gradient Boosting (Advanced)
- XGBoost (Advanced)
- **Resources**:
- [Hands-On Ensemble Learning with Scikit-Learn, XGBoost, LightGBM, and CatBoost](https://www.oreilly.com/library/view/hands-on-ensemble-learning/9781492090981/) (Book)
- [Scikit-Learn Documentation on Ensemble Methods](https://scikit-learn.org/stable/modules/ensemble.html)
- [XGBoost Documentation](https://xgboost.readthedocs.io/en/latest/)

---

## 📝 Assignments and Solutions

For further practice, apply the techniques from this notebook to a new dataset. Explore parameter tuning for models like XGBoost and Gradient Boosting to see how they impact performance.

## 🏁 Getting Strated

1. **Start with Ensemble Basics**: Begin with the introduction and bias-variance tradeoff to understand the fundamentals.
2. **Explore Decision Trees**: Learn about decision trees as a foundational model for many ensemble techniques.
3. **Understand Types of Ensembles**: Get familiar with bagging and boosting, the two main categories of ensemble methods.
4. **Preprocess Data**: Follow the data preprocessing steps to ensure data is ready for model training.
5. **Train and Evaluate Models**: Go through the model training and evaluation sections to apply ensemble techniques on real data.
6. **Explore Advanced Methods**: Finally, dive into AdaBoost, Gradient Boosting, and XGBoost to understand more advanced boosting techniques.

## 📘 Recommended Resources

- [Hands-On Ensemble Learning with Scikit-Learn, XGBoost, LightGBM, and CatBoost](https://www.oreilly.com/library/view/hands-on-ensemble-learning/9781492090981/) (Book)
- [Scikit-Learn Documentation on Ensemble Methods](https://scikit-learn.org/stable/modules/ensemble.html)
- [StatQuest’s Video Series on Ensemble Methods](https://www.youtube.com/c/joshstarmer) (video)
- [XGBoost Documentation](https://xgboost.readthedocs.io/en/latest/)

## 📝 Assignments

For further practice, apply the techniques from this notebook to a new dataset. Explore parameter tuning for models like XGBoost and Gradient Boosting to see how they impact performance.

Happy learning! Ensemble methods can be incredibly powerful once mastered, and this knowledge will be valuable in building robust and accurate models.
57 changes: 57 additions & 0 deletions GANs/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
# Generative Adversarial Networks (GANs)

Welcome to the **Generative Adversarial Networks (GANs)** section! This folder provides an introduction to GANs, a class of deep learning models used for generating realistic synthetic data. GANs consist of two neural networks, a **Generator** and a **Discriminator**, that compete in a game-theoretic framework to improve data generation quality.

**Note**: The notebooks here introduce foundational GAN concepts but do not cover all advanced variations. For a more comprehensive understanding, please refer to the recommended resources provided below.

---

## 📂 Structure

This folder currently includes:
- **PyTorch Implementation**: A simple GAN trained on the Fashion MNIST dataset and GAN Architectures that explore the implementations of common GAN architectures in PyTorch.
- **TensorFlow Implementation**: A GAN-based model to generate realistic masked face images using various GAN architectures like Inception V2, Xception and others

Each section includes **assignments** to reinforce learning, along with **solutions** for self-assessment.

---

## 🔗 Learning Flow

Follow these steps to build a strong foundation in GANs:

### 1. **Fashion MNIST GAN (PyTorch)**
- **Purpose**: Train a simple GAN to generate realistic images of Fashion MNIST clothing items.
- **Topics to Cover**:
- Generator and Discriminator networks
- Training loop and adversarial loss
- Evaluating GAN-generated images
- **Resources**:
- [Fashion MNIST Dataset](https://github.com/zalandoresearch/fashion-mnist)
- [GANs Explained (Stanford CS231n)](http://cs231n.stanford.edu/reports/2017/pdfs/161.pdf)

### 3. **CNN-Based Mask Detection GAN (TensorFlow)**
- **Purpose**: Use Convolutional Neural Networks to implement a model that detects whether a person is wearing a mask.
- **Topics to Cover**:
- CNN-based GAN training
- Data augmentation with synthetic images
- Evaluating model performance.
- **Resources**:
- [TensorFlow GANs Guide](https://www.tensorflow.org/tutorials/generative/dcgan)
- [Face Mask Dataset](https://github.com/X-zhangyang/Real-World-Masked-Face-Dataset)


## 📝 Assignments and Solutions

Each GAN model includes hands-on assignments designed to help you apply what you've learned. Solutions are provided for self-evaluation. Try to complete the assignments independently before checking the solutions for the best learning experience.

---

## 🏁 Getting Started

1. **Begin with Fashion MNIST GAN (PyTorch)**: Understand how basic GANs generate synthetic images.
3. **Move to TensorFlow: Mask Detection GAN**: Use GANs for augmenting masked face datasets.

---

Happy coding! Developing GANs will enable you to generate high-quality synthetic data and explore creative AI applications. For further learning, refer to the documentation and tutorials linked above.
61 changes: 61 additions & 0 deletions Handwritten Digit Classifier/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
## Handwritten Digit Classifier

Welcome to the **Handwritten Digit Classifier** section! This folder contains implementations of neural network models trained to classify handwritten digits from the **MNIST dataset**. The models covered include **Artificial Neural Networks (ANNs)** and **Convolutional Neural Networks (CNNs)**, which are widely used in image classification tasks.

**Note**: The notebooks in this folder provide foundational concepts and practical implementations of ANN and CNN models. For a deeper understanding, additional recommended resources are provided below.

---

### 📂 Structure

This folder currently includes:
- **Artificial Neural Network (ANN)**: A fully connected neural network for digit classification.
- **Convolutional Neural Network (CNN)**: A deep learning model designed to handle spatial relationships in image data.

Each section includes **assignments** to reinforce learning, along with **solutions** for self-assessment.

---

### 🔗 Learning Flow

Follow these steps to build a strong foundation in handwritten digit classification:

#### 1. **Artificial Neural Network (ANN) for MNIST**
- **Purpose**: Implement a simple fully connected feedforward neural network for digit classification.
- **Topics to Cover**:
- Introduction to ANNs
- Network architecture (input, hidden, and output layers)
- Activation functions and optimization techniques
- Training and evaluation of ANN on MNIST
- **Resources**:
- [Keras ANN Documentation](https://keras.io/api/models/sequential/)
- [ANN for Digit Recognition](https://towardsdatascience.com/building-an-ann-for-mnist-classification-97e5c122b988)
- [Deep Learning with ANN (Video)](https://www.youtube.com/watch?v=aircAruvnKk)

#### 2. **Convolutional Neural Network (CNN) for MNIST**
- **Purpose**: Train a CNN model designed to extract spatial features from images and improve classification accuracy.
- **Topics to Cover**:
- Basics of CNNs (convolution, pooling, and fully connected layers)
- Building a CNN architecture for MNIST
- Improving performance with dropout and batch normalization
- Training and evaluation of CNN on MNIST
- **Resources**:
- [Keras CNN Documentation](https://keras.io/api/layers/convolution_layers/)
- [Deep Learning for Computer Vision (Stanford Course)](http://cs231n.stanford.edu/)
- [CNN Explanation (Video)](https://www.youtube.com/watch?v=YRhxdVk_sIs)

---

### 📝 Assignments and Solutions

Each section includes hands-on assignments to help solidify your understanding of the concepts. Solutions are provided for self-assessment. It is recommended to attempt the assignments before referring to the solutions.

---

### 🏁 Getting Started

1. **Start with ANN**: Learn how a basic fully connected neural network classifies handwritten digits.
2. **Move to CNN**: Explore how convolutional layers improve performance by capturing spatial patterns.
---

Happy coding! Mastering these models will enhance your ability to work with deep learning for image classification. For further learning, refer to the documentation and tutorials linked above.
12 changes: 9 additions & 3 deletions Model Tuning/README.md
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

please add more resources for tuning basics like in general what are hyperparamters and various methods to tune.

Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ This folder currently includes:

---

## 📘 Learning Flow
## 🔗 Learning Flow

Follow these steps to gain a strong understanding of model tuning:

Expand All @@ -25,13 +25,19 @@ Follow these steps to gain a strong understanding of model tuning:
- **Topics to Cover**:
- Hyperparameter vs. model parameters
- The importance of tuning for improving accuracy
- **Resources**:
- [What is Model Tuning](https://www.iguazio.com/glossary/model-tuning/)
- [Hyper parameter tuning](https://www.geeksforgeeks.org/hyperparameter-tuning/)

### 2. **Explore Different Tuning Methods**
- **Purpose**: Understand the advantages and limitations of Grid Search, Random Search, and Bayesian Optimization.
- **Topics to Cover**:
- Overview of Grid Search, Random Search, and Bayesian Optimization
- How Bayesian Optimization improves efficiency
- Choosing the best approach for your task (e.g., use **Random Search** if computational resources are limited, and **Grid Search** for precision with enough time)
- **Resources**:
- [Intro To Model Tuning (different types of tuning methods)](https://www.kaggle.com/code/willkoehrsen/intro-to-model-tuning-grid-and-random-search)
- [Hyper parameter tuning in Machine Learning](https://www.researchgate.net/publication/381255284_Hyperparameter_Tuning_in_Machine_Learning_A_Comprehensive_Review)

### 3. **Bayesian Optimization**
- **Purpose**: Learn how Bayesian Optimization uses probabilistic models to intelligently choose the most promising hyperparameter values.
Expand Down Expand Up @@ -65,13 +71,13 @@ Follow these steps to gain a strong understanding of model tuning:

---

## 🔧 Assignments and Solutions
## 📝 Assignments and Solutions

Each model tuning method comes with assignments designed to help you apply the concepts you've learned. Solutions are provided for self-assessment. Try to complete the assignments independently before checking the solutions for the best learning experience.

---

## 🎓 Getting Started
## 🏁 Getting Started

Follow these steps to start working with the materials in this folder:

Expand Down
Loading