commit d757eb637359b9d26dbd2cc59f06e36fa7945b69
parent 8c10e4a12b13cd54a8af0a73edad20d8b8ffbf5a
Author: Andrew <andrewlaack1@gmail.com>
Date: Thu, 8 Aug 2024 16:15:03 -0500
Stupid dataset.
Diffstat:
1 file changed, 1668 insertions(+), 0 deletions(-)
diff --git a/depression/Depression.ipynb b/depression/Depression.ipynb
@@ -0,0 +1,1668 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "This is a stupid dataset to do ML with because it seems they used an algorithm to calculate the depression scores and those scores are not self set. "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1524,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "<div>\n",
+ "<style scoped>\n",
+ " .dataframe tbody tr th:only-of-type {\n",
+ " vertical-align: middle;\n",
+ " }\n",
+ "\n",
+ " .dataframe tbody tr th {\n",
+ " vertical-align: top;\n",
+ " }\n",
+ "\n",
+ " .dataframe thead th {\n",
+ " text-align: right;\n",
+ " }\n",
+ "</style>\n",
+ "<table border=\"1\" class=\"dataframe\">\n",
+ " <thead>\n",
+ " <tr style=\"text-align: right;\">\n",
+ " <th></th>\n",
+ " <th>1. Age</th>\n",
+ " <th>2. Gender</th>\n",
+ " <th>3. University</th>\n",
+ " <th>4. Department</th>\n",
+ " <th>5. Academic Year</th>\n",
+ " <th>6. Current CGPA</th>\n",
+ " <th>7. Did you receive a waiver or scholarship at your university?</th>\n",
+ " <th>1. In a semester, how often you felt nervous, anxious or on edge due to academic pressure?</th>\n",
+ " <th>2. In a semester, how often have you been unable to stop worrying about your academic affairs?</th>\n",
+ " <th>3. In a semester, how often have you had trouble relaxing due to academic pressure?</th>\n",
+ " <th>...</th>\n",
+ " <th>2. In a semester, how often have you been feeling down, depressed or hopeless?</th>\n",
+ " <th>3. In a semester, how often have you had trouble falling or staying asleep, or sleeping too much?</th>\n",
+ " <th>4. In a semester, how often have you been feeling tired or having little energy?</th>\n",
+ " <th>5. In a semester, how often have you had poor appetite or overeating?</th>\n",
+ " <th>6. In a semester, how often have you been feeling bad about yourself - or that you are a failure or have let yourself or your family down?</th>\n",
+ " <th>7. In a semester, how often have you been having trouble concentrating on things, such as reading the books or watching television?</th>\n",
+ " <th>8. In a semester, how often have you moved or spoke too slowly for other people to notice? Or you've been moving a lot more than usual because you've been restless?</th>\n",
+ " <th>9. In a semester, how often have you had thoughts that you would be better off dead, or of hurting yourself?</th>\n",
+ " <th>Depression Value</th>\n",
+ " <th>Depression Label</th>\n",
+ " </tr>\n",
+ " </thead>\n",
+ " <tbody>\n",
+ " <tr>\n",
+ " <th>0</th>\n",
+ " <td>18-22</td>\n",
+ " <td>Female</td>\n",
+ " <td>Independent University, Bangladesh (IUB)</td>\n",
+ " <td>Engineering - CS / CSE / CSC / Similar to CS</td>\n",
+ " <td>Fourth Year or Equivalent</td>\n",
+ " <td>2.50 - 2.99</td>\n",
+ " <td>No</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>...</td>\n",
+ " <td>2</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>2</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>11</td>\n",
+ " <td>Moderate Depression</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>1</th>\n",
+ " <td>18-22</td>\n",
+ " <td>Male</td>\n",
+ " <td>Independent University, Bangladesh (IUB)</td>\n",
+ " <td>Engineering - CS / CSE / CSC / Similar to CS</td>\n",
+ " <td>First Year or Equivalent</td>\n",
+ " <td>3.80 - 4.00</td>\n",
+ " <td>No</td>\n",
+ " <td>2</td>\n",
+ " <td>2</td>\n",
+ " <td>1</td>\n",
+ " <td>...</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>9</td>\n",
+ " <td>Mild Depression</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>2</th>\n",
+ " <td>18-22</td>\n",
+ " <td>Male</td>\n",
+ " <td>Independent University, Bangladesh (IUB)</td>\n",
+ " <td>Engineering - CS / CSE / CSC / Similar to CS</td>\n",
+ " <td>First Year or Equivalent</td>\n",
+ " <td>3.00 - 3.39</td>\n",
+ " <td>No</td>\n",
+ " <td>2</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>...</td>\n",
+ " <td>0</td>\n",
+ " <td>2</td>\n",
+ " <td>3</td>\n",
+ " <td>2</td>\n",
+ " <td>2</td>\n",
+ " <td>2</td>\n",
+ " <td>2</td>\n",
+ " <td>1</td>\n",
+ " <td>16</td>\n",
+ " <td>Moderately Severe Depression</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>3</th>\n",
+ " <td>18-22</td>\n",
+ " <td>Male</td>\n",
+ " <td>Independent University, Bangladesh (IUB)</td>\n",
+ " <td>Engineering - CS / CSE / CSC / Similar to CS</td>\n",
+ " <td>First Year or Equivalent</td>\n",
+ " <td>3.40 - 3.79</td>\n",
+ " <td>No</td>\n",
+ " <td>2</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>...</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>9</td>\n",
+ " <td>Mild Depression</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>4</th>\n",
+ " <td>18-22</td>\n",
+ " <td>Male</td>\n",
+ " <td>Independent University, Bangladesh (IUB)</td>\n",
+ " <td>Engineering - CS / CSE / CSC / Similar to CS</td>\n",
+ " <td>First Year or Equivalent</td>\n",
+ " <td>3.40 - 3.79</td>\n",
+ " <td>No</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>...</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>9</td>\n",
+ " <td>Mild Depression</td>\n",
+ " </tr>\n",
+ " </tbody>\n",
+ "</table>\n",
+ "<p>5 rows × 39 columns</p>\n",
+ "</div>"
+ ],
+ "text/plain": [
+ " 1. Age 2. Gender 3. University \\\n",
+ "0 18-22 Female Independent University, Bangladesh (IUB) \n",
+ "1 18-22 Male Independent University, Bangladesh (IUB) \n",
+ "2 18-22 Male Independent University, Bangladesh (IUB) \n",
+ "3 18-22 Male Independent University, Bangladesh (IUB) \n",
+ "4 18-22 Male Independent University, Bangladesh (IUB) \n",
+ "\n",
+ " 4. Department 5. Academic Year \\\n",
+ "0 Engineering - CS / CSE / CSC / Similar to CS Fourth Year or Equivalent \n",
+ "1 Engineering - CS / CSE / CSC / Similar to CS First Year or Equivalent \n",
+ "2 Engineering - CS / CSE / CSC / Similar to CS First Year or Equivalent \n",
+ "3 Engineering - CS / CSE / CSC / Similar to CS First Year or Equivalent \n",
+ "4 Engineering - CS / CSE / CSC / Similar to CS First Year or Equivalent \n",
+ "\n",
+ " 6. Current CGPA \\\n",
+ "0 2.50 - 2.99 \n",
+ "1 3.80 - 4.00 \n",
+ "2 3.00 - 3.39 \n",
+ "3 3.40 - 3.79 \n",
+ "4 3.40 - 3.79 \n",
+ "\n",
+ " 7. Did you receive a waiver or scholarship at your university? \\\n",
+ "0 No \n",
+ "1 No \n",
+ "2 No \n",
+ "3 No \n",
+ "4 No \n",
+ "\n",
+ " 1. In a semester, how often you felt nervous, anxious or on edge due to academic pressure? \\\n",
+ "0 1 \n",
+ "1 2 \n",
+ "2 2 \n",
+ "3 2 \n",
+ "4 1 \n",
+ "\n",
+ " 2. In a semester, how often have you been unable to stop worrying about your academic affairs? \\\n",
+ "0 1 \n",
+ "1 2 \n",
+ "2 1 \n",
+ "3 1 \n",
+ "4 1 \n",
+ "\n",
+ " 3. In a semester, how often have you had trouble relaxing due to academic pressure? \\\n",
+ "0 1 \n",
+ "1 1 \n",
+ "2 1 \n",
+ "3 1 \n",
+ "4 1 \n",
+ "\n",
+ " ... \\\n",
+ "0 ... \n",
+ "1 ... \n",
+ "2 ... \n",
+ "3 ... \n",
+ "4 ... \n",
+ "\n",
+ " 2. In a semester, how often have you been feeling down, depressed or hopeless? \\\n",
+ "0 2 \n",
+ "1 1 \n",
+ "2 0 \n",
+ "3 1 \n",
+ "4 1 \n",
+ "\n",
+ " 3. In a semester, how often have you had trouble falling or staying asleep, or sleeping too much? \\\n",
+ "0 1 \n",
+ "1 1 \n",
+ "2 2 \n",
+ "3 1 \n",
+ "4 1 \n",
+ "\n",
+ " 4. In a semester, how often have you been feeling tired or having little energy? \\\n",
+ "0 1 \n",
+ "1 1 \n",
+ "2 3 \n",
+ "3 1 \n",
+ "4 1 \n",
+ "\n",
+ " 5. In a semester, how often have you had poor appetite or overeating? \\\n",
+ "0 2 \n",
+ "1 1 \n",
+ "2 2 \n",
+ "3 1 \n",
+ "4 1 \n",
+ "\n",
+ " 6. In a semester, how often have you been feeling bad about yourself - or that you are a failure or have let yourself or your family down? \\\n",
+ "0 1 \n",
+ "1 1 \n",
+ "2 2 \n",
+ "3 1 \n",
+ "4 1 \n",
+ "\n",
+ " 7. In a semester, how often have you been having trouble concentrating on things, such as reading the books or watching television? \\\n",
+ "0 1 \n",
+ "1 1 \n",
+ "2 2 \n",
+ "3 1 \n",
+ "4 1 \n",
+ "\n",
+ " 8. In a semester, how often have you moved or spoke too slowly for other people to notice? Or you've been moving a lot more than usual because you've been restless? \\\n",
+ "0 1 \n",
+ "1 1 \n",
+ "2 2 \n",
+ "3 1 \n",
+ "4 1 \n",
+ "\n",
+ " 9. In a semester, how often have you had thoughts that you would be better off dead, or of hurting yourself? \\\n",
+ "0 1 \n",
+ "1 1 \n",
+ "2 1 \n",
+ "3 1 \n",
+ "4 1 \n",
+ "\n",
+ " Depression Value Depression Label \n",
+ "0 11 Moderate Depression \n",
+ "1 9 Mild Depression \n",
+ "2 16 Moderately Severe Depression \n",
+ "3 9 Mild Depression \n",
+ "4 9 Mild Depression \n",
+ "\n",
+ "[5 rows x 39 columns]"
+ ]
+ },
+ "execution_count": 1524,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "import pandas as pd\n",
+ "\n",
+ "df = pd.read_csv('../datasets/depression/Depression.csv')\n",
+ "df.head()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1525,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "5. Academic Year\n",
+ "First Year or Equivalent 592\n",
+ "Third Year or Equivalent 552\n",
+ "Fourth Year or Equivalent 392\n",
+ "Second Year or Equivalent 370\n",
+ "Other 71\n",
+ "Name: count, dtype: int64"
+ ]
+ },
+ "execution_count": 1525,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "df['5. Academic Year'].value_counts()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1526,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "5. Academic Year\n",
+ "1 592\n",
+ "3 552\n",
+ "4 392\n",
+ "2 370\n",
+ "5 71\n",
+ "Name: count, dtype: int64"
+ ]
+ },
+ "execution_count": 1526,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "def toNum( year : str):\n",
+ " if 'First' in year:\n",
+ " return 1\n",
+ " if 'Second' in year:\n",
+ " return 2\n",
+ " if 'Third' in year:\n",
+ " return 3\n",
+ " if 'Fourth' in year:\n",
+ " return 4\n",
+ " return 5\n",
+ "\n",
+ "\n",
+ "\n",
+ "df['5. Academic Year'] = df['5. Academic Year'].apply(toNum)\n",
+ "df['5. Academic Year'].value_counts()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1527,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "6. Current CGPA\n",
+ "3.00 - 3.39 572\n",
+ "3.40 - 3.79 551\n",
+ "2.50 - 2.99 368\n",
+ "3.80 - 4.00 237\n",
+ "Other 168\n",
+ "Below 2.50 81\n",
+ "Name: count, dtype: int64"
+ ]
+ },
+ "execution_count": 1527,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "df['6. Current CGPA'].value_counts()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1528,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "def toVal(cgpa : str):\n",
+ " if '3.00' in cgpa:\n",
+ " return 3\n",
+ " if '3.40' in cgpa:\n",
+ " return 3.4\n",
+ " if 'Below 2.50' in cgpa:\n",
+ " return 2.0\n",
+ " if '3.80' in cgpa:\n",
+ " return 3.8\n",
+ " if '2.5' in cgpa:\n",
+ " return 2.5\n",
+ " return 3 # Guess that other should go here.\n",
+ "\n",
+ "df['6. Current CGPA'] = df['6. Current CGPA'].apply(toVal)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1529,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "6. Current CGPA\n",
+ "3.0 740\n",
+ "3.4 551\n",
+ "2.5 368\n",
+ "3.8 237\n",
+ "2.0 81\n",
+ "Name: count, dtype: int64"
+ ]
+ },
+ "execution_count": 1529,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "df['6. Current CGPA'].value_counts()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1530,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "df['7. Did you receive a waiver or scholarship at your university?'] = (df['7. Did you receive a waiver or scholarship at your university?'] == 'Yes').astype(int)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1531,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "7. Did you receive a waiver or scholarship at your university?\n",
+ "0 1571\n",
+ "1 406\n",
+ "Name: count, dtype: int64"
+ ]
+ },
+ "execution_count": 1531,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "df['7. Did you receive a waiver or scholarship at your university?'].value_counts()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1532,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "df['2. Gender'] = (df['2. Gender'] == 'Male').astype(int)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1533,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "<div>\n",
+ "<style scoped>\n",
+ " .dataframe tbody tr th:only-of-type {\n",
+ " vertical-align: middle;\n",
+ " }\n",
+ "\n",
+ " .dataframe tbody tr th {\n",
+ " vertical-align: top;\n",
+ " }\n",
+ "\n",
+ " .dataframe thead th {\n",
+ " text-align: right;\n",
+ " }\n",
+ "</style>\n",
+ "<table border=\"1\" class=\"dataframe\">\n",
+ " <thead>\n",
+ " <tr style=\"text-align: right;\">\n",
+ " <th></th>\n",
+ " <th>1. Age</th>\n",
+ " <th>2. Gender</th>\n",
+ " <th>3. University</th>\n",
+ " <th>4. Department</th>\n",
+ " <th>5. Academic Year</th>\n",
+ " <th>6. Current CGPA</th>\n",
+ " <th>7. Did you receive a waiver or scholarship at your university?</th>\n",
+ " <th>1. In a semester, how often you felt nervous, anxious or on edge due to academic pressure?</th>\n",
+ " <th>2. In a semester, how often have you been unable to stop worrying about your academic affairs?</th>\n",
+ " <th>3. In a semester, how often have you had trouble relaxing due to academic pressure?</th>\n",
+ " <th>...</th>\n",
+ " <th>2. In a semester, how often have you been feeling down, depressed or hopeless?</th>\n",
+ " <th>3. In a semester, how often have you had trouble falling or staying asleep, or sleeping too much?</th>\n",
+ " <th>4. In a semester, how often have you been feeling tired or having little energy?</th>\n",
+ " <th>5. In a semester, how often have you had poor appetite or overeating?</th>\n",
+ " <th>6. In a semester, how often have you been feeling bad about yourself - or that you are a failure or have let yourself or your family down?</th>\n",
+ " <th>7. In a semester, how often have you been having trouble concentrating on things, such as reading the books or watching television?</th>\n",
+ " <th>8. In a semester, how often have you moved or spoke too slowly for other people to notice? Or you've been moving a lot more than usual because you've been restless?</th>\n",
+ " <th>9. In a semester, how often have you had thoughts that you would be better off dead, or of hurting yourself?</th>\n",
+ " <th>Depression Value</th>\n",
+ " <th>Depression Label</th>\n",
+ " </tr>\n",
+ " </thead>\n",
+ " <tbody>\n",
+ " <tr>\n",
+ " <th>0</th>\n",
+ " <td>18-22</td>\n",
+ " <td>0</td>\n",
+ " <td>Independent University, Bangladesh (IUB)</td>\n",
+ " <td>Engineering - CS / CSE / CSC / Similar to CS</td>\n",
+ " <td>4</td>\n",
+ " <td>2.5</td>\n",
+ " <td>0</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>...</td>\n",
+ " <td>2</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>2</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>11</td>\n",
+ " <td>Moderate Depression</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>1</th>\n",
+ " <td>18-22</td>\n",
+ " <td>1</td>\n",
+ " <td>Independent University, Bangladesh (IUB)</td>\n",
+ " <td>Engineering - CS / CSE / CSC / Similar to CS</td>\n",
+ " <td>1</td>\n",
+ " <td>3.8</td>\n",
+ " <td>0</td>\n",
+ " <td>2</td>\n",
+ " <td>2</td>\n",
+ " <td>1</td>\n",
+ " <td>...</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>9</td>\n",
+ " <td>Mild Depression</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>2</th>\n",
+ " <td>18-22</td>\n",
+ " <td>1</td>\n",
+ " <td>Independent University, Bangladesh (IUB)</td>\n",
+ " <td>Engineering - CS / CSE / CSC / Similar to CS</td>\n",
+ " <td>1</td>\n",
+ " <td>3.0</td>\n",
+ " <td>0</td>\n",
+ " <td>2</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>...</td>\n",
+ " <td>0</td>\n",
+ " <td>2</td>\n",
+ " <td>3</td>\n",
+ " <td>2</td>\n",
+ " <td>2</td>\n",
+ " <td>2</td>\n",
+ " <td>2</td>\n",
+ " <td>1</td>\n",
+ " <td>16</td>\n",
+ " <td>Moderately Severe Depression</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>3</th>\n",
+ " <td>18-22</td>\n",
+ " <td>1</td>\n",
+ " <td>Independent University, Bangladesh (IUB)</td>\n",
+ " <td>Engineering - CS / CSE / CSC / Similar to CS</td>\n",
+ " <td>1</td>\n",
+ " <td>3.4</td>\n",
+ " <td>0</td>\n",
+ " <td>2</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>...</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>9</td>\n",
+ " <td>Mild Depression</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>4</th>\n",
+ " <td>18-22</td>\n",
+ " <td>1</td>\n",
+ " <td>Independent University, Bangladesh (IUB)</td>\n",
+ " <td>Engineering - CS / CSE / CSC / Similar to CS</td>\n",
+ " <td>1</td>\n",
+ " <td>3.4</td>\n",
+ " <td>0</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>...</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>9</td>\n",
+ " <td>Mild Depression</td>\n",
+ " </tr>\n",
+ " </tbody>\n",
+ "</table>\n",
+ "<p>5 rows × 39 columns</p>\n",
+ "</div>"
+ ],
+ "text/plain": [
+ " 1. Age 2. Gender 3. University \\\n",
+ "0 18-22 0 Independent University, Bangladesh (IUB) \n",
+ "1 18-22 1 Independent University, Bangladesh (IUB) \n",
+ "2 18-22 1 Independent University, Bangladesh (IUB) \n",
+ "3 18-22 1 Independent University, Bangladesh (IUB) \n",
+ "4 18-22 1 Independent University, Bangladesh (IUB) \n",
+ "\n",
+ " 4. Department 5. Academic Year \\\n",
+ "0 Engineering - CS / CSE / CSC / Similar to CS 4 \n",
+ "1 Engineering - CS / CSE / CSC / Similar to CS 1 \n",
+ "2 Engineering - CS / CSE / CSC / Similar to CS 1 \n",
+ "3 Engineering - CS / CSE / CSC / Similar to CS 1 \n",
+ "4 Engineering - CS / CSE / CSC / Similar to CS 1 \n",
+ "\n",
+ " 6. Current CGPA \\\n",
+ "0 2.5 \n",
+ "1 3.8 \n",
+ "2 3.0 \n",
+ "3 3.4 \n",
+ "4 3.4 \n",
+ "\n",
+ " 7. Did you receive a waiver or scholarship at your university? \\\n",
+ "0 0 \n",
+ "1 0 \n",
+ "2 0 \n",
+ "3 0 \n",
+ "4 0 \n",
+ "\n",
+ " 1. In a semester, how often you felt nervous, anxious or on edge due to academic pressure? \\\n",
+ "0 1 \n",
+ "1 2 \n",
+ "2 2 \n",
+ "3 2 \n",
+ "4 1 \n",
+ "\n",
+ " 2. In a semester, how often have you been unable to stop worrying about your academic affairs? \\\n",
+ "0 1 \n",
+ "1 2 \n",
+ "2 1 \n",
+ "3 1 \n",
+ "4 1 \n",
+ "\n",
+ " 3. In a semester, how often have you had trouble relaxing due to academic pressure? \\\n",
+ "0 1 \n",
+ "1 1 \n",
+ "2 1 \n",
+ "3 1 \n",
+ "4 1 \n",
+ "\n",
+ " ... \\\n",
+ "0 ... \n",
+ "1 ... \n",
+ "2 ... \n",
+ "3 ... \n",
+ "4 ... \n",
+ "\n",
+ " 2. In a semester, how often have you been feeling down, depressed or hopeless? \\\n",
+ "0 2 \n",
+ "1 1 \n",
+ "2 0 \n",
+ "3 1 \n",
+ "4 1 \n",
+ "\n",
+ " 3. In a semester, how often have you had trouble falling or staying asleep, or sleeping too much? \\\n",
+ "0 1 \n",
+ "1 1 \n",
+ "2 2 \n",
+ "3 1 \n",
+ "4 1 \n",
+ "\n",
+ " 4. In a semester, how often have you been feeling tired or having little energy? \\\n",
+ "0 1 \n",
+ "1 1 \n",
+ "2 3 \n",
+ "3 1 \n",
+ "4 1 \n",
+ "\n",
+ " 5. In a semester, how often have you had poor appetite or overeating? \\\n",
+ "0 2 \n",
+ "1 1 \n",
+ "2 2 \n",
+ "3 1 \n",
+ "4 1 \n",
+ "\n",
+ " 6. In a semester, how often have you been feeling bad about yourself - or that you are a failure or have let yourself or your family down? \\\n",
+ "0 1 \n",
+ "1 1 \n",
+ "2 2 \n",
+ "3 1 \n",
+ "4 1 \n",
+ "\n",
+ " 7. In a semester, how often have you been having trouble concentrating on things, such as reading the books or watching television? \\\n",
+ "0 1 \n",
+ "1 1 \n",
+ "2 2 \n",
+ "3 1 \n",
+ "4 1 \n",
+ "\n",
+ " 8. In a semester, how often have you moved or spoke too slowly for other people to notice? Or you've been moving a lot more than usual because you've been restless? \\\n",
+ "0 1 \n",
+ "1 1 \n",
+ "2 2 \n",
+ "3 1 \n",
+ "4 1 \n",
+ "\n",
+ " 9. In a semester, how often have you had thoughts that you would be better off dead, or of hurting yourself? \\\n",
+ "0 1 \n",
+ "1 1 \n",
+ "2 1 \n",
+ "3 1 \n",
+ "4 1 \n",
+ "\n",
+ " Depression Value Depression Label \n",
+ "0 11 Moderate Depression \n",
+ "1 9 Mild Depression \n",
+ "2 16 Moderately Severe Depression \n",
+ "3 9 Mild Depression \n",
+ "4 9 Mild Depression \n",
+ "\n",
+ "[5 rows x 39 columns]"
+ ]
+ },
+ "execution_count": 1533,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "df.head()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1534,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "Stress Label\n",
+ "Moderate Stress 1316\n",
+ "High Perceived Stress 546\n",
+ "Low Stress 115\n",
+ "Name: count, dtype: int64"
+ ]
+ },
+ "execution_count": 1534,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "df['Stress Label'].value_counts()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1535,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "df = df.drop(axis=1 , columns=['Stress Label' , 'Anxiety Label'])\n",
+ "# Already have the values no need for the text."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1536,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "1. Age\n",
+ "18-22 1273\n",
+ "23-26 673\n",
+ "27-30 24\n",
+ "Below 18 4\n",
+ "Above 30 3\n",
+ "Name: count, dtype: int64"
+ ]
+ },
+ "execution_count": 1536,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "df['1. Age'].value_counts()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1537,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "def setAges(inp):\n",
+ " if '22' in inp:\n",
+ " return 22\n",
+ " if '26' in inp:\n",
+ " return 26\n",
+ " if 'Above 30' in inp:\n",
+ " return 35\n",
+ " if '30' in inp:\n",
+ " return 30\n",
+ " return 18\n",
+ "\n",
+ "df['1. Age'] = df['1. Age'].apply(setAges)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1538,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "<div>\n",
+ "<style scoped>\n",
+ " .dataframe tbody tr th:only-of-type {\n",
+ " vertical-align: middle;\n",
+ " }\n",
+ "\n",
+ " .dataframe tbody tr th {\n",
+ " vertical-align: top;\n",
+ " }\n",
+ "\n",
+ " .dataframe thead th {\n",
+ " text-align: right;\n",
+ " }\n",
+ "</style>\n",
+ "<table border=\"1\" class=\"dataframe\">\n",
+ " <thead>\n",
+ " <tr style=\"text-align: right;\">\n",
+ " <th></th>\n",
+ " <th>3. University</th>\n",
+ " <th>4. Department</th>\n",
+ " <th>Depression Label</th>\n",
+ " </tr>\n",
+ " </thead>\n",
+ " <tbody>\n",
+ " <tr>\n",
+ " <th>0</th>\n",
+ " <td>Independent University, Bangladesh (IUB)</td>\n",
+ " <td>Engineering - CS / CSE / CSC / Similar to CS</td>\n",
+ " <td>Moderate Depression</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>1</th>\n",
+ " <td>Independent University, Bangladesh (IUB)</td>\n",
+ " <td>Engineering - CS / CSE / CSC / Similar to CS</td>\n",
+ " <td>Mild Depression</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>2</th>\n",
+ " <td>Independent University, Bangladesh (IUB)</td>\n",
+ " <td>Engineering - CS / CSE / CSC / Similar to CS</td>\n",
+ " <td>Moderately Severe Depression</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>3</th>\n",
+ " <td>Independent University, Bangladesh (IUB)</td>\n",
+ " <td>Engineering - CS / CSE / CSC / Similar to CS</td>\n",
+ " <td>Mild Depression</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>4</th>\n",
+ " <td>Independent University, Bangladesh (IUB)</td>\n",
+ " <td>Engineering - CS / CSE / CSC / Similar to CS</td>\n",
+ " <td>Mild Depression</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>...</th>\n",
+ " <td>...</td>\n",
+ " <td>...</td>\n",
+ " <td>...</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>1972</th>\n",
+ " <td>Bangladesh Agricultural University (BAU)</td>\n",
+ " <td>Biological Sciences</td>\n",
+ " <td>Moderate Depression</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>1973</th>\n",
+ " <td>Bangladesh Agricultural University (BAU)</td>\n",
+ " <td>Other</td>\n",
+ " <td>Mild Depression</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>1974</th>\n",
+ " <td>Bangladesh Agricultural University (BAU)</td>\n",
+ " <td>Biological Sciences</td>\n",
+ " <td>Severe Depression</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>1975</th>\n",
+ " <td>Bangladesh Agricultural University (BAU)</td>\n",
+ " <td>Other</td>\n",
+ " <td>Moderate Depression</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>1976</th>\n",
+ " <td>Independent University, Bangladesh (IUB)</td>\n",
+ " <td>Engineering - CS / CSE / CSC / Similar to CS</td>\n",
+ " <td>No Depression</td>\n",
+ " </tr>\n",
+ " </tbody>\n",
+ "</table>\n",
+ "<p>1977 rows × 3 columns</p>\n",
+ "</div>"
+ ],
+ "text/plain": [
+ " 3. University \\\n",
+ "0 Independent University, Bangladesh (IUB) \n",
+ "1 Independent University, Bangladesh (IUB) \n",
+ "2 Independent University, Bangladesh (IUB) \n",
+ "3 Independent University, Bangladesh (IUB) \n",
+ "4 Independent University, Bangladesh (IUB) \n",
+ "... ... \n",
+ "1972 Bangladesh Agricultural University (BAU) \n",
+ "1973 Bangladesh Agricultural University (BAU) \n",
+ "1974 Bangladesh Agricultural University (BAU) \n",
+ "1975 Bangladesh Agricultural University (BAU) \n",
+ "1976 Independent University, Bangladesh (IUB) \n",
+ "\n",
+ " 4. Department \\\n",
+ "0 Engineering - CS / CSE / CSC / Similar to CS \n",
+ "1 Engineering - CS / CSE / CSC / Similar to CS \n",
+ "2 Engineering - CS / CSE / CSC / Similar to CS \n",
+ "3 Engineering - CS / CSE / CSC / Similar to CS \n",
+ "4 Engineering - CS / CSE / CSC / Similar to CS \n",
+ "... ... \n",
+ "1972 Biological Sciences \n",
+ "1973 Other \n",
+ "1974 Biological Sciences \n",
+ "1975 Other \n",
+ "1976 Engineering - CS / CSE / CSC / Similar to CS \n",
+ "\n",
+ " Depression Label \n",
+ "0 Moderate Depression \n",
+ "1 Mild Depression \n",
+ "2 Moderately Severe Depression \n",
+ "3 Mild Depression \n",
+ "4 Mild Depression \n",
+ "... ... \n",
+ "1972 Moderate Depression \n",
+ "1973 Mild Depression \n",
+ "1974 Severe Depression \n",
+ "1975 Moderate Depression \n",
+ "1976 No Depression \n",
+ "\n",
+ "[1977 rows x 3 columns]"
+ ]
+ },
+ "execution_count": 1538,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "df.select_dtypes(exclude=['int', 'float'])"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "one hot encode university and department.\n",
+ "\n",
+ "pull out depression label as that there seems to be a direct mapping between depression label and value where value is more descriptive."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1539,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "<matplotlib.collections.PathCollection at 0x7f5cfb996610>"
+ ]
+ },
+ "execution_count": 1539,
+ "metadata": {},
+ "output_type": "execute_result"
+ },
+ {
+ "data": {
+ "image/png": "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",
+ "text/plain": [
+ "<Figure size 640x480 with 1 Axes>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "import matplotlib.pyplot as plt\n",
+ "\n",
+ "plt.xticks(rotation=45)\n",
+ "plt.scatter(df['Depression Label'], df['Depression Value'])"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1540,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "def depressionScoreToLabel(score):\n",
+ " if score == 0:\n",
+ " return 'No Depression'\n",
+ " if score < 5:\n",
+ " return 'Minimal Depression'\n",
+ " if score < 10:\n",
+ " return 'Mild Depression'\n",
+ " if score < 15:\n",
+ " return 'Moderate Depression'\n",
+ " if score < 20:\n",
+ " 'Moderately Severe Depression'\n",
+ " return 'Severe Depression'"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1541,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "df = df.drop(axis=1, columns=['Depression Label'])"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1542,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "from sklearn.model_selection import train_test_split\n",
+ "\n",
+ "df = df.dropna()\n",
+ "\n",
+ "y = df['Depression Value']\n",
+ "df = df.drop(axis=1, columns=['Depression Value'])\n",
+ "X_train, X_test, y_train, y_test = train_test_split(df,y)\n",
+ "X_test, X_val, y_test, y_val = train_test_split(X_test,y_test, test_size=.5)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1543,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "(1482, 27)"
+ ]
+ },
+ "execution_count": 1543,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "from sklearn.preprocessing import OneHotEncoder\n",
+ "\n",
+ "ohe = OneHotEncoder(sparse_output=False, handle_unknown='ignore')\n",
+ "enc = ohe.fit_transform(X_train[['3. University', '4. Department']])\n",
+ "enc = pd.DataFrame(data=enc, columns=ohe.get_feature_names_out())\n",
+ "enc.shape"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1544,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "enc.reset_index(drop=True, inplace=True)\n",
+ "X_train.reset_index(drop=True, inplace=True)\n",
+ "X_train_encoded = pd.concat([enc, X_train], axis=1)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1545,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "X_train_encoded = X_train_encoded.drop(columns=['3. University', '4. Department'])\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1546,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "<style>#sk-container-id-37 {\n",
+ " /* Definition of color scheme common for light and dark mode */\n",
+ " --sklearn-color-text: black;\n",
+ " --sklearn-color-line: gray;\n",
+ " /* Definition of color scheme for unfitted estimators */\n",
+ " --sklearn-color-unfitted-level-0: #fff5e6;\n",
+ " --sklearn-color-unfitted-level-1: #f6e4d2;\n",
+ " --sklearn-color-unfitted-level-2: #ffe0b3;\n",
+ " --sklearn-color-unfitted-level-3: chocolate;\n",
+ " /* Definition of color scheme for fitted estimators */\n",
+ " --sklearn-color-fitted-level-0: #f0f8ff;\n",
+ " --sklearn-color-fitted-level-1: #d4ebff;\n",
+ " --sklearn-color-fitted-level-2: #b3dbfd;\n",
+ " --sklearn-color-fitted-level-3: cornflowerblue;\n",
+ "\n",
+ " /* Specific color for light theme */\n",
+ " --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));\n",
+ " --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, white)));\n",
+ " --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));\n",
+ " --sklearn-color-icon: #696969;\n",
+ "\n",
+ " @media (prefers-color-scheme: dark) {\n",
+ " /* Redefinition of color scheme for dark theme */\n",
+ " --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));\n",
+ " --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, #111)));\n",
+ " --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));\n",
+ " --sklearn-color-icon: #878787;\n",
+ " }\n",
+ "}\n",
+ "\n",
+ "#sk-container-id-37 {\n",
+ " color: var(--sklearn-color-text);\n",
+ "}\n",
+ "\n",
+ "#sk-container-id-37 pre {\n",
+ " padding: 0;\n",
+ "}\n",
+ "\n",
+ "#sk-container-id-37 input.sk-hidden--visually {\n",
+ " border: 0;\n",
+ " clip: rect(1px 1px 1px 1px);\n",
+ " clip: rect(1px, 1px, 1px, 1px);\n",
+ " height: 1px;\n",
+ " margin: -1px;\n",
+ " overflow: hidden;\n",
+ " padding: 0;\n",
+ " position: absolute;\n",
+ " width: 1px;\n",
+ "}\n",
+ "\n",
+ "#sk-container-id-37 div.sk-dashed-wrapped {\n",
+ " border: 1px dashed var(--sklearn-color-line);\n",
+ " margin: 0 0.4em 0.5em 0.4em;\n",
+ " box-sizing: border-box;\n",
+ " padding-bottom: 0.4em;\n",
+ " background-color: var(--sklearn-color-background);\n",
+ "}\n",
+ "\n",
+ "#sk-container-id-37 div.sk-container {\n",
+ " /* jupyter's `normalize.less` sets `[hidden] { display: none; }`\n",
+ " but bootstrap.min.css set `[hidden] { display: none !important; }`\n",
+ " so we also need the `!important` here to be able to override the\n",
+ " default hidden behavior on the sphinx rendered scikit-learn.org.\n",
+ " See: https://github.com/scikit-learn/scikit-learn/issues/21755 */\n",
+ " display: inline-block !important;\n",
+ " position: relative;\n",
+ "}\n",
+ "\n",
+ "#sk-container-id-37 div.sk-text-repr-fallback {\n",
+ " display: none;\n",
+ "}\n",
+ "\n",
+ "div.sk-parallel-item,\n",
+ "div.sk-serial,\n",
+ "div.sk-item {\n",
+ " /* draw centered vertical line to link estimators */\n",
+ " background-image: linear-gradient(var(--sklearn-color-text-on-default-background), var(--sklearn-color-text-on-default-background));\n",
+ " background-size: 2px 100%;\n",
+ " background-repeat: no-repeat;\n",
+ " background-position: center center;\n",
+ "}\n",
+ "\n",
+ "/* Parallel-specific style estimator block */\n",
+ "\n",
+ "#sk-container-id-37 div.sk-parallel-item::after {\n",
+ " content: \"\";\n",
+ " width: 100%;\n",
+ " border-bottom: 2px solid var(--sklearn-color-text-on-default-background);\n",
+ " flex-grow: 1;\n",
+ "}\n",
+ "\n",
+ "#sk-container-id-37 div.sk-parallel {\n",
+ " display: flex;\n",
+ " align-items: stretch;\n",
+ " justify-content: center;\n",
+ " background-color: var(--sklearn-color-background);\n",
+ " position: relative;\n",
+ "}\n",
+ "\n",
+ "#sk-container-id-37 div.sk-parallel-item {\n",
+ " display: flex;\n",
+ " flex-direction: column;\n",
+ "}\n",
+ "\n",
+ "#sk-container-id-37 div.sk-parallel-item:first-child::after {\n",
+ " align-self: flex-end;\n",
+ " width: 50%;\n",
+ "}\n",
+ "\n",
+ "#sk-container-id-37 div.sk-parallel-item:last-child::after {\n",
+ " align-self: flex-start;\n",
+ " width: 50%;\n",
+ "}\n",
+ "\n",
+ "#sk-container-id-37 div.sk-parallel-item:only-child::after {\n",
+ " width: 0;\n",
+ "}\n",
+ "\n",
+ "/* Serial-specific style estimator block */\n",
+ "\n",
+ "#sk-container-id-37 div.sk-serial {\n",
+ " display: flex;\n",
+ " flex-direction: column;\n",
+ " align-items: center;\n",
+ " background-color: var(--sklearn-color-background);\n",
+ " padding-right: 1em;\n",
+ " padding-left: 1em;\n",
+ "}\n",
+ "\n",
+ "\n",
+ "/* Toggleable style: style used for estimator/Pipeline/ColumnTransformer box that is\n",
+ "clickable and can be expanded/collapsed.\n",
+ "- Pipeline and ColumnTransformer use this feature and define the default style\n",
+ "- Estimators will overwrite some part of the style using the `sk-estimator` class\n",
+ "*/\n",
+ "\n",
+ "/* Pipeline and ColumnTransformer style (default) */\n",
+ "\n",
+ "#sk-container-id-37 div.sk-toggleable {\n",
+ " /* Default theme specific background. It is overwritten whether we have a\n",
+ " specific estimator or a Pipeline/ColumnTransformer */\n",
+ " background-color: var(--sklearn-color-background);\n",
+ "}\n",
+ "\n",
+ "/* Toggleable label */\n",
+ "#sk-container-id-37 label.sk-toggleable__label {\n",
+ " cursor: pointer;\n",
+ " display: block;\n",
+ " width: 100%;\n",
+ " margin-bottom: 0;\n",
+ " padding: 0.5em;\n",
+ " box-sizing: border-box;\n",
+ " text-align: center;\n",
+ "}\n",
+ "\n",
+ "#sk-container-id-37 label.sk-toggleable__label-arrow:before {\n",
+ " /* Arrow on the left of the label */\n",
+ " content: \"▸\";\n",
+ " float: left;\n",
+ " margin-right: 0.25em;\n",
+ " color: var(--sklearn-color-icon);\n",
+ "}\n",
+ "\n",
+ "#sk-container-id-37 label.sk-toggleable__label-arrow:hover:before {\n",
+ " color: var(--sklearn-color-text);\n",
+ "}\n",
+ "\n",
+ "/* Toggleable content - dropdown */\n",
+ "\n",
+ "#sk-container-id-37 div.sk-toggleable__content {\n",
+ " max-height: 0;\n",
+ " max-width: 0;\n",
+ " overflow: hidden;\n",
+ " text-align: left;\n",
+ " /* unfitted */\n",
+ " background-color: var(--sklearn-color-unfitted-level-0);\n",
+ "}\n",
+ "\n",
+ "#sk-container-id-37 div.sk-toggleable__content.fitted {\n",
+ " /* fitted */\n",
+ " background-color: var(--sklearn-color-fitted-level-0);\n",
+ "}\n",
+ "\n",
+ "#sk-container-id-37 div.sk-toggleable__content pre {\n",
+ " margin: 0.2em;\n",
+ " border-radius: 0.25em;\n",
+ " color: var(--sklearn-color-text);\n",
+ " /* unfitted */\n",
+ " background-color: var(--sklearn-color-unfitted-level-0);\n",
+ "}\n",
+ "\n",
+ "#sk-container-id-37 div.sk-toggleable__content.fitted pre {\n",
+ " /* unfitted */\n",
+ " background-color: var(--sklearn-color-fitted-level-0);\n",
+ "}\n",
+ "\n",
+ "#sk-container-id-37 input.sk-toggleable__control:checked~div.sk-toggleable__content {\n",
+ " /* Expand drop-down */\n",
+ " max-height: 200px;\n",
+ " max-width: 100%;\n",
+ " overflow: auto;\n",
+ "}\n",
+ "\n",
+ "#sk-container-id-37 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {\n",
+ " content: \"▾\";\n",
+ "}\n",
+ "\n",
+ "/* Pipeline/ColumnTransformer-specific style */\n",
+ "\n",
+ "#sk-container-id-37 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
+ " color: var(--sklearn-color-text);\n",
+ " background-color: var(--sklearn-color-unfitted-level-2);\n",
+ "}\n",
+ "\n",
+ "#sk-container-id-37 div.sk-label.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
+ " background-color: var(--sklearn-color-fitted-level-2);\n",
+ "}\n",
+ "\n",
+ "/* Estimator-specific style */\n",
+ "\n",
+ "/* Colorize estimator box */\n",
+ "#sk-container-id-37 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
+ " /* unfitted */\n",
+ " background-color: var(--sklearn-color-unfitted-level-2);\n",
+ "}\n",
+ "\n",
+ "#sk-container-id-37 div.sk-estimator.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
+ " /* fitted */\n",
+ " background-color: var(--sklearn-color-fitted-level-2);\n",
+ "}\n",
+ "\n",
+ "#sk-container-id-37 div.sk-label label.sk-toggleable__label,\n",
+ "#sk-container-id-37 div.sk-label label {\n",
+ " /* The background is the default theme color */\n",
+ " color: var(--sklearn-color-text-on-default-background);\n",
+ "}\n",
+ "\n",
+ "/* On hover, darken the color of the background */\n",
+ "#sk-container-id-37 div.sk-label:hover label.sk-toggleable__label {\n",
+ " color: var(--sklearn-color-text);\n",
+ " background-color: var(--sklearn-color-unfitted-level-2);\n",
+ "}\n",
+ "\n",
+ "/* Label box, darken color on hover, fitted */\n",
+ "#sk-container-id-37 div.sk-label.fitted:hover label.sk-toggleable__label.fitted {\n",
+ " color: var(--sklearn-color-text);\n",
+ " background-color: var(--sklearn-color-fitted-level-2);\n",
+ "}\n",
+ "\n",
+ "/* Estimator label */\n",
+ "\n",
+ "#sk-container-id-37 div.sk-label label {\n",
+ " font-family: monospace;\n",
+ " font-weight: bold;\n",
+ " display: inline-block;\n",
+ " line-height: 1.2em;\n",
+ "}\n",
+ "\n",
+ "#sk-container-id-37 div.sk-label-container {\n",
+ " text-align: center;\n",
+ "}\n",
+ "\n",
+ "/* Estimator-specific */\n",
+ "#sk-container-id-37 div.sk-estimator {\n",
+ " font-family: monospace;\n",
+ " border: 1px dotted var(--sklearn-color-border-box);\n",
+ " border-radius: 0.25em;\n",
+ " box-sizing: border-box;\n",
+ " margin-bottom: 0.5em;\n",
+ " /* unfitted */\n",
+ " background-color: var(--sklearn-color-unfitted-level-0);\n",
+ "}\n",
+ "\n",
+ "#sk-container-id-37 div.sk-estimator.fitted {\n",
+ " /* fitted */\n",
+ " background-color: var(--sklearn-color-fitted-level-0);\n",
+ "}\n",
+ "\n",
+ "/* on hover */\n",
+ "#sk-container-id-37 div.sk-estimator:hover {\n",
+ " /* unfitted */\n",
+ " background-color: var(--sklearn-color-unfitted-level-2);\n",
+ "}\n",
+ "\n",
+ "#sk-container-id-37 div.sk-estimator.fitted:hover {\n",
+ " /* fitted */\n",
+ " background-color: var(--sklearn-color-fitted-level-2);\n",
+ "}\n",
+ "\n",
+ "/* Specification for estimator info (e.g. \"i\" and \"?\") */\n",
+ "\n",
+ "/* Common style for \"i\" and \"?\" */\n",
+ "\n",
+ ".sk-estimator-doc-link,\n",
+ "a:link.sk-estimator-doc-link,\n",
+ "a:visited.sk-estimator-doc-link {\n",
+ " float: right;\n",
+ " font-size: smaller;\n",
+ " line-height: 1em;\n",
+ " font-family: monospace;\n",
+ " background-color: var(--sklearn-color-background);\n",
+ " border-radius: 1em;\n",
+ " height: 1em;\n",
+ " width: 1em;\n",
+ " text-decoration: none !important;\n",
+ " margin-left: 1ex;\n",
+ " /* unfitted */\n",
+ " border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n",
+ " color: var(--sklearn-color-unfitted-level-1);\n",
+ "}\n",
+ "\n",
+ ".sk-estimator-doc-link.fitted,\n",
+ "a:link.sk-estimator-doc-link.fitted,\n",
+ "a:visited.sk-estimator-doc-link.fitted {\n",
+ " /* fitted */\n",
+ " border: var(--sklearn-color-fitted-level-1) 1pt solid;\n",
+ " color: var(--sklearn-color-fitted-level-1);\n",
+ "}\n",
+ "\n",
+ "/* On hover */\n",
+ "div.sk-estimator:hover .sk-estimator-doc-link:hover,\n",
+ ".sk-estimator-doc-link:hover,\n",
+ "div.sk-label-container:hover .sk-estimator-doc-link:hover,\n",
+ ".sk-estimator-doc-link:hover {\n",
+ " /* unfitted */\n",
+ " background-color: var(--sklearn-color-unfitted-level-3);\n",
+ " color: var(--sklearn-color-background);\n",
+ " text-decoration: none;\n",
+ "}\n",
+ "\n",
+ "div.sk-estimator.fitted:hover .sk-estimator-doc-link.fitted:hover,\n",
+ ".sk-estimator-doc-link.fitted:hover,\n",
+ "div.sk-label-container:hover .sk-estimator-doc-link.fitted:hover,\n",
+ ".sk-estimator-doc-link.fitted:hover {\n",
+ " /* fitted */\n",
+ " background-color: var(--sklearn-color-fitted-level-3);\n",
+ " color: var(--sklearn-color-background);\n",
+ " text-decoration: none;\n",
+ "}\n",
+ "\n",
+ "/* Span, style for the box shown on hovering the info icon */\n",
+ ".sk-estimator-doc-link span {\n",
+ " display: none;\n",
+ " z-index: 9999;\n",
+ " position: relative;\n",
+ " font-weight: normal;\n",
+ " right: .2ex;\n",
+ " padding: .5ex;\n",
+ " margin: .5ex;\n",
+ " width: min-content;\n",
+ " min-width: 20ex;\n",
+ " max-width: 50ex;\n",
+ " color: var(--sklearn-color-text);\n",
+ " box-shadow: 2pt 2pt 4pt #999;\n",
+ " /* unfitted */\n",
+ " background: var(--sklearn-color-unfitted-level-0);\n",
+ " border: .5pt solid var(--sklearn-color-unfitted-level-3);\n",
+ "}\n",
+ "\n",
+ ".sk-estimator-doc-link.fitted span {\n",
+ " /* fitted */\n",
+ " background: var(--sklearn-color-fitted-level-0);\n",
+ " border: var(--sklearn-color-fitted-level-3);\n",
+ "}\n",
+ "\n",
+ ".sk-estimator-doc-link:hover span {\n",
+ " display: block;\n",
+ "}\n",
+ "\n",
+ "/* \"?\"-specific style due to the `<a>` HTML tag */\n",
+ "\n",
+ "#sk-container-id-37 a.estimator_doc_link {\n",
+ " float: right;\n",
+ " font-size: 1rem;\n",
+ " line-height: 1em;\n",
+ " font-family: monospace;\n",
+ " background-color: var(--sklearn-color-background);\n",
+ " border-radius: 1rem;\n",
+ " height: 1rem;\n",
+ " width: 1rem;\n",
+ " text-decoration: none;\n",
+ " /* unfitted */\n",
+ " color: var(--sklearn-color-unfitted-level-1);\n",
+ " border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n",
+ "}\n",
+ "\n",
+ "#sk-container-id-37 a.estimator_doc_link.fitted {\n",
+ " /* fitted */\n",
+ " border: var(--sklearn-color-fitted-level-1) 1pt solid;\n",
+ " color: var(--sklearn-color-fitted-level-1);\n",
+ "}\n",
+ "\n",
+ "/* On hover */\n",
+ "#sk-container-id-37 a.estimator_doc_link:hover {\n",
+ " /* unfitted */\n",
+ " background-color: var(--sklearn-color-unfitted-level-3);\n",
+ " color: var(--sklearn-color-background);\n",
+ " text-decoration: none;\n",
+ "}\n",
+ "\n",
+ "#sk-container-id-37 a.estimator_doc_link.fitted:hover {\n",
+ " /* fitted */\n",
+ " background-color: var(--sklearn-color-fitted-level-3);\n",
+ "}\n",
+ "</style><div id=\"sk-container-id-37\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>LinearRegression()</pre><b>In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. <br />On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.</b></div><div class=\"sk-container\" hidden><div class=\"sk-item\"><div class=\"sk-estimator fitted sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-37\" type=\"checkbox\" checked><label for=\"sk-estimator-id-37\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow fitted\"> LinearRegression<a class=\"sk-estimator-doc-link fitted\" rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.5/modules/generated/sklearn.linear_model.LinearRegression.html\">?<span>Documentation for LinearRegression</span></a><span class=\"sk-estimator-doc-link fitted\">i<span>Fitted</span></span></label><div class=\"sk-toggleable__content fitted\"><pre>LinearRegression()</pre></div> </div></div></div></div>"
+ ],
+ "text/plain": [
+ "LinearRegression()"
+ ]
+ },
+ "execution_count": 1546,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "from sklearn.linear_model import LinearRegression \n",
+ "\n",
+ "model = LinearRegression()\n",
+ "\n",
+ "model.fit(X_train_encoded, y_train)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1547,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "enc = ohe.transform(X_test[['3. University', '4. Department']])\n",
+ "enc = pd.DataFrame(data=enc, columns=ohe.get_feature_names_out())\n",
+ "enc.reset_index(drop=True, inplace=True)\n",
+ "X_test.reset_index(drop=True, inplace=True)\n",
+ "\n",
+ "X_test_encoded = pd.concat([enc, X_test], axis=1)\n",
+ "X_test_encoded = X_test_encoded.drop(columns=['3. University', '4. Department'])"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1548,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "1.0568174203497604e-14"
+ ]
+ },
+ "execution_count": 1548,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "from sklearn.metrics import mean_absolute_error\n",
+ "\n",
+ "y_pred = model.predict(X_test_encoded)\n",
+ "\n",
+ "mean_absolute_error(y_pred=y_pred, y_true=y_test)"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": ".venv",
+ "language": "python",
+ "name": "python3"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.11.2"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 2
+}