feat: initial FDP content - Data Science Pipeline with Colab notebook
This commit is contained in:
38
README.md
Normal file
38
README.md
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
# FDP - Data Science Pipeline: End-to-End Workflow
|
||||||
|
|
||||||
|
**Topic:** Data Science Pipeline | **Host:** Jodhpur Institute of Engineering & Technology (JIET)
|
||||||
|
|
||||||
|
## 📂 Contents
|
||||||
|
|
||||||
|
| File | Description |
|
||||||
|
|------|-------------|
|
||||||
|
| `fdp-colab-content/student_stress_data.csv` | Synthetic dataset of 300 student records for stress level prediction |
|
||||||
|
| `fdp-colab-content/FDP_Student_Stress_Prediction.ipynb` | Google Colab notebook — zero setup required |
|
||||||
|
| `fdp-colab-content/FDP_PreRead_StudentStress.pdf` | Pre-read material for FDP attendees |
|
||||||
|
| `fdp-colab-content/generate_dataset.py` | Dataset generator script |
|
||||||
|
| `fdp-colab-content/pre_read.html` | Pre-read material source (HTML) |
|
||||||
|
|
||||||
|
## 🎯 Dataset Overview
|
||||||
|
|
||||||
|
**300 student records × 8 columns**
|
||||||
|
- **Target:** `Stress_Level` (0 = Not Stressed, 1 = Stressed)
|
||||||
|
- **Features:** Department, Attendance_Level, Favorite_Color, Weekly_Study_Hours, Assignment_Submission_Pct, Backlogs_Count
|
||||||
|
|
||||||
|
## 🚀 Using the Colab Notebook
|
||||||
|
|
||||||
|
1. Open the notebook in [Google Colab](https://colab.research.google.com/)
|
||||||
|
2. Run all cells — no installation needed
|
||||||
|
3. Dataset auto-loads from raw GitHub URL
|
||||||
|
|
||||||
|
## 📊 Pipeline Steps
|
||||||
|
|
||||||
|
1. Data Loading
|
||||||
|
2. Exploratory Data Analysis
|
||||||
|
3. One-Hot Encoding (Department, Attendance_Level, Favorite_Color)
|
||||||
|
4. Random Forest Classification
|
||||||
|
5. Model Evaluation
|
||||||
|
6. Feature Importance Visualization
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
*Part of Gyannetra's FDP workshop series*
|
||||||
BIN
fdp-colab-content/FDP_PreRead_StudentStress.pdf
Normal file
BIN
fdp-colab-content/FDP_PreRead_StudentStress.pdf
Normal file
Binary file not shown.
486
fdp-colab-content/FDP_Student_Stress_Prediction.ipynb
Normal file
486
fdp-colab-content/FDP_Student_Stress_Prediction.ipynb
Normal file
@@ -0,0 +1,486 @@
|
|||||||
|
{
|
||||||
|
"nbformat": 4,
|
||||||
|
"nbformat_minor": 5,
|
||||||
|
"metadata": {
|
||||||
|
"name": "FDP_Student_Stress_Prediction",
|
||||||
|
"kernelspec": { "name": "python3", "display_name": "Python 3" },
|
||||||
|
"language_info": { "name": "python", "version": "3.10.0" },
|
||||||
|
"accelerator": "CPU",
|
||||||
|
"colab": { "provenance": [] }
|
||||||
|
},
|
||||||
|
"cells": [
|
||||||
|
{
|
||||||
|
"cell_type": "markdown",
|
||||||
|
"metadata": {},
|
||||||
|
"source": [
|
||||||
|
"# 🎓 FDP: Student Stress Level Prediction\n",
|
||||||
|
"## Data Science Pipeline — Hands-on with Google Colab\n",
|
||||||
|
"\n",
|
||||||
|
"**Speaker:** Kapil Panwar | **Gyannetra Pvt Ltd**\n",
|
||||||
|
"\n",
|
||||||
|
"---\n",
|
||||||
|
"### 🔍 What We'll Do Today:\n",
|
||||||
|
"1. Load & explore a college student dataset\n",
|
||||||
|
"2. Handle categorical data using **One-Hot Encoding** (including Favorite Colors! 🌈)\n",
|
||||||
|
"3. Train a Machine Learning model to predict student stress\n",
|
||||||
|
"4. Evaluate how accurate our model is\n",
|
||||||
|
"5. Interpret results\n",
|
||||||
|
"\n",
|
||||||
|
"> **No installation needed. Just press Shift+Enter on each cell!**"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"metadata": {},
|
||||||
|
"source": [
|
||||||
|
"# Cell 1: Import Libraries\n",
|
||||||
|
"import pandas as pd\n",
|
||||||
|
"import numpy as np\n",
|
||||||
|
"import matplotlib.pyplot as plt\n",
|
||||||
|
"import seaborn as sns\n",
|
||||||
|
"from sklearn.model_selection import train_test_split\n",
|
||||||
|
"from sklearn.ensemble import RandomForestClassifier\n",
|
||||||
|
"from sklearn.metrics import accuracy_score, classification_report, confusion_matrix\n",
|
||||||
|
"\n",
|
||||||
|
"print(\"✅ All libraries loaded successfully!\")\n",
|
||||||
|
"print(f\"pandas: {pd.__version__}\")\n",
|
||||||
|
"print(f\"numpy: {np.__version__}\")"
|
||||||
|
],
|
||||||
|
"execution_count": null,
|
||||||
|
"outputs": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "markdown",
|
||||||
|
"metadata": {},
|
||||||
|
"source": [
|
||||||
|
"---\n",
|
||||||
|
"## Step 1: Load the Dataset 📂\n",
|
||||||
|
"\n",
|
||||||
|
"We're using a dataset of **300 college students**. It contains information about their department,\n",
|
||||||
|
"attendance, favorite color, study habits, and whether they have high stress or not."
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"metadata": {},
|
||||||
|
"source": [
|
||||||
|
"# Cell 2: Load Data\n",
|
||||||
|
"# Option A: From GitHub (recommended)\n",
|
||||||
|
"url = \"https://raw.githubusercontent.com/gnpl_admin/fdp-data-science-pipeline/main/fdp-colab-content/student_stress_data.csv\"\n",
|
||||||
|
"\n",
|
||||||
|
"# Option B: If you have the file locally (upload to Colab)\n",
|
||||||
|
"# from google.colab import files\n",
|
||||||
|
"# uploaded = files.upload()\n",
|
||||||
|
"# df = pd.read_csv('student_stress_data.csv')\n",
|
||||||
|
"\n",
|
||||||
|
"df = pd.read_csv(url)\n",
|
||||||
|
"print(f\"✅ Dataset loaded! Shape: {df.shape[0]} rows × {df.shape[1]} columns\")\n",
|
||||||
|
"df.head(10)"
|
||||||
|
],
|
||||||
|
"execution_count": null,
|
||||||
|
"outputs": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "markdown",
|
||||||
|
"metadata": {},
|
||||||
|
"source": [
|
||||||
|
"### 📊 What does each column mean?\n",
|
||||||
|
"\n",
|
||||||
|
"| Column | Type | Description |\n",
|
||||||
|
"|--------|------|-------------|\n",
|
||||||
|
"| Student_ID | ID | Unique student identifier |\n",
|
||||||
|
"| Department | Categorical | Science, Commerce, Arts, Engineering |\n",
|
||||||
|
"| Attendance_Level | Categorical | Regular, Irregular, Borderline |\n",
|
||||||
|
"| Favorite_Color | Categorical | Red, Blue, Green, Yellow, Purple, Orange |\n",
|
||||||
|
"| Weekly_Study_Hours | Numerical | Hours studied per week (2-25) |\n",
|
||||||
|
"| Assignment_Submission_Pct | Numerical | Assignment submission rate (40-100%) |\n",
|
||||||
|
"| Backlogs_Count | Numerical | Number of pending backlogs (0-5) |\n",
|
||||||
|
"| Stress_Level | **Target** | 0 = Low Stress, 1 = High Stress |"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"metadata": {},
|
||||||
|
"source": [
|
||||||
|
"# Cell 3: Explore Data Types & Missing Values\n",
|
||||||
|
"print(\"📋 Data Info:\")\n",
|
||||||
|
"print(\"-\" * 40)\n",
|
||||||
|
"df.info()\n",
|
||||||
|
"print()\n",
|
||||||
|
"print(\"📊 Missing values:\")\n",
|
||||||
|
"print(df.isnull().sum())\n",
|
||||||
|
"print()\n",
|
||||||
|
"print(\"✅ No missing values! Clean data.\")"
|
||||||
|
],
|
||||||
|
"execution_count": null,
|
||||||
|
"outputs": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"metadata": {},
|
||||||
|
"source": [
|
||||||
|
"# Cell 4: Statistical Summary\n",
|
||||||
|
"print(\"📈 Statistical Summary (Numerical Columns):\")\n",
|
||||||
|
"print(\"-\" * 40)\n",
|
||||||
|
"df.describe()"
|
||||||
|
],
|
||||||
|
"execution_count": null,
|
||||||
|
"outputs": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "markdown",
|
||||||
|
"metadata": {},
|
||||||
|
"source": [
|
||||||
|
"---\n",
|
||||||
|
"## Step 2: Exploratory Data Analysis (EDA) 🔍\n",
|
||||||
|
"\n",
|
||||||
|
"Let's understand our data before building a model."
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"metadata": {},
|
||||||
|
"source": [
|
||||||
|
"# Cell 5: Target Distribution\n",
|
||||||
|
"stress_counts = df['Stress_Level'].value_counts()\n",
|
||||||
|
"print(\"🎯 Stress Level Distribution:\")\n",
|
||||||
|
"print(f\"Low Stress (0): {stress_counts[0]} students\")\n",
|
||||||
|
"print(f\"High Stress (1): {stress_counts[1]} students\")\n",
|
||||||
|
"print()\n",
|
||||||
|
"\n",
|
||||||
|
"# Simple bar chart\n",
|
||||||
|
"plt.figure(figsize=(6, 4))\n",
|
||||||
|
"colors = ['#4CAF50', '#F44336']\n",
|
||||||
|
"bars = plt.bar(['Low Stress (0)', 'High Stress (1)'], [stress_counts[0], stress_counts[1]], color=colors)\n",
|
||||||
|
"plt.title('Student Stress Level Distribution', fontsize=14, fontweight='bold')\n",
|
||||||
|
"plt.ylabel('Number of Students')\n",
|
||||||
|
"for bar in bars:\n",
|
||||||
|
" height = bar.get_height()\n",
|
||||||
|
" plt.text(bar.get_x() + bar.get_width()/2, height, f'{int(height)}', ha='center', va='bottom')\n",
|
||||||
|
"plt.show()"
|
||||||
|
],
|
||||||
|
"execution_count": null,
|
||||||
|
"outputs": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"metadata": {},
|
||||||
|
"source": [
|
||||||
|
"# Cell 6: Favorite Color Distribution\n",
|
||||||
|
"print(\"🌈 Favorite Color Distribution:\")\n",
|
||||||
|
"color_counts = df['Favorite_Color'].value_counts()\n",
|
||||||
|
"print(color_counts)\n",
|
||||||
|
"print()\n",
|
||||||
|
"\n",
|
||||||
|
"# Bar chart with actual colors\n",
|
||||||
|
"plt.figure(figsize=(8, 4))\n",
|
||||||
|
"color_map = {'Red': '#FF0000', 'Blue': '#2196F3', 'Green': '#4CAF50',\n",
|
||||||
|
" 'Yellow': '#FFEB3B', 'Purple': '#9C27B0', 'Orange': '#FF9800'}\n",
|
||||||
|
"bar_colors = [color_map[c] for c in color_counts.index]\n",
|
||||||
|
"bars = plt.bar(color_counts.index, color_counts.values, color=bar_colors, edgecolor='black', linewidth=0.5)\n",
|
||||||
|
"plt.title('Favorite Color Distribution', fontsize=14, fontweight='bold')\n",
|
||||||
|
"plt.ylabel('Number of Students')\n",
|
||||||
|
"for bar in bars:\n",
|
||||||
|
" height = bar.get_height()\n",
|
||||||
|
" plt.text(bar.get_x() + bar.get_width()/2, height, f'{int(height)}', ha='center', va='bottom')\n",
|
||||||
|
"plt.show()"
|
||||||
|
],
|
||||||
|
"execution_count": null,
|
||||||
|
"outputs": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"metadata": {},
|
||||||
|
"source": [
|
||||||
|
"# Cell 7: Department vs Stress Level\n",
|
||||||
|
"print(\"🏫 Stress by Department:\")\n",
|
||||||
|
"dept_stress = pd.crosstab(df['Department'], df['Stress_Level'])\n",
|
||||||
|
"print(dept_stress)\n",
|
||||||
|
"print()\n",
|
||||||
|
"\n",
|
||||||
|
"# Stacked bar chart\n",
|
||||||
|
"dept_stress.plot(kind='bar', stacked=True, color=['#4CAF50', '#F44336'], figsize=(8, 4))\n",
|
||||||
|
"plt.title('Stress Level by Department', fontsize=14, fontweight='bold')\n",
|
||||||
|
"plt.xlabel('Department')\n",
|
||||||
|
"plt.ylabel('Number of Students')\n",
|
||||||
|
"plt.legend(['Low Stress', 'High Stress'])\n",
|
||||||
|
"plt.xticks(rotation=0)\n",
|
||||||
|
"plt.show()"
|
||||||
|
],
|
||||||
|
"execution_count": null,
|
||||||
|
"outputs": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "markdown",
|
||||||
|
"metadata": {},
|
||||||
|
"source": [
|
||||||
|
"---\n",
|
||||||
|
"## Step 3: Feature Engineering — One-Hot Encoding 🔄\n",
|
||||||
|
"\n",
|
||||||
|
"### 🎯 Why Do We Need This?\n",
|
||||||
|
"\n",
|
||||||
|
"Machine learning models understand **numbers**, not words like \"Red\" or \"Science\".\n",
|
||||||
|
"But we can't just assign Red=1, Blue=2 because that implies an order (Blue > Red).\n",
|
||||||
|
"\n",
|
||||||
|
"### ✅ Solution: One-Hot Encoding\n",
|
||||||
|
"\n",
|
||||||
|
"Creates a separate column for each category with 0 or 1.\n",
|
||||||
|
"\n",
|
||||||
|
"**Example — Favorite Color encoding:**\n",
|
||||||
|
"\n",
|
||||||
|
"| Original | Red | Blue | Green | Yellow | Purple | Orange |\n",
|
||||||
|
"|----------|-----|------|-------|--------|--------|--------|\n",
|
||||||
|
"| Red | 1 | 0 | 0 | 0 | 0 | 0 |\n",
|
||||||
|
"| Blue | 0 | 1 | 0 | 0 | 0 | 0 |\n",
|
||||||
|
"| Green | 0 | 0 | 1 | 0 | 0 | 0 |\n",
|
||||||
|
"\n",
|
||||||
|
"**Think of it like a light switch panel** — each color has its own switch, exactly one is ON!"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"metadata": {},
|
||||||
|
"source": [
|
||||||
|
"# Cell 8: One-Hot Encode Categorical Columns\n",
|
||||||
|
"print(\"🔄 Before One-Hot Encoding — Categorical columns:\")\n",
|
||||||
|
"print(df[['Department', 'Attendance_Level', 'Favorite_Color']].head())\n",
|
||||||
|
"print()\n",
|
||||||
|
"\n",
|
||||||
|
"# Apply one-hot encoding\n",
|
||||||
|
"categorical_cols = ['Department', 'Attendance_Level', 'Favorite_Color']\n",
|
||||||
|
"df_encoded = pd.get_dummies(df, columns=categorical_cols, drop_first=False)\n",
|
||||||
|
"\n",
|
||||||
|
"print(f\"✅ After encoding: {df_encoded.shape[1]} columns (was {df.shape[1]})\")\n",
|
||||||
|
"print()\n",
|
||||||
|
"\n",
|
||||||
|
"# Show the new columns that start with 'Favorite_Color'\n",
|
||||||
|
"color_cols = [c for c in df_encoded.columns if c.startswith('Favorite_Color')]\n",
|
||||||
|
"print(f\"🌈 New one-hot columns for Favorite_Color ({len(color_cols)} total):\")\n",
|
||||||
|
"print(color_cols)\n",
|
||||||
|
"print()\n",
|
||||||
|
"\n",
|
||||||
|
"# Show a sample of the encoded color columns\n",
|
||||||
|
"print(\"Sample of one-hot encoded colors:\")\n",
|
||||||
|
"df_encoded[['Student_ID', 'Favorite_Color_Red', 'Favorite_Color_Blue', \n",
|
||||||
|
" 'Favorite_Color_Green', 'Favorite_Color_Yellow',\n",
|
||||||
|
" 'Favorite_Color_Purple', 'Favorite_Color_Orange']].head(10)"
|
||||||
|
],
|
||||||
|
"execution_count": null,
|
||||||
|
"outputs": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"metadata": {},
|
||||||
|
"source": [
|
||||||
|
"# Cell 9: Visualize One-Hot Encoding\n",
|
||||||
|
"print(\"🎯 Let's see which colors have more stressed students:\")\n",
|
||||||
|
"\n",
|
||||||
|
"# Create a cross-tabulation\n",
|
||||||
|
"color_stress = pd.crosstab(df['Favorite_Color'], df['Stress_Level'])\n",
|
||||||
|
"color_stress['Stress_Rate'] = (color_stress[1] / (color_stress[0] + color_stress[1]) * 100).round(1)\n",
|
||||||
|
"color_stress = color_stress.sort_values('Stress_Rate', ascending=False)\n",
|
||||||
|
"print(color_stress)\n",
|
||||||
|
"print()\n",
|
||||||
|
"\n",
|
||||||
|
"# Bar chart\n",
|
||||||
|
"plt.figure(figsize=(8, 4))\n",
|
||||||
|
"ax = color_stress['Stress_Rate'].plot(kind='bar', color=['#FF0000', '#2196F3', '#4CAF50', '#FFEB3B', '#9C27B0', '#FF9800'],\n",
|
||||||
|
" edgecolor='black', linewidth=0.5)\n",
|
||||||
|
"plt.title('Stress Rate by Favorite Color', fontsize=14, fontweight='bold')\n",
|
||||||
|
"plt.xlabel('Favorite Color')\n",
|
||||||
|
"plt.ylabel('Stress Rate (%)')\n",
|
||||||
|
"plt.xticks(rotation=0)\n",
|
||||||
|
"for i, v in enumerate(color_stress['Stress_Rate']):\n",
|
||||||
|
" plt.text(i, v + 0.5, f'{v}%', ha='center', fontweight='bold')\n",
|
||||||
|
"plt.ylim(0, 100)\n",
|
||||||
|
"plt.show()"
|
||||||
|
],
|
||||||
|
"execution_count": null,
|
||||||
|
"outputs": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "markdown",
|
||||||
|
"metadata": {},
|
||||||
|
"source": [
|
||||||
|
"---\n",
|
||||||
|
"## Step 4: Train a Machine Learning Model 🤖\n",
|
||||||
|
"\n",
|
||||||
|
"We'll use a **Random Forest Classifier** — it's like asking 100 mini-experts to vote, then taking the majority decision. Easy to understand and very powerful!"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"metadata": {},
|
||||||
|
"source": [
|
||||||
|
"# Cell 10: Prepare Features & Target\n",
|
||||||
|
"# Drop Student_ID (not useful) and Stress_Level (our target)\n",
|
||||||
|
"X = df_encoded.drop(['Student_ID', 'Stress_Level'], axis=1)\n",
|
||||||
|
"y = df_encoded['Stress_Level']\n",
|
||||||
|
"\n",
|
||||||
|
"print(f\"Features (X): {X.shape[1]} columns, {X.shape[0]} rows\")\n",
|
||||||
|
"print(f\"Target (y): {y.shape[0]} values\")\n",
|
||||||
|
"print(f\"\\nFeature columns: {list(X.columns)[:10]}... (+ {len(X.columns)-10} more)\")\n",
|
||||||
|
"print(f\"\\nTarget distribution:\\n{y.value_counts().to_string()}\")"
|
||||||
|
],
|
||||||
|
"execution_count": null,
|
||||||
|
"outputs": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"metadata": {},
|
||||||
|
"source": [
|
||||||
|
"# Cell 11: Split Data into Train & Test\n",
|
||||||
|
"X_train, X_test, y_train, y_test = train_test_split(\n",
|
||||||
|
" X, y, test_size=0.3, random_state=42, stratify=y\n",
|
||||||
|
")\n",
|
||||||
|
"\n",
|
||||||
|
"print(f\"📚 Training set: {X_train.shape[0]} students ({X_train.shape[0]/len(df)*100:.0f}%)\")\n",
|
||||||
|
"print(f\"🧪 Test set: {X_test.shape[0]} students ({X_test.shape[0]/len(df)*100:.0f}%)\")\n",
|
||||||
|
"print()\n",
|
||||||
|
"print(\"✅ Training target distribution:\")\n",
|
||||||
|
"print(y_train.value_counts().to_string())\n",
|
||||||
|
"print()\n",
|
||||||
|
"print(\"✅ Test target distribution:\")\n",
|
||||||
|
"print(y_test.value_counts().to_string())"
|
||||||
|
],
|
||||||
|
"execution_count": null,
|
||||||
|
"outputs": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"metadata": {},
|
||||||
|
"source": [
|
||||||
|
"# Cell 12: Train Random Forest Model\n",
|
||||||
|
"model = RandomForestClassifier(n_estimators=100, random_state=42)\n",
|
||||||
|
"model.fit(X_train, y_train)\n",
|
||||||
|
"\n",
|
||||||
|
"print(\"🌲✅ Model trained successfully!\")\n",
|
||||||
|
"print(f\"Using {model.n_estimators} decision trees\")"
|
||||||
|
],
|
||||||
|
"execution_count": null,
|
||||||
|
"outputs": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "markdown",
|
||||||
|
"metadata": {},
|
||||||
|
"source": [
|
||||||
|
"---\n",
|
||||||
|
"## Step 5: Evaluate the Model 📊"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"metadata": {},
|
||||||
|
"source": [
|
||||||
|
"# Cell 13: Make Predictions\n",
|
||||||
|
"y_pred = model.predict(X_test)\n",
|
||||||
|
"accuracy = accuracy_score(y_test, y_pred)\n",
|
||||||
|
"\n",
|
||||||
|
"print(f\"🎯 Model Accuracy: {accuracy*100:.1f}%\")\n",
|
||||||
|
"print()\n",
|
||||||
|
"print(\"📋 Classification Report:\")\n",
|
||||||
|
"print(classification_report(y_test, y_pred, target_names=['Low Stress', 'High Stress']))"
|
||||||
|
],
|
||||||
|
"execution_count": null,
|
||||||
|
"outputs": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"metadata": {},
|
||||||
|
"source": [
|
||||||
|
"# Cell 14: Confusion Matrix\n",
|
||||||
|
"cm = confusion_matrix(y_test, y_pred)\n",
|
||||||
|
"\n",
|
||||||
|
"plt.figure(figsize=(6, 5))\n",
|
||||||
|
"sns.heatmap(cm, annot=True, fmt='d', cmap='Blues', \n",
|
||||||
|
" xticklabels=['Low Stress', 'High Stress'],\n",
|
||||||
|
" yticklabels=['Low Stress', 'High Stress'])\n",
|
||||||
|
"plt.title('Confusion Matrix', fontsize=14, fontweight='bold')\n",
|
||||||
|
"plt.xlabel('Predicted')\n",
|
||||||
|
"plt.ylabel('Actual')\n",
|
||||||
|
"plt.show()\n",
|
||||||
|
"\n",
|
||||||
|
"print(\"📊 Confusion Matrix Breakdown:\")\n",
|
||||||
|
"print(f\"✅ True Low Stress: {cm[0][0]} students correctly predicted\")\n",
|
||||||
|
"print(f\"❌ False High Stress: {cm[0][1]} low-stress students predicted as high\")\n",
|
||||||
|
"print(f\"❌ False Low Stress: {cm[1][0]} high-stress students predicted as low\")\n",
|
||||||
|
"print(f\"✅ True High Stress: {cm[1][1]} students correctly predicted\")"
|
||||||
|
],
|
||||||
|
"execution_count": null,
|
||||||
|
"outputs": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "markdown",
|
||||||
|
"metadata": {},
|
||||||
|
"source": [
|
||||||
|
"---\n",
|
||||||
|
"## Step 6: Feature Importance 🔑\n",
|
||||||
|
"\n",
|
||||||
|
"What factors most influence student stress? Let's find out!"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"metadata": {},
|
||||||
|
"source": [
|
||||||
|
"# Cell 15: Feature Importance\n",
|
||||||
|
"importance = pd.DataFrame({\n",
|
||||||
|
" 'Feature': X.columns,\n",
|
||||||
|
" 'Importance': model.feature_importances_\n",
|
||||||
|
"}).sort_values('Importance', ascending=False)\n",
|
||||||
|
"\n",
|
||||||
|
"print(\"🔑 Top 10 Most Important Factors:\")\n",
|
||||||
|
"print(\"-\" * 40)\n",
|
||||||
|
"for i, row in importance.head(10).iterrows():\n",
|
||||||
|
" bar = '█' * int(row['Importance'] * 50)\n",
|
||||||
|
" print(f\"{row['Feature']:40s} {bar} {row['Importance']*100:.1f}%\")\n",
|
||||||
|
"print()\n",
|
||||||
|
"\n",
|
||||||
|
"# Plot top 10\n",
|
||||||
|
"plt.figure(figsize=(10, 6))\n",
|
||||||
|
"top10 = importance.head(10)\n",
|
||||||
|
"bars = plt.barh(range(len(top10)), top10['Importance'].values, color='#8ab4f8')\n",
|
||||||
|
"plt.yticks(range(len(top10)), top10['Feature'].values)\n",
|
||||||
|
"plt.xlabel('Importance Score')\n",
|
||||||
|
"plt.title('Top 10 Features Influencing Student Stress', fontsize=14, fontweight='bold')\n",
|
||||||
|
"plt.gca().invert_yaxis()\n",
|
||||||
|
"for i, v in enumerate(top10['Importance']):\n",
|
||||||
|
" plt.text(v + 0.005, i, f'{v*100:.1f}%', va='center', fontweight='bold')\n",
|
||||||
|
"plt.tight_layout()\n",
|
||||||
|
"plt.show()"
|
||||||
|
],
|
||||||
|
"execution_count": null,
|
||||||
|
"outputs": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "markdown",
|
||||||
|
"metadata": {},
|
||||||
|
"source": [
|
||||||
|
"---\n",
|
||||||
|
"## 🎯 Summary — What We Learned Today\n",
|
||||||
|
"\n",
|
||||||
|
"| Step | What We Did | Key Takeaway |\n",
|
||||||
|
"|------|-------------|--------------|\n",
|
||||||
|
"| 1 | Loaded data | CSV files are the standard format |\n",
|
||||||
|
"| 2 | EDA | Visualized patterns before modeling |\n",
|
||||||
|
"| 3 | **One-Hot Encoding** | Converted colors (Red/Blue/Green) to numbers 📌 |\n",
|
||||||
|
"| 4 | Trained model | Random Forest — simple yet powerful |\n",
|
||||||
|
"| 5 | Evaluated | Measured accuracy & confusion matrix |\n",
|
||||||
|
"| 6 | Interpreted | Found most influential factors |\n",
|
||||||
|
"\n",
|
||||||
|
"### 📌 Key Concept: One-Hot Encoding\n",
|
||||||
|
"- Categorical data (like **Favorite Color**) cannot directly go into ML models\n",
|
||||||
|
"- One-hot encoding creates **separate 0/1 columns** for each category\n",
|
||||||
|
"- In pandas: <code>pd.get_dummies(df['Favorite_Color'])</code>\n",
|
||||||
|
"- Think of it as a **light switch panel** — one switch per color!\n",
|
||||||
|
"\n",
|
||||||
|
"---\n",
|
||||||
|
"### 🙏 Thank You!\n",
|
||||||
|
"\n",
|
||||||
|
"**Kapil Panwar** \n",
|
||||||
|
"Gyannetra Pvt Ltd, Pune, Maharashtra \n",
|
||||||
|
"*India's Premier AI Consultancy*"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
42
fdp-colab-content/generate_dataset.py
Normal file
42
fdp-colab-content/generate_dataset.py
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
import pandas as pd
|
||||||
|
import numpy as np
|
||||||
|
|
||||||
|
np.random.seed(42)
|
||||||
|
n = 300
|
||||||
|
|
||||||
|
departments = np.random.choice(["Science", "Commerce", "Arts", "Engineering"], n)
|
||||||
|
attendance = np.random.choice(["Regular", "Irregular", "Borderline"], n, p=[0.4, 0.3, 0.3])
|
||||||
|
fav_colors = np.random.choice(["Red", "Blue", "Green", "Yellow", "Purple", "Orange"], n)
|
||||||
|
study_hours = np.round(np.random.uniform(2, 25, n), 1)
|
||||||
|
assign_sub = np.round(np.random.uniform(40, 100, n), 0)
|
||||||
|
backlogs = np.random.randint(0, 6, n)
|
||||||
|
|
||||||
|
# Stress logic
|
||||||
|
# High if: irregular attendance OR backlogs>=3 OR study_hours<5 OR assign_sub<55
|
||||||
|
stress = ((attendance == "Irregular") |
|
||||||
|
(backlogs >= 3) |
|
||||||
|
(study_hours < 5) |
|
||||||
|
(assign_sub < 55)).astype(int)
|
||||||
|
|
||||||
|
# Add some noise so it's not 100% predictable
|
||||||
|
flip = np.random.choice([0, 1], n, p=[0.9, 0.1])
|
||||||
|
stress = stress ^ flip # XOR flip 10%
|
||||||
|
|
||||||
|
df = pd.DataFrame({
|
||||||
|
"Student_ID": ["S{:03d}".format(i+1) for i in range(n)],
|
||||||
|
"Department": departments,
|
||||||
|
"Attendance_Level": attendance,
|
||||||
|
"Favorite_Color": fav_colors,
|
||||||
|
"Weekly_Study_Hours": study_hours,
|
||||||
|
"Assignment_Submission_Pct": assign_sub.astype(int),
|
||||||
|
"Backlogs_Count": backlogs,
|
||||||
|
"Stress_Level": stress
|
||||||
|
})
|
||||||
|
|
||||||
|
df.to_csv("/root/fdp-workshop/fdp-colab-content/student_stress_data.csv", index=False)
|
||||||
|
print("Dataset generated: {} rows, {} cols".format(len(df), len(df.columns)))
|
||||||
|
print("Stress distribution:")
|
||||||
|
print(df["Stress_Level"].value_counts().to_string())
|
||||||
|
print("\nSample:")
|
||||||
|
print(df.head(3).to_string())
|
||||||
|
print("\nUnique colors: {}".format(df["Favorite_Color"].unique()))
|
||||||
396
fdp-colab-content/pre_read.html
Normal file
396
fdp-colab-content/pre_read.html
Normal file
@@ -0,0 +1,396 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<style>
|
||||||
|
@page {
|
||||||
|
size: A4;
|
||||||
|
margin: 2cm 1.8cm;
|
||||||
|
}
|
||||||
|
@page cover {
|
||||||
|
margin: 0;
|
||||||
|
@top-left { content: none; }
|
||||||
|
@top-right { content: none; }
|
||||||
|
@bottom-center { content: none; }
|
||||||
|
}
|
||||||
|
@page back {
|
||||||
|
margin: 0;
|
||||||
|
@top-left { content: none; }
|
||||||
|
@top-right { content: none; }
|
||||||
|
@bottom-center { content: none; }
|
||||||
|
}
|
||||||
|
|
||||||
|
* { box-sizing: border-box; margin: 0; padding: 0; }
|
||||||
|
|
||||||
|
/* ===== COVER ===== */
|
||||||
|
.cover-page {
|
||||||
|
page: cover;
|
||||||
|
width: 210mm; height: 297mm;
|
||||||
|
background: #2b2d42;
|
||||||
|
display: flex; flex-direction: column; justify-content: center; align-items: center;
|
||||||
|
padding: 30mm 20mm; text-align: center;
|
||||||
|
position: relative; overflow: hidden;
|
||||||
|
}
|
||||||
|
.cover-page::before {
|
||||||
|
content: ''; position: absolute; top: 0; left: 0; right: 0; bottom: 0;
|
||||||
|
background: linear-gradient(135deg, rgba(138,180,248,0.05) 0%, transparent 50%);
|
||||||
|
}
|
||||||
|
.cover-page h1 {
|
||||||
|
color: #ffffff; font-size: 28pt; font-weight: 700;
|
||||||
|
letter-spacing: 1px; margin-bottom: 6mm;
|
||||||
|
font-family: 'Segoe UI', 'Helvetica Neue', sans-serif;
|
||||||
|
}
|
||||||
|
.cover-page .subtitle {
|
||||||
|
color: #8ab4f8; font-size: 14pt; font-weight: 400;
|
||||||
|
margin-bottom: 12mm; letter-spacing: 0.5px;
|
||||||
|
font-family: 'Segoe UI', 'Helvetica Neue', sans-serif;
|
||||||
|
}
|
||||||
|
.cover-page .divider {
|
||||||
|
width: 60mm; height: 2px; background: #8ab4f8; margin: 0 auto 10mm;
|
||||||
|
}
|
||||||
|
.cover-page .meta {
|
||||||
|
color: #b0b8c5; font-size: 10pt; line-height: 2;
|
||||||
|
font-family: 'Segoe UI', 'Helvetica Neue', sans-serif;
|
||||||
|
}
|
||||||
|
.cover-page .meta strong { color: #d3d7e0; }
|
||||||
|
.cover-page .footer-note {
|
||||||
|
position: absolute; bottom: 18mm;
|
||||||
|
color: #6c7384; font-size: 8pt;
|
||||||
|
font-family: 'Segoe UI', 'Helvetica Neue', sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ===== CONTENT PAGES ===== */
|
||||||
|
body { font-family: 'Segoe UI', 'Helvetica Neue', sans-serif; color: #2d3748; font-size: 10pt; line-height: 1.6; }
|
||||||
|
.content-page { padding: 0; page-break-after: always; }
|
||||||
|
|
||||||
|
h2 {
|
||||||
|
color: #2b2d42; font-size: 16pt; font-weight: 700;
|
||||||
|
border-bottom: 2px solid #8ab4f8; padding-bottom: 4mm; margin-bottom: 6mm;
|
||||||
|
}
|
||||||
|
h3 {
|
||||||
|
color: #4a5568; font-size: 12pt; font-weight: 600;
|
||||||
|
margin-top: 6mm; margin-bottom: 3mm;
|
||||||
|
}
|
||||||
|
|
||||||
|
p { margin-bottom: 3mm; }
|
||||||
|
ul, ol { margin: 3mm 0 4mm 6mm; }
|
||||||
|
li { margin-bottom: 2mm; }
|
||||||
|
|
||||||
|
.highlight-box {
|
||||||
|
background: #f0f4ff; border-left: 4px solid #8ab4f8;
|
||||||
|
padding: 4mm 5mm; margin: 4mm 0; border-radius: 0 4px 4px 0;
|
||||||
|
}
|
||||||
|
.highlight-box strong { color: #2b2d42; }
|
||||||
|
|
||||||
|
.tip-box {
|
||||||
|
background: #fff8e7; border-left: 4px solid #f0ad4e;
|
||||||
|
padding: 4mm 5mm; margin: 4mm 0; border-radius: 0 4px 4px 0;
|
||||||
|
}
|
||||||
|
.tip-box strong { color: #8a6d3b; }
|
||||||
|
|
||||||
|
table {
|
||||||
|
width: 100%; border-collapse: collapse; margin: 4mm 0; font-size: 9pt;
|
||||||
|
}
|
||||||
|
th {
|
||||||
|
background: #2b2d42; color: #fff; padding: 3mm 4mm; text-align: left; font-weight: 600;
|
||||||
|
}
|
||||||
|
td {
|
||||||
|
padding: 3mm 4mm; border-bottom: 1px solid #e2e8f0;
|
||||||
|
}
|
||||||
|
tr:nth-child(even) td { background: #f7fafc; }
|
||||||
|
|
||||||
|
code {
|
||||||
|
background: #edf2f7; color: #2b2d42; padding: 1px 4px;
|
||||||
|
border-radius: 3px; font-size: 9pt; font-family: 'Consolas', 'Courier New', monospace;
|
||||||
|
}
|
||||||
|
pre {
|
||||||
|
background: #1a202c; color: #e2e8f0; padding: 4mm;
|
||||||
|
border-radius: 4px; font-size: 8.5pt; line-height: 1.4;
|
||||||
|
overflow-x: auto; margin: 4mm 0;
|
||||||
|
font-family: 'Consolas', 'Courier New', monospace;
|
||||||
|
}
|
||||||
|
|
||||||
|
.page-footer {
|
||||||
|
text-align: center; color: #a0aec0; font-size: 7.5pt;
|
||||||
|
border-top: 1px solid #e2e8f0; padding-top: 3mm; margin-top: 6mm;
|
||||||
|
}
|
||||||
|
|
||||||
|
.header-meta {
|
||||||
|
color: #a0aec0; font-size: 8pt; text-align: right;
|
||||||
|
margin-bottom: 2mm; border-bottom: 1px solid #edf2f7; padding-bottom: 1mm;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ===== BACK PAGE ===== */
|
||||||
|
.back-page {
|
||||||
|
page: back;
|
||||||
|
width: 210mm; height: 297mm;
|
||||||
|
background: #4a5568;
|
||||||
|
display: flex; flex-direction: column; justify-content: center; align-items: center;
|
||||||
|
padding: 30mm; text-align: center;
|
||||||
|
}
|
||||||
|
.back-page h2 {
|
||||||
|
color: #ffffff; font-size: 16pt; font-weight: 600; border: none; margin-bottom: 6mm;
|
||||||
|
}
|
||||||
|
.back-page p {
|
||||||
|
color: #c0c8d0; font-size: 10pt; line-height: 2;
|
||||||
|
}
|
||||||
|
.back-page .brand {
|
||||||
|
color: #8ab4f8; font-size: 11pt; font-weight: 600; margin-top: 8mm;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<!-- ===== COVER ===== -->
|
||||||
|
<section class="cover-page">
|
||||||
|
<h1>FDP Pre-Read Material</h1>
|
||||||
|
<p class="subtitle">Data Science Pipeline — Hands-on with Google Colab</p>
|
||||||
|
<div class="divider"></div>
|
||||||
|
<p class="meta">
|
||||||
|
<strong>Speaker:</strong> Kapil Panwar<br>
|
||||||
|
<strong>Organization:</strong> Gyannetra Pvt Ltd, Pune<br>
|
||||||
|
<strong>Date:</strong> 30 May 2026<br>
|
||||||
|
<strong>Venue:</strong> JIET, Jodhpur
|
||||||
|
</p>
|
||||||
|
<p class="footer-note">Pre-Read • Please go through before the session</p>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- ===== PAGE 1: Introduction ===== -->
|
||||||
|
<section class="content-page">
|
||||||
|
<div class="header-meta">FDP Pre-Read • Data Science Pipeline</div>
|
||||||
|
|
||||||
|
<h2>1. Introduction</h2>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Welcome to the <strong>Data Science Pipeline</strong> Faculty Development Program session!
|
||||||
|
This pre-read document will prepare you for a completely hands-on, no-installation-needed workshop.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<div class="highlight-box">
|
||||||
|
<strong>Good News:</strong> You do <em>not</em> need to install Python, Docker, or any software on your laptop.
|
||||||
|
Everything runs in your browser via <strong>Google Colab</strong>.
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<h3>What is a Data Science Pipeline?</h3>
|
||||||
|
<p>
|
||||||
|
A Data Science Pipeline is the end-to-end process of taking raw data and transforming it into
|
||||||
|
actionable insights. The standard pipeline has these stages:
|
||||||
|
</p>
|
||||||
|
<ol>
|
||||||
|
<li><strong>Data Collection</strong> – Gathering data from CSV, databases, APIs, etc.</li>
|
||||||
|
<li><strong>Data Cleaning & Preprocessing</strong> – Handling missing values, fixing data types</li>
|
||||||
|
<li><strong>Feature Engineering</strong> – Creating new features, encoding categorical variables</li>
|
||||||
|
<li><strong>Exploratory Data Analysis (EDA)</strong> – Visualizing patterns and relationships</li>
|
||||||
|
<li><strong>Model Training</strong> – Applying machine learning algorithms</li>
|
||||||
|
<li><strong>Evaluation</strong> – Measuring how well the model performs</li>
|
||||||
|
<li><strong>Interpretation</strong> – Understanding what the model tells us</li>
|
||||||
|
</ol>
|
||||||
|
|
||||||
|
<div class="tip-box">
|
||||||
|
<strong>Session Tip:</strong> Don't worry if some terms feel new. The session is designed for
|
||||||
|
beginners. Just bring curiosity and a working internet connection.
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="page-footer">Page 1</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- ===== PAGE 2: Google Colab ===== -->
|
||||||
|
<section class="content-page">
|
||||||
|
<div class="header-meta">FDP Pre-Read • Data Science Pipeline</div>
|
||||||
|
|
||||||
|
<h2>2. Google Colab — Your Browser-Based Lab</h2>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
<strong>Google Colaboratory (Colab)</strong> is a free, cloud-based Jupyter notebook environment
|
||||||
|
that runs entirely in your browser. No installation. No setup.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h3>Why Colab for this FDP?</h3>
|
||||||
|
<ul>
|
||||||
|
<li>✅ <strong>Zero setup</strong> – Works on any laptop (i3, i5, any OS)</li>
|
||||||
|
<li>✅ <strong>Free GPU/CPU</strong> – Google servers do the heavy lifting</li>
|
||||||
|
<li>✅ <strong>Pre-written code</strong> – Just run each cell with Shift+Enter</li>
|
||||||
|
<li>✅ <strong>Auto-saves to your Google Drive</strong></li>
|
||||||
|
<li>✅ <strong>Works offline</strong> after initial load</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<h3>How to Open a Colab Notebook</h3>
|
||||||
|
<ol>
|
||||||
|
<li>Open your browser (Chrome / Firefox recommended)</li>
|
||||||
|
<li>Go to <code>colab.research.google.com</code></li>
|
||||||
|
<li>Click <strong>File → Upload Notebook</strong></li>
|
||||||
|
<li>Select the <code>.ipynb</code> file we share during the session</li>
|
||||||
|
</ol>
|
||||||
|
|
||||||
|
<div class="highlight-box">
|
||||||
|
<strong>Shortcut:</strong> We will also share a direct Colab link — just click and it opens
|
||||||
|
automatically. No upload needed.
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<h3>Colab Cell Types</h3>
|
||||||
|
<table>
|
||||||
|
<tr><th>Cell Type</th><th>Use</th><th>Example</th></tr>
|
||||||
|
<tr><td>Code Cell</td><td>Runs Python code</td><td><code>print("Hello")</code></td></tr>
|
||||||
|
<tr><td>Text Cell</td><td>Markdown documentation</td><td>Explanations, headings</td></tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<div class="page-footer">Page 2</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- ===== PAGE 3: Categorical Data & One-Hot Encoding ===== -->
|
||||||
|
<section class="content-page">
|
||||||
|
<div class="header-meta">FDP Pre-Read • Data Science Pipeline</div>
|
||||||
|
|
||||||
|
<h2>3. Categorical Data & One-Hot Encoding</h2>
|
||||||
|
|
||||||
|
<h3>What is Categorical Data?</h3>
|
||||||
|
<p>
|
||||||
|
Categorical data represents groups or categories rather than numbers. Examples: Department
|
||||||
|
(Science, Commerce), Gender (Male, Female), or <strong>Favorite Color</strong> (Red, Blue, Green).
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Machine learning models understand only <em>numbers</em>. So we must convert text categories to
|
||||||
|
numbers. This is called <strong>encoding</strong>.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h3>The Problem with Simple Numbering</h3>
|
||||||
|
<p>
|
||||||
|
If we encode Red=1, Blue=2, Green=3, the model might think Green > Blue > Red (i.e.,
|
||||||
|
order/ranking). But colors have <em>no inherent order</em>. This is why we use one-hot encoding.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h3>How One-Hot Encoding Works</h3>
|
||||||
|
<p>
|
||||||
|
One-hot encoding creates a separate column for <em>each category</em>, with 1 (present) or 0 (absent).
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<table>
|
||||||
|
<tr><th>Original</th><th>Red</th><th>Blue</th><th>Green</th><th>Yellow</th></tr>
|
||||||
|
<tr><td>Red</td><td>1</td><td>0</td><td>0</td><td>0</td></tr>
|
||||||
|
<tr><td>Blue</td><td>0</td><td>1</td><td>0</td><td>0</td></tr>
|
||||||
|
<tr><td>Green</td><td>0</td><td>0</td><td>1</td><td>0</td></tr>
|
||||||
|
<tr><td>Yellow</td><td>0</td><td>0</td><td>0</td><td>1</td></tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<p>In Python with pandas, it's just one line:</p>
|
||||||
|
<pre>import pandas as pd
|
||||||
|
encoded = pd.get_dummies(df['Favorite_Color'], prefix='Color')</pre>
|
||||||
|
|
||||||
|
<div class="tip-box">
|
||||||
|
<strong>Visual Memory Aid:</strong> Think of one-hot like a light switch panel —
|
||||||
|
each color has its own switch, and exactly one switch is ON at a time.
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="page-footer">Page 3</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- ===== PAGE 4: Dataset & Session Outline ===== -->
|
||||||
|
<section class="content-page">
|
||||||
|
<div class="header-meta">FDP Pre-Read • Data Science Pipeline</div>
|
||||||
|
|
||||||
|
<h2>4. Session Dataset — Student Stress Prediction</h2>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
During the session, we will use a dataset about <strong>college student stress levels</strong>.
|
||||||
|
This dataset is specially designed to be relatable for faculty members.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<table>
|
||||||
|
<tr><th>Feature</th><th>Type</th><th>Description</th><th>Example</th></tr>
|
||||||
|
<tr><td>Department</td><td>Categorical</td><td>Student's department</td><td>Science, Arts, Commerce, Engineering</td></tr>
|
||||||
|
<tr><td>Attendance Level</td><td>Categorical</td><td>Attendance category</td><td>Regular, Irregular, Borderline</td></tr>
|
||||||
|
<tr><td>Favorite Color</td><td>Categorical</td><td>Self-reported favorite color 🌈</td><td>Red, Blue, Green, Yellow, Purple, Orange</td></tr>
|
||||||
|
<tr><td>Weekly Study Hours</td><td>Numerical</td><td>Hours studied per week</td><td>2 – 25 hours</td></tr>
|
||||||
|
<tr><td>Assignment Submission %</td><td>Numerical</td><td>Assignment submission rate</td><td>40% – 100%</td></tr>
|
||||||
|
<tr><td>Backlogs Count</td><td>Numerical</td><td>Number of pending backlogs</td><td>0 – 5</td></tr>
|
||||||
|
<tr><td>Stress Level</td><td>Binary (Target)</td><td>0 = Low Stress, 1 = High Stress</td><td>0 or 1</td></tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<h3>Session Outline (Hands-On)</h3>
|
||||||
|
<ol>
|
||||||
|
<li><strong>Open Colab & Load Data</strong> — 5 min</li>
|
||||||
|
<li><strong>Explore the Data (EDA)</strong> — 10 min</li>
|
||||||
|
<li><strong>One-Hot Encode Categorical Columns</strong> — 10 min</li>
|
||||||
|
<li><strong>Train a Machine Learning Model</strong> — 10 min</li>
|
||||||
|
<li><strong>Evaluate & Interpret Results</strong> — 10 min</li>
|
||||||
|
<li><strong>Q&A / Open Discussion</strong> — 10 min</li>
|
||||||
|
</ol>
|
||||||
|
<p><strong>Total:</strong> ~55 minutes</p>
|
||||||
|
|
||||||
|
<div class="highlight-box">
|
||||||
|
<strong>No prior coding experience needed.</strong> All code is pre-written.
|
||||||
|
You just click "Run" and watch the magic happen.
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<h3>What You Will Learn</h3>
|
||||||
|
<ul>
|
||||||
|
<li>✅ How to load and view data in Python</li>
|
||||||
|
<li>✅ How to handle categorical data (one-hot encoding with colors!)</li>
|
||||||
|
<li>✅ How to train a simple ML model</li>
|
||||||
|
<li>✅ How to check if the model is accurate</li>
|
||||||
|
<li>✅ How these skills apply to your own courses & research</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<div class="page-footer">Page 4</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- ===== PAGE 5: Quick Reference ===== -->
|
||||||
|
<section class="content-page">
|
||||||
|
<div class="header-meta">FDP Pre-Read • Data Science Pipeline</div>
|
||||||
|
|
||||||
|
<h2>5. Quick Reference — Python & Colab Cheatsheet</h2>
|
||||||
|
|
||||||
|
<h3>Common Colab Shortcuts</h3>
|
||||||
|
<table>
|
||||||
|
<tr><th>Action</th><th>Shortcut</th></tr>
|
||||||
|
<tr><td>Run current cell</td><td><code>Shift + Enter</code></td></tr>
|
||||||
|
<tr><td>Add a code cell</td><td>Click <strong>+ Code</strong> button</td></tr>
|
||||||
|
<tr><td>Add a text cell</td><td>Click <strong>+ Text</strong> button</td></tr>
|
||||||
|
<tr><td>Delete a cell</td><td>Click cell → Trash icon (top-right)</td></tr>
|
||||||
|
<tr><td>Toggle cell output</td><td>Double-click output area</td></tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<h3>Key Python Commands We'll Use</h3>
|
||||||
|
<table>
|
||||||
|
<tr><th>Command</th><th>What it does</th></tr>
|
||||||
|
<tr><td><code>df.head()</code></td><td>Show first 5 rows of data</td></tr>
|
||||||
|
<tr><td><code>df.info()</code></td><td>Show data types and missing values</td></tr>
|
||||||
|
<tr><td><code>df.describe()</code></td><td>Show statistical summary</td></tr>
|
||||||
|
<tr><td><code>df['col'].value_counts()</code></td><td>Count unique values in a column</td></tr>
|
||||||
|
<tr><td><code>pd.get_dummies()</code></td><td>One-hot encode categorical columns</td></tr>
|
||||||
|
<tr><td><code>train_test_split()</code></td><td>Split data into train/test</td></tr>
|
||||||
|
<tr><td><code>RandomForestClassifier()</code></td><td>Create a Random Forest model</td></tr>
|
||||||
|
<tr><td><code>accuracy_score()</code></td><td>Calculate model accuracy</td></tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<h3>Before the Session, Please:</h3>
|
||||||
|
<ul>
|
||||||
|
<li>✅ Ensure you have a working internet connection</li>
|
||||||
|
<li>✅ Have a Google account (Gmail) logged in your browser</li>
|
||||||
|
<li>✅ Open Chrome / Firefox browser (latest version)</li>
|
||||||
|
<li>✅ Keep this pre-read handy for reference</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<div class="highlight-box">
|
||||||
|
<strong>See you at the session!</strong> If you have questions beforehand, please reach out
|
||||||
|
via the FDP coordination team. We're here to help.
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="page-footer">Page 5</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- ===== BACK PAGE ===== -->
|
||||||
|
<section class="back-page">
|
||||||
|
<h2>See You at the Session!</h2>
|
||||||
|
<p>
|
||||||
|
Data Science Pipeline • 30 May 2026 • JIET Jodhpur
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<strong>Kapil Panwar</strong><br>
|
||||||
|
Gyannetra Pvt Ltd, Pune, Maharashtra<br>
|
||||||
|
<span class="brand">Gyannetra — India's Premier AI Consultancy</span>
|
||||||
|
</p>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
301
fdp-colab-content/student_stress_data.csv
Normal file
301
fdp-colab-content/student_stress_data.csv
Normal file
@@ -0,0 +1,301 @@
|
|||||||
|
Student_ID,Department,Attendance_Level,Favorite_Color,Weekly_Study_Hours,Assignment_Submission_Pct,Backlogs_Count,Stress_Level
|
||||||
|
S001,Arts,Borderline,Purple,22.5,41,2,1
|
||||||
|
S002,Engineering,Regular,Yellow,15.7,48,4,1
|
||||||
|
S003,Science,Regular,Orange,17.6,94,3,1
|
||||||
|
S004,Arts,Irregular,Green,20.2,92,4,1
|
||||||
|
S005,Arts,Borderline,Blue,13.5,76,3,1
|
||||||
|
S006,Engineering,Regular,Blue,4.0,76,1,1
|
||||||
|
S007,Science,Irregular,Green,14.4,80,2,1
|
||||||
|
S008,Science,Borderline,Orange,15.5,51,3,0
|
||||||
|
S009,Arts,Regular,Green,19.1,95,5,1
|
||||||
|
S010,Commerce,Borderline,Purple,11.9,65,0,0
|
||||||
|
S011,Arts,Regular,Purple,4.9,63,5,1
|
||||||
|
S012,Arts,Irregular,Blue,8.5,71,5,1
|
||||||
|
S013,Arts,Irregular,Yellow,10.4,43,0,1
|
||||||
|
S014,Arts,Irregular,Orange,16.9,50,5,1
|
||||||
|
S015,Engineering,Regular,Blue,15.1,84,3,0
|
||||||
|
S016,Science,Borderline,Yellow,10.2,45,3,1
|
||||||
|
S017,Engineering,Regular,Yellow,24.7,76,3,1
|
||||||
|
S018,Engineering,Regular,Purple,15.9,55,0,0
|
||||||
|
S019,Engineering,Regular,Red,7.5,63,5,1
|
||||||
|
S020,Arts,Irregular,Red,4.3,57,0,1
|
||||||
|
S021,Commerce,Irregular,Green,5.5,61,3,1
|
||||||
|
S022,Science,Regular,Purple,7.7,83,5,1
|
||||||
|
S023,Commerce,Irregular,Yellow,5.7,58,5,1
|
||||||
|
S024,Engineering,Regular,Orange,6.3,74,4,0
|
||||||
|
S025,Engineering,Irregular,Red,8.6,69,4,1
|
||||||
|
S026,Commerce,Regular,Yellow,6.0,80,1,1
|
||||||
|
S027,Commerce,Irregular,Red,22.6,96,2,1
|
||||||
|
S028,Commerce,Regular,Red,3.8,84,4,1
|
||||||
|
S029,Engineering,Borderline,Red,14.1,53,0,1
|
||||||
|
S030,Engineering,Regular,Orange,11.4,42,4,1
|
||||||
|
S031,Science,Regular,Purple,24.6,56,1,0
|
||||||
|
S032,Science,Regular,Orange,4.6,76,5,1
|
||||||
|
S033,Engineering,Borderline,Blue,11.2,43,1,1
|
||||||
|
S034,Commerce,Borderline,Yellow,24.3,70,5,1
|
||||||
|
S035,Commerce,Regular,Purple,21.9,76,5,1
|
||||||
|
S036,Science,Irregular,Purple,20.8,60,2,1
|
||||||
|
S037,Engineering,Borderline,Purple,7.9,86,4,1
|
||||||
|
S038,Science,Irregular,Purple,5.9,46,0,1
|
||||||
|
S039,Science,Irregular,Orange,17.4,45,0,1
|
||||||
|
S040,Arts,Regular,Purple,23.4,84,3,1
|
||||||
|
S041,Arts,Regular,Green,14.8,70,5,1
|
||||||
|
S042,Arts,Borderline,Yellow,15.1,81,0,0
|
||||||
|
S043,Commerce,Borderline,Purple,8.4,66,2,0
|
||||||
|
S044,Engineering,Irregular,Yellow,19.7,55,5,1
|
||||||
|
S045,Engineering,Regular,Green,6.3,89,2,0
|
||||||
|
S046,Engineering,Regular,Green,9.4,88,0,0
|
||||||
|
S047,Engineering,Borderline,Yellow,11.8,82,0,0
|
||||||
|
S048,Arts,Borderline,Red,13.7,56,3,1
|
||||||
|
S049,Commerce,Borderline,Blue,7.6,75,0,0
|
||||||
|
S050,Commerce,Borderline,Red,4.6,62,5,1
|
||||||
|
S051,Arts,Irregular,Red,16.0,45,5,1
|
||||||
|
S052,Commerce,Regular,Orange,8.6,95,5,1
|
||||||
|
S053,Arts,Regular,Red,15.4,48,3,1
|
||||||
|
S054,Engineering,Borderline,Purple,5.6,97,3,1
|
||||||
|
S055,Arts,Irregular,Orange,13.1,67,0,1
|
||||||
|
S056,Engineering,Regular,Orange,14.2,51,1,1
|
||||||
|
S057,Engineering,Regular,Green,3.2,73,1,1
|
||||||
|
S058,Science,Irregular,Red,9.7,92,3,1
|
||||||
|
S059,Arts,Regular,Green,5.1,84,0,0
|
||||||
|
S060,Science,Regular,Yellow,3.5,88,1,1
|
||||||
|
S061,Arts,Irregular,Blue,24.8,80,0,1
|
||||||
|
S062,Arts,Irregular,Orange,9.4,82,0,1
|
||||||
|
S063,Science,Irregular,Yellow,20.6,91,0,1
|
||||||
|
S064,Science,Regular,Yellow,7.9,55,4,1
|
||||||
|
S065,Arts,Borderline,Purple,17.7,69,5,1
|
||||||
|
S066,Commerce,Regular,Blue,19.5,53,0,1
|
||||||
|
S067,Engineering,Regular,Yellow,15.7,99,4,1
|
||||||
|
S068,Science,Borderline,Yellow,12.8,97,3,1
|
||||||
|
S069,Engineering,Irregular,Blue,11.5,42,1,1
|
||||||
|
S070,Commerce,Borderline,Blue,10.0,82,5,1
|
||||||
|
S071,Commerce,Irregular,Yellow,23.4,96,1,1
|
||||||
|
S072,Commerce,Irregular,Blue,21.1,51,5,0
|
||||||
|
S073,Science,Regular,Yellow,24.2,74,1,0
|
||||||
|
S074,Commerce,Regular,Yellow,4.9,95,5,1
|
||||||
|
S075,Science,Regular,Purple,18.8,42,1,1
|
||||||
|
S076,Commerce,Regular,Red,23.6,82,1,0
|
||||||
|
S077,Engineering,Borderline,Yellow,6.2,58,1,0
|
||||||
|
S078,Engineering,Regular,Green,3.5,95,1,1
|
||||||
|
S079,Arts,Borderline,Orange,19.0,98,3,0
|
||||||
|
S080,Engineering,Irregular,Red,15.2,97,0,1
|
||||||
|
S081,Arts,Borderline,Red,21.4,68,2,1
|
||||||
|
S082,Engineering,Irregular,Red,5.2,92,4,1
|
||||||
|
S083,Science,Irregular,Purple,20.3,91,2,1
|
||||||
|
S084,Engineering,Irregular,Yellow,6.6,59,2,1
|
||||||
|
S085,Arts,Regular,Purple,5.8,90,5,1
|
||||||
|
S086,Arts,Borderline,Yellow,5.8,42,0,1
|
||||||
|
S087,Commerce,Regular,Purple,20.7,76,5,1
|
||||||
|
S088,Science,Regular,Purple,17.3,54,0,1
|
||||||
|
S089,Engineering,Irregular,Orange,14.0,47,0,1
|
||||||
|
S090,Commerce,Regular,Green,10.3,45,1,1
|
||||||
|
S091,Engineering,Borderline,Purple,22.2,82,3,1
|
||||||
|
S092,Engineering,Borderline,Orange,11.0,60,1,0
|
||||||
|
S093,Commerce,Borderline,Blue,20.8,83,3,1
|
||||||
|
S094,Commerce,Regular,Green,12.1,44,5,1
|
||||||
|
S095,Commerce,Regular,Purple,10.7,59,3,1
|
||||||
|
S096,Commerce,Borderline,Red,12.6,72,5,1
|
||||||
|
S097,Commerce,Irregular,Blue,8.9,87,2,1
|
||||||
|
S098,Engineering,Borderline,Blue,19.2,59,2,0
|
||||||
|
S099,Commerce,Borderline,Orange,13.6,78,3,1
|
||||||
|
S100,Science,Borderline,Blue,7.3,93,3,1
|
||||||
|
S101,Arts,Regular,Green,22.7,77,5,1
|
||||||
|
S102,Commerce,Regular,Purple,10.8,54,1,1
|
||||||
|
S103,Commerce,Borderline,Purple,14.5,41,5,1
|
||||||
|
S104,Engineering,Regular,Red,22.8,92,1,1
|
||||||
|
S105,Commerce,Regular,Orange,16.4,41,2,1
|
||||||
|
S106,Commerce,Irregular,Red,4.7,92,0,1
|
||||||
|
S107,Commerce,Borderline,Blue,23.6,72,3,1
|
||||||
|
S108,Engineering,Irregular,Red,16.4,96,1,1
|
||||||
|
S109,Commerce,Irregular,Green,9.7,88,5,1
|
||||||
|
S110,Arts,Regular,Purple,5.2,100,2,1
|
||||||
|
S111,Engineering,Irregular,Blue,20.3,61,1,1
|
||||||
|
S112,Arts,Borderline,Red,16.3,86,5,1
|
||||||
|
S113,Engineering,Regular,Orange,14.3,64,3,1
|
||||||
|
S114,Commerce,Irregular,Green,22.6,69,3,1
|
||||||
|
S115,Arts,Borderline,Green,20.1,78,4,1
|
||||||
|
S116,Engineering,Borderline,Red,5.5,92,0,0
|
||||||
|
S117,Science,Irregular,Purple,9.2,99,4,1
|
||||||
|
S118,Commerce,Borderline,Red,7.7,86,2,0
|
||||||
|
S119,Engineering,Regular,Blue,19.1,65,1,1
|
||||||
|
S120,Science,Regular,Red,2.8,65,2,1
|
||||||
|
S121,Engineering,Borderline,Green,15.1,84,5,1
|
||||||
|
S122,Science,Borderline,Red,19.5,54,3,1
|
||||||
|
S123,Commerce,Borderline,Purple,22.2,47,4,1
|
||||||
|
S124,Arts,Borderline,Orange,9.9,61,4,1
|
||||||
|
S125,Science,Irregular,Yellow,20.9,57,4,1
|
||||||
|
S126,Engineering,Irregular,Red,4.5,58,2,1
|
||||||
|
S127,Commerce,Borderline,Purple,21.5,54,3,1
|
||||||
|
S128,Science,Irregular,Purple,4.9,43,1,1
|
||||||
|
S129,Engineering,Borderline,Orange,11.1,41,5,1
|
||||||
|
S130,Engineering,Borderline,Green,20.3,99,1,0
|
||||||
|
S131,Engineering,Borderline,Purple,5.4,66,2,0
|
||||||
|
S132,Science,Regular,Purple,7.3,63,5,1
|
||||||
|
S133,Science,Regular,Purple,18.6,81,4,1
|
||||||
|
S134,Science,Regular,Purple,18.6,53,0,1
|
||||||
|
S135,Arts,Irregular,Blue,16.7,97,2,1
|
||||||
|
S136,Science,Regular,Blue,18.0,87,2,0
|
||||||
|
S137,Science,Irregular,Green,14.5,45,3,1
|
||||||
|
S138,Science,Irregular,Red,7.8,65,1,1
|
||||||
|
S139,Arts,Regular,Purple,10.0,93,2,0
|
||||||
|
S140,Science,Irregular,Orange,6.2,97,2,1
|
||||||
|
S141,Engineering,Regular,Red,22.9,68,4,1
|
||||||
|
S142,Science,Regular,Orange,15.4,77,4,1
|
||||||
|
S143,Engineering,Borderline,Red,11.2,50,5,1
|
||||||
|
S144,Engineering,Regular,Green,12.6,99,0,1
|
||||||
|
S145,Engineering,Regular,Purple,23.8,54,3,1
|
||||||
|
S146,Arts,Irregular,Purple,5.5,97,0,1
|
||||||
|
S147,Arts,Borderline,Yellow,15.5,79,5,1
|
||||||
|
S148,Arts,Regular,Orange,13.6,76,4,1
|
||||||
|
S149,Science,Irregular,Red,16.1,71,1,1
|
||||||
|
S150,Engineering,Regular,Red,2.4,54,4,1
|
||||||
|
S151,Arts,Regular,Blue,22.1,51,3,0
|
||||||
|
S152,Arts,Irregular,Yellow,23.4,53,4,1
|
||||||
|
S153,Science,Irregular,Blue,15.0,51,3,1
|
||||||
|
S154,Arts,Irregular,Blue,18.0,87,3,1
|
||||||
|
S155,Science,Borderline,Blue,23.2,61,3,1
|
||||||
|
S156,Commerce,Borderline,Orange,18.3,43,5,1
|
||||||
|
S157,Arts,Irregular,Orange,5.5,98,3,1
|
||||||
|
S158,Commerce,Regular,Green,15.3,93,3,1
|
||||||
|
S159,Science,Borderline,Green,16.0,96,1,0
|
||||||
|
S160,Engineering,Regular,Blue,11.8,100,0,0
|
||||||
|
S161,Arts,Irregular,Yellow,18.9,50,2,1
|
||||||
|
S162,Science,Regular,Red,23.5,64,0,0
|
||||||
|
S163,Engineering,Regular,Orange,23.3,85,3,1
|
||||||
|
S164,Engineering,Borderline,Yellow,12.4,82,1,0
|
||||||
|
S165,Commerce,Borderline,Purple,4.6,49,4,1
|
||||||
|
S166,Science,Irregular,Orange,24.7,89,1,1
|
||||||
|
S167,Engineering,Irregular,Orange,21.3,53,3,1
|
||||||
|
S168,Arts,Regular,Green,4.9,53,1,1
|
||||||
|
S169,Arts,Regular,Red,23.2,72,1,0
|
||||||
|
S170,Commerce,Regular,Red,22.0,76,3,1
|
||||||
|
S171,Engineering,Irregular,Purple,13.9,75,5,1
|
||||||
|
S172,Science,Borderline,Purple,15.6,45,1,1
|
||||||
|
S173,Arts,Irregular,Orange,11.2,93,2,1
|
||||||
|
S174,Engineering,Regular,Blue,3.3,56,2,1
|
||||||
|
S175,Engineering,Borderline,Green,9.7,48,1,1
|
||||||
|
S176,Commerce,Borderline,Green,20.5,93,5,0
|
||||||
|
S177,Arts,Irregular,Orange,2.1,97,4,1
|
||||||
|
S178,Arts,Irregular,Yellow,9.7,92,3,1
|
||||||
|
S179,Science,Irregular,Blue,11.2,89,2,1
|
||||||
|
S180,Arts,Regular,Orange,14.4,79,4,1
|
||||||
|
S181,Science,Regular,Blue,23.2,73,1,0
|
||||||
|
S182,Arts,Borderline,Blue,10.0,45,4,1
|
||||||
|
S183,Commerce,Regular,Blue,10.0,65,0,1
|
||||||
|
S184,Arts,Regular,Orange,19.0,62,2,0
|
||||||
|
S185,Science,Regular,Green,12.4,56,1,0
|
||||||
|
S186,Science,Regular,Green,7.2,83,3,1
|
||||||
|
S187,Commerce,Borderline,Blue,12.4,70,5,1
|
||||||
|
S188,Arts,Borderline,Yellow,5.2,45,1,1
|
||||||
|
S189,Arts,Irregular,Red,6.1,53,3,1
|
||||||
|
S190,Commerce,Regular,Orange,13.5,81,5,1
|
||||||
|
S191,Arts,Irregular,Red,11.6,45,5,1
|
||||||
|
S192,Arts,Irregular,Yellow,23.0,91,1,1
|
||||||
|
S193,Science,Regular,Orange,10.3,70,4,1
|
||||||
|
S194,Arts,Irregular,Blue,15.4,69,4,0
|
||||||
|
S195,Arts,Regular,Green,16.5,76,5,1
|
||||||
|
S196,Commerce,Irregular,Red,2.3,89,4,1
|
||||||
|
S197,Commerce,Irregular,Purple,17.3,61,0,1
|
||||||
|
S198,Engineering,Regular,Purple,6.1,81,5,0
|
||||||
|
S199,Science,Regular,Yellow,24.1,74,5,0
|
||||||
|
S200,Arts,Irregular,Blue,5.4,56,3,1
|
||||||
|
S201,Arts,Irregular,Red,11.5,93,4,1
|
||||||
|
S202,Engineering,Borderline,Blue,4.0,88,5,1
|
||||||
|
S203,Arts,Irregular,Red,24.9,80,0,1
|
||||||
|
S204,Science,Regular,Yellow,13.6,91,3,1
|
||||||
|
S205,Engineering,Regular,Yellow,15.7,92,1,0
|
||||||
|
S206,Science,Irregular,Purple,3.5,83,5,1
|
||||||
|
S207,Engineering,Regular,Blue,19.2,90,0,0
|
||||||
|
S208,Engineering,Irregular,Orange,6.8,82,2,1
|
||||||
|
S209,Commerce,Borderline,Purple,22.7,81,0,0
|
||||||
|
S210,Science,Irregular,Blue,6.7,77,0,1
|
||||||
|
S211,Arts,Regular,Purple,6.4,85,3,1
|
||||||
|
S212,Arts,Irregular,Orange,2.8,50,1,1
|
||||||
|
S213,Science,Irregular,Green,12.9,93,2,1
|
||||||
|
S214,Arts,Irregular,Green,15.0,92,4,1
|
||||||
|
S215,Arts,Borderline,Green,3.5,42,4,0
|
||||||
|
S216,Science,Regular,Green,19.8,90,0,0
|
||||||
|
S217,Engineering,Borderline,Red,12.4,48,3,1
|
||||||
|
S218,Science,Borderline,Green,14.1,60,3,1
|
||||||
|
S219,Engineering,Regular,Orange,12.1,85,4,1
|
||||||
|
S220,Arts,Regular,Yellow,11.2,50,2,1
|
||||||
|
S221,Arts,Regular,Yellow,14.9,89,1,0
|
||||||
|
S222,Arts,Regular,Red,5.6,90,2,1
|
||||||
|
S223,Commerce,Regular,Green,6.2,70,5,1
|
||||||
|
S224,Engineering,Irregular,Green,21.8,40,5,0
|
||||||
|
S225,Commerce,Regular,Green,23.8,57,1,0
|
||||||
|
S226,Commerce,Regular,Purple,10.6,77,4,1
|
||||||
|
S227,Science,Borderline,Blue,8.2,99,1,1
|
||||||
|
S228,Commerce,Regular,Purple,16.8,78,3,1
|
||||||
|
S229,Science,Borderline,Blue,11.4,56,5,1
|
||||||
|
S230,Science,Regular,Green,2.6,78,0,1
|
||||||
|
S231,Commerce,Regular,Green,5.6,72,0,0
|
||||||
|
S232,Engineering,Irregular,Purple,18.5,87,4,1
|
||||||
|
S233,Engineering,Irregular,Purple,17.2,46,3,1
|
||||||
|
S234,Engineering,Borderline,Blue,2.6,86,2,1
|
||||||
|
S235,Engineering,Borderline,Yellow,7.1,72,3,1
|
||||||
|
S236,Engineering,Borderline,Blue,7.3,98,0,0
|
||||||
|
S237,Commerce,Regular,Purple,17.5,61,0,0
|
||||||
|
S238,Commerce,Regular,Orange,2.5,78,5,1
|
||||||
|
S239,Arts,Borderline,Purple,4.4,96,3,1
|
||||||
|
S240,Engineering,Borderline,Orange,20.4,46,3,1
|
||||||
|
S241,Commerce,Borderline,Red,6.1,96,0,1
|
||||||
|
S242,Arts,Irregular,Purple,17.0,81,2,1
|
||||||
|
S243,Engineering,Regular,Red,7.5,44,4,1
|
||||||
|
S244,Science,Borderline,Yellow,4.3,58,4,1
|
||||||
|
S245,Arts,Regular,Blue,7.6,82,3,1
|
||||||
|
S246,Commerce,Borderline,Orange,18.6,44,4,0
|
||||||
|
S247,Science,Borderline,Blue,21.7,75,0,0
|
||||||
|
S248,Science,Irregular,Red,21.1,61,0,1
|
||||||
|
S249,Science,Borderline,Orange,11.1,77,3,1
|
||||||
|
S250,Arts,Borderline,Blue,17.4,43,3,1
|
||||||
|
S251,Commerce,Regular,Purple,6.7,92,5,1
|
||||||
|
S252,Science,Borderline,Green,8.7,98,3,1
|
||||||
|
S253,Engineering,Irregular,Red,22.6,98,2,1
|
||||||
|
S254,Science,Borderline,Blue,2.3,85,4,1
|
||||||
|
S255,Science,Regular,Red,4.0,48,3,1
|
||||||
|
S256,Arts,Borderline,Red,6.8,85,1,0
|
||||||
|
S257,Arts,Regular,Orange,2.6,41,5,1
|
||||||
|
S258,Commerce,Regular,Orange,6.2,41,1,0
|
||||||
|
S259,Engineering,Borderline,Green,15.4,59,0,0
|
||||||
|
S260,Arts,Regular,Purple,11.7,69,4,0
|
||||||
|
S261,Science,Regular,Red,22.5,86,3,1
|
||||||
|
S262,Commerce,Borderline,Blue,20.8,81,1,0
|
||||||
|
S263,Science,Borderline,Yellow,9.9,67,4,1
|
||||||
|
S264,Science,Irregular,Red,8.0,56,0,1
|
||||||
|
S265,Arts,Irregular,Red,10.7,100,2,1
|
||||||
|
S266,Commerce,Irregular,Green,15.6,66,5,1
|
||||||
|
S267,Engineering,Regular,Purple,8.2,67,4,1
|
||||||
|
S268,Engineering,Regular,Yellow,16.4,50,4,1
|
||||||
|
S269,Arts,Irregular,Orange,11.4,88,2,1
|
||||||
|
S270,Arts,Borderline,Orange,14.7,82,4,1
|
||||||
|
S271,Commerce,Borderline,Blue,12.0,53,0,1
|
||||||
|
S272,Engineering,Borderline,Yellow,8.8,45,0,1
|
||||||
|
S273,Engineering,Regular,Orange,23.8,81,2,0
|
||||||
|
S274,Engineering,Irregular,Blue,19.6,79,5,1
|
||||||
|
S275,Science,Regular,Purple,5.2,56,3,0
|
||||||
|
S276,Engineering,Irregular,Blue,22.0,97,1,1
|
||||||
|
S277,Science,Irregular,Orange,13.2,49,3,1
|
||||||
|
S278,Commerce,Borderline,Green,22.6,66,4,0
|
||||||
|
S279,Science,Regular,Green,20.4,97,1,0
|
||||||
|
S280,Commerce,Regular,Green,11.8,65,2,0
|
||||||
|
S281,Engineering,Regular,Orange,2.5,78,2,1
|
||||||
|
S282,Engineering,Borderline,Green,8.2,64,5,1
|
||||||
|
S283,Commerce,Irregular,Yellow,14.5,56,1,1
|
||||||
|
S284,Arts,Regular,Purple,16.6,99,0,0
|
||||||
|
S285,Commerce,Regular,Blue,7.9,65,1,0
|
||||||
|
S286,Arts,Borderline,Blue,5.2,94,4,1
|
||||||
|
S287,Science,Regular,Orange,21.2,54,0,0
|
||||||
|
S288,Science,Borderline,Green,24.6,53,2,1
|
||||||
|
S289,Science,Borderline,Green,14.1,42,1,1
|
||||||
|
S290,Engineering,Regular,Red,5.9,79,3,1
|
||||||
|
S291,Science,Regular,Purple,8.3,62,5,1
|
||||||
|
S292,Arts,Borderline,Yellow,2.4,92,3,1
|
||||||
|
S293,Science,Regular,Blue,23.0,68,5,1
|
||||||
|
S294,Commerce,Regular,Red,4.7,98,4,1
|
||||||
|
S295,Commerce,Borderline,Red,15.3,51,3,1
|
||||||
|
S296,Engineering,Borderline,Orange,8.3,92,1,0
|
||||||
|
S297,Commerce,Borderline,Blue,14.7,87,1,0
|
||||||
|
S298,Arts,Borderline,Orange,17.0,86,3,1
|
||||||
|
S299,Science,Regular,Yellow,21.1,91,1,0
|
||||||
|
S300,Engineering,Regular,Red,6.7,86,4,1
|
||||||
|
Reference in New Issue
Block a user