Skip to content

Instantly share code, notes, and snippets.

@ShahStavan
Created September 29, 2023 19:25
Show Gist options
  • Save ShahStavan/f3e8e4214e25b4483be52e6ccef30c08 to your computer and use it in GitHub Desktop.
Save ShahStavan/f3e8e4214e25b4483be52e6ccef30c08 to your computer and use it in GitHub Desktop.
22bce539_Practical_6.ipynb
Display the source blob
Display the rendered blob
Raw
{
"nbformat": 4,
"nbformat_minor": 0,
"metadata": {
"colab": {
"provenance": [],
"authorship_tag": "ABX9TyM9vnS1ihT4APKi3+fbAg13"
},
"kernelspec": {
"name": "python3",
"display_name": "Python 3"
},
"language_info": {
"name": "python"
}
},
"cells": [
{
"cell_type": "markdown",
"source": [
"# ROLL NO : 22bce539\n",
"# NAME : SHAH STAVAN PURVESHBHAI\n",
"# SUBJECT & COURSE CODE: MACHINE LEARNING (2CS501)\n",
"# Practical 6 (Decision Trees)\n",
"# Date : 29/09/2023"
],
"metadata": {
"id": "byb7PjlMULel"
}
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "vr7h0g5XT123"
},
"outputs": [],
"source": [
"from sklearn.tree import DecisionTreeClassifier\n",
"from sklearn.datasets import load_iris\n",
"from sklearn.tree import export_text\n",
"from sklearn.model_selection import train_test_split, cross_val_score\n",
"from sklearn.metrics import accuracy_score\n",
"from sklearn.metrics import precision_recall_fscore_support\n",
"from sklearn.metrics import confusion_matrix\n",
"from sklearn import tree"
]
},
{
"cell_type": "code",
"source": [
"# Load the Iris dataset\n",
"irisdata = load_iris()\n",
"X = irisdata.data\n",
"y = irisdata.target\n"
],
"metadata": {
"id": "oKdwUnjnUXiZ"
},
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"source": [
"# Split the dataset into a training and testing set\n",
"X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)"
],
"metadata": {
"id": "Icuh0MkOVEJy"
},
"execution_count": null,
"outputs": []
},
{
"cell_type": "markdown",
"source": [
"\n",
"\n",
"* ID3 Decision Tree Classifier\n",
"\n",
"\n"
],
"metadata": {
"id": "UIpSBIcWVHgZ"
}
},
{
"cell_type": "code",
"source": [
"# Initialize and train the ID3 Decision Tree Classifier\n",
"id3_classifier = DecisionTreeClassifier(criterion=\"entropy\", splitter=\"best\")\n",
"id3_classifier.fit(X_train, y_train)\n",
"\n",
"\n",
"tree.plot_tree(id3_classifier)\n",
"\n",
"# Predict using the trained classifier\n",
"id3_predictions = id3_classifier.predict(X_test)\n",
"\n",
"# Calculate accuracy\n",
"id3_accuracy = accuracy_score(y_test, id3_predictions)\n",
"print(\"ID3 Accuracy:\", id3_accuracy)\n",
"\n",
"# Print confusion matrix\n",
"print(\"\\nConfusion matrix: \")\n",
"print(confusion_matrix(y_test, id3_predictions))\n",
"\n",
"# Print Precision, Recall, F1-Score, and Support\n",
"precision, recall, f1_score, support = precision_recall_fscore_support(y_test, id3_predictions)\n",
"print(\"\\nPrecision:\", precision)\n",
"print(\"Recall:\", recall)\n",
"print(\"F1-Score:\", f1_score)\n",
"print(\"Support:\", support)\n",
"\n",
"# Print the Decision Tree in text format\n",
"draw_tree_text = export_text(id3_classifier, feature_names=irisdata['feature_names'])\n",
"print(draw_tree_text)\n",
"\n",
"# Perform cross-validation and print scores\n",
"scores = cross_val_score(id3_classifier, X, y, cv=10)\n",
"print(\"\\nCross Validation Scores:\", scores)"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 1000
},
"id": "Cz0TcyK9VFJM",
"outputId": "39195769-a37e-468b-8720-b843bc233a46"
},
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"ID3 Accuracy: 0.9777777777777777\n",
"\n",
"Confusion matrix: \n",
"[[19 0 0]\n",
" [ 0 13 0]\n",
" [ 0 1 12]]\n",
"\n",
"Precision: [1. 0.92857143 1. ]\n",
"Recall: [1. 1. 0.92307692]\n",
"F1-Score: [1. 0.96296296 0.96 ]\n",
"Support: [19 13 13]\n",
"|--- petal width (cm) <= 0.80\n",
"| |--- class: 0\n",
"|--- petal width (cm) > 0.80\n",
"| |--- petal length (cm) <= 4.75\n",
"| | |--- petal width (cm) <= 1.60\n",
"| | | |--- class: 1\n",
"| | |--- petal width (cm) > 1.60\n",
"| | | |--- class: 2\n",
"| |--- petal length (cm) > 4.75\n",
"| | |--- petal length (cm) <= 5.15\n",
"| | | |--- petal width (cm) <= 1.75\n",
"| | | | |--- sepal width (cm) <= 2.35\n",
"| | | | | |--- class: 2\n",
"| | | | |--- sepal width (cm) > 2.35\n",
"| | | | | |--- petal length (cm) <= 5.05\n",
"| | | | | | |--- class: 1\n",
"| | | | | |--- petal length (cm) > 5.05\n",
"| | | | | | |--- sepal length (cm) <= 6.15\n",
"| | | | | | | |--- class: 1\n",
"| | | | | | |--- sepal length (cm) > 6.15\n",
"| | | | | | | |--- class: 2\n",
"| | | |--- petal width (cm) > 1.75\n",
"| | | | |--- sepal width (cm) <= 3.10\n",
"| | | | | |--- class: 2\n",
"| | | | |--- sepal width (cm) > 3.10\n",
"| | | | | |--- class: 1\n",
"| | |--- petal length (cm) > 5.15\n",
"| | | |--- class: 2\n",
"\n",
"\n",
"Cross Validation Scores: [1. 0.93333333 1. 0.93333333 0.93333333 0.86666667\n",
" 0.93333333 1. 1. 1. ]\n"
]
},
{
"output_type": "display_data",
"data": {
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
],
"image/png": "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\n"
},
"metadata": {}
}
]
},
{
"cell_type": "markdown",
"source": [
"\n",
"\n",
"* CART Decision Tree Classifier\n",
"\n"
],
"metadata": {
"id": "lYP1KQ8RVtnw"
}
},
{
"cell_type": "code",
"source": [
"# Create a Decision Tree classifier\n",
"cart_classifier = DecisionTreeClassifier(criterion=\"gini\", splitter=\"best\")\n",
"\n",
"# Train the classifier on the training data\n",
"classified = cart_classifier.fit(X_train, y_train)\n",
"\n",
"# Make predictions on the test data\n",
"cart_predictions = cart_classifier.predict(X_test)\n",
"\n",
"# Calculate accuracy\n",
"cart_accuracy = accuracy_score(y_test, cart_predictions)\n",
"print(\"CART Accuracy:\", cart_accuracy)\n",
"\n",
"# Print confusion matrix\n",
"print(\"\\nConfusion matrix: \")\n",
"print(confusion_matrix(y_test, cart_predictions))\n",
"\n",
"# Print precision, recall, F1-Score, and Support\n",
"precision, recall, f1_score, support = precision_recall_fscore_support(y_test, cart_predictions)\n",
"print(\"\\nPrecision:\", precision)\n",
"print(\"Recall:\", recall)\n",
"print(\"F1-Score:\", f1_score)\n",
"print(\"Support:\", support, \"\\n\")\n",
"\n",
"# Export the Decision Tree as text (optional)\n",
"draw_tree_text = export_text(classified, feature_names=irisdata.feature_names)\n",
"print(draw_tree_text)\n",
"\n",
"# Perform 10-fold cross-validation and print scores\n",
"scores = cross_val_score(classified, X, y, cv=10)\n",
"print(\"Cross Validation Scores:\", scores)"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "nIVLrJFNVwcw",
"outputId": "829537d5-9c33-4205-9684-74d82f052e89"
},
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"CART Accuracy: 1.0\n",
"\n",
"Confusion matrix: \n",
"[[19 0 0]\n",
" [ 0 13 0]\n",
" [ 0 0 13]]\n",
"\n",
"Precision: [1. 1. 1.]\n",
"Recall: [1. 1. 1.]\n",
"F1-Score: [1. 1. 1.]\n",
"Support: [19 13 13] \n",
"\n",
"|--- petal width (cm) <= 0.80\n",
"| |--- class: 0\n",
"|--- petal width (cm) > 0.80\n",
"| |--- petal length (cm) <= 4.75\n",
"| | |--- petal width (cm) <= 1.60\n",
"| | | |--- class: 1\n",
"| | |--- petal width (cm) > 1.60\n",
"| | | |--- class: 2\n",
"| |--- petal length (cm) > 4.75\n",
"| | |--- petal width (cm) <= 1.75\n",
"| | | |--- petal length (cm) <= 4.95\n",
"| | | | |--- class: 1\n",
"| | | |--- petal length (cm) > 4.95\n",
"| | | | |--- petal width (cm) <= 1.55\n",
"| | | | | |--- class: 2\n",
"| | | | |--- petal width (cm) > 1.55\n",
"| | | | | |--- sepal length (cm) <= 6.95\n",
"| | | | | | |--- class: 1\n",
"| | | | | |--- sepal length (cm) > 6.95\n",
"| | | | | | |--- class: 2\n",
"| | |--- petal width (cm) > 1.75\n",
"| | | |--- petal length (cm) <= 4.85\n",
"| | | | |--- sepal width (cm) <= 3.10\n",
"| | | | | |--- class: 2\n",
"| | | | |--- sepal width (cm) > 3.10\n",
"| | | | | |--- class: 1\n",
"| | | |--- petal length (cm) > 4.85\n",
"| | | | |--- class: 2\n",
"\n",
"Cross Validation Scores: [1. 0.93333333 1. 0.93333333 0.93333333 0.86666667\n",
" 0.93333333 1. 1. 1. ]\n"
]
}
]
},
{
"cell_type": "code",
"source": [
"# Clean Code for the above code\n",
"def id3_decision_tree_classification(X_train, y_train, X_test, y_test):\n",
" id3_classifier = DecisionTreeClassifier(criterion=\"entropy\", splitter=\"best\")\n",
" id3_classifier.fit(X_train, y_train)\n",
" id3_predictions = id3_classifier.predict(X_test)\n",
" id3_accuracy = accuracy_score(y_test, id3_predictions)\n",
"\n",
" print(\"ID3 Accuracy:\", id3_accuracy)\n",
" print(\"\\nConfusion matrix: \")\n",
" print(confusion_matrix(y_test, id3_predictions))\n",
"\n",
" precision, recall, f1_score, support = precision_recall_fscore_support(y_test, id3_predictions)\n",
" print(\"\\nPrecision:\", precision)\n",
" print(\"Recall:\", recall)\n",
" print(\"F1-Score:\", f1_score)\n",
" print(\"Support:\", support)\n",
"\n",
" draw_tree_text = export_text(id3_classifier, feature_names=irisdata['feature_names'])\n",
" print(\"\\nDecision Tree (ID3):\\n\", draw_tree_text)\n",
"\n",
" scores = cross_val_score(id3_classifier, X, y, cv=10)\n",
" print(\"\\nCross Validation Scores:\", scores)\n",
"\n",
"def cart_decision_tree_classification(X_train, y_train, X_test, y_test):\n",
" cart_classifier = DecisionTreeClassifier(criterion=\"gini\", splitter=\"best\")\n",
" classified = cart_classifier.fit(X_train, y_train)\n",
" cart_predictions = cart_classifier.predict(X_test)\n",
" cart_accuracy = accuracy_score(y_test, cart_predictions)\n",
"\n",
" print(\"CART Accuracy:\", cart_accuracy)\n",
" print(\"\\nConfusion matrix: \")\n",
" print(confusion_matrix(y_test, cart_predictions))\n",
"\n",
" precision, recall, f1_score, support = precision_recall_fscore_support(y_test, cart_predictions)\n",
" print(\"\\nPrecision:\", precision)\n",
" print(\"Recall:\", recall)\n",
" print(\"F1-Score:\", f1_score)\n",
" print(\"Support:\", support)\n",
"\n",
" draw_tree_text = export_text(classified, feature_names=irisdata['feature_names'])\n",
" print(\"\\nDecision Tree (CART):\\n\", draw_tree_text)\n",
"\n",
" scores = cross_val_score(classified, X, y, cv=10)\n",
" print(\"\\nCross Validation Scores:\", scores)\n",
"\n",
"def main():\n",
" while True:\n",
" print(\"Select an option:\")\n",
" print(\"1. ID3 Decision Tree Classification\")\n",
" print(\"2. CART Decision Tree Classification\")\n",
" print(\"3. Quit\")\n",
"\n",
" choice = input(\"Enter your choice: \")\n",
"\n",
" if choice == '1':\n",
" X_train = X[1:150:2]\n",
" y_train = y[1:150:2]\n",
" X_test = X[0:150:2]\n",
" y_test = y[1:150:2]\n",
" id3_decision_tree_classification(X_train, y_train, X_test, y_test)\n",
" elif choice == '2':\n",
" X_train = X[1:150:2]\n",
" y_train = y[1:150:2]\n",
" X_test = X[0:150:2]\n",
" y_test = y[1:150:2]\n",
" cart_decision_tree_classification(X_train, y_train, X_test, y_test)\n",
" elif choice == '3':\n",
" break\n",
" else:\n",
" print(\"Invalid choice. Please select a valid option.\")\n",
"\n",
"if __name__ == \"__main__\":\n",
" main()"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "oiA0gsZ7Xjwo",
"outputId": "5f04e2a7-9a56-4d27-8a71-a3de6474b244"
},
"execution_count": null,
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Select an option:\n",
"1. ID3 Decision Tree Classification\n",
"2. CART Decision Tree Classification\n",
"3. Quit\n",
"Enter your choice: 1\n",
"ID3 Accuracy: 0.9333333333333333\n",
"\n",
"Confusion matrix: \n",
"[[25 0 0]\n",
" [ 0 21 4]\n",
" [ 0 1 24]]\n",
"\n",
"Precision: [1. 0.95454545 0.85714286]\n",
"Recall: [1. 0.84 0.96]\n",
"F1-Score: [1. 0.89361702 0.90566038]\n",
"Support: [25 25 25]\n",
"\n",
"Decision Tree (ID3):\n",
" |--- petal length (cm) <= 2.50\n",
"| |--- class: 0\n",
"|--- petal length (cm) > 2.50\n",
"| |--- petal length (cm) <= 4.80\n",
"| | |--- class: 1\n",
"| |--- petal length (cm) > 4.80\n",
"| | |--- petal width (cm) <= 1.75\n",
"| | | |--- petal width (cm) <= 1.55\n",
"| | | | |--- class: 2\n",
"| | | |--- petal width (cm) > 1.55\n",
"| | | | |--- sepal length (cm) <= 6.95\n",
"| | | | | |--- class: 1\n",
"| | | | |--- sepal length (cm) > 6.95\n",
"| | | | | |--- class: 2\n",
"| | |--- petal width (cm) > 1.75\n",
"| | | |--- class: 2\n",
"\n",
"\n",
"Cross Validation Scores: [1. 0.93333333 1. 0.93333333 0.93333333 0.86666667\n",
" 0.93333333 0.93333333 1. 1. ]\n",
"Select an option:\n",
"1. ID3 Decision Tree Classification\n",
"2. CART Decision Tree Classification\n",
"3. Quit\n",
"Enter your choice: 2\n",
"CART Accuracy: 0.9333333333333333\n",
"\n",
"Confusion matrix: \n",
"[[25 0 0]\n",
" [ 0 21 4]\n",
" [ 0 1 24]]\n",
"\n",
"Precision: [1. 0.95454545 0.85714286]\n",
"Recall: [1. 0.84 0.96]\n",
"F1-Score: [1. 0.89361702 0.90566038]\n",
"Support: [25 25 25]\n",
"\n",
"Decision Tree (CART):\n",
" |--- petal width (cm) <= 0.80\n",
"| |--- class: 0\n",
"|--- petal width (cm) > 0.80\n",
"| |--- petal length (cm) <= 4.80\n",
"| | |--- class: 1\n",
"| |--- petal length (cm) > 4.80\n",
"| | |--- petal width (cm) <= 1.75\n",
"| | | |--- petal width (cm) <= 1.55\n",
"| | | | |--- class: 2\n",
"| | | |--- petal width (cm) > 1.55\n",
"| | | | |--- petal length (cm) <= 5.45\n",
"| | | | | |--- class: 1\n",
"| | | | |--- petal length (cm) > 5.45\n",
"| | | | | |--- class: 2\n",
"| | |--- petal width (cm) > 1.75\n",
"| | | |--- class: 2\n",
"\n",
"\n",
"Cross Validation Scores: [1. 0.93333333 1. 0.93333333 0.93333333 0.86666667\n",
" 0.93333333 1. 1. 1. ]\n",
"Select an option:\n",
"1. ID3 Decision Tree Classification\n",
"2. CART Decision Tree Classification\n",
"3. Quit\n",
"Enter your choice: 3\n"
]
}
]
},
{
"cell_type": "code",
"source": [
"# Load and split the data\n",
"X_train = X[1:150:2]\n",
"y_train = y[1:150:2]\n",
"X_test = X[0:150:2]\n",
"y_test = y[1:150:2]\n",
"\n",
"# Create an ID3 Decision Tree Classifier\n",
"id3_classifier = DecisionTreeClassifier(criterion=\"entropy\", splitter=\"best\")\n",
"\n",
"# Fit the classifier on the training data\n",
"classification = id3_classifier.fit(X_train, y_train)\n",
"\n",
"# Visualize the decision tree\n",
"tree.plot_tree(classification)\n",
"\n",
"# Make predictions on the test data\n",
"id3_predictions = id3_classifier.predict(X_test)\n",
"\n",
"# Calculate and print accuracy\n",
"id3_accuracy = accuracy_score(y_test, id3_predictions)\n",
"print(\"ID3 Accuracy:\", id3_accuracy)\n",
"\n",
"# Print confusion matrix\n",
"print(\"\\nConfusion matrix: \")\n",
"print(confusion_matrix(y_test, id3_predictions))\n",
"\n",
"# Print Precision, Recall, F1-Score, and Support\n",
"print(\"\\n Precision, Recall, F1-Score and Support: \", precision_recall_fscore_support(y_test, id3_predictions),\"\\n\")\n",
"\n",
"# Export decision tree as text\n",
"drawTree = export_text(classification, feature_names=irisdata['feature_names'])\n",
"print(drawTree)\n",
"\n",
"# Perform cross-validation\n",
"scores = cross_val_score(classification, X, y, cv=10)\n",
"print(\"Cross Validation Score: \", scores)\n"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 892
},
"id": "IRmLhWksWLNK",
"outputId": "e3d68631-a685-4bc9-aabc-e21af5a9a95e"
},
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"ID3 Accuracy: 0.9333333333333333\n",
"\n",
"Confusion matrix: \n",
"[[25 0 0]\n",
" [ 0 21 4]\n",
" [ 0 1 24]]\n",
"\n",
" Precision, Recall, F1-Score and Support: (array([1. , 0.95454545, 0.85714286]), array([1. , 0.84, 0.96]), array([1. , 0.89361702, 0.90566038]), array([25, 25, 25])) \n",
"\n",
"|--- petal width (cm) <= 0.80\n",
"| |--- class: 0\n",
"|--- petal width (cm) > 0.80\n",
"| |--- petal length (cm) <= 4.80\n",
"| | |--- class: 1\n",
"| |--- petal length (cm) > 4.80\n",
"| | |--- petal width (cm) <= 1.75\n",
"| | | |--- petal width (cm) <= 1.55\n",
"| | | | |--- class: 2\n",
"| | | |--- petal width (cm) > 1.55\n",
"| | | | |--- petal length (cm) <= 5.45\n",
"| | | | | |--- class: 1\n",
"| | | | |--- petal length (cm) > 5.45\n",
"| | | | | |--- class: 2\n",
"| | |--- petal width (cm) > 1.75\n",
"| | | |--- class: 2\n",
"\n",
"Cross Validation Score: [1. 0.93333333 1. 0.93333333 0.93333333 0.86666667\n",
" 0.93333333 1. 1. 1. ]\n"
]
},
{
"output_type": "display_data",
"data": {
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
],
"image/png": "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nx+AB3eUCw8Pb7RvU+WJZ8yYgRkzZjTaNzY2Fnv37kV+fj7u3buH1NRUxMfHWzRnqo9xWd+UKVOQl5eHw4cP4/79+1i9ejVef/11sTLh4+ISAKqqqlBdXd1guaNjMkBkRVFRUfj5558RGRkpPjdhwgSEhYXB19cXISEhGDFihNn+b775Jvz9/aFWqxETE4OYmBhxm5+fH3bt2oX3338fHh4eCAwMxL59+57o8Tg5OSErKwtpaWlQKpU4duyYeCU68OAffmOfAIGmyxM/rm9ISAjWrl2L1157DWq1Gt7e3lixYoV1D86OMC7/4+XlhR07dmDevHlQqVTQ6/VYv369RX0BwNnZGRqNRlwOCAiwzkHZmkBEzZKfny8AEPLz8209Favr16+foFAohEWLFlnUfvDgwcLt27ebPU5tba0QFBQk1NTUNLuvIAhC9+7dBZlMJnz00UcNtnXm18eczn7MHSUun3nmGcHFxUVITExssK29v0YsVEREokuXLjWrfX5+fovGcXR0xMWLF1vUFwBu377d4r7U8XSUuDx79myL+9oavyYgIiKyc0wGiIiI7ByTASIiIjvHZICIiMjO8QJCohYqLCy09RSoEfb8utjzsbd37f21YTJA1EwqlQoymczikqnU9mQyGVQqla2n0WYYkx1De45LiSAIgq0nQdTRaLVa/rytHVOpVBbfza6zYEy2f+05LpkMEBER2TleQEhERGTnmAwQERHZOSYDREREdo7JABERkZ1jMkBERGTnmAwQERHZOSYDREREdo7JABERkZ1jMkBERGTnmAwQERHZOSYDREREdo7JABERkZ37P94Ohpg6Tb/fAAAAAElFTkSuQmCC\n"
},
"metadata": {}
}
]
},
{
"cell_type": "code",
"source": [
"# Split the data into training and testing sets\n",
"X_train = X[1:150:2]\n",
"y_train = y[1:150:2]\n",
"X_test = X[0:150:2]\n",
"y_test = y[1:150:2]\n",
"\n",
"# Create a Decision Tree Classifier\n",
"cart_classifier = DecisionTreeClassifier(criterion=\"gini\", splitter=\"best\")\n",
"\n",
"# Train the classifier\n",
"classified = cart_classifier.fit(X_train, y_train)\n",
"\n",
"# Make predictions\n",
"cart_predictions = cart_classifier.predict(X_test)\n",
"\n",
"# Calculate accuracy\n",
"cart_accuracy = accuracy_score(y_test, cart_predictions)\n",
"print(\"CART Accuracy:\", cart_accuracy)\n",
"\n",
"# Display confusion matrix\n",
"print(\"\\nConfusion matrix:\")\n",
"print(confusion_matrix(y_test, cart_predictions))\n",
"\n",
"# Display Precision, Recall, F1-Score, and Support\n",
"precision, recall, f1_score, support = precision_recall_fscore_support(y_test, id3_predictions)\n",
"print(\"\\nPrecision:\", precision)\n",
"print(\"Recall:\", recall)\n",
"print(\"F1-Score:\", f1_score)\n",
"print(\"Support:\", support)\n",
"\n",
"# Display the decision tree\n",
"draw_tree = export_text(classified, feature_names=irisdata['feature_names'])\n",
"print(draw_tree)\n",
"\n",
"# Perform Cross-Validation\n",
"scores = cross_val_score(classified, X, y, cv=10)\n",
"print(\"\\nCross Validation Score:\", scores)"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "fBoTZ-SgWY1v",
"outputId": "d117bbef-0ca4-4d60-a87f-d796a2a5eab3"
},
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"CART Accuracy: 0.9333333333333333\n",
"\n",
"Confusion matrix:\n",
"[[25 0 0]\n",
" [ 0 21 4]\n",
" [ 0 1 24]]\n",
"\n",
"Precision: [1. 0.95454545 0.85714286]\n",
"Recall: [1. 0.84 0.96]\n",
"F1-Score: [1. 0.89361702 0.90566038]\n",
"Support: [25 25 25]\n",
"|--- petal width (cm) <= 0.80\n",
"| |--- class: 0\n",
"|--- petal width (cm) > 0.80\n",
"| |--- petal length (cm) <= 4.80\n",
"| | |--- class: 1\n",
"| |--- petal length (cm) > 4.80\n",
"| | |--- petal width (cm) <= 1.75\n",
"| | | |--- petal width (cm) <= 1.55\n",
"| | | | |--- class: 2\n",
"| | | |--- petal width (cm) > 1.55\n",
"| | | | |--- sepal length (cm) <= 6.95\n",
"| | | | | |--- class: 1\n",
"| | | | |--- sepal length (cm) > 6.95\n",
"| | | | | |--- class: 2\n",
"| | |--- petal width (cm) > 1.75\n",
"| | | |--- class: 2\n",
"\n",
"\n",
"Cross Validation Score: [1. 0.93333333 1. 0.93333333 0.93333333 0.86666667\n",
" 0.93333333 0.93333333 1. 1. ]\n"
]
}
]
},
{
"cell_type": "code",
"source": [
"# Clean Code for the above code\n",
"def load_and_split_data(X, y):\n",
" X_train = X[1:150:2]\n",
" y_train = y[1:150:2]\n",
" X_test = X[0:150:2]\n",
" y_test = y[1:150:2]\n",
" return X_train, y_train, X_test, y_test\n",
"\n",
"def train_decision_tree_classifier(X_train, y_train, criterion=\"entropy\"):\n",
" classifier = DecisionTreeClassifier(criterion=criterion, splitter=\"best\")\n",
" classification = classifier.fit(X_train, y_train)\n",
" return classification\n",
"\n",
"def visualize_decision_tree(classification, feature_names):\n",
" export_text(classification, feature_names=feature_names)\n",
"\n",
"def evaluate_decision_tree(classification, X_test, y_test):\n",
" predictions = classification.predict(X_test)\n",
" accuracy = accuracy_score(y_test, predictions)\n",
" print(\"Accuracy:\", accuracy)\n",
"\n",
" print(\"\\nConfusion matrix:\")\n",
" print(confusion_matrix(y_test, predictions))\n",
"\n",
" precision, recall, f1_score, support = precision_recall_fscore_support(y_test, predictions)\n",
" print(\"\\nPrecision:\", precision)\n",
" print(\"Recall:\", recall)\n",
" print(\"F1-Score:\", f1_score)\n",
" print(\"Support:\", support)\n",
"\n",
"def perform_cross_validation(classification, X, y):\n",
" scores = cross_val_score(classification, X, y, cv=10)\n",
" print(\"\\nCross Validation Score:\", scores)\n",
"\n",
"if __name__ == \"__main__\":\n",
" # Load and split data (Assuming you have X and y)\n",
" X_train, y_train, X_test, y_test = load_and_split_data(X, y)\n",
"\n",
" while True:\n",
" print(\"\\nSelect an option:\")\n",
" print(\"1. Train ID3 Decision Tree\")\n",
" print(\"2. Train CART Decision Tree\")\n",
" print(\"3. Exit\")\n",
"\n",
" choice = input(\"Enter your choice: \")\n",
"\n",
" if choice == \"1\":\n",
" classification = train_decision_tree_classifier(X_train, y_train, criterion=\"entropy\")\n",
" visualize_decision_tree(classification, feature_names=irisdata['feature_names'])\n",
" evaluate_decision_tree(classification, X_test, y_test)\n",
" perform_cross_validation(classification, X, y)\n",
"\n",
" elif choice == \"2\":\n",
" classification = train_decision_tree_classifier(X_train, y_train, criterion=\"gini\")\n",
" visualize_decision_tree(classification, feature_names=irisdata['feature_names'])\n",
" evaluate_decision_tree(classification, X_test, y_test)\n",
" perform_cross_validation(classification, X, y)\n",
"\n",
" elif choice == \"3\":\n",
" break\n",
"\n",
" else:\n",
" print(\"Invalid choice. Please select a valid option.\")"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "DfvFp9TzYBZF",
"outputId": "c87e1417-08f0-4e96-d003-040797f9a038"
},
"execution_count": null,
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"Select an option:\n",
"1. Train ID3 Decision Tree\n",
"2. Train CART Decision Tree\n",
"3. Exit\n",
"Enter your choice: 1\n",
"Accuracy: 0.9333333333333333\n",
"\n",
"Confusion matrix:\n",
"[[25 0 0]\n",
" [ 0 21 4]\n",
" [ 0 1 24]]\n",
"\n",
"Precision: [1. 0.95454545 0.85714286]\n",
"Recall: [1. 0.84 0.96]\n",
"F1-Score: [1. 0.89361702 0.90566038]\n",
"Support: [25 25 25]\n",
"\n",
"Cross Validation Score: [1. 0.93333333 1. 0.93333333 0.93333333 0.86666667\n",
" 0.93333333 1. 1. 1. ]\n",
"\n",
"Select an option:\n",
"1. Train ID3 Decision Tree\n",
"2. Train CART Decision Tree\n",
"3. Exit\n",
"Enter your choice: 2\n",
"Accuracy: 0.9333333333333333\n",
"\n",
"Confusion matrix:\n",
"[[25 0 0]\n",
" [ 0 21 4]\n",
" [ 0 1 24]]\n",
"\n",
"Precision: [1. 0.95454545 0.85714286]\n",
"Recall: [1. 0.84 0.96]\n",
"F1-Score: [1. 0.89361702 0.90566038]\n",
"Support: [25 25 25]\n",
"\n",
"Cross Validation Score: [1. 0.93333333 1. 0.93333333 0.93333333 0.86666667\n",
" 0.93333333 0.93333333 1. 1. ]\n",
"\n",
"Select an option:\n",
"1. Train ID3 Decision Tree\n",
"2. Train CART Decision Tree\n",
"3. Exit\n",
"Enter your choice: 3\n"
]
}
]
},
{
"cell_type": "code",
"source": [],
"metadata": {
"id": "Q38qx7otYCrk"
},
"execution_count": null,
"outputs": []
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment