---
# System prepended metadata

title: 2. Decision Trees Lab_2 25 May 2023

---

# 2. Decision Trees Lab_2 25 May 2023
===

Decision Trees (DTs) are **non-parametric supervised learning** method used for classification and regression. The goal is to create a model that predicts the value of a target variable by learning simple decision rules inferred from the data features. A tree can be seen as a piecewise constant approximation.

<i class="fa fa-book"></i>.
You could get more details on DTs in SCIKIT LEARN . [Learn more here](https://scikit-learn.org/stable/modules/tree.html).

:::info
:bulb: **Hint:** In book mode, only list of links and headings will appear in the left-hand bar.
:::

Data
---
What is the dataset used for this lab?

The features loaded to train the model?

**Muhammad Umar**
1: The dataset use in this lab is iris dataset
2. Length and Width of the Flower

**Mohammed Fahad**
the dataset used is Iris

Features - Petal length and width  

**Azlan**
Data set - Iris
Features - Petal Length & Petal Width

**Moric**
IRIS

Petal Length and Petal Width

**Danyar:**

1.the data set that is used is Iris data set

2.eventhough Iris dataset has 4 features, but for this code only 2 of them is being used which is the petal length and petal width


Prediction
---
Show/Name the data for the prediction? 
How many data (for the prediction) was generated?
How deep is the DT model?

**Muhammad Umar**
1:y_pred = tree_clf.predict(X_iris_all).reshape(lengths.shape)
2:Shape:(10000, 2) for the prediction
3:max_depth=3
![](https://hackmd.io/_uploads/S17YtDnS3.png)

**Mohammed Fahad**
1. import load_iris
2. np.size(X_iris_all), 20000
3. tree_clf = DecisionTreeClassifier(max_depth=3, random_state=42)
4. ![](https://hackmd.io/_uploads/HJfNqw3Sh.png)

**Azlan**

1.X_iris_all
2.(10000,2)= 20000
3.max_depth=3
![](https://hackmd.io/_uploads/By0KFP2rn.png)



**Moric**
The prediction is performed on the X_iris_all variable, which combines the lengths and widths values into a 2D array

10000

The code initializes a decision tree model (tree_clf_deeper) with a maximum depth of 3 using the max_depth=3 parameter in the DecisionTreeClassifier instantiation
![](https://hackmd.io/_uploads/r1WSnDhS2.png)


**Danyar:**

1. lengths, widths = np.meshgrid(np.linspace(0, 7.2, 100), np.linspace(0, 3, 100))

2. 10000*2

3. tree_clf_deeper = DecisionTreeClassifier(max_depth=3, random_state=42)
 based on this line of code the depth=3
 
 
Prediction:
![](https://hackmd.io/_uploads/BkaPYPnS2.png)



Regularization Hyperperparameter 
---
What is the two different DTs that is compared in the hyperparameter tuning?
Paste the figure and explain what happens if you do not regularize or set the hyperparameters?

**Muhammad_Umar**
1. i: tree_clf1 = DecisionTreeClassifier
    ii:tree_clf2 = DecisionTreeClassifier
2. If you regularize there's probability of getting high accurate result, while.. 

**Danyar**
1. tree_clf1 = DecisionTreeClassifier(random_state=42)
tree_clf2 = DecisionTreeClassifier(min_samples_leaf=5, random_state=42)

based on the code 2 DTs are compared: tree_clf1 & tree_clf2


**Azlan**
1. tree_clf1 & tree_clf2

2. ![](https://hackmd.io/_uploads/SkiQ0DhHn.png)

Without regularization:
i.The model may have a tendency to overfit the training data. Overfitting occurs when the model learns to capture noise or irrelevant patterns in the training data, leading to poor generalization on unseen data.
ii. The model may be more sensitive to noisy or outlier data points


**Mohammed Fahad**
 a comparision between tree_clf1 & tree_clf2
 
**Moric**
tree_clf1 and tree_clf2

![](https://hackmd.io/_uploads/H1Oabuhrh.png)

Without regularization or setting appropriate hyperparameters, a decision tree can become overly complex and prone to overfitting the training data. It may result in capturing noise or irrelevant patterns, leading to poor generalization to unseen data

Closed List [close]
---

