{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# A.I. Assignment 3\n",
"\n",
"\n",
"## Learning Goals\n",
"\n",
"By the end of this lab, you should be able to:\n",
"* Perform some more data preproscessing: checking for missing samples, eliminate them, encoding labeled classes\n",
"* Feel comfortable creating a simple decision tree for a classification \n",
"* Dealing with some feature selection techniques\n",
"\n",
"### Content:\n",
"\n",
"The Lab. has 3 sections: \n",
"\n",
"1. Preprocessing\n",
"2. Constructing and fitting a decision tree\n",
"3. Perform a feature selection based on the linear correlation between the dataset's features \n",
"\n",
"There are some exercises, put your answer code in the cells with the *# your code here*. \n",
"\n",
"All the work must be done during the lab and uploaded on teams by the end of the lab. \n",
"\n",
"If there are any python libraries missing, please install them on your working environment. "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We will be using a variation of the famous **Iris dataset**. !DO NOT USE OTHER VERSION THAN THE ONE PROVIDED HERE. \n",
"\n",
"This set contains measurements of various parts of three different species of iris flowers. The goal is to use these measurements to predict the species of an iris flower.\n",
"\n",
"The dataset contains 154 instances, each with 4 features: *sepal length*, *sepal width*, *petal length*, and *petal width*. The target variable is the species of the iris flower, which can be one of three possible values: *setosa*, *versicolor*, or *virginica*.\n",
"\n",
"We will start by loading the dataset, preparing it and splitting it into training and testing sets."
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"# the imports:\n",
"\n",
"# pandas for handling the data\n",
"import pandas as pd\n",
"\n",
"import matplotlib.pyplot as plt\n",
"%matplotlib inline\n",
"\n",
"# Seaborn is a Python data visualization library that offers a user-friendly interface \n",
"# for generating visually appealing and informative statistical graphics.\n",
"import seaborn as sns\n",
"\n",
"# From sklearn we import some classes and functions for data handling, the tree classifier, \n",
"# the accuracy and the plot function to depict the tree \n",
"from sklearn.preprocessing import LabelEncoder\n",
"from sklearn.model_selection import train_test_split \n",
"from sklearn.tree import DecisionTreeClassifier \n",
"from sklearn.metrics import accuracy_score \n",
"from sklearn.tree import plot_tree \n",
"\n",
"# This class we use it to search exhaustive over specified parameter values for an estimator.\n",
"from sklearn.model_selection import GridSearchCV \n",
"from dtreeviz.trees import *"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Preparing the data"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Exercises\n",
"\n",
"1. Import with pandas the file *iris_teach_2.csv* into the pandas DataFrame with the name *df_iris*. "
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Visualize the decision tree \n",
"plot_tree(tree_clf)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Import with pip the package dtreeviz to visualise nicely the tree."
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"/home/danielcujba/Desktop/School/Anul2/Semestrul2/AI/.conda/lib/python3.12/site-packages/sklearn/base.py:464: UserWarning: X does not have valid feature names, but DecisionTreeClassifier was fitted with feature names\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"findfont: Font family 'Arial' not found.\n",
"Fontconfig error: Cannot load default config file: No such file: (null)\n"
]
},
{
"data": {
"image/svg+xml": [
""
],
"text/plain": [
""
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"viz = model(tree_clf, \n",
" X_train,\n",
" y_train,\n",
" feature_names=X.columns, \n",
" class_names=[\"setosa\", \"versicolor\", \"virginica\"],\n",
" \n",
" )\n",
"viz.view()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Tuning the Model\n",
"\n",
"We can tune the hyperparameters of the decision tree model to improve its performance. \n",
"\n",
"One important hyperparameter is the maximum depth of the tree. \n",
"\n",
"We can use scikit-learn's GridSearchCV function to search over different values of the maximum depth and find the best one:"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Best hyperparameters: {'max_depth': 2}\n"
]
}
],
"source": [
"# Define the hyperparameters to search over \n",
"param_grid = {\"max_depth\": [1, 2, 3, 4, 5, 6, 7]} \n",
"# Create a grid search object \n",
"grid_search = GridSearchCV(tree_clf, param_grid, cv=5) \n",
"# Fit the grid search object to the training data \n",
"grid_search.fit(X_train, y_train) \n",
"# Print the best hyperparameters found by the grid search \n",
"print(\"Best hyperparameters:\", grid_search.best_params_)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can now create a new decision tree classifier object with the best hyperparameters and fit it to the training data:\n"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Visualize the decision tree \n",
"plot_tree(tree_clf_tuned)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Feature selection "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"In practice prior to constructing the decision tree, it may be beneficial to perform dimensionality reduction techniques such as a Feature selection. This can enhance the likelihood of the decision tree to identify discriminative features.\n",
"\n",
"One way to do this is to examine the correlation between the variables in our dataset by plotting the Pearson Correlation among all attributes. We will use the full, clean dataset for this with the labels encoded. \n",
"\n",
"Recall: The *Pearson correlation coefficient (r)* is the most common way of measuring a linear correlation."
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
"
\n",
"
\n",
"
sepal length (cm)
\n",
"
sepal width (cm)
\n",
"
petal length (cm)
\n",
"
petal width (cm)
\n",
"
iris_name
\n",
"
\n",
" \n",
" \n",
"
\n",
"
0
\n",
"
5.1
\n",
"
3.5
\n",
"
1.4
\n",
"
0.2
\n",
"
0
\n",
"
\n",
"
\n",
"
1
\n",
"
4.9
\n",
"
3.0
\n",
"
1.4
\n",
"
0.2
\n",
"
0
\n",
"
\n",
"
\n",
"
2
\n",
"
4.7
\n",
"
3.2
\n",
"
1.3
\n",
"
0.2
\n",
"
0
\n",
"
\n",
"
\n",
"
3
\n",
"
4.6
\n",
"
3.1
\n",
"
1.5
\n",
"
0.2
\n",
"
0
\n",
"
\n",
"
\n",
"
4
\n",
"
5.0
\n",
"
3.6
\n",
"
1.4
\n",
"
0.2
\n",
"
0
\n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" sepal length (cm) sepal width (cm) petal length (cm) petal width (cm) \\\n",
"0 5.1 3.5 1.4 0.2 \n",
"1 4.9 3.0 1.4 0.2 \n",
"2 4.7 3.2 1.3 0.2 \n",
"3 4.6 3.1 1.5 0.2 \n",
"4 5.0 3.6 1.4 0.2 \n",
"\n",
" iris_name \n",
"0 0 \n",
"1 0 \n",
"2 0 \n",
"3 0 \n",
"4 0 "
]
},
"execution_count": 25,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_clean_iris_set = X.copy()\n",
"df_clean_iris_set['iris_name']=y_encoded\n",
"df_clean_iris_set.head()"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
""
]
},
"execution_count": 26,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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QAEZhqHTp0+7zLfcu3evHn74YRUrVkxBQUH66quvMu6zfft2de7cWSVLllRYWJhKlCihHj166NChQ26/divv/cqVK2UYhg4fPizJdW5xmTJlsnx9f3bkyBE98cQTGd8TRYsWve732aFDh2QYhpo1a6bU1FQNGjQo43HlypXTW2+95dGwXnffK8Mw1LRpU0nSRx99lPFamzVrZvk5byQ9PV1jx47VHXfcobx58yp37tyqW7eupk6dmuVrXL16tZ555hlVr15dBQsWVM6cOVWpUiUNGjRIp0+fdrm2e/fuat68eabXce2c3qvvbffu3bPMd7339Op7n56ermHDhqlSpUoKCwtT27ZtM645f/68hg0bppiYGOXKlUv58uVT06ZNXb6Xr7Vr1y516dJFZcuWVXh4uIoUKaKaNWuqX79+SkxMdOfLCQD4G9DDCdwizp07J0kKCwvLaBs3bpz69eunoKAg1a1bVyVLltSOHTv07rvvav78+Vq7dq1LD9TXX3+tl156SeXKlVNMTIzy5cunX375RV9++aXmz5+v+fPnq1WrVlk+f58+fTRt2jQ1bdpUlStXVnp6uiTp22+/VZs2bWQYhho2bKgGDRro1KlT2rt3r0aMGKEnnnhCefLkybjPE088ocmTJys8PFwtWrRQrly5tHLlSr388suaN2+eli1bppw5c2Z6/nnz5mns2LGqVq2a7rnnHm3fvl0LFizQDz/8oB07drg1T27FihVKTU1VrVq1VLlyZfe+8NfwNPunn36qKVOmKDY2Vq1bt9b+/ftlGEbG+T179uiOO+5Q4cKF1bx5c506dUohISGSpC+++EKdOnVSenp6xlzT/fv3a/r06Zo3b55WrVqlqlWr3jC7lfc+MjJS3bp105w5c3ThwoWMOcWSFBERccPn2r59u1q0aKHjx4+rUqVKat++vRISEvTll19q3rx5+vTTT/XQQw9lelx6erpatWqln3/+WXXr1lXlypW1atUqDRo0SOfOndPw4cNv+NxXWXmvunXrpqSkJC1evFhly5ZVo0aNJEmVKlVy+/ncceHCBbVu3VqrV69WRESEGjVqpKCgIK1bt06PPfaYNmzYoIkTJ7o85sUXX9SWLVtUrVo1tWjRQmlpadq0aZPeeustzZ8/X+vXr8/4/6tRo0ZZvg5J151faoXT6VTbtm313XffqWnTpqpevboK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Onv2rOXXVq9ePd11111asWKF+vfvn6n31Ol0asmSJS4/pyZOnJhlL/jChQsl3XjeMwDg78OQWuAW1aRJE40dO1b9+vVT48aNVb16dZUvX14XL17U4cOHtWvXLuXJk0dPP/20pCsLfvTq1UsffPCBatSooRYtWihnzpxavXq1HA6Hunfv7vbw3GsNHTpUL7zwgmrUqKHy5cvLNE1t27ZNe/bsUUREhF588cWMax988EE9/vjjmjx5csZG9rly5dLKlSt17Ngx1atXT0OHDvXWlyhLefPm1apVq9S2bVvNnz9fCxcuVGxsrMqUKaP09HTt2rVLu3fvlnRlKGN2Zi9fvrw+/vhjPfroo2rTpo0qVqyoypUryzRNHT58WDt37lR6ero6deqU5dDRqzx979u0aaNVq1bprrvuUvPmzZU7d25FRERoxIgR130uwzD0ySefqHnz5nrzzTf15ZdfqmbNmkpISNDatWuVI0cOffjhhzdcCOlm+ML3WVbGjRunAwcOaObMmZo/f75q1qypEiVKKCkpSb/88ouOHj2q5557Tvfee68kqUePHho5cqTmzZunihUr6o477tDJkyczvn9//PHHjOHBV5UpU0bVq1fXxo0bVbduXVWtWlXBwcFq06ZNxmrJr7/+unr27KkHHnhATZo0UZ48efTjjz8qX758atOmjb755hvLr+2TTz5Rq1atNGbMGM2YMUM1a9ZUkSJFdPToUe3Zs0fHjh3T6NGjM4bPTpw4UU8++aSqVKmiypUrK0eOHNqzZ4+2bNminDlzasiQITf51QbgzxyMqPUp9HACt7BnnnlGP/zwgzp37qxTp07pm2++0bp16xQUFKQ+ffpk2qNvwoQJGjlypKKjo7Vs2TKtXr1ad999tzZu3JixuJBV7777rh5++GGlpKRo4cKFWrRokYKDg/XCCy9o27ZtmRb+mDRpkmbMmKFatWplLDBUtGhR/fvf/9by5cuz3B7E24oXL65169Zp5syZuv/++/Xrr7/qyy+/1JIlSxQUFKQnn3xSGzdu1ODBg7M9e/v27bV161Y98cQTunTpkhYuXKiVK1cqLS1NnTt31vz585U/f/4b3seT975v37565ZVXlCdPHn3xxReaOnWqPvvssxs+V0xMjDZt2qTevXvr/PnzmjNnjvbs2aO2bdtq7dq1euihhyx/Hazyhe+zP8uVK5eWLFmiKVOmqHbt2tqxY4e+/PJL7d+/X2XLltXbb7+tF154IeP6woULa8OGDerUqZPS09P1zTff6OjRoxo2bFiWw4Wv+uKLL9S2bVsdOHBAM2bM0NSpU12Gyvbo0UPTpk1T5cqVtXbtWv3444+6//77tW7dukx7frqrWLFiWr9+vUaNGqXy5ctrw4YN+uqrr/Trr7+qVq1aev/99/Xoo49mXP/GG2+oZ8+eMgxDy5Yt07x585SSkqLHH39c27ZtU/369T3KAQDwPsP05rKCAAAAAJCNDv369y3q5m1lbvPu6uG+gB5OAAAAAIAtmMMJAAAAIGBcf0dgZAd6OAEAAAAAtqDgBAAAAADYgoITAAAAAGAL5nACAAAACBgOGdkdAdeghxMAAAAAYAsKTgAAAACALRhSCwAAACBgOM3sToBr0cMJAAAAALAFBScAAAAAwBYUnAAAAAAAWzCHEwAAAEDAYFsU30IPJwAAAADAFhScAAAAAABbMKQWAAAAQMBgSK1voYcTAAAAAGALCk4AAAAAgC0oOAEAAAAAtmAOJwAAAICA4TSZw+lL6OEEAAAAANiCghMAAAAAYAsKTgAAAACALZjDCQAAACBgsA+nb6GHEwAAAABgCwpOAAAAAIAtGFILAAAAIGA46FPzKbwbAAAAAABbUHACAAAAAGxBwQkAAAAAsAVzOAEAAAAEDKfJtii+hB5OAAAAAIAtKDgBAAAAALZgSC0AAACAgOEQQ2p9CT2cAAAAAABbUHACAAAAAGxBwQkAAAAAsAVzOAEAAAAEDIdJn5ov4d0AAAAAANiCghMAAAAAYAsKTgAAAACALZjDCQAAACBgOOlT8ym8GwAAAAAAW1BwAgAAAABswZBaAAAAAAHDISO7I+AaPlVwOpMqZHcEBIigyL2SpGat387mJAgEKxcOlCR9f/j2bE6CQNEg6oAkafb+OtmcBIHiobI/SZKm7G2czUkQKB6rsDq7IyBAMKQWAAAAAGALCk4AAAAAgC18akgtAAAAANwMh0mfmi/h3QAAAAAA2IKCEwAAAABgC4bUAgAAAAgYTrZF8Sn0cAIAAAAAbEHBCQAAAACwBQUnAAAAAMAWzOEEAAAAEDAc9Kn5FN4NAAAAAIAtKDgBAAAAALag4AQAAAAA2II5nAAAAAAChsOkT82XWCo4z5w5oy+//FKrV6/WoUOHlJKSoiJFiqhWrVq655571KBBA7tyAgAAAAD8jFvlf2Jionr37q3ixYtr2LBhunDhgmrWrKm77rpLt912m1asWKGWLVuqSpUqmjVrlt2ZAQAAAAB+wK0ezho1aqhr16768ccfVa1atSyvSU1N1VdffaVRo0bpyJEjeuGFF7waFAAAAABuxMkyNT7FrYLz559/VpEiRf7ympw5c+qRRx7RI488omPHjnklHAAAAADAf7lV/t+o2LzZ6wEAAAAAgcejVWqPHj2qtWvXKjk5WU6n0+Vc3759vRIMAAAAAODfLBec06ZNU58+fRQaGqrChQvLMIyMc4ZhUHACAAAAyDYO07jxRfjbWC44X3vtNb322muKi4tTUBATcgEAAAAAWbNcMaakpOjhhx+m2AQAAAAA/CXLVWOvXr00e/ZsO7IAAAAAAAKI5SG18fHx+uc//6lFixYpJiZGISEhLudHjRrltXAAAAAAYIWDfTh9iuWC880339TixYtVsWJFScq0aBAAAAAAAJIHBeeoUaP04Ycfqnv37jbEAQAAAAAECssFZ1hYmBo2bGhHFgAAAAC4KU6TIbW+xPK78dxzz+ndd9+1IwsAAAAAIIBY7uH88ccftXz5cs2fP19Vq1bNtGjQ3LlzvRYOAAAAAOC/LBecBQoUUPv27e3IAgAAAAAIIJYLzmnTptmRAwAAAABuGtui+BbL78bBgwe1b9++TO379u3ToUOHvJEJAAAAABAALBec3bt31/fff5+p/YcffmCrFAAAAAD4m4wfP17R0dEKDw9XnTp1tHr16r+8/pNPPlGNGjWUK1cuFS9eXD169NCJEydszWi54Ny8eXOW26LUq1dPW7Zs8UYmAAAAAPCIwzT89rBi1qxZ6tevnwYPHqzNmzercePGat26tRISErK8fs2aNeratat69eqln3/+WbNnz9aGDRv02GOPeePLfl2WC07DMHTu3LlM7WfOnJHD4fBKKAAAAADA9Y0aNUq9evXSY489psqVK2vMmDEqVaqUJkyYkOX169evV5kyZdS3b19FR0erUaNGeuKJJ7Rx40Zbc1ouOBs3bqz4+HiX4tLhcCg+Pl6NGjXyajgAAAAAuFWkpaXp7NmzLkdaWlqm69LT0/XTTz+pVatWLu2tWrXKcvqjJDVo0EC//vqrFixYINM09fvvv2vOnDm67777bHktV1kuON9++20tX75c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AAAAAH7IcsE5fvx4TZ48We+9955CQ0M1cOBALV26VH379tWZM2fsyAgAAAAAbjFNw2+PQGS54ExISFCDBg0kSTlz5tS5c+ckSV26dNHMmTO9mw4AAAAA4LcsF5yRkZE6ceKEJCkqKkrr16+XJB08eFAmS0IBAAAAAP6f5YKzRYsWmjdvniSpV69e6t+/v1q2bKmOHTuqXbt2Xg8IAAAAAPBPllepnTx5spxOpySpT58+KlSokNasWaP7779fffr08XpAAAAAAHBXoM6F9FeWC86goCAFBf3RMdqhQwd16NDBq6EAAAAAAP7Po304T506palTp2rXrl0yDEOVK1dWjx49VKhQIW/nAwAAAAD4KctzOFetWqXo6GiNGzdOp06d0smTJzVu3DhFR0dr1apVdmQEAAAAALeYfnwEIss9nE8//bQ6dOigCRMmKDg4WJLkcDj01FNP6emnn9aOHTu8HhIAAAAA4H8s93Du379fzz//fEaxKUnBwcEaMGCA9u/f79VwAAAAAAD/ZbngrF27tnbt2pWpfdeuXapZs6Y3MgEAAAAAAoDlIbV9+/bVc889p19++UX16tWTJK1fv17vv/++RowYoW3btmVcW716de8lBQAAAIAbYFsU32K54HzkkUckSQMHDszynGEYMk1ThmHI4XDcfEIAAAAAgF+yXHAePHjQjhwAAAAAgABjueCMioqyIwcAAAAA3LxA3V/ET1leNEiS/vvf/6phw4YqUaKEDh8+LEkaM2aMvv76a6+GAwAAAAD4L8sF54QJEzRgwADde++9On36dMY8zQIFCmjMmDHezgcAAAAA8FOWC853331XH3zwgQYPHuyyF2dsbKy2b9/u1XAAAAAAAP/l0aJBtWrVytQeFhamCxcueCUUAAAAAHiCbVF8i+UezujoaG3ZsiVT+8KFC1WlShVvZAIAAAAABADLPZwvvviinn76aV28eFGmaerHH3/UzJkzFR8frylTptiREQAAAADghywXnD169NDly5c1cOBApaSkqFOnTipZsqTGjh2rhx9+2I6MAAAAAAA/ZLnglKTevXurd+/eOn78uJxOp4oWLertXAAAAABgmck+nD7F8hzO1NRUpaSkSJIiIiKUmpqqMWPGaMmSJV4PBwAAAADwX5YLzn/961+aMWOGJOn06dOqW7euRo4cqX/961+aMGGC1wMCAAAAAPyT5YJz06ZNaty4sSRpzpw5ioyM1OHDhzVjxgyNGzfO6wEBAAAAwF2mafjtEYgsF5wpKSnKmzevJGnJkiVq3769goKCVK9ePR0+fNjrAQEAAAAA/slywVmuXDl99dVXOnLkiBYvXqxWrVpJkpKTk5UvXz6vBwQAAAAA+CfLBedrr72mF154QWXKlNGdd96p+vXrS7rS21mrVi2vBwQAAAAA+CfL26I8+OCDatSokRITE1WjRo2M9rvuukvt2rXzajgAAAAAsCRA50L6K4/24YyMjFRkZKRLW926db0SCAAAAAAQGCwPqQUAAAAAwB0e9XACAAAAgC8yzexOgGvRwwkAAAAAsAUFJwAAAADAFhScAAAAAABbMIcTAAAAQOBgDqdPoYcTAAAAAGALCk4AAAAAgC0oOAEAAAAAtmAOJwAAAICAYZpGdkfANejhBAAAAAA/NH78eEVHRys8PFx16tTR6tWr3Xrc2rVrlSNHDtWsWdPegKLgBAAAAAC/M2vWLPXr10+DBw/W5s2b1bhxY7Vu3VoJCQl/+bgzZ86oa9euuuuuu/6WnBScAAAAAAKH6ceHBaNGjVKvXr302GOPqXLlyhozZoxKlSqlCRMm/OXjnnjiCXXq1En169e39oQe8qk5nCsXDszuCAgwQZF7szsCAshS5+zsjoAAs+jkB9kdAQGGn1OAf0tLS1NaWppLW1hYmMLCwlza0tPT9dNPP2nQoEEu7a1atdL3339/3ftPmzZN+/fv18cff6zhw4d7L/hfoIcTAAAAAHxAfHy88ufP73LEx8dnuu748eNyOBwqVqyYS3uxYsWUlJSU5b337dunQYMG6ZNPPlGOHH9fv6NP9XB+f/j27I6AANEg6oAkqWXQQ9mcBIHgao+BM6lCNidBoLg6+uL0b6WyOQkCRYESRyRJSUdLZHMSBIrIkr9ld4RbUlxcnAYMGODS9ufezWsZhuuKvKZpZmqTJIfDoU6dOmno0KGqUOHv/X3GpwpOAAAAALgZ/rwtSlbDZ7MSERGh4ODgTL2ZycnJmXo9JencuXPauHGjNm/erGeeeUaS5HQ6ZZqmcuTIoSVLlqhFixbeeRF/wpBaAAAAAPAjoaGhqlOnjpYuXerSvnTpUjVo0CDT9fny5dP27du1ZcuWjKNPnz6qWLGitmzZojvvvNO2rPRwAgAAAICfGTBggLp06aLY2FjVr19fkydPVkJCgvr06SPpyvDco0ePasaMGQoKClK1atVcHl+0aFGFh4dnavc2Ck4AAAAAgcPi9iL+qmPHjjpx4oSGDRumxMREVatWTQsWLFBUVJQkKTEx8YZ7cv4dDNM0feYtYdEgeAuLBsGbWDQI3saiQfA2Fg2Ct/nzokFlZozI7ggeO9R10I0v8jPM4QQAAAAA2IKCEwAAAABgC+ZwAgAAAAgg/rstSiCihxMAAAAAYAsKTgAAAACALSg4AQAAAAC2YA4nAAAAgMDhM5s+QqKHEwAAAABgEwpOAAAAAIAtPBpSe+nSJSUlJSklJUVFihRRoUKFvJ0LAAAAAKxjSK1PcbuH8/z585o0aZKaNWum/Pnzq0yZMqpSpYqKFCmiqKgo9e7dWxs2bLAzKwAAAADAj7hVcI4ePVplypTRBx98oBYtWmju3LnasmWL9uzZo3Xr1mnIkCG6fPmyWrZsqX/84x/at2+f3bkBAAAAAD7OrSG133//vVasWKGYmJgsz9etW1c9e/bUxIkTNXXqVK1atUrly5f3alAAAAAAgH9xq+CcPXu2WzcLCwvTU089dVOBAAAAAMBjppHdCXANVqkFAAAAANjC8iq1Fy9e1LvvvqsVK1YoOTlZTqfT5fymTZu8Fg4AAAAA4L8sF5w9e/bU0qVL9eCDD6pu3boyDLqsAQAAAPgGk21RfIrlgvPbb7/VggUL1LBhQzvyAAAAAAAChOU5nCVLllTevHntyAIAAAAACCCWC86RI0fqpZde0uHDh+3IAwAAAAAIEJaH1MbGxurixYu6/fbblStXLoWEhLicP3nypNfCAQAAAIAlzOH0KZYLzkceeURHjx7Vm2++qWLFirFoEAAAAAAgS5YLzu+//17r1q1TjRo17MgDAAAAAAgQludwVqpUSampqXZkAQAAAAAEEMsF54gRI/T8889r5cqVOnHihM6ePetyAAAAAEC2MQ3/PQKQ5SG1//jHPyRJd911l0u7aZoyDEMOh8M7yQAAAAAAfs1ywblixQo7cgAAAAAAAozlgrNp06Z25AAAAACAm2awLYpPsTyHc9q0aZo9e3am9tmzZ+ujjz7ySigAAAAAgP/zaNGgiIiITO1FixbVm2++6ZVQAAAAAAD/Z7ngPHz4sKKjozO1R0VFKSEhwSuhAAAAAAD+z3LBWbRoUW3bti1T+9atW1W4cGGvhAIAAAAAj5h+fAQgywXnww8/rL59+2rFihVyOBxyOBxavny5nnvuOT388MN2ZAQAAAAA+CHLq9QOHz5chw8f1l133aUcOa483Ol0qmvXrszhBAAAAABksFxwhoaGatasWRo+fLi2bNminDlzKiYmRlFRUXbkAwAAAAD4KcsF51Xly5dX+fLlvZkFAAAAAG6OaWR3AlzDrTmcI0aMUEpKils3/OGHH/Ttt9/eVCgAAAAAgP9zq+DcuXOnSpcurSeffFILFy7UsWPHMs5dvnxZ27Zt0/jx49WgQQM9/PDDypcvn22BAQAAAAD+wa0htTNmzNC2bdv0/vvvq3Pnzjpz5oyCg4MVFhaW0fNZq1YtPf744+rWrZvCwsJsDQ0AAAAAWQrQ7UX8ldtzOKtXr65JkyZp4sSJ2rZtmw4dOqTU1FRFRESoZs2aioiIsDMnAAAAAMDPWF40yDAM1ahRQzVq1LAjDwAAAAAgQLg1hxMAAAAAAKs83hYFAAAAAHwOczh9Cj2cAAAAAABbUHACAAAAAGzBkFoAAAAAgYMhtT7FcsF54cIFjRgxQsuWLVNycrKcTqfL+QMHDngtHAAAAADAf1kuOB977DGtWrVKXbp0UfHixWUYhh25AAAAAAB+znLBuXDhQn377bdq2LChHXkAAAAAAAHCcsFZsGBBFSpUyI4sAAAAAHBzTEZg+hLLq9S+8cYbeu2115SSkmJHHgAAAABAgHCrh7NWrVouczV/+eUXFStWTGXKlFFISIjLtZs2bfJuQgAAAACAX3Kr4Gzbtq3NMQAAAAAAgcatgnPIkCF25wAAAACAm2awD6dPsTyH8/bbb9eJEycytZ8+fVq33367V0IBAAAAAPyf5YLz0KFDcjgcmdrT0tL066+/eiUUAAAAAMD/ub0tyjfffJPx8eLFi5U/f/6Mzx0Oh5YtW6bo6GjvpgMAAAAAKxhS61PcLjivLhxkGIa6devmci4kJERlypTRyJEjvRoOAAAAAOC/3C44nU6nJCk6OlobNmxQRESEbaEAAAAAAP7P7YLzqoMHD9qRAwAAAAAQYCwXnOPGjcuy3TAMhYeHq1y5cmrSpImCg4NvOhwAAAAAwH9ZLjhHjx6tY8eOKSUlRQULFpRpmjp9+rRy5cqlPHnyKDk5WbfffrtWrFihUqVK2ZEZAAAAAOAHLG+L8uabb+qOO+7Qvn37dOLECZ08eVJ79+7VnXfeqbFjxyohIUGRkZHq37+/HXkBAAAAAH7Ccg/nK6+8oi+++EJly5bNaCtXrpz+85//6IEHHtCBAwf09ttv64EHHvBqUAAAAAC4EYNtUXyK5R7OxMREXb58OVP75cuXlZSUJEkqUaKEzp07d/PpAAAAAAB+y3LB2bx5cz3xxBPavHlzRtvmzZv15JNPqkWLFpKk7du3Kzo62nspAQAAAAB+x3LBOXXqVBUqVEh16tRRWFiYwsLCFBsbq0KFCmnq1KmSpDx58mjkyJHXvUdaWprOnj3rcqSlpXn+KgAAAAAAPsfyHM7IyEgtXbpUu3fv1t69e2WapipVqqSKFStmXNO8efO/vEd8fLyGDh3q0jZkyBC16mE1DQAAAABcwzSyOwGuYbngvKpSpUqqVKmSR4+Ni4vTgAEDXNrCwsL0U9IMT+MAAAAAAHyM5YLT4XBo+vTpWrZsmZKTk+V0Ol3OL1++/Ib3uDoUFwAAAAAQuCwXnM8995ymT5+u++67T9WqVZNh0GUNAAAAAMjMcsH52Wef6fPPP9e9995rRx4AAAAA8Bz7cPoUy6vUhoaGqly5cnZkAQAAAAAEEMsF5/PPP6+xY8fKNPnTAQAAAADg+iwPqV2zZo1WrFihhQsXqmrVqgoJCXE5P3fuXK+FAwAAAABL6BfzKZYLzgIFCqhdu3Z2ZAEAAAAABBDLBee0adPsyAEAAAAACDCW53BK0uXLl/W///1PkyZN0rlz5yRJv/32m86fP+/VcAAAAAAA/2W5h/Pw4cP6xz/+oYSEBKWlpally5bKmzev3n77bV28eFETJ060IycAAAAA3JDBHE6fYrmH87nnnlNsbKxOnTqlnDlzZrS3a9dOy5Yt82o4AAAAAID/8miV2rVr1yo0NNSlPSoqSkePHvVaMAAAAACAf7NccDqdTjkcjkztv/76q/LmzeuVUAAAAADgEYbU+hTLQ2pbtmypMWPGZHxuGIbOnz+vIUOG6N577/VmNgAAAACAH7Pcwzl69Gg1b95cVapU0cWLF9WpUyft27dPERERmjlzph0ZAQAAAAB+yHLBWaJECW3ZskUzZ87Upk2b5HQ61atXL3Xu3NllESEAAAAAwK3NcsEpSTlz5lTPnj3Vs2dPb+cBAAAAAM8xh9OnuFVwfvPNN27fsE2bNh6HAQAAAAAEDrcKzrZt27p1M8MwslzBFgAAAABw63Gr4HQ6nXbnAAAAAAAEGI/mcAIAAACALzKYw+lTLO/DCQAAAACAOyg4AQAAAAC2YEgtAAAAgMBhGtmdANeghxMAAAAAYAu3ejjPnj3r9g3z5cvncRgAAAAAQOBwq+AsUKCADOOvu6ZN02QfTgAAAABABrcKzhUrVtidAwAAAABuHtui+BS3Cs6mTZvanQMAAAAAEGA8XqU2JSVFCQkJSk9Pd2mvXr36TYcCAAAAAPg/ywXnsWPH1KNHDy1cuDDL88zhBAAAAJBdDIbU+hTL26L069dPp06d0vr165UzZ04tWrRIH330kcqXL69vvvnGjowAAAAAAD9kuYdz+fLl+vrrr3XHHXcoKChIUVFRatmypfLly6f4+Hjdd999duQEAAAAAPgZyz2cFy5cUNGiRSVJhQoV0rFjxyRJMTEx2rRpk3fTAQAAAAD8luWCs2LFitqzZ48kqWbNmpo0aZKOHj2qiRMnqnjx4l4PCAAAAABuM/34CECWh9T269dPiYmJkqQhQ4bonnvu0SeffKLQ0FBNnz7d2/kAAAAAAH7KcsHZuXPnjI9r1aqlQ4cOaffu3SpdurQiIiK8Gg4AAAAA4L8sD6kdNmyYUlJSMj7PlSuXateurdy5c2vYsGFeDQcAAAAA8F+WC86hQ4fq/PnzmdpTUlI0dOhQr4QCAAAAAE8Ypv8egchywWmapgzDyNS+detWFSpUyCuhAAAAAAD+z+05nAULFpRhGDIMQxUqVHApOh0Oh86fP68+ffrYEhIAAAAA4H/cLjjHjBkj0zTVs2dPDR06VPnz5884FxoaqjJlyqh+/fq2hAQAAAAAtwTo0FR/5XbB2a1bN0lSdHS0GjZsqBw5LC9wCwAAAAC4hView9m0aVMdPnxYr7zyih555BElJydLkhYtWqSff/7Z6wEBAAAAAP7JcsG5atUqxcTE6IcfftDcuXMzVqzdtm2bhgwZ4vWAAAAAAAD/ZLngHDRokIYPH66lS5cqNDQ0o7158+Zat26dV8MBAAAAgCWmHx8ByHLBuX37drVr1y5Te5EiRXTixAmvhAIAAAAA+D/LBWeBAgWUmJiYqX3z5s0qWbKkV0IBAAAAAPyf5YKzU6dOeumll5SUlCTDMOR0OrV27Vq98MIL6tq1qx0ZAQAAAAB+yHLB+e9//1ulS5dWyZIldf78eVWpUkVNmjRRgwYN9Morr9iREQAAAADcYpj+e1g1fvx4RUdHKzw8XHXq1NHq1auve+3cuXPVsmVLFSlSRPny5VP9+vW1ePHim/hKu8dywRkSEqJPPvlEe/fu1eeff66PP/5Yu3fv1n//+18FBwfbkREAAAAAcI1Zs2apX79+Gjx4sDZv3qzGjRurdevWSkhIyPL67777Ti1bttSCBQv0008/qXnz5rr//vu1efNmW3Mapml6vB7S1YcahuGVMN8fvt0r9wEaRB2QJLUMeiibkyAQLHXOliQ5kypkcxIEiqDIvZKk07+VyuYkCBQFShyRJCUdLZHNSRAoIkv+lt0RPFbxjdHZHcFje17t7/a1d955p2rXrq0JEyZktFWuXFlt27ZVfHy8W/eoWrWqOnbsqNdee81yVndZ7uGUpKlTp6patWoKDw9XeHi4qlWrpilTpng7GwAAAADcMtLS0nT27FmXIy0tLdN16enp+umnn9SqVSuX9latWun7779367mcTqfOnTunQoUKeSX79VguOF999VU999xzuv/++zV79mzNnj1b999/v/r3788cTgAAAADwUHx8vPLnz+9yZNVbefz4cTkcDhUrVsylvVixYkpKSnLruUaOHKkLFy6oQ4cOXsl+PTmsPmDChAn64IMP9Mgjj2S0tWnTRtWrV9ezzz6r4cOHezUgAAAAANwK4uLiNGDAAJe2sLCw617/56mNpmm6Nd1x5syZev311/X111+raNGinoV1k+WC0+FwKDY2NlN7nTp1dPnyZa+EAgAAAIBbTVhY2F8WmFdFREQoODg4U29mcnJypl7PP5s1a5Z69eql2bNn6+67776pvO6wPKT20UcfdZmYetXkyZPVuXNnr4QCAAAAAI+Yfny4KTQ0VHXq1NHSpUtd2pcuXaoGDRpc93EzZ85U9+7d9emnn+q+++5z/wlvguUeTunKokFLlixRvXr1JEnr16/XkSNH1LVrV5cu4FGjRnknJQAAAAAgw4ABA9SlSxfFxsaqfv36mjx5shISEtSnTx9JV4bnHj16VDNmzJB0pdjs2rWrxo4dq3r16mX0jubMmVP58+e3LaflgnPHjh2qXbu2JGn//v2SpCJFiqhIkSLasWNHxnXe2ioFAAAAAOCqY8eOOnHihIYNG6bExERVq1ZNCxYsUFRUlCQpMTHRZU/OSZMm6fLl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MAxNmTJFefLkyTjncDj03XffqVKlSt5PCAAAAADuYg6nT3G74Bw9erSkKz2cEydOdBk+GxoaqjJlymjixIneTwgAAAAA8EtuF5wHDx6UJDVv3lxz585VwYIFbQsFAAAAAPB/bhecV61YscKOHAAAAABw09gWxbe4VXAOGDDA7RuOGjXK4zAAAAAAgMDhVsG5efNml89/+uknORwOVaxYUZK0d+9eBQcHq06dOt5PCAAAAADwS24VnNcOox01apTy5s2rjz76KGMe56lTp9SjRw81btzYnpQAAAAAAL9jeQ7nyJEjtWTJEpdFgwoWLKjhw4erVatWev755294j7S0NKWlpbm0hYWFWY0CAAAAAK6Yw+lTgqw+4OzZs/r9998ztScnJ+vcuXNu3SM+Pl758+d3OeLj461GAQAAAAD4MMsFZ7t27dSjRw/NmTNHv/76q3799VfNmTNHvXr1Uvv27d26R1xcnM6cOeNyxMXFWQ4PAAAAAPBdlofUTpw4US+88IIeffRRXbp06cpNcuRQr1699M4777h1j7CwMIbQAgAAAECAs1xw5sqVS+PHj9c777yj/fv3yzRNlStXTrlz57YjHwAAAAC4jX04fYvlgvOq3Llzq3r16t7MAgAAAAAIIG4VnO3bt9f06dOVL1++G87TnDt3rleCAQAAAAD8m1sFZ/78+WUYRsbHAAAAAOCTGFLrU9wqOKdNm5blxwAAAAAAXI/lbVE++OAD7du3z44sAAAAAIAAYrngHDlypCpWrKgSJUrokUce0aRJk7R79247sgEAAAAA/JjlgnP37t367bffNHLkSOXPn1+jR49W1apVFRkZqYcfftiOjAAAAADgHtOPjwDk0bYokZGReuSRR9SmTRutWbNGn332mT7++GPNmTPH2/kAAAAAAH7KcsG5cOFCrVq1SitXrtTWrVtVtWpVNWnSRF988YUaN25sR0YAAAAAgB+yXHDed999KlKkiJ5//nktXryYbVIAAAAA+AwjQIem+ivLczhHjRqlhg0b6p133lHFihXVsWNHTZgwQbt27bIjHwAAAADAT1kuOPv166e5c+fq2LFjWrp0qRo3bqz//e9/qlGjhooXL25HRgAAAACAH/Jo0SBJ2rx5s1auXKkVK1Zo9erVcjqduu2227yZDQAAAADgxywXnFdXpj179qxq1qypZs2a6fHHH1eT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qfXw8NBHH32kbt26ycnJST179kwxpPb69evq0qWLXF1dZW9vr4oVK2r+/PmPrSepnBUrVqhx48YqUqSIatSood27d1uPuXr1qjp16qQyZcqoSJEi8vb2TvG8BAQE6P3339fAgQNVokQJubu7a86cObp9+7a6d+8uR0dHPf/881q/fr3NeUePHlXz5s3l4OAgd3d3BQYG6rfffsvagwfkQrk64YyNjVWnTp3Uo0cPRUdHKzQ0VG3atLF+yM6dO1cjR47UhAkTFB0drYkTJyo4OFgLFy60KWfo0KEaPHiwDh48KF9fX7Vs2VJXr16V9OcHTZkyZbR8+XIdPXpUo0eP1ogRI7R8+fJMt3vjxo1688031b9/fx09elSzZ8/WggULUnxhHjt2rNq3b6+oqCg1b95cXbp00bVr1yT9+Sbatm1bvfHGG4qMjFTv3r01cuRI67m+vr6aOnWqihUrptjYWMXGxmrIkL+uSTRlyhRrctGnTx+99957OnbsWJpt3rFjh+rUqWOz7eLFi2rUqJEKFy6srVu3KiIiQj169LBJnLdu3apffvlFO3bs0GeffaYxY8botddeU4kSJRQeHq53331X7777rs6fP29Tdr169RQWFpbxBzcb5Yb4slgsatSokfWL4/Xr13X06FHdv39fR48elfTnl8natWvLwcEhxfm3b9/Wa6+9Ji8vL0VERGjMmDE2cVK2bFlrMhsTE6PY2FibhHjhwoUqWrSowsPD9fHHH2vcuHHavHlzmu3dsWOHKlWqpGLFilm3/f777/L399cvv/yiNWvW6NChQwoKClJi4l9Lmp86dUrr16/Xhg0btHTpUn3zzTdq0aKFLly4oO3bt2vy5MkaNWqU9uzZY1NfToij5BYuXKgCBQooPDxcX3zxhT7//HPNmzfPur979+7auXOnli1bpqioKLVr106vvPKKTpw48cjX9L179zR+/HgdOnRIq1at0pkzZ2x+GMioO3fuqHHjxnJwcNCOHTv03//+1/ql+d69e9bjtm3bplOnTmnbtm1auHChFixYYDMcsmvXrvrll18UGhqq77//XnPmzLFJVvbt2yfpzx9uYmNjrfelP5/zVatWae3atVq7dq22b9+uSZMmpdnmqKgo3bhxI8X7VNeuXbVs2TJ98cUXio6O1qxZs1K8FsaMGaMvv/xSu3bt0vnz59W+fXtNnTpVS5Ys0bp167R582ZNnz7d5px69epp7969io+PT/8Da6KcGlsBAQEKCwuzvp63b9+ukiVLavv27ZKkS5cu6fjx4/L390/1/KFDh2rbtm1auXKlNm3apNDQUJu52StWrFCZMmU0btw4a9uT3LlzR59++qkWLVqkHTt26Ny5czbvbw+7fv26Dh8+nCKGhg8frsmTJys4OFhHjx7VkiVL5O7ubnPMhx9+qFGjRunAgQMqUKCAOnXqpKCgIE2bNk1hYWE6deqURo8ebXNOvXr1dP78ef3888/peCTztk8++UTVqlVTRESEgoODU+xPeuzXr1+v6OhozZw5UyVLlkx3+SNHjtSQIUMUGRmpSpUqqVOnTtbvKn/88Ydq166ttWvX6vDhw+rVq5cCAwOtP3omWbhwoUqWLKm9e/fq/fff13vvvad27drJ19dXBw4cULNmzRQYGGj9cSo2Nlb+/v6qWbOm9u/frw0bNujXX39V+/bts/BIId0Sjdx7y4uMXCwiIsKQZJw9ezbV/WXLljWWLFlis238+PFGw4YNDcMwjDNnzhiSjEmTJln3379/3yhTpowxefLkNOvt06eP8b//+7/W+2+99ZbRqlWrNI+fP3++4eTkZL3v5+dnTJw40eaYRYsWGaVLl7bel2SMGjXKev/33383LBaLsX79esMwDGPYsGFGtWrVbMoYOXKkIcm4fv16qvUmKV++vPHmm29a7ycmJhpubm7GzJkz0/wfWrVqZfTo0cNm2/Dhw40KFSoY9+7dS/Wct956yyhfvryRkJBg3ebl5WX4+flZ7z948MAoWrSosXTpUptzBw0aZAQEBKTZnicht8TXF198YY2FVatWGXXq1DHatGljzJgxwzAMw2jatKkxbNgw6/GSjJUrVxqGYRizZ882nJ2djdu3b1v3z5w505BkHDx40DAMw9i2bZtNXCXx9/c3XnrpJZttdevWtanrYQMGDDD+8Y9/2GybPXu24ejoaFy9ejXVcz788EOjSJEixs2bN63bmjVrZnh4eKSIrZCQEJtzp02bZnh4eKTZnifJ39/fqFKlipGYmGjdNmzYMKNKlSqGYRjGyZMnDYvFYly8eNHmvJdfftkYPny4YRhpv6YftnfvXkOScevWLcMw0n4Ok0seF19//bXh5eVl09b4+HjD3t7e2Lhxo2EYf72+Hzx4YD2mXbt2RocOHQzDMIzo6GhDkrFv3z7r/hMnThiSjM8//zzVepOk9pwPHTrUqF+/fprtX7lypZE/f36bNsfExBiSjM2bN6d6TtLj8p///Me6LSQkxJBknDp1yrqtd+/eRrNmzWzOPXTo0CPfH56knBxbN27cMPLly2fs37/fSExMNFxcXIyQkBCjbt26hmEYxpIlSwx3d3fr8cnf727dumUUKlTIWLZsmXX/1atXDXt7e2PAgAHWbeXLl7eJqaT/R5Jx8uRJ67YZM2bY1PWwgwcPGpKMc+fOWbfdvHnTsLOzM+bOnZvqOUnv8/PmzbNuW7p0qSHJ2LJli3VbSEiI4eXlZXNuXFycIckIDQ1Ns015lb+/v/U5LF++vPHGG2/Y7E96XJM+h15//XWje/fuGa4ntefnyJEjhiQjOjo6zfOaN29uDB482Ka9yT/vkr67BAYGWrfFxsYakozdu3cbhmEYwcHBRtOmTW3KPX/+vCHJiImJyfD/gox5peyAXHvLi3J1D2eNGjX08ssvy9vbW+3atdPcuXOt8/6uXLmi8+fP6+2335aDg4P19tFHH1mHfCZJPky0QIECqlOnjs28r1mzZqlOnTpydXWVg4OD5s6dq3PnzmW63RERERo3bpxNu3r27KnY2FibYVvVq1e3/l20aFE5OjpaewdiYmJUt25dm3Lr1auX7jYkL9tisahUqVKPHCZ19+5dFS5c2GZbZGSk/Pz8VLBgwTTPq1q1qvLl+yvM3N3d5e3tbb2fP39+ubi4pKjb3t4+xRC2Jy23xFdAQICOHDmi3377Tdu3b1dAQIACAgK0fft2PXjwQLt27Uqz9yA6Olo1atRQkSJFUm3v4ySPI0kqXbp0puLIx8dHzs7OaZ7n4eFhM9/H3d1dL7zwQorYyolxlFyDBg1shvw1bNhQJ06cUEJCgg4cOCDDMFSpUiWbmNq+fXuKmHrYwYMH1apVK5UvX16Ojo4KCAiQpEy/T0VEROjkyZNydHS0tsPZ2Vl//PGHTVuqVq2q/PnzW+8nf/5jYmJUoEAB1apVy7rf09NTJUqUSFcbHn7O0xNbdnZ2No9vZGSk8ufPn2b8J0kex+7u7ipSpIiee+45m22pxZakHBNfOTW2nJycVLNmTYWGhuqnn35Svnz51Lt3bx06dEi3bt1SaGhoms/PqVOndO/ePZv3JGdnZ3l5eaWr7iJFiuj555+33k9PDEmyeY+Kjo5WfHy8Xn755UfW9XAMSbL5rMsNMfQ0Pdyr/LD33ntPy5YtU82aNRUUFKRdu3ZlqPzkz0/p0qUlyfp8JCQkaMKECapevbpcXFzk4OCgTZs2pYjx5GUkfXd5+DlOXm5ERIS2bdtm85qrXLmyJD32dQfkNbl6Nnb+/Pm1efNm7dq1S5s2bdL06dM1cuRIhYeHW79Az507V/Xr109x3uMkfXAvX75cgwYN0pQpU9SwYUM5Ojrqk08+STHUIiMSExM1duxYtWnTJsW+5B90DydyFovFOizJMIwUc1WMDKxs9aiyU1OyZMkUi/gkfVhmtJ701H3t2jW5uro+tnwz5Zb4qlatmlxcXLR9+3Zt375d48aNU9myZTVhwgTt27dPd+/e1UsvvZTquRmJmdRkJo5++uknm215PY7SKzExUfnz51dERESKGEptOHSS27dvq2nTpmratKm+++47ubq66ty5c2rWrJnN8NeMtqV27dqpLoqT/PF83HtUatIbc5mJrTt37ujevXsqVKiQpPTF1sN1ZSS2JOWK+HrasRUQEKDQ0FAVKlRI/v7+KlGihKpWraqdO3cqNDQ0zctjmPH+9Kgyk4ZoXr9+3fq8ZjaGUtuWm2PIbEWLFn3k/ldffVU///yz1q1bp//85z96+eWX1bdvX3366afpKj+15yfp+ZgyZYo+//xzTZ06Vd7e3ipatKgGDhyYIsYf9zn0cLmJiYl6/fXXNXny5BTtSUp6gb+LXN3DKf35An/xxRc1duxYHTx4UIUKFdLKlSvl7u6uZ599VqdPn5anp6fNrUKFCjZlJJ/39eDBA0VERFh/hQoLC5Ovr6/69OkjHx8feXp6ZvmXqVq1aikmJiZFuzw9PW16bB6lcuXKNvOdJGn//v029wsVKqSEhIQstTWJj4+PdU5gkurVqyssLMxmkZDscvjwYfn4+GR7uRmVG+IraR7n6tWrdfjwYfn5+cnb21v379/XrFmzVKtWrTRXA3zhhRd06NAh6y/7D7dXkvXLe3bEko+Pj44dO2bzpa969eqKjIy0fvnKTjkljpI8/Nju2bNHFStWVP78+eXj46OEhARdvnw5RUyVKlVKUuqv6WPHjum3337TpEmT5Ofnp8qVK2d5waBatWrpxIkTcnNzS9EWJyendJVRuXJlPXjwwGYRqpMnT6a4vE7BggWzJbaSrtuZ/H3K29tbiYmJ1vmC2enw4cMqU6ZMhuaRmSknx1bSPM6tW7dae0j9/f21bNmyR87f9PT0VMGCBW3+t+vXr+v48eM2x2XXZ93zzz+vYsWK2cRQ0sJ8W7ZsyXL5Dzt8+LAKFiyoqlWrZnvZeZGrq6u6deum7777TlOnTn3sYofpFRYWplatWunNN99UjRo19Nxzz+nEiRNZLrdWrVo6cuSIPDw8UrzuHpdgIxs87UubcFkUG7k64QwPD9fEiRO1f/9+nTt3TitWrNCVK1dUpUoVSX8uBBESEqJp06bp+PHj+umnnzR//vwUF+yeMWOGVq5cqWPHjqlv3766fv26evToIenPD7z9+/dr48aNOn78uIKDg1Mkehk1evRoffvttxozZoyOHDmi6Oho/d///Z9GjRqV7jJ69+6tY8eOadiwYTp+/LiWL19uXawj6Vc2Dw8P/f7779qyZYt+++23LA3badasmY4cOWLTy9mvXz/dvHlTHTt21P79+3XixAktWrRIMTExma5H+nN4UUREhJo2bZqlcrIqN8VXQECAlixZourVq6tYsWLWJHTx4sXWL3ip6dy5s/Lly6e3335bR48e1Y8//pjiF+Py5cvLYrFo7dq1unLlinW128xo3Lixbt++rSNHjli3derUSaVKldIbb7yhnTt36vTp0/r+++9tVhHMrLCwsKceR8mdP39eH3zwgWJiYrR06VJNnz5dAwYMkCRVqlRJXbp0UdeuXbVixQqdOXNG+/bt0+TJk/Xjjz9KSv01Xa5cORUqVEjTp0/X6dOntWbNmkde3y49unTpopIlS6pVq1YKCwvTmTNntH37dg0YMEAXLlxIVxmVK1dWkyZN1KtXL+3du1cHDx5Ur169ZG9vbzM6w8PDQ1u2bNGlS5eydCkkV1dX1apVS//9739tyn7rrbfUo0cP64I3oaGhWVr0LQmxlX6NGjXSrVu39MMPP1jfjwICAqy9pi+88EKq5zk4OOjtt9/W0KFDtWXLFh0+fFjdunVL8cOsh4eHduzYoYsXL2ZpBdB8+fKpSZMmNjFUuHBhDRs2TEFBQfr222916tQp7dmzx7rScVaEhYVZV7bFo40ePVqrV6/WyZMndeTIEa1du9b6WZxVnp6e1tFM0dHR6t27ty5dupTlcvv27atr166pU6dO2rt3r06fPq1NmzapR48e2dYZAOQWuTrhLFasmHbs2KHmzZurUqVKGjVqlKZMmWK9qP0777yjefPmacGCBfL29pa/v78WLFiQogdq0qRJmjx5smrUqKGwsDCtXr3a+qv1u+++qzZt2qhDhw6qX7++rl69qj59+mSp3c2aNdPatWu1efNm1a1bVw0aNNBnn32m8uXLp7uMChUq6N///rdWrFih6tWra+bMmdZVapOusejr66t3331XHTp0kKurqz7++ONMt9nb21t16tSx+aLm4uKirVu3WlcZrV27tubOnfvIOZ3psXr1apUrV05+fn5ZKierclN8NW7cWAkJCTbJpb+/vxISEh45f83BwUE//PCDjh49Kh8fH40cOTLF8J9nn31WY8eO1T//+U+5u7urX79+GW5fEhcXF7Vp08ZmqGahQoW0adMmubm5qXnz5vL29takSZPSNTT5UXbv3q24uDi1bds2S+Vkp65du+ru3buqV6+e+vbtq/fff1+9evWy7p8/f766du2qwYMHy8vLSy1btlR4eLjKli0rKfXXtKurqxYsWKB//etfeuGFFzRp0qR0DzNLS5EiRbRjxw6VK1dObdq0UZUqVdSjRw/dvXvXZoXhx/n222/l7u6uRo0aqXXr1urZs6ccHR1tpg5MmTJFmzdvVtmyZbPcG92rV68Uw4Bnzpyptm3bqk+fPqpcubJ69uxpc2mjzPjjjz+0cuVK9ezZM0vlZKecHFtOTk7WedpJyaWfn58SExMfO7/2k08+UaNGjdSyZUs1adJEL730kmrXrm1zzLhx43T27Fk9//zzWR6e2qtXLy1btsxm+GtwcLAGDx6s0aNHq0qVKurQoUOWRxFI0tKlS3NUDOVkhQoV0vDhw1W9enU1atRI+fPn17Jly7Kl7ODgYNWqVUvNmjVTQECA9QfQrHrmmWe0c+dOJSQkqFmzZqpWrZoGDBggJyendI9mA/IKi5HVSRK52NmzZ1WhQgUdPHjQOhwrN5swYYJmzZqV4hIj2eXHH3/UkCFDdPjwYVPfLOvVq6eBAweqc+fOptXxJOS1+MouP/30k5o0aWJdlMYs7dq1k4+Pj0aMGGFaHRkREBCgmjVrWq9B+Xd04cIFlS1b1joHK7v98ccf8vLy0rJlyzK0+FVGzZgxQ6tXr9amTZtMqyMjiK3sYxiGGjRooIEDB6pTp06m1bNu3ToNHTpUUVFRKlAgVy+nAeRIr5bp/7SbkGnrL3zxtJuQ7XiXy8W++uor1a1bVy4uLtq5c6c++eSTLPU+PU7z5s114sQJXbx40fqreHa7fPmy2rZta+oHPZ4ub29vffzxxzp79qzNCn/ZKT4+XjVq1NCgQYNMKR/pkzQCwtvbW7GxsQoKCpKHh4caNWpkSn2FCxfWt99+a/qF1QsWLJjiupzIGywWi+bMmaOoqChT67l9+7bmz59Psgngb4F3ulzsxIkT+uijj3Tt2jWVK1dOgwcP1vDhw02tM2lOkFnc3NwUFBRkah14+t566y1Ty7ezs8vQnGiY4/79+xoxYoROnz4tR0dH+fr6avHixVkedv8ojxuimR2SD1VF3lOjRg3VqFHD1Drat29vavl/FxMnTtTEiRNT3efn56f169c/4RYBSM3fekgtAAAAcqdr166lucK5vb29nn322SfcIuQUDKnNWejhBAAAQK7j7OwsZ2fnp90M5ET0p+UoLJMFAAAAADAFCScAAAAAwBQknAAAAAAAUzCHEwAAAEDekZj4tFuAZOjhBAAAAACYgoQTAAAAAGAKhtQCAAAAyDu4LEqOQg8nAAAAAMAUJJwAAAAAAFOQcAIAAAAATMEcTgAAAAB5B3M4cxR6OAEAAAAApiDhBAAAAACYgiG1AAAAAPKORIbU5iT0cAIAAAAATEHCCQAAAAAwBQknAAAAAMAUzOEEAAAAkGcYRuLTbgKSoYcTAAAAAGAKEk4AAAAAgClIOAEAAAAApmAOJwAAAIC8g+tw5ij0cAIAAAAATEHCCQAAAAAwBUNqAQAAAOQdBkNqcxJ6OAEAAAAApiDhBAAAAACYgoQTAAAAAGAK5nACAAAAyDsSE592C5AMPZwAAAAAAFOQcAIAAAAATEHCCQAAAAAwBXM4AQAAAOQdXIczR6GHEwAAAABgChJOAAAAAIApGFILAAAAIM8wuCxKjkIPJwAAAADAFCScAAAAAABTkHACAAAAAEzBHE4AAAAAeQeXRclR6OEEAAAAAJiChBMAAAAAYAoSTgAAAAB5R6KRe28muX79ugIDA+Xk5CQnJycFBgbqxo0b6T6/d+/eslgsmjp1aobrJuEEAAAAgDysc+fOioyM1IYNG7RhwwZFRkYqMDAwXeeuWrVK4eHheuaZZzJVN4sGAQAAAEAeFR0drQ0bNmjPnj2qX7++JGnu3Llq2LChYmJi5OXllea5Fy9eVL9+/bRx40a1aNEiU/WTcAIAAABADhAfH6/4+HibbXZ2drKzs8t0mbt375aTk5M12ZSkBg0ayMnJSbt27Uoz4UxMTFRgYKCGDh2qqlWrZrp+htQCAAAAyDuMxFx7CwkJsc6zTLqFhIRk6eG4dOmS3NzcUmx3c3PTpUuX0jxv8uTJKlCggPr375+l+kk4AQAAACAHGD58uOLi4mxuw4cPT/XYMWPGyGKxPPK2f/9+SZLFYklxvmEYqW6XpIiICE2bNk0LFixI85j0YkgtAAAAAOQAGRk+269fP3Xs2PGRx3h4eCgqKkq//vprin1XrlyRu7t7queFhYXp8uXLKleunHVbQkKCBg8erKlTp+rs2bPpaqNEwgkAAAAAuU7JkiVVsmTJxx7XsGFDxcXFae/evapXr54kKTw8XHFxcfL19U31nMDAQDVp0sRmW7NmzRQYGKju3btnqJ0knAAAAADyDMPE61nmRlWqVNErr7yinj17avbs2ZKkXr166bXXXrNZMKhy5coKCQlR69at5eLiIhcXF5tyChYsqFKlSj1yVdvUMIcTAAAAAPKwxYsXy9vbW02bNlXTpk1VvXp1LVq0yOaYmJgYxcXFZXvdFsMw+AkAAAAAQJ7QtFDnp92ETNt0b8nTbkK2Y0gtAAAAgLzDSHzaLUAyDKkFAAAAAJiChBMAAAAAYAoSTgAAAACAKZjDCQAAACDP4LIoOQs9nAAAAAAAU5BwAgAAAABMwZBaAAAAAHkHl0XJUejhBAAAAACYgoQTAAAAAGAKEk4AAAAAgCkshmGwbjAAAAAAINvRwwkAAAAAMAUJJwAAAADAFCScAAAAAABTkHACAAAAAExBwgkAAAAAMAUJJwAAAADAFCScAAAAAABTkHACAAAAAExBwgkAAAAAMMX/A93fvJM6XtJfAAAAAElFTkSuQmCC",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"import seaborn as sns\n",
"colormap = plt.cm.viridis\n",
"plt.figure(figsize=(12,12))\n",
"plt.title('Pearson Correlation of Features', y=1.05, size=15)\n",
"sns.heatmap(df_clean_iris_set.astype(float).corr(),linewidths=0.1,vmax=1.0, square=True, cmap=colormap, linecolor='white', annot=True)"
]
},
{
"cell_type": "raw",
"metadata": {},
"source": [
"The initial observation provided by this heatmap is very valuable as it allows for a quick understanding of the predictive power of each feature.\n",
"\n",
"It is evident from the heatmap that the *petal length* and *petal width* exhibit the strongest correlations (in absolute terms) with the target classes, with respective values of 0.95 and 0.96.\n",
"\n",
"However, it should be noted that these two features also have a very high correlation with each other (0.96, the highest in the dataset), implying that they may be conveying the same information. Consequently, utilizing both of these features as inputs for the same model might not be advisable. \n",
"\n",
"If we look up to the example we can see that the column 2 from X (*petal length*) is in the root. Therefore, further exploration and comparison of these features is required."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Exercises\n",
"\n",
"7. Drop the *petal width* column from the database and create a decision tree in a similar way with the example.\n",
"\n",
"8. Find the proper depth and evaluate the score for the decision tree model that you build."
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"10\n",
"Accuracy: 0.95\n",
"Best hyperparameters: {'max_depth': 2}\n",
"Accuracy: 0.97\n"
]
},
{
"data": {
"text/plain": [
"[Text(0.4, 0.8333333333333334, 'x[2] <= 2.45\\nentropy = 1.583\\nsamples = 112\\nvalue = [35, 39, 38]'),\n",
" Text(0.2, 0.5, 'entropy = 0.0\\nsamples = 35\\nvalue = [35, 0, 0]'),\n",
" Text(0.6, 0.5, 'x[2] <= 4.75\\nentropy = 1.0\\nsamples = 77\\nvalue = [0, 39, 38]'),\n",
" Text(0.4, 0.16666666666666666, 'entropy = 0.187\\nsamples = 35\\nvalue = [0, 34, 1]'),\n",
" Text(0.8, 0.16666666666666666, 'entropy = 0.527\\nsamples = 42\\nvalue = [0, 5, 37]')]"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# your code here\n",
"df_iris = pd.read_csv('iris_teach_2.csv')\n",
"df_iris.dropna(inplace=True)\n",
"X = df_iris.drop('iris_name', axis=1, inplace=False).drop('petal width (cm)', axis=1, inplace=False)\n",
"y = df_iris['iris_name']\n",
"y_encoded = LabelEncoder().fit_transform(y)\n",
"X_train, X_test, y_train, y_test = train_test_split(X, y_encoded, test_size=0.25, random_state=42)\n",
"\n",
"tree_clf = DecisionTreeClassifier(criterion='entropy', random_state=42)\n",
"tree_clf.fit(X_train, y_train) \n",
"print(tree_clf.get_depth())\n",
"y_pred = tree_clf.predict(X_test) \n",
"accuracy = accuracy_score(y_test, y_pred) \n",
"print(\"Accuracy: {:.2f}\".format(accuracy))\n",
"\n",
"param_grid = {\"max_depth\": [1, 2, 3, 4, 5, 6, 7]} \n",
"grid_search = GridSearchCV(tree_clf, param_grid, cv=5) \n",
"grid_search.fit(X_train, y_train)\n",
"print(\"Best hyperparameters:\", grid_search.best_params_)\n",
"\n",
"tree_clf_tuned = DecisionTreeClassifier(criterion='entropy', max_depth=grid_search.best_params_['max_depth'], random_state=42)\n",
"tree_clf_tuned.fit(X_train, y_train)\n",
"y_pred = tree_clf_tuned.predict(X_test) \n",
"accuracy = accuracy_score(y_test, y_pred) \n",
"print(\"Accuracy: {:.2f}\".format(accuracy))\n",
"plot_tree(tree_clf_tuned)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"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.12.2"
}
},
"nbformat": 4,
"nbformat_minor": 4
}