{ "cells": [ { "cell_type": "markdown", "id": "7e9349d0", "metadata": {}, "source": [ "# Poisoned Mushroom Dataset" ] }, { "cell_type": "markdown", "id": "382f85ee", "metadata": {}, "source": [ "We are going to take a quick tour of machine learning by working on an example dataset. The mushroom dataset\n", "categorizes mushrooms as 'poisonous' or 'edible' and collects several descriptive properties of each mushroom example." ] }, { "cell_type": "code", "execution_count": 41, "id": "771ea7b9-e7de-43c7-96ae-bc3a30862715", "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", "import os" ] }, { "cell_type": "markdown", "id": "c1121f80", "metadata": {}, "source": [ "## Loading the dataset" ] }, { "cell_type": "code", "execution_count": 118, "id": "95d691a5-1638-4953-b929-761a8095a773", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
classcap-shapecap-surfacecap-colorruisesodorgill-attachmentgill-spacinggill-sizegill-color...stalk-surface-below-ringstalk-color-above-ringstalk-color-below-ringveil-typeveil-colorring-numberring-typespore-print-colorpopulationhabitat
0exfnfnfwnb...ywpNaNnopwvNaN
1pNaNygtNaNfcbk...sncpwneNaNyg
2ebyntnfcNaNn...spNaNpwopbyw
3exggtnfwbn...spNaNpwnnNaNNaNd
4eNaNfNaNtnawnn...kNaNwpwNaNlwvd
..................................................................
25981efNaNrfnfNaNnNaN...NaNnppwopkvNaN
25982efsefNaNfcny...ywppwNaNpryd
25983pfgeNaNNaNacbb...ywNaNpwophvm
25984exggtnfwbh...fNaNNaNpwteNaNsNaN
25985ebyytlfcby...kgopwolksg
\n", "

25986 rows × 23 columns

\n", "
" ], "text/plain": [ " class cap-shape cap-surface cap-color ruises odor gill-attachment \\\n", "0 e x f n f n f \n", "1 p NaN y g t NaN f \n", "2 e b y n t n f \n", "3 e x g g t n f \n", "4 e NaN f NaN t n a \n", "... ... ... ... ... ... ... ... \n", "25981 e f NaN r f n f \n", "25982 e f s e f NaN f \n", "25983 p f g e NaN NaN a \n", "25984 e x g g t n f \n", "25985 e b y y t l f \n", "\n", " gill-spacing gill-size gill-color ... stalk-surface-below-ring \\\n", "0 w n b ... y \n", "1 c b k ... s \n", "2 c NaN n ... s \n", "3 w b n ... s \n", "4 w n n ... k \n", "... ... ... ... ... ... \n", "25981 NaN n NaN ... NaN \n", "25982 c n y ... y \n", "25983 c b b ... y \n", "25984 w b h ... f \n", "25985 c b y ... k \n", "\n", " stalk-color-above-ring stalk-color-below-ring veil-type veil-color \\\n", "0 w p NaN n \n", "1 n c p w \n", "2 p NaN p w \n", "3 p NaN p w \n", "4 NaN w p w \n", "... ... ... ... ... \n", "25981 n p p w \n", "25982 w p p w \n", "25983 w NaN p w \n", "25984 NaN NaN p w \n", "25985 g o p w \n", "\n", " ring-number ring-type spore-print-color population habitat \n", "0 o p w v NaN \n", "1 n e NaN y g \n", "2 o p b y w \n", "3 n n NaN NaN d \n", "4 NaN l w v d \n", "... ... ... ... ... ... \n", "25981 o p k v NaN \n", "25982 NaN p r y d \n", "25983 o p h v m \n", "25984 t e NaN s NaN \n", "25985 o l k s g \n", "\n", "[25986 rows x 23 columns]" ] }, "execution_count": 118, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# These lines would load the data locally\n", "# data_root = \"./\"\n", "# filename = \"mushroom.csv\"\n", "# filepath = os.path.join(data_root, filename)\n", "\n", "# We'll fetch it directly from the web\n", "data_url = \"https://aet-cs.github.io/white/ML/lessons/mushroom.csv\"\n", "df = pd.read_csv(data_url)\n", "df" ] }, { "cell_type": "markdown", "id": "a71ed4f4-5106-4425-88cd-ab2acbc24b86", "metadata": {}, "source": [ "`describe` gives a quick overview of each feature" ] }, { "cell_type": "code", "execution_count": 43, "id": "a363da42-73b6-4d09-b1c6-f885b020c633", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
classcap-shapecap-surfacecap-colorruisesodorgill-attachmentgill-spacinggill-sizegill-color...stalk-surface-below-ringstalk-color-above-ringstalk-color-below-ringveil-typeveil-colorring-numberring-typespore-print-colorpopulationhabitat
count25986225132250722527225142253622505225872249422418...22563224132255322489224832249722478224932247522502
unique264102922212...4991435967
topexynfnfcbb...swwpwopwvd
freq143547674760248101236169861781116092139973679...10619858084032248915742157138501508584096573
\n", "

4 rows × 23 columns

\n", "
" ], "text/plain": [ " class cap-shape cap-surface cap-color ruises odor gill-attachment \\\n", "count 25986 22513 22507 22527 22514 22536 22505 \n", "unique 2 6 4 10 2 9 2 \n", "top e x y n f n f \n", "freq 14354 7674 7602 4810 12361 6986 17811 \n", "\n", " gill-spacing gill-size gill-color ... stalk-surface-below-ring \\\n", "count 22587 22494 22418 ... 22563 \n", "unique 2 2 12 ... 4 \n", "top c b b ... s \n", "freq 16092 13997 3679 ... 10619 \n", "\n", " stalk-color-above-ring stalk-color-below-ring veil-type veil-color \\\n", "count 22413 22553 22489 22483 \n", "unique 9 9 1 4 \n", "top w w p w \n", "freq 8580 8403 22489 15742 \n", "\n", " ring-number ring-type spore-print-color population habitat \n", "count 22497 22478 22493 22475 22502 \n", "unique 3 5 9 6 7 \n", "top o p w v d \n", "freq 15713 8501 5085 8409 6573 \n", "\n", "[4 rows x 23 columns]" ] }, "execution_count": 43, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.describe()" ] }, { "cell_type": "markdown", "id": "dc3a4445-274a-4a7f-b397-6f96ddc26d7a", "metadata": {}, "source": [ "All the features in this dataset are categorical, with between 2 and 12 categories. Except the curious `veil-type` which has only one value. Since `veil-type` has only one unique value, we'll drop it." ] }, { "cell_type": "code", "execution_count": 119, "id": "9494a6c7-67e8-419c-9aaa-0f8ff89221bb", "metadata": {}, "outputs": [], "source": [ "df = df.drop('veil-type', axis=1)" ] }, { "cell_type": "markdown", "id": "b7c00c5e", "metadata": {}, "source": [ "## Data Exploration" ] }, { "cell_type": "markdown", "id": "66b733f8-c4db-41d1-8e9e-ac316c0b8ecb", "metadata": {}, "source": [ "Show all the columns. Notice the target is the first column!" ] }, { "cell_type": "code", "execution_count": 120, "id": "91eae28c-7318-4630-b527-3cb6763babeb", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Index(['class', 'cap-shape', 'cap-surface', 'cap-color', 'ruises', 'odor',\n", " 'gill-attachment', 'gill-spacing', 'gill-size', 'gill-color',\n", " 'stalk-shape', 'stalk-root', 'stalk-surface-above-ring',\n", " 'stalk-surface-below-ring', 'stalk-color-above-ring',\n", " 'stalk-color-below-ring', 'veil-color', 'ring-number', 'ring-type',\n", " 'spore-print-color', 'population', 'habitat'],\n", " dtype='object')" ] }, "execution_count": 120, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.columns" ] }, { "cell_type": "markdown", "id": "b5a2457e-739c-41ca-a91e-bbabbd5686f5", "metadata": {}, "source": [ "Get the size of the dataframe. Shape returns (rows, cols)" ] }, { "cell_type": "code", "execution_count": 121, "id": "7b8d5fcc-1043-427a-9264-6f0a5deeb995", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(25986, 22)" ] }, "execution_count": 121, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.shape" ] }, { "cell_type": "markdown", "id": "3e22afb6-b203-4542-9c36-f4910be75a60", "metadata": {}, "source": [ "Let's peek at the target" ] }, { "cell_type": "code", "execution_count": 122, "id": "2c1e74a9-08b9-4e73-8855-8af51df9a2ea", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0 e\n", "1 p\n", "2 e\n", "3 e\n", "4 e\n", " ..\n", "25981 e\n", "25982 e\n", "25983 p\n", "25984 e\n", "25985 e\n", "Name: class, Length: 25986, dtype: object" ] }, "execution_count": 122, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df['class']" ] }, { "cell_type": "markdown", "id": "a2d5b6d9-e9dc-4bc6-808f-a5a5523f585c", "metadata": {}, "source": [ "This dataset has a LOT of \"N/A\" datapoints. One way to clean the data is to drop all affected rows" ] }, { "cell_type": "code", "execution_count": 123, "id": "635ab8ad-939b-4451-ae75-7414cc9436f1", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(1327, 22)" ] }, "execution_count": 123, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.dropna().shape" ] }, { "cell_type": "markdown", "id": "13baf05c-9ed1-4d7f-a794-3f8d6ae332d5", "metadata": {}, "source": [ "But this *significantly* reduces our dataset. Let's instead use a data imputation strategy that fills the N/A with the *mode*" ] }, { "cell_type": "code", "execution_count": 124, "id": "90fc05fd-0f98-4d68-bce8-4bf9c3cd77db", "metadata": {}, "outputs": [], "source": [ "for c in df.columns:\n", " df = df.fillna({c: df[c].mode()[0]})" ] }, { "cell_type": "markdown", "id": "5aebfa3d-f8c3-4da8-a28f-fdc8bbe6f40f", "metadata": {}, "source": [ "Look at df again" ] }, { "cell_type": "code", "execution_count": 125, "id": "63191ab4-1b33-49fe-b9c3-8a9cfce68f7d", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
classcap-shapecap-surfacecap-colorruisesodorgill-attachmentgill-spacinggill-sizegill-color...stalk-surface-above-ringstalk-surface-below-ringstalk-color-above-ringstalk-color-below-ringveil-colorring-numberring-typespore-print-colorpopulationhabitat
0exfnfnfwnb...sywpnopwvd
1pxygtnfcbk...fsncwnewyg
2ebyntnfcbn...sspwwopbyw
3exggtnfwbn...sspwwnnwvd
4exfntnawnn...skwwwolwvd
..................................................................
25981efyrfnfcnb...ssnpwopkvd
25982efsefnfcny...sywpwopryd
25983pfgefnacbb...sywwwophvm
25984exggtnfwbh...kfwwwtewsd
25985ebyytlfcby...kkgowolksg
\n", "

25986 rows × 22 columns

\n", "
" ], "text/plain": [ " class cap-shape cap-surface cap-color ruises odor gill-attachment \\\n", "0 e x f n f n f \n", "1 p x y g t n f \n", "2 e b y n t n f \n", "3 e x g g t n f \n", "4 e x f n t n a \n", "... ... ... ... ... ... ... ... \n", "25981 e f y r f n f \n", "25982 e f s e f n f \n", "25983 p f g e f n a \n", "25984 e x g g t n f \n", "25985 e b y y t l f \n", "\n", " gill-spacing gill-size gill-color ... stalk-surface-above-ring \\\n", "0 w n b ... s \n", "1 c b k ... f \n", "2 c b n ... s \n", "3 w b n ... s \n", "4 w n n ... s \n", "... ... ... ... ... ... \n", "25981 c n b ... s \n", "25982 c n y ... s \n", "25983 c b b ... s \n", "25984 w b h ... k \n", "25985 c b y ... k \n", "\n", " stalk-surface-below-ring stalk-color-above-ring stalk-color-below-ring \\\n", "0 y w p \n", "1 s n c \n", "2 s p w \n", "3 s p w \n", "4 k w w \n", "... ... ... ... \n", "25981 s n p \n", "25982 y w p \n", "25983 y w w \n", "25984 f w w \n", "25985 k g o \n", "\n", " veil-color ring-number ring-type spore-print-color population habitat \n", "0 n o p w v d \n", "1 w n e w y g \n", "2 w o p b y w \n", "3 w n n w v d \n", "4 w o l w v d \n", "... ... ... ... ... ... ... \n", "25981 w o p k v d \n", "25982 w o p r y d \n", "25983 w o p h v m \n", "25984 w t e w s d \n", "25985 w o l k s g \n", "\n", "[25986 rows x 22 columns]" ] }, "execution_count": 125, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df" ] }, { "cell_type": "markdown", "id": "df21f38d-9f68-46ca-bf03-682cd3e49315", "metadata": {}, "source": [ "Let's see what the classifications are and how balanced the dataset is. Highly imbalanced datasets require special techniques to ensure valid models." ] }, { "cell_type": "code", "execution_count": 127, "id": "e7f294dd-8f1e-47dd-9a12-9656ba1e893f", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "class\n", "e 14354\n", "p 11632\n", "Name: count, dtype: int64" ] }, "execution_count": 127, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df['class'].value_counts()" ] }, { "cell_type": "markdown", "id": "33d056df-7b9b-41db-8760-f1dec051f951", "metadata": {}, "source": [ "We'll introduce a new plotting library -- \"seaborn\", which has some advantages over matplotlib. Here we show how to quickly make a histogram from a dataframe. Seaborn works nicely with pandas dataframes." ] }, { "cell_type": "code", "execution_count": 128, "id": "fd3c5ce9-dbfb-4bed-8105-8587a23c35c6", "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAk0AAAHHCAYAAACiOWx7AAAAP3RFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMS5wb3N0MSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8kixA/AAAACXBIWXMAAA9hAAAPYQGoP6dpAABFKElEQVR4nO3deVxVdf7H8fdFBBS54AbIRIpL7mniqORSJonJmKSWJoVTKNMEuVBqZrlUZuloarnkZGozOpmVTmmh5JKl5I4LuaeiKeikcBMTEM7vD3+chze0johxtdfz8biPR+d7PvfczwFu9+1ZvtdmGIYhAAAA/Cq3sm4AAADgZkBoAgAAsIDQBAAAYAGhCQAAwAJCEwAAgAWEJgAAAAsITQAAABYQmgAAACwgNAEAAFhAaAJgSa1atfTXv/61rNtwcuDAAXXu3Fm+vr6y2WxaunRpqWz3r3/9q2rVqlUq20LZWLt2rWw2m9auXVvWreAWQmgCrsGhQ4f0t7/9TbVr15aXl5fsdrvatm2rqVOn6ueffy7r9iRJM2bM0Lx58yzX22w28+Hm5qagoCB17ty51D5sTpw4oTFjxig1NbVUtne5fv36adeuXRo3bpz+9a9/qWXLlr9a73A4NHbsWDVr1kyVKlVShQoV1KRJEw0fPlwnTpwo9f5K05EjR5x+V5c/2rRpU9btAX8I7mXdAHCzWL58uR5++GF5enoqJiZGTZo0UV5enr755hsNHTpUaWlpmj17dlm3qRkzZqhatWrXdFTo/vvvV0xMjAzD0OHDhzVjxgzdd999Wr58uR544IHr6ufEiRMaO3asatWqpebNm1/Xti73888/KyUlRSNHjlRCQsJv1n///fcKDw9Xenq6Hn74YcXFxcnDw0M7d+7UnDlztGTJEu3fv7/U+rtRHn30UXXt2tVprHr16mXUjevq0KGDfv75Z3l4eJR1K7iFEJoACw4fPqw+ffqoZs2aWr16tWrUqGGui4+P18GDB7V8+fIy7PD63HHHHXrsscfM5Yceekh33nmnpkyZct2h6UY5ffq0JMnPz+83ay9evKgePXooMzNTa9euVbt27ZzWjxs3Tm+88caNaLPUtWjRwul39WsKCwuVl5cnLy+vG9yV63Fzc/tD7jduLE7PARZMmDBB586d05w5c5wCU5G6detq0KBB5vLFixf1yiuvqE6dOvL09FStWrX0wgsvKDc31+l5NptNY8aMKba9X14/NG/ePNlsNq1fv16JiYmqXr26vL299dBDD5nhoeh5aWlp+uqrr8xTN/fee+8172/Tpk1VrVo1HT58+Ffrvv/+ez388MOqUqWKKlasqDZt2jiFx7Vr1+rPf/6zJOmJJ54we/qt04fbt2/XAw88ILvdrkqVKqlTp0769ttvzfVjxoxRzZo1JUlDhw6VzWb71WuQPv74Y+3YsUMjR44sFpgkyW63a9y4cb/a0z/+8Q/dfffdqlq1qipUqKDQ0FB99NFHxeqSk5PVrl07+fn5qVKlSqpfv75eeOEFp5q33npLjRs3VsWKFVW5cmW1bNlSCxcu/NXXt8JmsykhIUELFixQ48aN5enpqaSkJEnSDz/8oCeffFIBAQHy9PRU48aN9d577xXbxvHjxxUVFSVvb2/5+/tryJAhWrFiRbHrg652jdu9995b7G8uNzdXo0ePVt26deXp6ang4GANGzbsiu+HhIQELV26VE2aNDH7LNqHy/3www+KjY1VUFCQPD09FRISor///e/Ky8uTdPVrmjZu3KguXbrI19dXFStW1D333KP169c71fz0008aPHiwatWqJU9PT/n7++v+++/Xtm3brvajxx8ER5oACz777DPVrl1bd999t6X6/v37a/78+erVq5eeffZZbdy4UePHj9eePXu0ZMmSEvfxzDPPqHLlyho9erSOHDmiKVOmKCEhQYsWLZIkTZkyRc8884wqVaqkkSNHSpICAgKu+XXOnj2rs2fPqm7duletyczM1N13363z589r4MCBqlq1qubPn68HH3xQH330kR566CE1bNhQL7/8skaNGqW4uDi1b99ekn7155iWlqb27dvLbrdr2LBhKl++vN555x3de++9+uqrr9S6dWv16NFDfn5+GjJkiHm6qlKlSlfd5qeffipJevzxx6/5Z1Fk6tSpevDBBxUdHa28vDx98MEHevjhh7Vs2TJFRkaavf/lL3/RnXfeqZdfflmenp46ePCg04fyP//5Tw0cOFC9evXSoEGDdOHCBe3cuVMbN25U3759f7OP8+fP63//+5/TmK+vr8qXLy9JWr16tT788EMlJCSoWrVqqlWrljIzM9WmTRszlFSvXl1ffPGFYmNj5XA4NHjwYEmXTnl26tRJ6enpGjhwoIKCgvSvf/1Lq1evLvHPrbCwUA8++KC++eYbxcXFqWHDhtq1a5fefPNN7d+/v9jF+998840++eQTPf300/Lx8dG0adPUs2dPpaenq2rVqpIunfJt1aqVsrKyFBcXpwYNGuiHH37QRx99pPPnz1/1lNzq1av1wAMPKDQ0VKNHj5abm5vmzp2r++67T19//bVatWolSXrqqaf00UcfKSEhQY0aNdKPP/6ob775Rnv27FGLFi1K/LPALcAA8Kuys7MNSUb37t0t1aemphqSjP79+zuNP/fcc4YkY/Xq1eaYJGP06NHFtlGzZk2jX79+5vLcuXMNSUZ4eLhRWFhojg8ZMsQoV66ckZWVZY41btzYuOeeeyz1WtRDbGyscfr0aePUqVPGxo0bjU6dOhmSjEmTJl21p8GDBxuSjK+//toc++mnn4yQkBCjVq1aRkFBgWEYhrF582ZDkjF37lxL/URFRRkeHh7GoUOHzLETJ04YPj4+RocOHcyxw4cPG5KMiRMn/uY277rrLsPX19fS6xuGYfTr18+oWbOm09j58+edlvPy8owmTZoY9913nzn25ptvGpKM06dPX3Xb3bt3Nxo3bmy5lyJF+3ulx5o1awzDuPS7dHNzM9LS0pyeGxsba9SoUcP43//+5zTep08fw9fX19y3KVOmGJKMDz/80KzJyckx6tat6/Q6hlH876HIPffc4/T3969//ctwc3Nz+jsxDMOYNWuWIclYv369OSbJ8PDwMA4ePGiO7dixw5BkvPXWW+ZYTEyM4ebmZmzevLnY6xe9P9asWePUc2FhoVGvXj0jIiLC6T10/vx5IyQkxLj//vvNMV9fXyM+Pr7YtgFOzwG/weFwSJJ8fHws1X/++eeSpMTERKfxZ599VpKu69qnuLg42Ww2c7l9+/YqKCjQ0aNHS7xNSZozZ46qV68uf39/tW7d2jwNWHQE4ko+//xztWrVyul0V6VKlRQXF6cjR47ou+++u+Y+CgoKtHLlSkVFRal27drmeI0aNdS3b19988035u/jWjgcDsu/v6upUKGC+d9nz55Vdna22rdv73TKpuj6qv/+978qLCy84nb8/Px0/Phxbd68uUR9xMXFKTk52enRrFkzc/0999yjRo0amcuGYejjjz9Wt27dZBiG/ve//5mPiIgIZWdnm/vw+eefq0aNGurVq5f5/IoVKyouLq5EvUrS4sWL1bBhQzVo0MDpte+77z5J0po1a5zqw8PDVadOHXP5zjvvlN1u1/fffy/p0pGrpUuXqlu3ble8W/Ly98flUlNTdeDAAfXt21c//vij2UdOTo46deqkdevWmb8zPz8/bdy40eXvqMTvj9NzwG+w2+2SLl3nYMXRo0fl5uZW7NRWYGCg/Pz8rivg3H777U7LlStXlnTpQ/x6dO/eXQkJCbLZbPLx8VHjxo3l7e39q885evSoWrduXWy8YcOG5vomTZpcUx+nT5/W+fPnVb9+/Stut7CwUMeOHVPjxo2vabuXf+iW1LJly/Tqq68qNTXV6Vqcyz+ke/furXfffVf9+/fX888/r06dOqlHjx7q1auX3Nwu/Rt1+PDh+vLLL9WqVSvVrVtXnTt3Vt++fdW2bVtLfdSrV0/h4eFXXR8SEuK0fPr0aWVlZWn27NlXvbvz1KlTki79zurWrVsseFzp92HVgQMHtGfPnqve4Vf02kV++TcuXfo7L/obP336tBwOxzX/bR04cEDSpWkqriY7O1uVK1fWhAkT1K9fPwUHBys0NFRdu3ZVTEyMU5DHHxOhCfgNdrtdQUFB2r179zU972r/4rWioKDgiuPlypW74rhhGCV+LUm67bbbfvWD+GbXoEEDbd++XceOHVNwcPA1P//rr7/Wgw8+qA4dOmjGjBmqUaOGypcvr7lz5zpdwF2hQgWtW7dOa9as0fLly5WUlKRFixbpvvvu08qVK1WuXDk1bNhQ+/bt07Jly5SUlKSPP/5YM2bM0KhRozR27Njr3tfLj4hJMo+ePPbYY1cNDHfeeec1v87V/r4LCgqc/k4LCwvVtGlTTZ48+Yr1v/x93Ki/8aKfw8SJE6869UXRdXGPPPKI2rdvryVLlmjlypWaOHGi3njjDX3yyScuezcpfh+EJsCCv/zlL5o9e7ZSUlIUFhb2q7U1a9ZUYWGhDhw4YB51kS5dOJ2VlWXe9SVd+hd0VlaW0/Pz8vJ08uTJEvd6PWHtWtSsWVP79u0rNr53715z/bX2U716dVWsWPGq23VzcytR6OnWrZv+85//6N///rdGjBhxzc//+OOP5eXlpRUrVsjT09Mcnzt3brFaNzc3derUSZ06ddLkyZP12muvaeTIkVqzZo0ZTL29vdW7d2/17t1beXl56tGjh8aNG6cRI0aU+m3y1atXl4+PjwoKCn4zGNesWVO7d++WYRhOv7cr/T6u9LcrXTpadfkRmTp16mjHjh3q1KlTqfxtVq9eXXa7/Zr/EVN0ys9ut1v6B0KNGjX09NNP6+mnn9apU6fUokULjRs3jtD0B8c1TYAFw4YNk7e3t/r376/MzMxi6w8dOqSpU6dKkjnx4JQpU5xqiv6lXXSnlXTpf+Tr1q1zqps9e/ZVjzRZ4e3tfcUPs9LWtWtXbdq0SSkpKeZYTk6OZs+erVq1apnX1RSd5rPSU7ly5dS5c2f997//1ZEjR8zxzMxMLVy4UO3atTNPl16LXr16qWnTpho3bpxTv0V++ukn827Dq/Vls9mcfi9HjhwpdufXmTNnij236KhG0Sm9H3/80Wm9h4eHGjVqJMMwlJ+fb3WXLCtXrpx69uypjz/++IpB4/IpK7p27aoTJ044TaVw/vz5K57Wq1Onjr799lvzFn/p0inMY8eOOdU98sgj+uGHH/TPf/6z2DZ+/vln5eTkXNP+uLm5KSoqSp999pm2bNlSbP3VjkiFhoaqTp06+sc//qFz584VW1/0cygoKFB2drbTOn9/fwUFBRWbIgF/PBxpAiyoU6eOFi5cqN69e6thw4ZOM4Jv2LBBixcvNuesadasmfr166fZs2crKytL99xzjzZt2qT58+crKipKHTt2NLfbv39/PfXUU+rZs6fuv/9+7dixQytWrFC1atVK3GtoaKhmzpypV199VXXr1pW/v7950W1pev755/Wf//xHDzzwgAYOHKgqVapo/vz5Onz4sD7++GPzGp46derIz89Ps2bNko+Pj7y9vdW6deti194UefXVV825jp5++mm5u7vrnXfeUW5uriZMmFCiXsuXL69PPvlE4eHh6tChgx555BG1bdtW5cuXV1pamhYuXKjKlStfda6myMhITZ48WV26dFHfvn116tQpTZ8+XXXr1tXOnTvNupdfflnr1q1TZGSkatasqVOnTmnGjBm67bbbzAvmO3furMDAQLVt21YBAQHas2eP3n77bUVGRl73xepX8/rrr2vNmjVq3bq1BgwYoEaNGunMmTPatm2bvvzySzPsDRgwQG+//bZiYmK0detW1ahRQ//6179UsWLFYtvs37+/PvroI3Xp0kWPPPKIDh06pH//+99OF3FLl6Z5+PDDD/XUU09pzZo1atu2rQoKCrR37159+OGHWrFixW9+/c0vvfbaa1q5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wE2G0AQAAGABoQkAAMACQhMAAIAFhCYAAAALCE0AAAAWEJoAAAAsIDQBAABYQGgCAACwgNAEAABgAaEJAADAAkITAACABYQmAAAACwhNAAAAFhCaAAAALCA0AQAAWEBoAgAAsIDQBAAAYAGhCQAAwAJCEwAAgAWEJgAAAAtKFJq+//770u4DAADApZUoNNWtW1cdO3bUv//9b124cKG0ewIAAHA5JQpN27Zt05133qnExEQFBgbqb3/7mzZt2lTavQEAALiMEoWm5s2ba+rUqTpx4oTee+89nTx5Uu3atVOTJk00efJknT59urT7BAAAKFPXdSG4u7u7evToocWLF+uNN97QwYMH9dxzzyk4OFgxMTE6efJkafUJAABQpq4rNG3ZskVPP/20atSoocmTJ+u5557ToUOHlJycrBMnTqh79+6l1ScAAECZci/JkyZPnqy5c+dq37596tq1q95//3117dpVbm6XMlhISIjmzZunWrVqlWavAAAAZaZEoWnmzJl68skn9de//lU1atS4Yo2/v7/mzJlzXc0BAAC4ihKFpgMHDvxmjYeHh/r161eSzQMAALicEl3TNHfuXC1evLjY+OLFizV//vzrbgoAAMDVlCg0jR8/XtWqVSs27u/vr9dee+26mwIAAHA1JQpN6enpCgkJKTZes2ZNpaenX3dTAAAArqZEocnf3187d+4sNr5jxw5VrVr1upsCAABwNSUKTY8++qgGDhyoNWvWqKCgQAUFBVq9erUGDRqkPn36lHaPAAAAZa5Ed8+98sorOnLkiDp16iR390ubKCwsVExMDNc0AQCAW1KJQpOHh4cWLVqkV155RTt27FCFChXUtGlT1axZs7T7AwAAcAklCk1F7rjjDt1xxx2l1QsAAIDLKtE1TQUFBZozZ4769u2r8PBw3XfffU6P0lJQUKCXXnpJISEhqlChgurUqaNXXnlFhmGYNYZhaNSoUapRo4YqVKig8PDwYpNvnjlzRtHR0bLb7fLz81NsbKzOnTvnVLNz5061b99eXl5eCg4O1oQJE0ptPwAAwM2vREeaBg0apHnz5ikyMlJNmjSRzWYr7b4kSW+88YZmzpyp+fPnq3HjxtqyZYueeOIJ+fr6auDAgZKkCRMmaNq0aZo/f75CQkL00ksvKSIiQt999528vLwkSdHR0Tp58qSSk5OVn5+vJ554QnFxcVq4cKEkyeFwqHPnzgoPD9esWbO0a9cuPfnkk/Lz81NcXNwN2TcAAHBzKVFo+uCDD/Thhx+qa9eupd2Pkw0bNqh79+6KjIyUJNWqVUv/+c9/tGnTJkmXjjJNmTJFL774orp37y5Jev/99xUQEKClS5eqT58+2rNnj5KSkrR582a1bNlSkvTWW2+pa9eu+sc//qGgoCAtWLBAeXl5eu+99+Th4aHGjRsrNTVVkydPJjQBAABJJTw95+Hhobp165Z2L8XcfffdWrVqlfbv3y/p0jxQ33zzjR544AFJ0uHDh5WRkaHw8HDzOb6+vmrdurVSUlIkSSkpKfLz8zMDkySFh4fLzc1NGzduNGs6dOggDw8PsyYiIkL79u3T2bNnb/h+AgAA11eiI03PPvuspk6dqrfffvuGnZqTpOeff14Oh0MNGjRQuXLlVFBQoHHjxik6OlqSlJGRIUkKCAhwel5AQIC5LiMjQ/7+/k7r3d3dVaVKFaeaX85wXrTNjIwMVa5cuVhvubm5ys3NNZcdDsf17CoAAHBxJQpN33zzjdasWaMvvvhCjRs3Vvny5Z3Wf/LJJ6XS3IcffqgFCxZo4cKF5imzwYMHKygoSP369SuV1yip8ePHa+zYsWXaAwAA+P2UKDT5+fnpoYceKu1eihk6dKief/55c5bxpk2b6ujRoxo/frz69eunwMBASVJmZqZq1KhhPi8zM1PNmzeXJAUGBurUqVNO27148aLOnDljPj8wMFCZmZlONUXLRTW/NGLECCUmJprLDodDwcHB17G3AADAlZUoNM2dO7e0+7ii8+fPy83N+bKrcuXKqbCwUJIUEhKiwMBArVq1ygxJDodDGzdu1N///ndJUlhYmLKysrR161aFhoZKklavXq3CwkK1bt3arBk5cqTy8/PNo2bJycmqX7/+FU/NSZKnp6c8PT1LfZ8BAIBrKtGF4NKlozVffvml3nnnHf3000+SpBMnThSb/+h6dOvWTePGjdPy5ct15MgRLVmyRJMnTzaPctlsNg0ePFivvvqqPv30U+3atUsxMTEKCgpSVFSUJKlhw4bq0qWLBgwYoE2bNmn9+vVKSEhQnz59FBQUJEnq27evPDw8FBsbq7S0NC1atEhTp051OpIEAAD+2Ep0pOno0aPq0qWL0tPTlZubq/vvv18+Pj564403lJubq1mzZpVKc2+99ZZeeuklPf300zp16pSCgoL0t7/9TaNGjTJrhg0bppycHMXFxSkrK0vt2rVTUlKSOUeTJC1YsEAJCQnq1KmT3Nzc1LNnT02bNs1c7+vrq5UrVyo+Pl6hoaGqVq2aRo0axXQDAADAZDMun17boqioKPn4+GjOnDmqWrWqduzYodq1a2vt2rUaMGBAsRm5/wgcDod8fX2VnZ0tu91+w14ndOj7N2zbwM1q68SYsm6hVPD+Boq70e/va/n8LtGRpq+//lobNmxwmtdIujT55A8//FCSTQIAALi0El3TVFhYqIKCgmLjx48fl4+Pz3U3BQAA4GpKFJo6d+6sKVOmmMs2m03nzp3T6NGjb/hXqwAAAJSFEp2emzRpkiIiItSoUSNduHBBffv21YEDB1StWjX95z//Ke0eAQAAylyJQtNtt92mHTt26IMPPtDOnTt17tw5xcbGKjo6WhUqVCjtHgEAAMpciUKTdOn72x577LHS7AUAAMBllSg0vf/+r98WGxNza9z+CwAAUKREoWnQoEFOy/n5+Tp//rw8PDxUsWJFQhMAALjllOjuubNnzzo9zp07p3379qldu3ZcCA4AAG5JJf7uuV+qV6+eXn/99WJHoQAAAG4FpRaapEsXh584caI0NwkAAOASSnRN06effuq0bBiGTp48qbfffltt27YtlcYAAABcSYlCU1RUlNOyzWZT9erVdd9992nSpEml0RcAAIBLKVFoKiwsLO0+AAAAXFqpXtMEAABwqyrRkabExETLtZMnTy7JSwAAALiUEoWm7du3a/v27crPz1f9+vUlSfv371e5cuXUokULs85ms5VOlwAAAGWsRKGpW7du8vHx0fz581W5cmVJlya8fOKJJ9S+fXs9++yzpdokAABAWSvRNU2TJk3S+PHjzcAkSZUrV9arr77K3XMAAOCWVKLQ5HA4dPr06WLjp0+f1k8//XTdTQEAALiaEoWmhx56SE888YQ++eQTHT9+XMePH9fHH3+s2NhY9ejRo7R7BAAAKHMluqZp1qxZeu6559S3b1/l5+df2pC7u2JjYzVx4sRSbRAAAMAVlCg0VaxYUTNmzNDEiRN16NAhSVKdOnXk7e1dqs0BAAC4iuua3PLkyZM6efKk6tWrJ29vbxmGUVp9AQAAuJQShaYff/xRnTp10h133KGuXbvq5MmTkqTY2FimGwAAALekEoWm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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import seaborn as sns\n", "from matplotlib import pyplot as plt\n", "\n", "# Count plot\n", "sns.countplot(x='class', data=df)\n", "plt.title('Count Plot of Class Frequencies')\n", "plt.xlabel('Class')\n", "plt.ylabel('Frequency')\n", "plt.show()\n" ] }, { "cell_type": "markdown", "id": "cdc198c6-6a81-4ced-bb41-5316396d5051", "metadata": {}, "source": [ "As another example let's plot the \"cap color\" feature." ] }, { "cell_type": "code", "execution_count": 129, "id": "d89439c0", "metadata": {}, "outputs": [ { "data": { "image/png": "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ly9j48aNmD9/Pl599VUAgIGBAUJCQvDRRx9h06ZNOHHiBAICAuDo6IiBAwcCANzc3PDSSy9h9OjROHjwIPbt24fx48djyJAhcHR0BAC89dZbUKlUCAoKQkpKCr7//nssWrQIoaGhck2diIiIqhFZ3zJbsmQJZsyYgf/85z/Izs6Go6Mj3nnnHYSHh0tjpk2bhjt37mDMmDHIyclBly5dsGXLFpiZmUlj1q5di/Hjx6N3794wNDSEv78/Fi9eLPVrNBps27YNwcHB8PDwgK2tLcLDw3nJPREREQEADMSDt4WmMul0Omg0GuTm5kKtVkvtHlPXyFjV4yXPC5C7BCIiItk87Pd3WfhZZkRERKR4DERERESkeAxEREREpHgMRERERKR4DERERESkeAxEREREpHgMRERERKR4DERERESkeAxEREREpHgMRERERKR4DERERESkeAxEREREpHgMRERERKR4DERERESkeAxEREREpHgMRERERKR4DERERESkeAxEREREpHgMRERERKR4DERERESkeAxEREREpHgMRERERKR4DERERESkeAxEREREpHgMRERERKR4DERERESkeAxEREREpHgMRERERKR4DERERESkeAxEREREpHgMRERERKR4sgYiFxcXGBgYlNqCg4MBAPfv30dwcDDq1auHOnXqwN/fH1lZWXr7SEtLg5+fHywsLGBnZ4epU6eisLBQb8yuXbvQvn17mJqaomnTpoiJiXlWUyQiIqIaQNZAdOjQIWRkZEhbfHw8AOC1114DAEyaNAm//PILNmzYgN27dyM9PR2DBg2Snl9UVAQ/Pz/k5+dj//79iI2NRUxMDMLDw6Uxqamp8PPzQ8+ePXH06FGEhIRg1KhR2Lp167OdLBEREVVbBkIIIXcRJUJCQrB582acP38eOp0O9evXx7p16zB48GAAwJkzZ+Dm5obExER06tQJv/32G/r374/09HTY29sDAKKjozF9+nRcv34dKpUK06dPR1xcHE6ePCkdZ8iQIcjJycGWLVvKVZdOp4NGo0Fubi7UarXU7jF1TRXOvuolzwuQuwQiIiLZPOz3d1mqzTlE+fn5+OabbzBy5EgYGBggOTkZBQUF8Pb2lsa0bNkSjRo1QmJiIgAgMTERrVu3lsIQAPj6+kKn0yElJUUa8+A+SsaU7IOIiIjIWO4CSvz888/IycnBiBEjAACZmZlQqVSwtrbWG2dvb4/MzExpzINhqKS/pO9RY3Q6He7duwdzc/NSteTl5SEvL096rNPpnmhuREREVL1VmxWiVatWoW/fvnB0dJS7FERERECj0Uibk5OT3CURERHRU1QtAtGVK1ewfft2jBo1SmrTarXIz89HTk6O3tisrCxotVppzL+vOit5/LgxarW6zNUhAAgLC0Nubq60Xb169YnmR0RERNVbtQhEq1evhp2dHfz8/KQ2Dw8PmJiYICEhQWo7e/Ys0tLS4OXlBQDw8vLCiRMnkJ2dLY2Jj4+HWq2Gu7u7NObBfZSMKdlHWUxNTaFWq/U2IiIiqr1kD0TFxcVYvXo1AgMDYWz8f6c0aTQaBAUFITQ0FDt37kRycjLefvtteHl5oVOnTgAAHx8fuLu7Y/jw4Th27Bi2bt2KDz74AMHBwTA1NQUAjB07FpcuXcK0adNw5swZLF++HOvXr8ekSZNkmS8RERFVP7KfVL19+3akpaVh5MiRpfoWLFgAQ0ND+Pv7Iy8vD76+vli+fLnUb2RkhM2bN2PcuHHw8vKCpaUlAgMDMXv2bGmMq6sr4uLiMGnSJCxatAgNGzbEl19+CV9f32cyPyIiIqr+qtV9iKor3oeIiIio5qmR9yEiIiIikgsDERERESkeAxEREREpHgMRERERKR4DERERESkeAxEREREpHgMRERERKR4DERERESkeAxEREREpHgMRERERKR4DERERESkeAxEREREpHgMRERERKR4DERERESkeAxEREREpHgMRERERKR4DERERESkeAxEREREpHgMRERERKR4DERERESkeAxEREREpHgMRERERKR4DERERESkeAxEREREpHgMRERERKR4DERERESkeAxEREREpHgMRERERKR4DERERESkeAxEREREpHgMRERERKR4DERERESme7IHo2rVrGDZsGOrVqwdzc3O0bt0af/zxh9QvhEB4eDgcHBxgbm4Ob29vnD9/Xm8fN27cwNChQ6FWq2FtbY2goCDcvn1bb8zx48fRtWtXmJmZwcnJCZGRkc9kfkRERFT9yRqIbt68ic6dO8PExAS//fYbTp06haioKNStW1caExkZicWLFyM6OhpJSUmwtLSEr68v7t+/L40ZOnQoUlJSEB8fj82bN2PPnj0YM2aM1K/T6eDj4wNnZ2ckJydj3rx5mDVr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GTMGOTk56NKlC7Zs2QIzMzPpOWvXrsX48ePRu3dv6caMixcvlvo1Gg22bduG4OBgeHh4wNbWFuHh4bzknoiIiCSyBqIePXpACPHQfgMDA8yePRuzZ89+6BgbGxusW7fukcdp06YNfv/990rXSURERLVbtT2HiIiIqDapzm/7AXzrr9peZUZERET0rDAQERERkeIxEBEREZHiMRARERGR4jEQERERkeIxEBEREZHiMRARERGR4jEQERERkeIxEBEREZHiMRARERGR4jEQERERkeIxEBEREZHiMRARERGR4jEQERERkeIxEBEREZHiMRARERGR4jEQERERkeIxEBEREZHiMRARERGR4jEQERERkeIxEBEREZHiMRARERGR4jEQERERkeIxEBEREZHiMRARERGR4jEQERERkeIxEBEREZHiMRARERGR4jEQERERkeIxEBEREZHiKSoQLVu2DC4uLjAzM4OnpycOHjwod0lERERUDSgmEH3//fcIDQ3FzJkzcfjwYbRt2xa+vr7Izs6WuzQiIiKSmWIC0fz58zF69Gi8/fbbcHd3R3R0NCwsLPDVV1/JXRoRERHJTBGBKD8/H8nJyfD29pbaDA0N4e3tjcTERBkrIyIiourAWO4CnoW//voLRUVFsLe312u3t7fHmTNnSo3Py8tDXl6e9Dg3NxcAoNPp9MYV5d17CtVWnX/X+zCcx9NXG+YA1I551IY5AJxHdVIb5gDUjnn8ew4lj4UQj3+yUIBr164JAGL//v167VOnThUdO3YsNX7mzJkCADdu3Lhx48atFmxXr159bFZQxAqRra0tjIyMkJWVpdeelZUFrVZbanxYWBhCQ0Olx8XFxbhx4wbq1asHAwODp1KjTqeDk5MTrl69CrVa/VSO8SzUhnnUhjkAnEd1UhvmANSOedSGOQCcR3kJIXDr1i04Ojo+dqwiApFKpYKHhwcSEhIwcOBAAP+EnISEBIwfP77UeFNTU5iamuq1WVtbP4NKAbVaXaO/uUvUhnnUhjkAnEd1UhvmANSOedSGOQCcR3loNJpyjVNEIAKA0NBQBAYGokOHDujYsSMWLlyIO3fu4O2335a7NCIiIpKZYgLRG2+8gevXryM8PByZmZlo164dtmzZUupEayIiIlIexQQiABg/fnyZb5FVB6amppg5c2apt+pqmtowj9owB4DzqE5qwxyA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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Count plot\n", "sns.countplot(x='cap-color', data=df, )\n", "plt.title('Count Plot of Cap Color Frequencies')\n", "plt.xlabel('Cap Color')\n", "plt.ylabel('Frequency')\n", "plt.show()\n" ] }, { "cell_type": "markdown", "id": "7a2f82fe-774f-4a74-98f8-8a14a4a5e343", "metadata": {}, "source": [ "I wonder how the color correlates to the outcome -- are some color more poisonous? We'll do some pandas work to make this summary for us. (Here's a nice overview of `groupby`: https://builtin.com/data-science/pandas-groupby)" ] }, { "cell_type": "code", "execution_count": 175, "id": "618f14e5", "metadata": {}, "outputs": [], "source": [ "# Count observations by color and toxicity\n", "counts = df.groupby(['cap-color', 'class']).size().reset_index(name='count')" ] }, { "cell_type": "code", "execution_count": 176, "id": "f0d0b10f-85a4-4f4d-9c5f-7d1dc6a93dd0", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
cap-colorclasscount
0be660
1bp551
2ce526
3cp413
4ee1834
5ep1627
6ge2226
7gp1765
8ne2673
9np2137
10pe611
11pp483
12re467
13rp380
14ue502
15up413
16we1452
17wp1137
18ye1460
19yp1210
\n", "
" ], "text/plain": [ " cap-color class count\n", "0 b e 660\n", "1 b p 551\n", "2 c e 526\n", "3 c p 413\n", "4 e e 1834\n", "5 e p 1627\n", "6 g e 2226\n", "7 g p 1765\n", "8 n e 2673\n", "9 n p 2137\n", "10 p e 611\n", "11 p p 483\n", "12 r e 467\n", "13 r p 380\n", "14 u e 502\n", "15 u p 413\n", "16 w e 1452\n", "17 w p 1137\n", "18 y e 1460\n", "19 y p 1210" ] }, "execution_count": 176, "metadata": {}, "output_type": "execute_result" } ], "source": [ "counts" ] }, { "cell_type": "code", "execution_count": 165, "id": "931ce993-ecce-4aee-98b6-df53b08a66f6", "metadata": {}, "outputs": [ { "data": { "image/png": "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ANztmNkCAAAAABMQtgAAAADABIQtAAAAADABYQsAAAAATEDYAgAAAAATELYAAAAAwASELQAAAAAwAWELAAAAAExA2AIAAAAAExC2AAAAAMAEhC0AAAAAMAFhCwAAAABMQNgCAAAAABMQtgAAAADABIQtAAAAADABYQsAAAAATEDYAgAAAAATELYAAAAAwASELQAAAAAwAWELAAAAAExA2AIAAAAAExC2AAAAAMAEbs4uAEDxERaW4LS+4+NDndY3AABAfjCzBQAAAAAmIGwBAAAAgAkIWwAAAABgAsIWAAAAAJiAsAUAAAAAJiBsAQAAAIAJCFsAAAAAYALCFgAAAACYgLAFAAAAACYgbAEAAACACQhbAAAAAGACwhYAAAAAmICwBQAAAAAmIGwBAAAAgAkIWwAAAABgAsIWAAAAAJjAqWFr06ZNat++vYKCgmSxWPTFF1847H/++edlsVgcHm3atHFoc/r0aT333HPy9vaWr6+vevXqpfPnzzu02b17t5o2bSoPDw8FBwdrwoQJZp8aAAAAgLucU8PWhQsXVK9ePc2cOTPHNm3atNHJkyftj48//thh/3PPPae9e/cqLi5OK1as0KZNm9S3b1/7/tTUVLVu3VohISHauXOn3n33XY0ZM0bvv/++aecFAAAAAG75eVHlypW1fft2lS1b1mH72bNndf/99+vXX3/N1XHatm2rtm3b3rSNu7u7AgMDs923f/9+rVq1Stu3b9cDDzwgSZoxY4YeffRRTZw4UUFBQVq0aJHS0tI0d+5cWa1W1apVS7t27dLkyZMdQhkAAAAAFKZ8zWwlJCTo2rVrWbZfuXJFv//+e4GLut6GDRvk7++v6tWrq3///vrzzz/t+7Zu3SpfX1970JKkqKgoubi46LvvvrO3adasmaxWq71NdHS0Dh48qDNnzmTb55UrV5SamurwAAAAAIC8yNPM1vLly+3//vrrr+Xj42N/fu3aNa1du1ahoaGFVlybNm3UsWNHhYWF6ciRI3rttdfUtm1bbd26Va6urkpMTJS/v7/Da9zc3OTn56fExERJUmJiosLCwhzaBAQE2PeVKVMmS7/jx4/X2LFjC+08AAAAANx98hS2OnToIEmyWCzq0aOHw74SJUooNDRUkyZNKrTiOnfubP93nTp1VLduXVWpUkUbNmxQq1atCq2fG40cOVLDhg2zP09N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BAAAAIC8KrL3bAEAAABAcUbYAgAAAAATELYAAAAAwASELQAAAAAwAWELAAAAAExA2AIAAAAAExC2AAAAAMAEhC0AAAAAMAFhCwAAAABMQNgCAAAAABMQtgAAAADABIQtAAAAADABYQsAAAAATEDYAgAAAAATELYAAAAAwASELQAAAAAwAWELAAAAAExA2AIAAAAAExC2AAAAAMAEhC0AAAAAMAFhCwAAAABMQNgCAAAAABMQtgAAAADABIQtAAAAADABYQsAAAAATEDYAgAAAAATELYAAAAAwASELQAAAAAwAWELAAAAAExA2AIAAAAAExC2AAAAAMAEhC0AAAAAMAFhCwAAAABMQNgCAAAAABMQtgAAAADABIQtAAAAADABYQsAAAAATEDYAgAAAAATELYAAAAAwASELQAAAAAwAWELAAAAAExA2AIAAAAAExC2AAAAAMAEhC0AAAAAMAFhCwAAAABMQNgCAAAAABMQtgAAAADABIQtAAAAADABYQsAAAAATODm7ALuFAlhYU7rOzQ+3ml9AwAAAMgeM1sAAAAAYALCFgAAAACYgLAFAAAAACYgbAEAAACACQhbAAAAAGACwhYAAAAAmICwBQAAAAAm4HO2AAAoRHzuIgAgEzNbAAAAAGACwhYAAAAAmICwBQAAAAAmIGwBAAAAgAkIWwAAAABgAsIWAAAAAJiAsAUAAAAAJiBsAQAAAIAJCFsAAAAAYAI3ZxeAggsLS3Ba3/HxoU7rGwAAACjKmNkCAAAAABMQtgAAAADABIQtAAAAADAB92zBqRLCwpzWd2h8vNP6BgAAwJ2vSM9sjRkzRhaLxeFRo0YN+/7Lly8rJiZGZcuWValSpdSpUyclJSU5HOPYsWNq166dPD095e/vr+HDh+vq1au3+1QAAAAA3GWK/MxWrVq1tGbNGvtzN7e/Sh46dKhWrlypzz77TD4+PhowYIA6duyoLVu2SJKuXbumdu3aKTAwUN9++61Onjyp7t27q0SJEvrnP/95288FAAAAwN2jyIctNzc3BQYGZtmekpKi//u//9PixYvVsmVLSdK8efNUs2ZNbdu2TQ8++KBWr16tffv2ac2aNQoICFD9+vU1btw4jRgxQmPGjJHVas22zytXrujKlSv256mpqeacHAAAAIA7VpEPW4cOHVJQUJA8PDwUERGh8ePH65577tHOnTuV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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Create the bar plot\n", "plt.figure(figsize=(10, 6))\n", "sns.barplot(x='cap-color', y='count', hue='class', data=counts, palette={'p': 'blue', 'e': 'red'})\n", "\n", "# Add plot title and labels\n", "plt.title('Distribution of Mushroom Colors with Poisonous Indication')\n", "plt.xlabel('Color')\n", "plt.ylabel('Count')\n", "\n", "\n", "# Customize the legend\n", "legend = plt.legend(title='Toxicity', labels=['Edible', 'Poisonous'])\n", "legend.get_texts()[0].set_color('red') # Edible in red\n", "legend.get_texts()[1].set_color('blue') # Poisonous in blue\n", "\n", "\n", "# Show the plot\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 143, "id": "405b65e9-f10a-4d98-b812-4fadff77660f", "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
classcap-shapecap-surfacecap-colorruisesodorgill-attachmentgill-spacinggill-sizegill-color...stalk-surface-above-ringstalk-surface-below-ringstalk-color-above-ringstalk-color-below-ringveil-colorring-numberring-typespore-print-colorpopulationhabitat
count25986259862598625986259862598625986259862598625986...25986259862598625986259862598625986259862598625986
unique264102922212...4499435967
topexynfnfcbb...sswwwopwvd
freq143541114711081826915833104362129219491174897247...1454814042121531183619245192021200985781192010057
\n", "

4 rows × 22 columns

\n", "
" ], "text/plain": [ " class cap-shape cap-surface cap-color ruises odor gill-attachment \\\n", "count 25986 25986 25986 25986 25986 25986 25986 \n", "unique 2 6 4 10 2 9 2 \n", "top e x y n f n f \n", "freq 14354 11147 11081 8269 15833 10436 21292 \n", "\n", " gill-spacing gill-size gill-color ... stalk-surface-above-ring \\\n", "count 25986 25986 25986 ... 25986 \n", "unique 2 2 12 ... 4 \n", "top c b b ... s \n", "freq 19491 17489 7247 ... 14548 \n", "\n", " stalk-surface-below-ring stalk-color-above-ring stalk-color-below-ring \\\n", "count 25986 25986 25986 \n", "unique 4 9 9 \n", "top s w w \n", "freq 14042 12153 11836 \n", "\n", " veil-color ring-number ring-type spore-print-color population habitat \n", "count 25986 25986 25986 25986 25986 25986 \n", "unique 4 3 5 9 6 7 \n", "top w o p w v d \n", "freq 19245 19202 12009 8578 11920 10057 \n", "\n", "[4 rows x 22 columns]" ] }, "execution_count": 143, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.describe()" ] }, { "cell_type": "code", "execution_count": 144, "id": "e8187689-c4d0-4181-aff4-666b0a43138b", "metadata": {}, "outputs": [], "source": [ "# Count observations by odor and toxicity\n", "counts = df.groupby(['odor', 'class']).size().reset_index(name='count')" ] }, { "cell_type": "code", "execution_count": 145, "id": "2e3c3a6c-4d7b-4fed-befe-0ef7f74147fe", "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA1sAAAIjCAYAAAD1OgEdAAAAP3RFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMS5wb3N0MSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8kixA/AAAACXBIWXMAAA9hAAAPYQGoP6dpAABgvElEQVR4nO3deVwW5f7/8fcNsrkAosiSKLikYJqppeSSJkmGZbmUZu57qKkdM09mZnUsK9cyT3USK63MU2nihqjpMVKjY+4eLVxKAb8p3GoKCvP7gx933oIKyHizvJ6Px/3Ie+a6Zz5zOdzy7pq5xmIYhiEAAAAAQLFycnQBAAAAAFAWEbYAAAAAwASELQAAAAAwAWELAAAAAExA2AIAAAAAExC2AAAAAMAEhC0AAAAAMAFhCwAAAABMQNgCAAAAABMQtoBSbOrUqbJYLLdkX+3bt1f79u1t7zdt2iSLxaJly5bdkv0PGDBAwcHBt2RfRXXu3DkNGTJE/v7+slgsGjt2rKNLuq6YmBhZLBb9+OOPji6lVCnp5+KRI0dksVgUExNT4LZvvfWW+YUVQEnv27Li6u/zwpwzZtcClDWELaCEyP3FN/fl7u6uwMBARUZGau7cuTp79myx7OfEiROaOnWqdu7cWSzbK04lubaC+Mc//qGYmBiNHDlSn3zyifr27XvNtsHBwbJYLIqIiMh3/QcffGA7FwhDxWfr1q167LHH5OfnJzc3NwUHB2v48OE6duyYo0sz1apVqzR16tRi327u/3TJfbm4uKhOnTrq16+ffv3112LfX3lksVg0atQoR5dxU/bt26epU6fqyJEjji4FuOUqOLoAAPamTZumkJAQXbp0ScnJydq0aZPGjh2rmTNnasWKFWrSpImt7eTJk/X8888XavsnTpzQyy+/rODgYDVt2rTAn1u3bl2h9lMU16vtgw8+UHZ2tuk13IwNGzaoVatWeumllwrU3t3dXRs3blRycrL8/f3t1i1evFju7u66ePGiGaWWS/PmzdMzzzyjOnXqaPTo0QoICND+/fv14Ycf6osvvtCqVat07733OrrMm1a7dm1duHBBLi4utmWrVq3Su+++a0rgkqQxY8bo7rvv1qVLl/TTTz/p/fffV2xsrHbv3q3AwMACb6c0/JyXRfmdM8Vp3759evnll9W+ffs8I5e34t8WwJEY2QJKmM6dO+upp57SwIEDNWnSJK1du1br169XamqqHnnkEV24cMHWtkKFCnJ3dze1nj///FOS5OrqKldXV1P3dT0uLi5yc3Nz2P4LIjU1Vd7e3gVu37p1a1WuXFlffPGF3fLffvtNW7ZsUVRUVDFXWHwMw7A7F0u6rVu3auzYsWrTpo127dqlyZMna/DgwXrrrbeUmJgod3d39ejRQ2fOnLmldWVnZxd7oM4dGXd2di7W7V5P27Ztbd9b8+bN01tvvaXTp09r0aJFhdpOafg5L4sccc7kcvS/LYDZCFtAKXD//ffrxRdf1NGjR/Xpp5/alud3z1ZcXJzatGkjb29vVa5cWQ0aNNDf//53STmX/Nx9992SpIEDB9ou/cm9Tr99+/a64447lJiYqHbt2qlixYq2z17ruvqsrCz9/e9/l7+/vypVqqRHHnlEx48ft2sTHBysAQMG5Pnsldu8UW353ctx/vx5PfvsswoKCpKbm5saNGigt956S4Zh2LXLvQznm2++0R133CE3Nzc1atRIa9asyb/Dr5KamqrBgwfLz89P7u7uuvPOO+1+icy9lCopKUmxsbG22m90yYy7u7u6deumJUuW2C3/7LPPVLVqVUVGRub5zLX+HvLrn88//1zNmzdXlSpV5OnpqcaNG2vOnDl5PpuRkaHx48fL19dXlSpV0mOPPaZTp07ZtQkODlaXLl20du1atWjRQh4eHvrnP/8pSfr111/Vs2dP+fj4qGLFimrVqpViY2Pz7OdG/SjZ30P07rvvqk6dOqpYsaI6deqk48ePyzAMvfLKK6pZs6Y8PDzUtWtXnT59Ot/+vdIrr7wii8WiRYsWqWLFinbr6tatqxkzZujkyZO2Y8qVe864u7vrjjvu0Ndff53v9gt7Li5evFiNGjWSm5vbNc/D8ePHq1q1anbbGD16tCwWi+bOnWtblpKSIovFovfee8+uD6/82Xn33Xdt+899Xe39999X3bp15ebmprvvvls7duzIt66CuP/++yVJSUlJtmXz58+3HXNgYKCio6OVlpZm97minscFOQdzf06XLl2q1157TTVr1pS7u7s6duyow4cP5zmGL7/8Us2bN5eHh4eqV6+up556Sr///rtdGzN+Hm+ksMeR+/fq4eGhe+65R1u2bMnT5lr3bB04cECPP/64fH195eHhoQYNGuiFF16wrT969KiefvppNWjQQB4eHqpWrZp69uxp990XExOjnj17SpI6dOhgO/82bdokKf8+LOx3RXGeu0Bx4zJCoJTo27ev/v73v2vdunUaOnRovm327t2rLl26qEmTJpo2bZrc3Nx0+PBhbd26VZIUGhqqadOmacqUKRo2bJjatm0rSXaXTv3xxx/q3LmzevXqpaeeekp+fn7Xreu1116TxWLRxIkTlZqaqtmzZysiIkI7d+6Uh4dHgY+vILVdyTAMPfLII9q4caMGDx6spk2bau3atZowYYJ+//13zZo1y679f/7zH3311Vd6+umnVaVKFc2dO1fdu3fXsWPHVK1atWvWdeHCBbVv316HDx/WqFGjFBISoi+//FIDBgxQWlqannnmGYWGhuqTTz7RuHHjVLNmTT377LOSJF9f3xse95NPPqlOnTrpl19+Ud26dSVJS5YsUY8ePW7qkp64uDj17t1bHTt21BtvvCFJ2r9/v7Zu3apnnnnGru3o0aNVtWpVvfTSSzpy5Ihmz56tUaNG5RlxO3jwoHr37q3hw4dr6NChatCggVJSUnTvvffqzz//1JgxY1StWjUtWrRIjzzyiJYtW6bHHnuswP14pcWLFyszM1OjR4/W6dOnNWPGDD3++OO6//77tWnTJk2cOFGHDx/WvHnz9Le//U0fffTRNfvizz//VHx8vNq2bauQkJB82zzxxBMaNmyYVq5cabs0d926derevbvCwsI0ffp0/fHHHxo4cKBq1qxp99nCnosbNmzQ0qVLNWrUKFWvXv2aE0K0bdtWs2bN0t69e3XHHXdIkrZs2SInJydt2bJFY8aMsS2TpHbt2uW7neHDh+vEiROKi4vTJ598km+bJUuW6OzZsxo+fLgsFotmzJihbt266ddffy3SefjLL79Iku1na+rUqXr55ZcVERGhkSNH6uDBg3rvvfe0Y8cObd269Zr7KMh5XNBzMNfrr78uJycn/e1vf1N6erpmzJihPn36aNu2bbY2MTExGjhwoO6++25Nnz5dKSkpmjNnjrZu3ar//ve/hRrBLuhxFFZBjuNf//qXhg8frnvvvVdjx47Vr7/+qkceeUQ+Pj4KCgq67vZ37dqltm3bysXFRcOGDVNwcLB++eUXffvtt3rttdckSTt27ND333+vXr16qWbNmjpy5Ijee+89tW/fXvv27VPFihXVrl07jRkzRnPnztXf//53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/PmqWbOm7ebxunXrytvbWwsWLFCVKlVUqVIltWzZslD3kVzJx8dHbdq00cCBA5WSkqLZs2erXr16dtPTDxkyRMuWLdODDz6oxx9/XL/88os+/fRTuwkrClvbww8/rA4dOuiFF17QkSNHdOedd2rdunVavny5xo4dm2fbRTVs2DD985//1IABA5SYmKjg4GAtW7ZMW7du1ezZs2846UJB1a5dW1OnTr1hu0GDBmnmzJmKjIzU4MGDlZqaqgULFqhRo0a2yR2knD4/ffq07r//ftWsWVNHjx7VvHnz1LRp02tOuVwUzz//vD777DN17txZY8aMkY+PjxYtWqSkpCT9+9//tt13cav68VratWunt956S+PHj1eTJk00YMAABQQE6MCBA/rggw+UnZ2tVatW2d1oP336dEVFRalNmzYaNGiQTp8+rXnz5qlRo0Y6d+6crZ3Z52Lbtm31+eefq3Hjxrb6mjVrpkqVKul///vfdS87zZU78jVmzBhFRkbK2dlZvXr1uqm6CsrX11eTJk3Syy+/rAcffFCPPPKIDh48qPnz5+vuu+/WU089dc3PFuQ8Lug5WFAuLi564403NHDgQN13333q3bu3ber34OBgjRs3zta2pP08Xn0cr776qoYPH677779fTzzxhJKSkrRw4cIb3rMlSXPnzlWbNm3UrFkzDRs2TCEhITpy5IhiY2O1c+dOSVKXLl30ySefyMvLS2FhYUpISND69evzPE6jadOmcnZ21htvvKH09HS5ubnp/vvvV40aNfLs19HfFUCxc8QUiADyyp2GO/fl6upq+Pv7Gw888IAxZ84cuynGc1099Xt8fLzRtWtXIzAw0HB1dTUCAwON3r17G//73//sPrd8+XIjLCzMqFChgt10v/fdd5/RqFGjfOu71tTvn332mTFp0iSjRo0ahoeHhxEVFZVnqmDDMIy3337buO222ww3NzejdevWxo8//pjvtMnXqu3qqZQNI2d653HjxhmBgYGGi4uLUb9+fePNN9+0m5rYMPJOnZzrWlPSXy0lJcUYOHCgUb16dcPV1dVo3LhxvtPTF2Xq9+u51uMAPv30U6NOnTqGq6ur0bRpU2Pt2rV5+mfZsmVGp06djBo1ahiurq5GrVq1jOHDhxsnT5684fZz/26vnKb5evX+8ssvRo8ePQxvb2/D3d3duOeee4yVK1fmaVeQ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AADABIQtAAAAADABYQsAAAAATEDYAgAAAAATELYAAAAAwASELQAAAAAwAWELAAAAAExA2AIAAAAAExC2AAAAAMAEhC0AAAAAMAFhCwAAAABMQNgCAAAAABMQtgAAAADABIQtAAAAADABYQsAAAAATEDYAgAAAAATELYAAAAAwASELQAAAAAwAWELAAAAAExA2AIAAAAAExC2AAAAAMAEhC0AAAAAMAFhCwAAAABMQNgCAAAAABMQtgAAAADABIQtAAAAADABYQsAAAAATEDYAgAAAAATELYAAAAAwAQOD1u///67nnrqKVWrVk0eHh5q3LixfvzxR9t6wzA0ZcoUBQQEyMPDQxERETp06JDdNk6fPq0+ffrI09NT3t7eGjx4sM6dO2fXZteuXWrbtq3c3d0VFBSkGTNm3JLjAwAAAFA+OTRsnTlzRq1bt5aLi4tWr16tffv26e2331bVqlVtbWbMmKG5c+dqwYIF2rZtmypVqqTIyEhdvHjR1qZPnz7au3ev4uLitHLlSm3evFnDhg2zrbdarerUqZNq166txMREvfnmm5o6daref//9W3q8AAAAAMoPi2EYhqN2/vzzz2vr1q3asmVLvusNw1BgYKCeffZZ/e1vf5Mkpaeny8/PTzExMerVq5f279+vsLAw7dixQy1atJAkrVmzRg899JB+++03BQYG6r333tMLL7yg5ORkubq62vb9zTff6MCBAzes02q1ysvLS+np6fL09CymowcAwPGOhIQ4ugRJUnBSkqNLAIACKUw2cOjI1ooVK9SiRQv17NlTNWrU0F133aUPPvjAtj4pKUnJycmKiIiwLfPy8lLLli2VkJAgSUpISJC3t7ctaElSRESEnJyctG3bNlubdu3a2YKWJEVGRurgwYM6c+ZMnroyMjJktVrtXgAAAABQGA4NW7/++qvee+891a9fX2vXrtXIkSM1ZswYLVq0SJKUnJwsSfLz87P7nJ+fn21dcnKyatSoYbe+QoUK8vHxsWuT3zau3MeVpk+fLi8vL9srKCioGI4WAAAAQHni0LCVnZ2tZs2a6R//+IfuuusuDRs2TEOHDtWCBQscWZYmTZqk9PR02+v48eMOrQcAAABA6ePQsBUQEKCwsDC7ZaGhoTp27Jgkyd/fX5KUkpJi1yYlJcW2zt/fX6mpqXbrL1++rNOnT9u1yW8bV+7jSm5ubvL09LR7AQAAAEBhODRstW7dWgcPHrRb9r///U+1a9eWJIWEhMjf31/x8fG29VarVdu2bVN4eLgkKTw8XGlpaUpMTLS12bBhg7Kzs9WyZUtbm82bN+vSpUu2NnFxcWrQoIHdzIcAAAAAUFwcGrbGjRunH374Qf/4xz90+PBhLVmyRO+//76io6MlSRaLRWPHjtWrr76qFStWaPfu3erXr58CAwP16KOPSsoZCXvwwQc1dOhQbd++XVu3btWoUaPUq1cvBQYGSpKefPJJubq6avDgwdq7d6+++OILzZkzR+PHj3fUoQMAAAAo4yo4cud33323vv76a02aNEnTpk1TSEiIZs+erT59+tjaPPfcczp//ryGDRumtLQ0tWnTRmvWrJG7u7utzeLFizVq1Ch17NhRTk5O6t69u+bOnWtb7+XlpXXr1ik6OlrNmzdX9erVNWXKFLtncQEAAABAcXLoc7ZKC56zBQAoq3jOFgAUTql5zhYAAAAAlFWELQAAAAAwAWELAAAAAExA2AIAAAAAExC2AAAAAMAEhC0AAAAAMAFhCwAAAABMQNgCAAAAABMQtgAAAADABIQtAAAAADABYQsAAAAATEDYAgAAAAATELYAAAAAwASELQAAAAAwAWELAAAAAExA2AIAAAAAExC2AAAAAMAEhC0AAAAAMAFhCwAAAABMQNgCAAAAABMQtgAAAADABIQtAAAAADABYQsAAAAATEDYAgAAAAATELYAAAAAwASELQAAAAAwAWELAAAAAExA2AIAAAAAExC2AAAAAMAEhC0AAAAAMAFhCwAAAABMQNgCAAAAABMQtgAAAADABIQtAAAAADABYQsAAAAATEDYAgAAAAATELYAAAAAwASELQAAAAAwAWELAAAAAExA2AIAAAAAExC2AAAAAMAEhC0AAAAAMAFhCwAAAABM4NCwNXXqVFksFrtXw4YNbesvXryo6OhoVatWTZUrV1b37t2VkpJit41jx44pKipKFStWVI0aNTRhwgRdvnzZrs2mTZvUrFkzubm5qV69eoqJibkVhwcAAACgHHP4yFajRo108uRJ2+s///mPbd24ceP07bff6ssvv9R3332nEydOqFu3brb1WVlZioqKUmZmpr7//nstWrRIMTExmjJliq1NUlKSoqKi1KFDB+3cuVNjx47VkCFDtHbt2lt6nAAAAADKF4th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Dw9Xq1atJOXcIxYWFqa+fftqxowZSk5O1uTJkxUdHS03NzdJ0ogRI/TOO+/oueee06BBg7RhwwYtXbpUsbGxhTl0AAAAACiUQoUtPz8/ff/99xo5cqQmTZqk3FnjLRaLIiMj9e677+aZjOJmzJo1S05OTurevbsyMjIUGRmp+fPn29Y7Oztr5cqVGjlypMLDw1WpUiX1799f06ZNs7UJCQlRbGysxo0bpzlz5qhmzZr68MMPecYWAAAAAFMV6jlbVzpz5owOHz4swzBUv359Va1atbhrKzF4zhZgLi4jBByH52wBQOEUJhsUamTrSlWrVtXdd99d1I8DAAAAQJlWqNkIAQAAAAAFQ9gCAAAAABMQtgAAAADABIQtAAAAADABYQsAAAAATEDYAgAAAAATELYAAAAAwASELQAAAAAwAWELAAAAAExA2AIAAAAAExC2AAAAAMAEhC0AAAAAMAFhCwAAAABMQNgCAAAAABMQtgAAAADABIQtAAAAADABYQsAAAAATEDYAgAAAAATELYAAAAAwASELQAAAAAwAWELAAAAAExA2AIAAAAAExC2AAAAAMAEhC0AAAAAMAFhCwAAAABMQNgCAAAAABMQtgAAAADABIQtAAAAADABYQsAAAAATEDYAgAAAAATELYAAAAAwASELQAAAAAwAWELAAAAAExA2AIAAAAAExC2AAAAAMAEhC0AAAAAMAFhCwAAAABMQNgCAAAAABMQtgAAAADABIQtAAAAADABYQsAAAAATEDYAgAAAAATODRsvffee2rSpIk8PT3l6emp8PBwrV692rb+4sWLio6OVrVq1VS5cmV1795dKSkpdts4duyYoqKiVLFiRdWoUUMTJkzQ5cuX7dps2rRJzZo1k5ubm+rVq6eYmJhbcXgAAAAAyjGHhq2aNWvq9ddfV2Jion788Ufdf//96tq1q/bu3StJGjdunL799lt9+eWX+u6773TixAl169bN9vmsrCxFRUUpMzNT33//vRYtWqSYmBhNmTLF1iYpKUlRUVHq0KGDdu7cqbFjx2rIkCFau3btLT9eAAAAAOWHxTAMw9FFXMnHx0dvvvmmevToIV9fXy1ZskQ9evSQJB04cEChoaFKSEhQq1attHr1anXp0kUnTpyQn5+fJGnBggWaOHGiTp06JVdXV02cOFGxsbHas2ePbR+9evVSWlqa1qxZU6CarFarvLy8lJ6eLk9Pz+I/aKCcCwk54ugSJElJScGOLgG45Y6EhDi6BElScFKSo0sAgAIpTDYoMfdsZWVl6fPPP9f58+cVHh6uxMREXbp0SREREbY2DRs2VK1atZSQkCBJSkhIUOPGjW1BS5IiIyNltVpto2MJCQl228htk7uN/GRkZMhqtdq9AAAAAKAwHB62du/ercqVK8vNzU0jRozQ119/rbCwMCUnJ8vV1VXe3t527f38/JScnCxJSk5Otgtauetz112vjdVq1YULF/Ktafr06fLy8rK9goKCiuNQAQAAAJQjDg9bDRo00M6dO7Vt2zaNHDlS/fv31759+xxa06RJk5Senm57HT9+3KH1AAAAACh9Kji6AFdXV9WrV0+S1Lx5c+3YsUNz5szRE088oczMTKWlpdmNbqWkpMjf31+S5O/vr+3bt9ttL3e2wivbXD2DYUpKijw9PeXh4ZFvTW5ubnJzcyuW4wMAAABQPjl8ZOtq2dnZysjIUPPmzeXi4qL4+HjbuoMHD+rYsWMKDw+XJIWHh2v37t1KTU21tYmLi5Onp6fCwsJsba7cRm6b3G0AAAAAgBkcOrI1adIkde7cWbVq1dLZs2e1ZMkSbdq0SWvXrpWXl5cGDx6s8ePHy8fHR56enho9erTCw8PVqlUrSVKnTp0UFhamvn37asaMGUpOTtbkyZMVHR1tG5kaMWKE3nnnHT333HMaNGiQNmzYoKVLlyo2NtaRhw4AAACgjHNo2EpNTVW/fv108uRJeXl5qUmTJlq7dq0eeOABSdKsWbPk5OSk7t27KyMjQ5GRkZo/f77t887Ozlq5cqVGjhyp8PBwVapUSf3799e0adNsbUJCQhQbG6tx48Zpzpw5qlmzpj788ENFRkbe8uMFAAAAUH6UuOdslUQ8ZwswF8/ZAhyH52wBQOGUyudsAQAAAEBZQtgCAAAAABMQtgAAAADABIQtAAAAADABYQsAAAAATEDYAgAAAAATELYAAAAAwASELQAAAAAwAWELAAAAAExA2AIAAAAAExC2AAAAAMAEhC0AAAAAMAFhCwAAAABMQNgCAAAAABMQtgAAAADABIQtAAAAADABYQsAAAAATEDYAgAAAAATELYAAAAAwASELQAAAAAwAWELAAAAAExA2AIAAAAAExC2AAAAAMAEhC0AAAAAMAFhCwAAAABMQNgCAAAAABMQtgAAAADABIQtAAAAADABYQsAAAAATEDYAgAAAAATELYAAAAAwASELQAAAAAwQQVHFwAAABAScsTRJUiSkpKCHV0CgDKEkS0AAAAAMAFhCwAAAABMQNgCAAAAABMQtgAAAADABIQtAAAAADABYQsAAAAATEDYAgAAAAATELYAAAAAwASELQAAAAAwAWELAAAAAEzg0LA1ffp03X333apSpYpq1KihRx99VAcPHrRrc/HiRUVHR6tatWqqXLmyunfvrpSUFLs2x44dU1RUlCpWrKgaNWpowoQJunz5sl2bTZs2qVmzZnJzc1O9evUUExNj9uEBAAAAKMccGra+++47RUdH64cfflBcXJwuXbqkTp066fz587Y248aN07fffqsvv/xS3333nU6cOKFu3brZ1mdlZSkqKkqZmZn6/vvvtWjRIsXExGjKlCm2NklJSYqKilKHDh20c+dOjR07VkOGDNHatWtv6fECAAAAKD8shmEYji4i16lTp1SjRg199913ateundLT0+Xr66slS5aoR48ekqQDBw4oNDRUCQkJatWqlVavXq0uXbroxIkT8vPzkyQtWLBAEydO1KlTp+Tq6qqJEycqNjZWe/bsse2rV69eSktL05o1a25Yl9VqlZeXl9LT0+Xp6WnOwQPlWEjIEUeXIElKSgp2dAnALXckJMTRJUiSOmijo0uQxPcAgBsrTDYoUfdspaenS5J8fHwkSYmJibp06ZIiIiJsbRo2bKhatWopISFBkpSQkKDGjRvbgpYkRUZGymq1au/evbY2V24jt03uNq6WkZEhq9Vq9wIAAACAwigxYSs7O1tjx45V69atdccdd0iSkpOT5erqKm9vb7u2fn5+Sk5OtrW5Mmjlrs9dd702VqtVFy5cyFPL9OnT5eXlZXsFBQUVyzECAAAAKD9KTNiKjo7Wnj179Pnnnzu6FE2aNEnp6em21/Hjxx1dEgAAAIBSpoKjC5CkUaNGaeXKldq8ebNq1qxpW+7v76/MzEylpaXZjW6lpKTI39/f1mb79u1228udrfDKNlfPYJiSkiJPT095eHjkqcfNzU1ubm7FcmwAAAAAyieHjmwZhqFRo0bp66+/1oYNGxRy1U26zZs3l4uLi+Lj423LDh48qGPHjik8PFySFB4ert27dys1NdXWJi4uTp6engoLC7O1uXIbuW1ytwEA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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Create the bar plot\n", "plt.figure(figsize=(10, 6))\n", "sns.barplot(x='odor', y='count', hue='class', data=counts, palette={'p': 'blue', 'e': 'red'})\n", "\n", "# Add plot title and labels\n", "plt.title('Distribution of Mushroom Odor with Poisonous Indication')\n", "plt.xlabel('Odor')\n", "plt.ylabel('Count')\n", "\n", "# Customize the legend\n", "legend = plt.legend(title='Toxicity', labels=['Edible', 'Poisonous'])\n", "legend.get_texts()[0].set_color('red') # Edible in red\n", "legend.get_texts()[1].set_color('blue') # Poisonous in blue\n", "\n", "# Show the plot\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "0bdfeadc-13f3-4041-a954-d46ed9ead5b2", "metadata": {}, "source": [ "## Correlation matrix heat map" ] }, { "cell_type": "markdown", "id": "7fc020d8-adfa-48de-b9bb-9dabde9499a4", "metadata": {}, "source": [ "Let's get a quick visual representation of the relationshop between features in this dataset. We'll use a version of a Chi-Squared test on all pairs $(n,m)$ of features in the dataset, including the target. (Heat maps for continuous data are easy to plot -- because of the categories we have to do some extra work here. You can treat `cramers_v` as a black box for now.)" ] }, { "cell_type": "code", "execution_count": 62, "id": "1cd6565e-12d2-48a1-bfc1-35c44e39e22b", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
classcap-shapecap-surfacecap-colorruisesodorgill-attachmentgill-spacinggill-sizegill-color...stalk-surface-above-ringstalk-surface-below-ringstalk-color-above-ringstalk-color-below-ringveil-colorring-numberring-typespore-print-colorpopulationhabitat
class0.9999220.0303970.0430750.0200840.0899740.4651910.0011380.0637790.1229080.088500...0.1297490.1025290.0502020.0443770.0050630.0221750.0920490.1246720.0633700.053764
cap-shape0.0303971.0000000.0115470.0207610.0143050.0207790.0086880.0172700.0179950.020523...0.0111070.0174040.0183790.0174320.0171280.0079260.0121830.0162050.0182080.015867
cap-surface0.0430750.0115471.0000000.0225890.0087360.0248780.0155690.0272910.0204650.025335...0.0129020.0120600.0228970.0216190.0127880.0167060.0142140.0163010.0220580.020441
cap-color0.0200840.0207610.0225891.0000000.0215420.0228040.0171710.0234270.0219740.024858...0.0195450.0169090.0248670.0208310.0174870.0152350.0237210.0196810.0234780.022749
ruises0.0899740.0143050.0087360.0215420.9999190.0434310.0027670.0151490.0111580.041328...0.0257610.0216590.0276720.0315430.0065080.0117590.0373410.0345450.0142830.026531
odor0.4651910.0207790.0248780.0228040.0434311.0000000.0170010.0264580.0469780.027601...0.0277400.0315680.0259460.0230860.0154900.0194580.0308610.0322360.0262930.021654
gill-attachment0.0011380.0086880.0155690.0171710.0027670.0170010.9998700.0047890.0077530.023883...0.0086270.0117420.0202850.0216620.0104710.0044080.0109660.0106410.0129920.012999
gill-spacing0.0637790.0172700.0272910.0234270.0151490.0264580.0047890.9998970.0112270.021896...0.0112530.0145410.0224060.0285430.0084390.0139130.0130690.0189360.0278930.029246
gill-size0.1229080.0179950.0204650.0219740.0111580.0469780.0077530.0112270.9999130.031603...0.0081550.0095700.0276920.0307960.0047860.0080130.0390650.0417010.0256680.023956
gill-color0.0885000.0205230.0253350.0248580.0413280.0276010.0238830.0218960.0316031.000000...0.0300650.0314510.0234050.0273070.0198350.0199870.0333630.0317310.0297690.026966
stalk-shape0.0168550.0178220.0032290.0357450.0008320.0369320.0084900.0014250.0076820.031472...0.0331360.0148590.0289660.0271320.0086270.0171580.0367300.0264280.0203620.029390
stalk-root0.0472940.0198820.0199690.0298920.0306380.0310820.0119250.0161210.0410620.033103...0.0157580.0159290.0312780.0242210.0161080.0158480.0223310.0329830.0257490.029484
stalk-surface-above-ring0.1297490.0111070.0129020.0195450.0257610.0277400.0086270.0112530.0081550.030065...1.0000000.0258750.0293410.0263360.0108730.0086140.0326240.0317090.0123880.018257
stalk-surface-below-ring0.1025290.0174040.0120600.0169090.0216590.0315680.0117420.0145410.0095700.031451...0.0258751.0000000.0246550.0245490.0110190.0155290.0301880.0343590.0214070.018069
stalk-color-above-ring0.0502020.0183790.0228970.0248670.0276720.0259460.0202850.0224060.0276920.023405...0.0293410.0246551.0000000.0251800.0182000.0202520.0249440.0218690.0236040.020929
stalk-color-below-ring0.0443770.0174320.0216190.0208310.0315430.0230860.0216620.0285430.0307960.027307...0.0263360.0245490.0251801.0000000.0181260.0138930.0264380.0264700.0242880.025119
veil-color0.0050630.0171280.0127880.0174870.0065080.0154900.0104710.0084390.0047860.019835...0.0108730.0110190.0182000.0181261.0000000.0097710.0137930.0187530.0151030.017111
ring-number0.0221750.0079260.0167060.0152350.0117590.0194580.0044080.0139130.0080130.019987...0.0086140.0155290.0202520.0138930.0097711.0000000.0085270.0184410.0206090.016895
ring-type0.0920490.0121830.0142140.0237210.0373410.0308610.0109660.0130690.0390650.033363...0.0326240.0301880.0249440.0264380.0137930.0085271.0000000.0360000.0162190.017606
spore-print-color0.1246720.0162050.0163010.0196810.0345450.0322360.0106410.0189360.0417010.031731...0.0317090.0343590.0218690.0264700.0187530.0184410.0360001.0000000.0207550.023303
population0.0633700.0182080.0220580.0234780.0142830.0262930.0129920.0278930.0256680.029769...0.0123880.0214070.0236040.0242880.0151030.0206090.0162190.0207551.0000000.025203
habitat0.0537640.0158670.0204410.0227490.0265310.0216540.0129990.0292460.0239560.026966...0.0182570.0180690.0209290.0251190.0171110.0168950.0176060.0233030.0252031.000000
\n", "

22 rows × 22 columns

\n", "
" ], "text/plain": [ " class cap-shape cap-surface cap-color \\\n", "class 0.999922 0.030397 0.043075 0.020084 \n", "cap-shape 0.030397 1.000000 0.011547 0.020761 \n", "cap-surface 0.043075 0.011547 1.000000 0.022589 \n", "cap-color 0.020084 0.020761 0.022589 1.000000 \n", "ruises 0.089974 0.014305 0.008736 0.021542 \n", "odor 0.465191 0.020779 0.024878 0.022804 \n", "gill-attachment 0.001138 0.008688 0.015569 0.017171 \n", "gill-spacing 0.063779 0.017270 0.027291 0.023427 \n", "gill-size 0.122908 0.017995 0.020465 0.021974 \n", "gill-color 0.088500 0.020523 0.025335 0.024858 \n", "stalk-shape 0.016855 0.017822 0.003229 0.035745 \n", "stalk-root 0.047294 0.019882 0.019969 0.029892 \n", "stalk-surface-above-ring 0.129749 0.011107 0.012902 0.019545 \n", "stalk-surface-below-ring 0.102529 0.017404 0.012060 0.016909 \n", "stalk-color-above-ring 0.050202 0.018379 0.022897 0.024867 \n", "stalk-color-below-ring 0.044377 0.017432 0.021619 0.020831 \n", "veil-color 0.005063 0.017128 0.012788 0.017487 \n", "ring-number 0.022175 0.007926 0.016706 0.015235 \n", "ring-type 0.092049 0.012183 0.014214 0.023721 \n", "spore-print-color 0.124672 0.016205 0.016301 0.019681 \n", "population 0.063370 0.018208 0.022058 0.023478 \n", "habitat 0.053764 0.015867 0.020441 0.022749 \n", "\n", " ruises odor gill-attachment gill-spacing \\\n", "class 0.089974 0.465191 0.001138 0.063779 \n", "cap-shape 0.014305 0.020779 0.008688 0.017270 \n", "cap-surface 0.008736 0.024878 0.015569 0.027291 \n", "cap-color 0.021542 0.022804 0.017171 0.023427 \n", "ruises 0.999919 0.043431 0.002767 0.015149 \n", "odor 0.043431 1.000000 0.017001 0.026458 \n", "gill-attachment 0.002767 0.017001 0.999870 0.004789 \n", "gill-spacing 0.015149 0.026458 0.004789 0.999897 \n", "gill-size 0.011158 0.046978 0.007753 0.011227 \n", "gill-color 0.041328 0.027601 0.023883 0.021896 \n", "stalk-shape 0.000832 0.036932 0.008490 0.001425 \n", "stalk-root 0.030638 0.031082 0.011925 0.016121 \n", "stalk-surface-above-ring 0.025761 0.027740 0.008627 0.011253 \n", "stalk-surface-below-ring 0.021659 0.031568 0.011742 0.014541 \n", "stalk-color-above-ring 0.027672 0.025946 0.020285 0.022406 \n", "stalk-color-below-ring 0.031543 0.023086 0.021662 0.028543 \n", "veil-color 0.006508 0.015490 0.010471 0.008439 \n", "ring-number 0.011759 0.019458 0.004408 0.013913 \n", "ring-type 0.037341 0.030861 0.010966 0.013069 \n", "spore-print-color 0.034545 0.032236 0.010641 0.018936 \n", "population 0.014283 0.026293 0.012992 0.027893 \n", "habitat 0.026531 0.021654 0.012999 0.029246 \n", "\n", " gill-size gill-color ... \\\n", "class 0.122908 0.088500 ... \n", "cap-shape 0.017995 0.020523 ... \n", "cap-surface 0.020465 0.025335 ... \n", "cap-color 0.021974 0.024858 ... \n", "ruises 0.011158 0.041328 ... \n", "odor 0.046978 0.027601 ... \n", "gill-attachment 0.007753 0.023883 ... \n", "gill-spacing 0.011227 0.021896 ... \n", "gill-size 0.999913 0.031603 ... \n", "gill-color 0.031603 1.000000 ... \n", "stalk-shape 0.007682 0.031472 ... \n", "stalk-root 0.041062 0.033103 ... \n", "stalk-surface-above-ring 0.008155 0.030065 ... \n", "stalk-surface-below-ring 0.009570 0.031451 ... \n", "stalk-color-above-ring 0.027692 0.023405 ... \n", "stalk-color-below-ring 0.030796 0.027307 ... \n", "veil-color 0.004786 0.019835 ... \n", "ring-number 0.008013 0.019987 ... \n", "ring-type 0.039065 0.033363 ... \n", "spore-print-color 0.041701 0.031731 ... \n", "population 0.025668 0.029769 ... \n", "habitat 0.023956 0.026966 ... \n", "\n", " stalk-surface-above-ring stalk-surface-below-ring \\\n", "class 0.129749 0.102529 \n", "cap-shape 0.011107 0.017404 \n", "cap-surface 0.012902 0.012060 \n", "cap-color 0.019545 0.016909 \n", "ruises 0.025761 0.021659 \n", "odor 0.027740 0.031568 \n", "gill-attachment 0.008627 0.011742 \n", "gill-spacing 0.011253 0.014541 \n", "gill-size 0.008155 0.009570 \n", "gill-color 0.030065 0.031451 \n", "stalk-shape 0.033136 0.014859 \n", "stalk-root 0.015758 0.015929 \n", "stalk-surface-above-ring 1.000000 0.025875 \n", "stalk-surface-below-ring 0.025875 1.000000 \n", "stalk-color-above-ring 0.029341 0.024655 \n", "stalk-color-below-ring 0.026336 0.024549 \n", "veil-color 0.010873 0.011019 \n", "ring-number 0.008614 0.015529 \n", "ring-type 0.032624 0.030188 \n", "spore-print-color 0.031709 0.034359 \n", "population 0.012388 0.021407 \n", "habitat 0.018257 0.018069 \n", "\n", " stalk-color-above-ring stalk-color-below-ring \\\n", "class 0.050202 0.044377 \n", "cap-shape 0.018379 0.017432 \n", "cap-surface 0.022897 0.021619 \n", "cap-color 0.024867 0.020831 \n", "ruises 0.027672 0.031543 \n", "odor 0.025946 0.023086 \n", "gill-attachment 0.020285 0.021662 \n", "gill-spacing 0.022406 0.028543 \n", "gill-size 0.027692 0.030796 \n", "gill-color 0.023405 0.027307 \n", "stalk-shape 0.028966 0.027132 \n", "stalk-root 0.031278 0.024221 \n", "stalk-surface-above-ring 0.029341 0.026336 \n", "stalk-surface-below-ring 0.024655 0.024549 \n", "stalk-color-above-ring 1.000000 0.025180 \n", "stalk-color-below-ring 0.025180 1.000000 \n", "veil-color 0.018200 0.018126 \n", "ring-number 0.020252 0.013893 \n", "ring-type 0.024944 0.026438 \n", "spore-print-color 0.021869 0.026470 \n", "population 0.023604 0.024288 \n", "habitat 0.020929 0.025119 \n", "\n", " veil-color ring-number ring-type \\\n", "class 0.005063 0.022175 0.092049 \n", "cap-shape 0.017128 0.007926 0.012183 \n", "cap-surface 0.012788 0.016706 0.014214 \n", "cap-color 0.017487 0.015235 0.023721 \n", "ruises 0.006508 0.011759 0.037341 \n", "odor 0.015490 0.019458 0.030861 \n", "gill-attachment 0.010471 0.004408 0.010966 \n", "gill-spacing 0.008439 0.013913 0.013069 \n", "gill-size 0.004786 0.008013 0.039065 \n", "gill-color 0.019835 0.019987 0.033363 \n", "stalk-shape 0.008627 0.017158 0.036730 \n", "stalk-root 0.016108 0.015848 0.022331 \n", "stalk-surface-above-ring 0.010873 0.008614 0.032624 \n", "stalk-surface-below-ring 0.011019 0.015529 0.030188 \n", "stalk-color-above-ring 0.018200 0.020252 0.024944 \n", "stalk-color-below-ring 0.018126 0.013893 0.026438 \n", "veil-color 1.000000 0.009771 0.013793 \n", "ring-number 0.009771 1.000000 0.008527 \n", "ring-type 0.013793 0.008527 1.000000 \n", "spore-print-color 0.018753 0.018441 0.036000 \n", "population 0.015103 0.020609 0.016219 \n", "habitat 0.017111 0.016895 0.017606 \n", "\n", " spore-print-color population habitat \n", "class 0.124672 0.063370 0.053764 \n", "cap-shape 0.016205 0.018208 0.015867 \n", "cap-surface 0.016301 0.022058 0.020441 \n", "cap-color 0.019681 0.023478 0.022749 \n", "ruises 0.034545 0.014283 0.026531 \n", "odor 0.032236 0.026293 0.021654 \n", "gill-attachment 0.010641 0.012992 0.012999 \n", "gill-spacing 0.018936 0.027893 0.029246 \n", "gill-size 0.041701 0.025668 0.023956 \n", "gill-color 0.031731 0.029769 0.026966 \n", "stalk-shape 0.026428 0.020362 0.029390 \n", "stalk-root 0.032983 0.025749 0.029484 \n", "stalk-surface-above-ring 0.031709 0.012388 0.018257 \n", "stalk-surface-below-ring 0.034359 0.021407 0.018069 \n", "stalk-color-above-ring 0.021869 0.023604 0.020929 \n", "stalk-color-below-ring 0.026470 0.024288 0.025119 \n", "veil-color 0.018753 0.015103 0.017111 \n", "ring-number 0.018441 0.020609 0.016895 \n", "ring-type 0.036000 0.016219 0.017606 \n", "spore-print-color 1.000000 0.020755 0.023303 \n", "population 0.020755 1.000000 0.025203 \n", "habitat 0.023303 0.025203 1.000000 \n", "\n", "[22 rows x 22 columns]" ] }, "execution_count": 62, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import pandas as pd\n", "import numpy as np\n", "import seaborn as sns\n", "import matplotlib.pyplot as plt\n", "from scipy.stats import chi2_contingency\n", "\n", "# Function to calculate Cramér's V\n", "def cramers_v(x, y):\n", " confusion_matrix = pd.crosstab(x, y)\n", " chi2 = chi2_contingency(confusion_matrix)[0]\n", " n = confusion_matrix.sum().sum()\n", " r, k = confusion_matrix.shape\n", " return np.sqrt(chi2 / (n * (min(r, k) - 1)))\n", "\n", "categorical_columns = df.select_dtypes(include=['object', 'category']).columns\n", "corr_matrix = pd.DataFrame(index=categorical_columns, columns=categorical_columns)\n", "\n", "for col1 in categorical_columns:\n", " for col2 in categorical_columns:\n", " corr_matrix.loc[col1, col2] = cramers_v(df[col1], df[col2])\n", "\n", "# Convert to numeric values for plotting\n", "corr_matrix = corr_matrix.astype(float)\n", "corr_matrix" ] }, { "cell_type": "code", "execution_count": 63, "id": "6625d1c5-3aad-4a3a-8aaf-3fdb5042930c", "metadata": {}, "outputs": [ { "data": { "image/png": "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sa9PQeQ7UCLygz5iH5/ob9cil1eF32arpzyRIymif96KrYEfno607kbeWkz+reJEryEjumeN5l9d+IxjFZw9exaXL1+Gp6cncnJyMHfuXABA3759a7lmRERERERENYcNxypatmwZ0tPTIZVK4e7ujqNHj8LExKS2q0VERERERDWgHj2GWKPYcKwCNzc3nD59urarQUREREREJCo2HImIiIiIiFSoTyOf1iSOqkpERERERETlYsSRiIiIiIhIBQYcS7DhSEREREREpAK7qpZgV1UiIiIiIiIqFyOO9MbJfVYkank6UnVRyxN7AmSxJwSXizyhu9jn88HJ1aKWZ+QZImp590+uErU8sYn9o7QgF7k8icgzkItdnOjlif1+LW68QOz3a7GJfXRifx6JfoAif5+oCgYcSzDiSEREREREROVixJGIiIiIiEgFNTWGHAFGHImIiIiIiKgCjDgSERERERGpwGccSzDiSEREREREROVixJGIiIiIiEgFzuNYghFHIiIiIiIiKhcbjvWUjY0NVq5cqfhbIpFgx44dAIDMzExIJBKkpqbWSt0qoz7UkYiIiIhIIqnZpb5gV9V6KiUlBbq6urVdjVfWtGlTZGdnw8TEpLarQkREREREFWDDsZ4yNTWt7Sq8FnV1dZibm9d2NYiIiIiIysVnHEuwq2odlZubi8GDB0NXVxcWFhZYsWIFOnfujNDQUAClu6pW1c2bN+Hv74/GjRtDV1cXrVu3xp49ewAACQkJkEgk2L17N9q2bQstLS20b98ef/75p2L/+/fvIygoCFZWVtDR0YGzszN++uknpTLkcjmWLFkCOzs7yGQyNGvWDAsWLABQuqvq8zIPHjwIDw8P6OjooEOHDkhPT1fKc/78+WjSpAn09fUxcuRIfP7553B1dX3l80BERERERBVjw7GOCgsLQ2JiInbu3IkDBw7g6NGjOHPmTLXlP378eOTn5+PIkSO4cOECFi9eDD09PaU0U6dORXR0NFJSUmBqagp/f38UFhYCAJ49ewZ3d3fs3r0bf/75J0aPHo0hQ4bg5MmTiv3Dw8OxaNEiRERE4NKlS9i4cSPMzMzKrdeMGTMQHR2NU6dOQUNDA5988oli248//ogFCxZg8eLFOH36NJo1a4avvvqq2s4JEREREdHLJBJJjS71Bbuq1kG5ubmIi4vDxo0b4ePjAwBYv349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2BS5ff/+/eHh4YE///wTP//8M5o3b46KFSu+USwASEtLQ9myZREVFZXvtaLGXY4bNw5BQUEaaQ+efURnKBERERHRB4AVRypQ9erVERMTo5H28nM9PT1UrVo13/sMDAyQnZ2dL93V1RWenp5Yvnw51q5di/Dw8HzbnDhxIt9zZ2dnAECdOnVw+/Zt6OnpwdHR8Y33w9DQMF+31LScF2/8fiIiIiL6Z/uY1lrUJnZVpQINHToUO3fuxPz583Ht2jUsW7YMu3bt0hiTWBBHR0ecP38e8fHxuH//PjIzM6XX+vfvj1mzZkEIgQ4dOuR7r1qtxpw5c3D16lX88MMP+O233xAYGAgAaNGiBRo1aoT27dtj7969SEpKwrFjxzB+/HicOnVK3p0nIiIiIiINrDhSgby8vLB06VLMnz8f7u7u2L17N0aMGAEjI6Mi3zdgwABUr14dnp6esLe3h1qtll7r1q0b9PT00K1btwLzGTlyJE6dOoXatWtj+vTpmD9/Pnx9fQHkdqXduXMnmjRpgj59+qBatWro2rUrbt68idKlS8u780REREREeTitKgBAJYQQxV0I+jgMGDAAV65cwZEjR97p/UlJSahSpQpiYmJQp04djdccHR0xfPhwDB8+XIaSFu2vVGW7qlqZ6r9+IzkpfEbnKBwvW+GAOgr/QdfVVTigwt9fZrayAZWedEDpK6quwgdojsI7qPjvqY/oB9y70FX4hHhdLyW52dQf8vqNZHT7WJii8fQVvj4oXUEwNfhwT8B7aVlazd/e7OMYPfhxlJKKxdy5c9GyZUuYmppi165dWL16NRYvXvzW+WRmZuLBgweYMGECGjZsmK/SSERERET0ofpwq7TKYsWRCnXy5EnMmTMHT548QeXKlREWFob+/fu/dT5qtRrNmjVDtWrVsHHjRi2UlIiIiIiItIkVRyrUhg0bZMnH29sbr+sRnZSUJEssIiIiIiI5fUxrLWoTK45ERERERESF4HIcuTirKhERERERERWJLY5ERERERESFYFfVXGxxJCIiIiIioiKx4khERERERERFYldV+sd5kZWjbEClV9BVmNLdNxRf0F3ZcIpTev+EwhF1FJ7QQKXw7dic18xYLTele2spfXwqfbwofT4ofr4rfHzePhamaLwynw5TNN69E4sUjUf0KlYciYiIiIiICsExjrnYVZWIiIiIiIiK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3t7eMDPTvR+uVqtx8uRJ9OnTR2o8IqLaiIkjERER6VVycrJeK4B16tRBdnY2mjRporOel5eHJk2aQKPRSI9JRFTb8FFVIiIikurpCqBKpYJKpYJarUZSUpL0CqAQAiYmJuXW8/LyYG1tLTUWEVFtxcSRiIiIpPLx8amwAlhQUAAfHx9pFcCAgAAAgImJCd5++22d85MajQaXLl2Ct7e3lFhERLUdE0ciIiKSSqkKoL29vTaera0tLC0ttd+zsLCASqXC5MmTpcUjIqrNmDgSERGRFEpXAHfs2AEAaNy4MRYvXgwrKysAwO3bt7F37160a9cOjRo1khaPiKg2Y+JIREREUhiqApiSkoKoqCgEBwcjPz8fKpUK5ubmyM3NxZo1azB16lTpMYmIahsmjkRERCSFoSqAKSkpWLt2LQAgJiYGjo6OSElJQWxsLMLCwpg4EhFJYGroDRAREZFxKa0AAtBWAFevXo3hw4dj06ZN0uMVFhbC1tYWAJCQkICAgACYmppCpVIhMzNTejwiotqIiSMRERFJlZKSgt69ewP4vwpgZmYmoqKisH79eunxXFxcsHfvXty5cweHDh2Cr68vAOD+/fuws7OTHo+IqDZi4khERERSKV0BDAsLw+zZs+Hk5IQePXqgZ8+e2tienp7S4xER1UZMHImIiEgqpSuAI0eORFZWFs6dO4f4+Hjter9+/RARESE9HhFRbWQihBCG3gQREREZj5iYGAQGBkKj0aBfv35ISEgAAKxYsQJJSUn45ptvDLxDIiJ6UUwciYiISLqcnBxkZ2ejc+fOMDUtecDpzJkzsLOzg7u7u4F3R0REL4qJIxERERERET0XzzgSERERERHRczFxJCIiIiIioudi4khERERERETPxcSRiIiIiIiInouJIxERERERET0XE0ciIiIiIiJ6LiaORERERERE9Fz/D9Xg8syGpwb6AAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Plotting the correlation matrix\n", "plt.figure(figsize=(10,8))\n", "sns.heatmap(corr_matrix, annot=False, cmap='Blues', square=True, cbar_kws={\"shrink\": .8})\n", "plt.title(\"Cramér's V Correlation Matrix for Categorical Features\")\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "e406b72a-e7e7-4294-853c-66ec7f36f6bc", "metadata": {}, "source": [ "Which features seem to be important?" ] }, { "cell_type": "code", "execution_count": 64, "id": "7ff1e04d-41dd-48b9-97e4-c17ca7351f75", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "class 0.999922\n", "odor 0.465191\n", "gill-size 0.122908\n", "stalk-surface-above-ring 0.129749\n", "stalk-surface-below-ring 0.102529\n", "spore-print-color 0.124672\n", "Name: class, dtype: float64" ] }, "execution_count": 64, "metadata": {}, "output_type": "execute_result" } ], "source": [ "corr_matrix['class'][corr_matrix['class']>0.1]" ] }, { "cell_type": "markdown", "id": "961a4b15-dbfb-4585-86f6-5d0bddd1f444", "metadata": {}, "source": [ "## Data Modeling" ] }, { "cell_type": "markdown", "id": "7416c6a5-a15e-4fc9-81a1-529ebdd44b6b", "metadata": {}, "source": [ "We're finally ready to do some data modeling using scikit-learn. In this cell we import some methods we'll use, reload the data frame (just to be safe), re-pre-process-it, and one-hot-encode all the categorical variables." ] }, { "cell_type": "code", "execution_count": 148, "id": "f5cf2242-b167-4111-a509-ede1e11c8c75", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
cap-shape_bcap-shape_ccap-shape_fcap-shape_kcap-shape_scap-shape_xcap-surface_fcap-surface_gcap-surface_scap-surface_y...population_spopulation_vpopulation_yhabitat_dhabitat_ghabitat_lhabitat_mhabitat_phabitat_uhabitat_w
count25986259862598625986259862598625986259862598625986...25986259862598625986259862598625986259862598625986
unique2222222222...2222222222
topFalseFalseFalseFalseFalseFalseFalseFalseFalseFalse...FalseFalseFalseFalseFalseFalseFalseFalseFalseFalse
freq23726245091926423074245181831219762238251946618384...22365175772167519413210402327524278228402412924425
\n", "

4 rows × 116 columns

\n", "
" ], "text/plain": [ " cap-shape_b cap-shape_c cap-shape_f cap-shape_k cap-shape_s \\\n", "count 25986 25986 25986 25986 25986 \n", "unique 2 2 2 2 2 \n", "top False False False False False \n", "freq 23726 24509 19264 23074 24518 \n", "\n", " cap-shape_x cap-surface_f cap-surface_g cap-surface_s cap-surface_y \\\n", "count 25986 25986 25986 25986 25986 \n", "unique 2 2 2 2 2 \n", "top False False False False False \n", "freq 18312 19762 23825 19466 18384 \n", "\n", " ... population_s population_v population_y habitat_d habitat_g \\\n", "count ... 25986 25986 25986 25986 25986 \n", "unique ... 2 2 2 2 2 \n", "top ... False False False False False \n", "freq ... 22365 17577 21675 19413 21040 \n", "\n", " habitat_l habitat_m habitat_p habitat_u habitat_w \n", "count 25986 25986 25986 25986 25986 \n", "unique 2 2 2 2 2 \n", "top False False False False False \n", "freq 23275 24278 22840 24129 24425 \n", "\n", "[4 rows x 116 columns]" ] }, "execution_count": 148, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import pandas as pd\n", "from sklearn.model_selection import train_test_split\n", "from sklearn.preprocessing import LabelEncoder\n", "from sklearn.tree import DecisionTreeClassifier\n", "from sklearn.metrics import accuracy_score, classification_report\n", "\n", "df = pd.read_csv(data_url)\n", "\n", "# drop the useless feature\n", "df = df.drop('veil-type', axis=1)\n", "\n", "# drop the target from X -- and store it as y\n", "X = df.drop('class', axis = 1)\n", "y = df['class']\n", "\n", "# one-hot encode all columns at once\n", "X = pd.get_dummies(X)\n", "\n", "# show it to me\n", "X.describe()" ] }, { "cell_type": "markdown", "id": "f2be1f0e", "metadata": {}, "source": [ "### Decision Tree Classifier" ] }, { "cell_type": "markdown", "id": "65e61b9e-d3b2-4aba-ac92-5d333bb5b802", "metadata": {}, "source": [ "Our first model is a decision tree, which is one of the oldest algorithms for classifying observations. Before we create any models, we *always* create a train-test split so there is unseen testing data that wasn't available when the model was training." ] }, { "cell_type": "code", "execution_count": 151, "id": "1d56f782-edf6-4ea1-a615-c89f683ca68c", "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
0123456789...5188518951905191519251935194519551965197
0ppepppeeep...pepeppppep
1peepppepep...pppeeeppep
\n", "

2 rows × 5198 columns

\n", "
" ], "text/plain": [ " 0 1 2 3 4 5 6 7 8 9 ... 5188 5189 5190 5191 \\\n", "0 p p e p p p e e e p ... p e p e \n", "1 p e e p p p e p e p ... p p p e \n", "\n", " 5192 5193 5194 5195 5196 5197 \n", "0 p p p p e p \n", "1 e e p p e p \n", "\n", "[2 rows x 5198 columns]" ] }, "execution_count": 151, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Split the data into training and testing sets\n", "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)\n", "\n", "# Initialize the DecisionTreeClassifier\n", "clf = DecisionTreeClassifier()\n", "\n", "# Fit the model\n", "clf.fit(X_train, y_train)\n", "\n", "# Make predictions\n", "y_pred = clf.predict(X_test)\n", "results = pd.DataFrame([y_pred, y_test])\n", "results" ] }, { "cell_type": "markdown", "id": "e8a398ef-cfab-4c4a-9da8-c54e8007cb35", "metadata": {}, "source": [ "There are many metrics for evaluating categorical models, and they are sometimes at odds. Accuracy is simplistic and obscures what could be more important -- are there more false positives or more false negatives? And which is more important? In a task to identify poisonous mushrooms, a false negative (labeling a 'p' as an 'e') is deadly. The \"recall\" on \"p\" below captures this value. This measures the percent of poisonous mushrooms you have correctly labeled as poisonous.\n", "\n", "Recall is not everything, though. You can easily get perfect \"poison\" recall by labeling every mushroom as poisonous! Precision measures the fraction of mushrooms you label as poisonous which actually are. \n", "\n", "The $F_1$-score is a type of geometric mean between precision and recall and strikes a bit of a balance between the two.\n", "\n", "In this notebook, look first at \"p-recall\", but keep an eye on the other metrics." ] }, { "cell_type": "code", "execution_count": 153, "id": "4126dbec-ab98-4a33-a19e-4cd5ad088cb6", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Accuracy: 0.6671796844940362\n", "Classification Report:\n", " precision recall f1-score support\n", "\n", " e 0.70 0.69 0.70 2873\n", " p 0.62 0.64 0.63 2325\n", "\n", " accuracy 0.67 5198\n", " macro avg 0.66 0.66 0.66 5198\n", "weighted avg 0.67 0.67 0.67 5198\n", "\n" ] } ], "source": [ "# Evaluate the model\n", "accuracy = accuracy_score(y_test, y_pred)\n", "print(f\"Accuracy: {accuracy}\")\n", "\n", "print(\"Classification Report:\")\n", "print(classification_report(y_test, y_pred))" ] }, { "cell_type": "markdown", "id": "f8466d20-62df-44d3-a115-d54d07e572d7", "metadata": {}, "source": [ "A confusion matrix is a nice way to really show everything that a classifier is doing. The main diagonal are the numbers of correctly classified observations. The off-diagonals are errors. Unfortunately this simple version is unlabeled" ] }, { "cell_type": "code", "execution_count": 157, "id": "c641e9dc-e55a-4b53-8ee7-4b16f61ad6f7", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[1978, 895],\n", " [ 835, 1490]])" ] }, "execution_count": 157, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from sklearn.metrics import confusion_matrix, ConfusionMatrixDisplay\n", "\n", "confusion_matrix(y_test, y_pred)" ] }, { "cell_type": "markdown", "id": "d11a4123-27e4-4fe0-a349-11886cc5b7e8", "metadata": {}, "source": [ "With a bit more work we can get a label." ] }, { "cell_type": "code", "execution_count": 158, "id": "3bc8d713-cb12-46c1-9ace-d977e48e5b68", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Calculate the confusion matrix\n", "cm = confusion_matrix(y_test, clf.predict(X_test))\n", "cm_display = ConfusionMatrixDisplay(confusion_matrix=cm, display_labels=clf.classes_)\n", "\n", "# Plot the confusion matrix\n", "fig, ax = plt.subplots(figsize=(8, 6))\n", "sns.heatmap(cm, annot=True, fmt='d', cmap='Blues', xticklabels=clf.classes_, yticklabels=clf.classes_)\n", "plt.xlabel('Predicted')\n", "plt.ylabel('Actual')\n", "plt.title('Confusion Matrix')\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "390a17b1", "metadata": {}, "source": [ "### Testing more methods" ] }, { "cell_type": "markdown", "id": "209a30d2-00b0-4418-b188-fefad96c93cc", "metadata": {}, "source": [ "First I'll define a helper method that takes any dataset and a classifier \"clf\" and\n", "* fits the model to the training data\n", "* applies the model to the test data\n", "* gets an accuracy score and a classification report for the test data" ] }, { "cell_type": "code", "execution_count": 159, "id": "38933f3c", "metadata": {}, "outputs": [], "source": [ "def classifier_tryout(clf, X_train, y_train, X_test, y_test):\n", "\tclf.fit(X_train, y_train)\n", "\n", "\t# Make predictions\n", "\ty_pred = clf.predict(X_test)\n", "\n", "\t# Evaluate the model\n", "\taccuracy = accuracy_score(y_test, y_pred)\n", "\tprint(f\"Accuracy: {accuracy}\")\n", "\n", "\tprint(\"Classification Report:\")\n", "\tprint(classification_report(y_test, y_pred))" ] }, { "cell_type": "markdown", "id": "d5cdbfcd-beb8-4ace-86e2-b72ccb121a08", "metadata": {}, "source": [ "In what follows, we run several very different models and compare their performance. We won't go into much detail about the models. But note how the scikit-learn API makes dealing with each of the models very similar" ] }, { "cell_type": "markdown", "id": "06ef4cb1-23c9-468a-8803-0db9dc26ad0b", "metadata": {}, "source": [ "### Random Forest" ] }, { "cell_type": "code", "execution_count": 160, "id": "876eb165-83e6-404d-9397-9ca9e0ed0985", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Accuracy: 0.7464409388226241\n", "Classification Report:\n", " precision recall f1-score support\n", "\n", " e 0.76 0.80 0.78 2873\n", " p 0.73 0.69 0.71 2325\n", "\n", " accuracy 0.75 5198\n", " macro avg 0.74 0.74 0.74 5198\n", "weighted avg 0.75 0.75 0.75 5198\n", "\n" ] } ], "source": [ "from sklearn.ensemble import RandomForestClassifier\n", "\n", "clf = RandomForestClassifier(random_state=42)\n", "classifier_tryout(clf, X_train, y_train, X_test, y_test)" ] }, { "cell_type": "markdown", "id": "1a69f38e-fbec-461b-9a67-6384638eb203", "metadata": {}, "source": [ "### Support Vector Machines" ] }, { "cell_type": "code", "execution_count": 116, "id": "4decd3d2-2549-40f2-8d6f-6dd9a6e9ef6d", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Accuracy: 0.7504809542131589\n", "Classification Report:\n", " precision recall f1-score support\n", "\n", " e 0.76 0.79 0.78 2873\n", " p 0.73 0.70 0.71 2325\n", "\n", " accuracy 0.75 5198\n", " macro avg 0.75 0.75 0.75 5198\n", "weighted avg 0.75 0.75 0.75 5198\n", "\n" ] } ], "source": [ "from sklearn.svm import SVC\n", "\n", "# Initialize the RandomForestClassifier\n", "clf = SVC(random_state=42, kernel='rbf')\n", "classifier_tryout(clf, X_train, y_train, X_test, y_test)" ] }, { "cell_type": "markdown", "id": "aed528e4-5585-4ec9-9fe6-399a1cb54256", "metadata": {}, "source": [ "### Logistic Regression" ] }, { "cell_type": "code", "execution_count": 101, "id": "fd9ebd7b-48da-4652-a149-04bcf0bc015e", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Accuracy: 0.746056175452097\n", "Classification Report:\n", " precision recall f1-score support\n", "\n", " e 0.76 0.78 0.77 2873\n", " p 0.72 0.70 0.71 2325\n", "\n", " accuracy 0.75 5198\n", " macro avg 0.74 0.74 0.74 5198\n", "weighted avg 0.75 0.75 0.75 5198\n", "\n" ] } ], "source": [ "from sklearn.linear_model import LogisticRegression\n", "\n", "# Initialize the LogisticRegression\n", "clf = LogisticRegression(random_state=42)\n", "classifier_tryout(clf, X_train, y_train, X_test, y_test)" ] }, { "cell_type": "markdown", "id": "eb802b79-197a-411d-aec9-c203c956ef30", "metadata": {}, "source": [ "### k-Nearest Neighbors" ] }, { "cell_type": "code", "execution_count": 102, "id": "31601aa2-588b-4997-aee2-dbc36e9ea45e", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Accuracy: 0.6854559445940747\n", "Classification Report:\n", " precision recall f1-score support\n", "\n", " e 0.70 0.76 0.73 2873\n", " p 0.67 0.60 0.63 2325\n", "\n", " accuracy 0.69 5198\n", " macro avg 0.68 0.68 0.68 5198\n", "weighted avg 0.68 0.69 0.68 5198\n", "\n" ] } ], "source": [ "from sklearn.neighbors import KNeighborsClassifier\n", "\n", "# Initialize the KNeighborsClassifier\n", "clf = KNeighborsClassifier(weights='uniform')\n", "classifier_tryout(clf, X_train, y_train, X_test, y_test)" ] }, { "cell_type": "markdown", "id": "f9bf489b-b3f8-45c3-8d4d-979e76eb1f7c", "metadata": {}, "source": [ "### GradientBoost " ] }, { "cell_type": "code", "execution_count": 103, "id": "3f393c0c-534d-44d7-8b12-3f5659a5117b", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Accuracy: 0.7518276260100039\n", "Classification Report:\n", " precision recall f1-score support\n", "\n", " e 0.77 0.79 0.78 2873\n", " p 0.73 0.70 0.72 2325\n", "\n", " accuracy 0.75 5198\n", " macro avg 0.75 0.75 0.75 5198\n", "weighted avg 0.75 0.75 0.75 5198\n", "\n" ] } ], "source": [ "from sklearn.ensemble import GradientBoostingClassifier\n", "\n", "# Initialize the GradientBoostingClassifier\n", "clf = GradientBoostingClassifier(random_state=42)\n", "classifier_tryout(clf, X_train, y_train, X_test, y_test)" ] }, { "cell_type": "markdown", "id": "74f7245a-3478-4c53-afbf-53c2a9b3e0f4", "metadata": {}, "source": [ "### Neural Network" ] }, { "cell_type": "code", "execution_count": 104, "id": "786d1642-2aec-4987-bad9-afe56337cae2", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Accuracy: 0.7052712581762216\n", "Classification Report:\n", " precision recall f1-score support\n", "\n", " e 0.73 0.73 0.73 2873\n", " p 0.67 0.67 0.67 2325\n", "\n", " accuracy 0.71 5198\n", " macro avg 0.70 0.70 0.70 5198\n", "weighted avg 0.71 0.71 0.71 5198\n", "\n" ] } ], "source": [ "from sklearn.neural_network import MLPClassifier\n", "\n", "# Initialize the MLPClassifier\n", "clf = MLPClassifier(random_state=42, hidden_layer_sizes=(1000,10,), learning_rate='adaptive')\n", "classifier_tryout(clf, X_train, y_train, X_test, y_test)" ] }, { "cell_type": "markdown", "id": "366f9ce3-2956-4dfd-a960-92697dd3e669", "metadata": {}, "source": [ "## Conclusion" ] }, { "cell_type": "markdown", "id": "e1c5e40a-a3ca-4a21-b9db-a3f6394d49a6", "metadata": {}, "source": [ "This notebook gave a quick overview of the full data analysis workflow on a real world dataset. Data ingesting and cleaning; exploratory data analysis; modeling. There is much we can do next by trying to optimize models, but that is beyond the scope of this notebook. Also, we only looked at categorical data here -- continuous/quantitative data is a bit different but not much (linear regression is the first stop with continuous data.)\n", "\n", "Which model above do you think is the best? Which one would you start with to try to get even better results?\n", "\n", "As an application, find your own dataset and try to mirror the process we took here. Not all the steps in this notebook will apply directly to whatever dataset you find, but see what you can come up with and how well you can model the target in your data!" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "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.9" } }, "nbformat": 4, "nbformat_minor": 5 }