{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": { "id": "l8Y_Fz5_VKUf" }, "outputs": [], "source": [ "import numpy as np\n", "import pandas as pd\n", "import seaborn as sns\n", "import matplotlib.pyplot as plt\n", "%matplotlib inline\n", "from random import randint\n", "from joblib import dump, load\n", "import warnings\n", "warnings.filterwarnings(\"ignore\")\n", "\n", "from sklearn.model_selection import train_test_split\n", "from sklearn.tree import DecisionTreeClassifier\n", "from sklearn.metrics import accuracy_score" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "OIhtQD8eWLMb" }, "outputs": [], "source": [ "# from google.colab import drive\n", "# drive.mount('/content/drive')" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "id": "mIqh1kxmVQ9o" }, "outputs": [], "source": [ "classifiers = ['DecisionTree']\n", "\n", "models = [DecisionTreeClassifier(random_state=0)]\n", "\n", "def split(df,label):\n", " X_train, X_test, Y_train, Y_test = train_test_split(df, label, test_size=0.25, random_state=42, stratify=label)\n", " return X_train, X_test, Y_train, Y_test\n", "\n", "def acc_score(df,label):\n", " score = pd.DataFrame({\"Classifier\":classifiers})\n", " j = 0 # bisa jadi ngga dipake\n", " acc = []\n", " X_train,X_test,Y_train,Y_test = split(df,label)\n", " for i in models:\n", " model = i\n", " model.fit(X_train,Y_train)\n", " predictions = model.predict(X_test)\n", " acc.append(accuracy_score(Y_test,predictions))\n", " j = j+1 # bisa jadi ngga dipake\n", " score[\"Accuracy\"] = acc\n", " score.sort_values(by=\"Accuracy\", ascending=False,inplace = True)\n", " score.reset_index(drop=True, inplace=True)\n", " return score\n", "\n", "def plot(score,x,y,c = \"b\"):\n", " gen = [1,2,3,4,5]\n", " plt.figure(figsize=(6,4))\n", " ax = sns.pointplot(x=gen, y=score,color = c )\n", " ax.set(xlabel=\"Generation\", ylabel=\"Accuracy\")\n", " # ax.set(ylim=(x,y))\n", " plt.show()" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "id": "SYWqktBJVQ7I" }, "outputs": [], "source": [ "def initilization_of_population(size,n_feat):\n", " population = []\n", " for i in range(size):\n", " chromosome = np.ones(n_feat, bool)\n", " chromosome[:int(0.3*n_feat)]=False\n", " np.random.shuffle(chromosome)\n", " population.append(chromosome)\n", " return population\n", "\n", "def fitness_score(population):\n", " scores = []\n", " models = []\n", " for chromosome in population:\n", " logmodel = DecisionTreeClassifier(random_state=0)\n", " logmodel.fit(X_train.iloc[:,chromosome],Y_train)\n", " predictions = logmodel.predict(X_test.iloc[:,chromosome])\n", " scores.append(accuracy_score(Y_test,predictions))\n", " models.append(logmodel)\n", " scores, population, models = np.array(scores), np.array(population), np.array(models)\n", " inds = np.argsort(scores)\n", " return list(scores[inds][::-1]), list(population[inds,:][::-1]), list(models[inds][::-1])\n", "\n", "def selection(pop_after_fit,n_parents):\n", " population_nextgen = []\n", " for i in range(n_parents):\n", " population_nextgen.append(pop_after_fit[i])\n", " return population_nextgen\n", "\n", "def crossover(pop_after_sel):\n", " pop_nextgen = pop_after_sel\n", " for i in range(0,len(pop_after_sel),2):\n", " new_par = []\n", " child_1 , child_2 = pop_nextgen[i] , pop_nextgen[i+1]\n", " new_par = np.concatenate((child_1[:len(child_1)//2],child_2[len(child_1)//2:]))\n", " pop_nextgen.append(new_par)\n", " return pop_nextgen\n", "\n", "def mutation(pop_after_cross, mutation_rate, n_feat):\n", " mutation_range = int(mutation_rate * n_feat)\n", " pop_next_gen = []\n", " for n in range(0, len(pop_after_cross)):\n", " chromo = pop_after_cross[n]\n", " rand_posi = []\n", " for i in range(0, mutation_range):\n", " pos = randint(0, n_feat-1)\n", " rand_posi.append(pos)\n", " for j in rand_posi:\n", " chromo[j] = not chromo[j]\n", " pop_next_gen.append(chromo)\n", " return pop_next_gen\n", "\n", "def generations(df,label,size,n_feat,n_parents,mutation_rate,n_gen,X_train,\n", " X_test, Y_train, Y_test):\n", " best_chromo = []\n", " best_score = []\n", " best_models = []\n", " population_nextgen=initilization_of_population(size,n_feat)\n", " for i in range(n_gen):\n", " scores, pop_after_fit, models = fitness_score(population_nextgen)\n", " print('Best score in generation',i+1,':',scores[:1]) #2\n", "\n", " pop_after_sel = selection(pop_after_fit, n_parents)\n", " pop_after_cross = crossover(pop_after_sel)\n", " population_nextgen = mutation(pop_after_cross, mutation_rate, n_feat)\n", "\n", " best_score.append(scores[0])\n", " best_chromo.append(pop_after_fit[0])\n", " best_models.append(models[0])\n", "\n", " return best_chromo, best_score, best_models" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 273 }, "id": "X3Ww2R2wVQ44", "outputId": "ccd8b6d6-f6ce-4bf5-c476-8e28c11cc0ee" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "(920, 23)\n" ] }, { "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", "
agetrestbpscholthalacholdpeakcasexfbsexangcp_1.0...restecg_0restecg_1restecg_2slope_1slope_2slope_3thal_3.0thal_6.0thal_7.0num
063.0145.0233.0150.02.30.01.0101.0...0.00.01.00.00.01.00.01.00.00
167.0160.0286.0108.01.53.01.0010.0...0.00.01.00.01.00.01.00.00.01
267.0120.0229.0129.02.62.01.0010.0...0.00.01.00.01.00.00.00.01.01
337.0130.0250.0187.03.50.01.0000.0...1.00.00.00.00.01.01.00.00.00
441.0130.0204.0172.01.40.00.0000.0...0.00.01.01.00.00.01.00.00.00
\n", "

5 rows × 23 columns

\n", "
" ], "text/plain": [ " age trestbps chol thalach oldpeak ca sex fbs exang cp_1.0 ... \\\n", "0 63.0 145.0 233.0 150.0 2.3 0.0 1.0 1 0 1.0 ... \n", "1 67.0 160.0 286.0 108.0 1.5 3.0 1.0 0 1 0.0 ... \n", "2 67.0 120.0 229.0 129.0 2.6 2.0 1.0 0 1 0.0 ... \n", "3 37.0 130.0 250.0 187.0 3.5 0.0 1.0 0 0 0.0 ... \n", "4 41.0 130.0 204.0 172.0 1.4 0.0 0.0 0 0 0.0 ... \n", "\n", " restecg_0 restecg_1 restecg_2 slope_1 slope_2 slope_3 thal_3.0 \\\n", "0 0.0 0.0 1.0 0.0 0.0 1.0 0.0 \n", "1 0.0 0.0 1.0 0.0 1.0 0.0 1.0 \n", "2 0.0 0.0 1.0 0.0 1.0 0.0 0.0 \n", "3 1.0 0.0 0.0 0.0 0.0 1.0 1.0 \n", "4 0.0 0.0 1.0 1.0 0.0 0.0 1.0 \n", "\n", " thal_6.0 thal_7.0 num \n", "0 1.0 0.0 0 \n", "1 0.0 0.0 1 \n", "2 0.0 1.0 1 \n", "3 0.0 0.0 0 \n", "4 0.0 0.0 0 \n", "\n", "[5 rows x 23 columns]" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data_hd = pd.read_csv('./encoded_heart_disease.csv')\n", "\n", "print(data_hd.shape)\n", "data_hd.head()" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 273 }, "id": "Zu6Gr1HGiS6Q", "outputId": "deec92ca-74f3-4e15-c89e-c0bb9858e586" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "(920, 23)\n" ] }, { "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", "
agetrestbpscholthalacholdpeakcasexfbsexangcp_1.0...restecg_0restecg_1restecg_2slope_1slope_2slope_3thal_3.0thal_6.0thal_7.0num
063.0145.0233.0150.02.30.01.0101.0...0.00.01.00.00.01.00.01.00.00
167.0160.0286.0108.01.53.01.0010.0...0.00.01.00.01.00.01.00.00.01
267.0120.0229.0129.02.62.01.0010.0...0.00.01.00.01.00.00.00.01.01
337.0130.0250.0187.03.50.01.0000.0...1.00.00.00.00.01.01.00.00.00
441.0130.0204.0172.01.40.00.0000.0...0.00.01.01.00.00.01.00.00.00
\n", "

5 rows × 23 columns

\n", "
" ], "text/plain": [ " age trestbps chol thalach oldpeak ca sex fbs exang cp_1.0 ... \\\n", "0 63.0 145.0 233.0 150.0 2.3 0.0 1.0 1 0 1.0 ... \n", "1 67.0 160.0 286.0 108.0 1.5 3.0 1.0 0 1 0.0 ... \n", "2 67.0 120.0 229.0 129.0 2.6 2.0 1.0 0 1 0.0 ... \n", "3 37.0 130.0 250.0 187.0 3.5 0.0 1.0 0 0 0.0 ... \n", "4 41.0 130.0 204.0 172.0 1.4 0.0 0.0 0 0 0.0 ... \n", "\n", " restecg_0 restecg_1 restecg_2 slope_1 slope_2 slope_3 thal_3.0 \\\n", "0 0.0 0.0 1.0 0.0 0.0 1.0 0.0 \n", "1 0.0 0.0 1.0 0.0 1.0 0.0 1.0 \n", "2 0.0 0.0 1.0 0.0 1.0 0.0 0.0 \n", "3 1.0 0.0 0.0 0.0 0.0 1.0 1.0 \n", "4 0.0 0.0 1.0 1.0 0.0 0.0 1.0 \n", "\n", " thal_6.0 thal_7.0 num \n", "0 1.0 0.0 0 \n", "1 0.0 0.0 1 \n", "2 0.0 1.0 1 \n", "3 0.0 0.0 0 \n", "4 0.0 0.0 0 \n", "\n", "[5 rows x 23 columns]" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "print(data_hd.shape)\n", "data_hd.head()" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "LJWVXyIwVQ2Q", "outputId": "72b73b8f-5709-495a-9f81-d4f9926700a5" }, "outputs": [ { "data": { "text/plain": [ "Index(['age', 'trestbps', 'chol', 'thalach', 'oldpeak', 'ca', 'sex', 'fbs',\n", " 'exang', 'cp_1.0', 'cp_2.0', 'cp_3.0', 'cp_4.0', 'restecg_0',\n", " 'restecg_1', 'restecg_2', 'slope_1', 'slope_2', 'slope_3', 'thal_3.0',\n", " 'thal_6.0', 'thal_7.0', 'num'],\n", " dtype='object')" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data_hd.columns" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 443 }, "id": "cbByJdLxkSls", "outputId": "48b3ba1d-8b66-4393-9400-1068e51e780f" }, "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", "
agetrestbpscholthalacholdpeakcasexfbsexangcp_1.0...cp_4.0restecg_0restecg_1restecg_2slope_1slope_2slope_3thal_3.0thal_6.0thal_7.0
063.0145.0233.0150.02.30.01.0101.0...0.00.00.01.00.00.01.00.01.00.0
167.0160.0286.0108.01.53.01.0010.0...1.00.00.01.00.01.00.01.00.00.0
267.0120.0229.0129.02.62.01.0010.0...1.00.00.01.00.01.00.00.00.01.0
337.0130.0250.0187.03.50.01.0000.0...0.01.00.00.00.00.01.01.00.00.0
441.0130.0204.0172.01.40.00.0000.0...0.00.00.01.01.00.00.01.00.00.0
..................................................................
91554.0127.0333.0154.00.00.00.0100.0...1.00.01.00.00.01.00.01.00.00.0
91662.0130.0139.0140.00.50.01.0001.0...0.00.01.00.00.01.00.01.00.00.0
91755.0122.0223.0100.00.00.01.0100.0...1.00.01.00.00.01.00.00.01.00.0
91858.0130.0385.0140.00.50.01.0100.0...1.00.00.01.00.01.00.01.00.00.0
91962.0120.0254.093.00.00.01.0010.0...0.00.00.01.00.01.00.01.00.00.0
\n", "

920 rows × 22 columns

\n", "
" ], "text/plain": [ " age trestbps chol thalach oldpeak ca sex fbs exang cp_1.0 \\\n", "0 63.0 145.0 233.0 150.0 2.3 0.0 1.0 1 0 1.0 \n", "1 67.0 160.0 286.0 108.0 1.5 3.0 1.0 0 1 0.0 \n", "2 67.0 120.0 229.0 129.0 2.6 2.0 1.0 0 1 0.0 \n", "3 37.0 130.0 250.0 187.0 3.5 0.0 1.0 0 0 0.0 \n", "4 41.0 130.0 204.0 172.0 1.4 0.0 0.0 0 0 0.0 \n", ".. ... ... ... ... ... ... ... ... ... ... \n", "915 54.0 127.0 333.0 154.0 0.0 0.0 0.0 1 0 0.0 \n", "916 62.0 130.0 139.0 140.0 0.5 0.0 1.0 0 0 1.0 \n", "917 55.0 122.0 223.0 100.0 0.0 0.0 1.0 1 0 0.0 \n", "918 58.0 130.0 385.0 140.0 0.5 0.0 1.0 1 0 0.0 \n", "919 62.0 120.0 254.0 93.0 0.0 0.0 1.0 0 1 0.0 \n", "\n", " ... cp_4.0 restecg_0 restecg_1 restecg_2 slope_1 slope_2 slope_3 \\\n", "0 ... 0.0 0.0 0.0 1.0 0.0 0.0 1.0 \n", "1 ... 1.0 0.0 0.0 1.0 0.0 1.0 0.0 \n", "2 ... 1.0 0.0 0.0 1.0 0.0 1.0 0.0 \n", "3 ... 0.0 1.0 0.0 0.0 0.0 0.0 1.0 \n", "4 ... 0.0 0.0 0.0 1.0 1.0 0.0 0.0 \n", ".. ... ... ... ... ... ... ... ... \n", "915 ... 1.0 0.0 1.0 0.0 0.0 1.0 0.0 \n", "916 ... 0.0 0.0 1.0 0.0 0.0 1.0 0.0 \n", "917 ... 1.0 0.0 1.0 0.0 0.0 1.0 0.0 \n", "918 ... 1.0 0.0 0.0 1.0 0.0 1.0 0.0 \n", "919 ... 0.0 0.0 0.0 1.0 0.0 1.0 0.0 \n", "\n", " thal_3.0 thal_6.0 thal_7.0 \n", "0 0.0 1.0 0.0 \n", "1 1.0 0.0 0.0 \n", "2 0.0 0.0 1.0 \n", "3 1.0 0.0 0.0 \n", "4 1.0 0.0 0.0 \n", ".. ... ... ... \n", "915 1.0 0.0 0.0 \n", "916 1.0 0.0 0.0 \n", "917 0.0 1.0 0.0 \n", "918 1.0 0.0 0.0 \n", "919 1.0 0.0 0.0 \n", "\n", "[920 rows x 22 columns]" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data_hd.iloc[:, :-1]" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 80 }, "id": "c7JNfRKoVQz4", "outputId": "3d8e474f-eb2a-44ac-e958-5a9afc5f041f" }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
ClassifierAccuracy
0DecisionTree0.717391
\n", "
" ], "text/plain": [ " Classifier Accuracy\n", "0 DecisionTree 0.717391" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# harusnya jangan sampai 100%\n", "score1 = acc_score(data_hd.iloc[:, :-1], data_hd['num'])\n", "score1" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "DdSzy-GbX0ER", "outputId": "a98e5841-1d78-4f19-8052-928ba716f992" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "(690, 22) (230, 22) (690,) (230,)\n", "Best score in generation 1 : [0.7913043478260869]\n", "Best score in generation 2 : [0.7913043478260869]\n", "Best score in generation 3 : [0.8173913043478261]\n", "Best score in generation 4 : [0.8130434782608695]\n", "Best score in generation 5 : [0.8260869565217391]\n" ] } ], "source": [ "X_train, X_test, Y_train, Y_test = split(data_hd.iloc[:, :-1], data_hd['num'])\n", "print(X_train.shape, X_test.shape, Y_train.shape, Y_test.shape)\n", "chromo_df, score, best_models = generations(data_hd.iloc[:, :-1],\n", " data_hd['num'],\n", " size=80,\n", " n_feat = data_hd.iloc[:, :-1].shape[1],\n", " n_parents=64,\n", " mutation_rate=0.20,\n", " n_gen=5,\n", " X_train = X_train,\n", " X_test = X_test,\n", " Y_train = Y_train,\n", " Y_test = Y_test)" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 388 }, "id": "I5rtmJGvX14N", "outputId": "d97250f0-9eed-4cce-dfb0-3a929c47ac34" }, "outputs": [ { "data": { "image/png": "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PnLkiAFo06ZNmzZt2uq5HTly5KK/taavkzJixAhOnjzJrFmzyMnJoWfPnqxfv94xmTYrK6vKXJIDBw6wZcsW/vWvf1V7zOzsbFJSUsjNzSU6OprRo0czc+ZMlz4vv/wyVquV4cOHU1payuDBg1m4cGGt846JieHIkSMEBARgaUZLmxcWFhIbG8uRI0cIDAw0O51WQd9509N33vT0nTe95vydG4bBmTNniImJuWg/i2FcaqxFWpLCwkKCgoIoKChodv9SN1f6zpuevvOmp++86bWG77xZP90jIiIiLZeKFBEREXFLKlJaGR8fH2bPnq3HqZuQvvOmp++86ek7b3qt4TvXnBQRERFxSxpJEREREbekIkVERETckooUERERcUsqUkRERMQtqUhpRTZv3kxSUhIxMTFYLBbWrFljdkotWmpqKn369CEgIICIiAiGDRvGgQMHzE6rRVu0aBHdu3cnMDCQwMBA+vXrx4cffmh2Wq3Kiy++iMViYfLkyWan0mI999xzWCwWl+2qq64yO61GoSKlFSkuLqZHjx4sWLDA7FRahU2bNpGcnMy2bdvYsGED5eXl3HbbbRQXF5udWovVoUMHXnzxRTIzM9m5cyc333wzd911F1999ZXZqbUKn332GW+88Qbdu3c3O5UW79prryU7O9uxbdmyxeyUGoXp7+6RpjNkyBCGDBlidhqtxvr1613ay5cvJyIigszMTG666SaTsmrZkpKSXNovvPACixYtYtu2bVx77bUmZdU6FBUV8dBDD/Hmm2/y3//932an0+J5enoSFRVldhqNTiMpIk2koKAAgNDQUJMzaR0qKipYuXIlxcXF9OvXz+x0Wrzk5GTuuOMOEhMTzU6lVfj222+JiYnhiiuu4KGHHiIrK8vslBqFRlJEmoDNZmPy5MkMGDCA6667zux0WrQvv/ySfv36UVJSQtu2bXnvvfe45pprzE6rRVu5ciW7du3is88+MzuVViEhIYHly5fTtWtXsrOzef755/nZz37G3r17CQgIMDu9BqUiRaQJJCcns3fv3hZ739iddO3ald27d1NQUMDf//53xowZw6ZNm1SoNJIjR44wadIkNmzYgK+vr9nptAqVb9t3796dhIQE4uLi+Nvf/sajjz5qYmYNT0WKSCObOHEia9euZfPmzXTo0MHsdFo8b29vunTpAkCvXr347LPPeOWVV3jjjTdMzqxlyszM5MSJE9xwww2OWEVFBZs3b+b111+ntLQUDw8PEzNs+YKDg/mv//ovDh48aHYqDU5FikgjMQyDJ598kvfee4+NGzfSqVMns1NqlWw2G6WlpWan0WLdcsstfPnlly6xcePGcdVVV/HMM8+oQGkCRUVFHDp0iFGjRpmdSoNTkdKKFBUVuVTa3333Hbt37yY0NJSOHTuamFnLlJyczIoVK3j//fcJCAggJycHgKCgIPz8/EzOrmWaNm0aQ4YMoWPHjpw5c4YVK1awceNG/vnPf5qdWosVEBBQZZ5VmzZtaNeuneZfNZKnn36apKQk4uLiOH78OLNnz8bDw4MHH3zQ7NQanIqUVmTnzp384he/cLRTUlIAGDNmDMuXLzcpq5Zr0aJFAAwaNMglvmzZMsaOHdv0CbUCJ06cYPTo0WRnZxMUFET37t355z//ya233mp2aiIN5ujRozz44IP8+OOPhIeHM3DgQLZt20Z4eLjZqTU4i2EYhtlJiIiIiFxI66SIiIiIW1KRIiIiIm5JRYqIiIi4JRUpIiIi4pZUpIiIiIhbUpEiIiIibklFioiIiLglFSkiIhexfPlygoODzU5DpFVSkSIiDSInJ4dJkybRpUsXfH19iYyMZMCAASxatIizZ8+anV6txMfHk5aW5hIbMWIE33zzjTkJibRyWhZfRC7b4cOHGTBgAMHBwcybN49u3brh4+PDl19+yZ/+9Cfat2/PnXfeaUpuhmFQUVGBp2f9/rjz8/PTu5ZETKKRFBG5bL/+9a/x9PRk586d3H///Vx99dVcccUV3HXXXaxbt46kpCQA8vPzGT9+POHh4QQGBnLzzTfzxRdfOI7z3HPP0bNnT9555x3i4+MJCgrigQce4MyZM44+NpuN1NRUOnXqhJ+fHz169ODvf/+74/ONGzdisVj48MMP6dWrFz4+PmzZsoVDhw5x1113ERkZSdu2benTpw8fffSRY79Bgwbxww8/MGXKFCwWCxaLBaj+ds+iRYvo3Lkz3t7edO3alXfeecflc4vFwp///Gfuvvtu/P39ufLKK/nf//3fBvu+RVoLFSkicll+/PFH/vWvf5GcnEybNm2q7fPTD/59993HiRMn+PDDD8nMzOSGG27glltu4fTp046+hw4dYs2aNaxdu5a1a9eyadMmXnzxRcfnqampvP322yxevJivvvqKKVOm8PDDD7Np0yaXc06dOpUXX3yRffv20b17d4qKihg6dCgZGRl8/vnn3H777SQlJZGVlQVAeno6HTp0YM6cOWRnZ5OdnV3ttbz33ntMmjSJp556ir179/L4448zbtw4PvnkE5d+zz//PPfffz979uxh6NChPPTQQy7XKSK1YIiIXIZt27YZgJGenu4Sb9eundGmTRujTZs2xu9+9zvj//7v/4zAwECjpKTEpV/nzp2NN954wzAMw5g9e7bh7+9vFBYWOj7/7W9/ayQkJBiGYRglJSWGv7+/8e9//9vlGI8++qjx4IMPGoZhGJ988okBGGvWrLlk7tdee63x2muvOdpxcXHGyy+/7NJn2bJlRlBQkKPdv39/47HHHnPpc9999xlDhw51tAFjxowZjnZRUZEBGB9++OElcxIRJ81JEZFGsWPHDmw2Gw899BClpaV88cUXFBUV0a5dO5d+586d49ChQ452fHw8AQEBjnZ0dDQnTpwA4ODBg5w9e5Zbb73V5RhlZWVcf/31LrHevXu7tIuKinjuuedYt24d2dnZnD9/nnPnzjlGUmpr3759TJgwwSU2YMAAXnnlFZdY9+7dHX/fpk0bAgMDHdchIrWjIkVELkuXLl2wWCwcOHDAJX7FFVcAOCadFhUVER0dzcaNG6sco/KcDy8vL5fPLBYLNpvNcQyAdevW0b59e5d+Pj4+Lu0Lbz09/fTTbNiwgT/84Q906dIFPz8/7r33XsrKymp5pXVzsesQkdpRkSIil6Vdu3bceuutvP766zz55JM1zku54YYbyMnJwdPTk/j4+Hqd65prrsHHx4esrCx+/vOf12nfTz/9lLFjx3L33XcD9oLn+++/d+nj7e1NRUXFRY9z9dVX8+mnnzJmzBiXY19zzTV1ykdELk1FiohctoULFzJgwAB69+7Nc889R/fu3bFarXz22Wfs37+fXr16kZiYSL9+/Rg2bBgvvfQS//Vf/8Xx48dZt24dd999d5XbM9UJCAjg6aefZsqUKdhsNgYOHEhBQQGffvopgYGBLoXDha688krS09NJSkrCYrEwc+bMKiMb8fHxbN68mQceeAAfHx/CwsKqHOe3v/0t999/P9dffz2JiYn84x//ID093eVJIRFpGCpSROSyde7cmc8//5x58+Yxbdo0jh49io+PD9dccw1PP/00v/71r7FYLHzwwQc8++yzjBs3jpMnTxIVFcVNN91EZGRkrc81d+5cwsPDSU1N5fDhwwQHB3PDDTcwffr0i+43f/58HnnkEfr3709YWBjPPPMMhYWFLn3mzJnD448/TufOnSktLcUwjCrHGTZsGK+88gp/+MMfmDRpEp06dWLZsmUMGjSo1tcgIrVjMar7r1BERETEZFonRURERNySihQRERFxSypSRERExC2pSBERERG3pCJFRERE3JKKFBEREXFLKlJERETELalIEREREbekIkVERETckooUERERcUsqUkRERMQtqUgRERERt/T/AQ8g06z/uK2mAAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plot(score, 0.9, 1.0,c = \"gold\")" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "id": "HQrzrFeuz0yG" }, "outputs": [], "source": [ "# for index, clf in enumerate(best_models):\n", "# dump(clf, 'model-{}.joblib'.format(index))" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "id": "fGbUe1WJYbxp" }, "outputs": [], "source": [ "clf = load('model-3.joblib')" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 423 }, "id": "bA8Qf-orbDnu", "outputId": "409bf4c6-5668-4f58-ff16-5f597771fb28" }, "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", "
sexexangcp_1.0cp_2.0cp_4.0slope_1slope_2thal_3.0thal_7.0
2721.010.00.01.00.01.00.01.0
591.011.00.00.01.00.01.00.0
6101.010.00.01.00.01.01.00.0
3281.000.00.01.00.01.01.00.0
8041.010.00.01.00.00.01.00.0
..............................
3740.000.01.00.00.01.01.00.0
5901.010.00.01.00.01.01.00.0
5731.010.00.01.00.01.01.00.0
5801.010.00.01.00.01.01.00.0
3080.000.01.00.00.01.01.00.0
\n", "

230 rows × 9 columns

\n", "
" ], "text/plain": [ " sex exang cp_1.0 cp_2.0 cp_4.0 slope_1 slope_2 thal_3.0 thal_7.0\n", "272 1.0 1 0.0 0.0 1.0 0.0 1.0 0.0 1.0\n", "59 1.0 1 1.0 0.0 0.0 1.0 0.0 1.0 0.0\n", "610 1.0 1 0.0 0.0 1.0 0.0 1.0 1.0 0.0\n", "328 1.0 0 0.0 0.0 1.0 0.0 1.0 1.0 0.0\n", "804 1.0 1 0.0 0.0 1.0 0.0 0.0 1.0 0.0\n", ".. ... ... ... ... ... ... ... ... ...\n", "374 0.0 0 0.0 1.0 0.0 0.0 1.0 1.0 0.0\n", "590 1.0 1 0.0 0.0 1.0 0.0 1.0 1.0 0.0\n", "573 1.0 1 0.0 0.0 1.0 0.0 1.0 1.0 0.0\n", "580 1.0 1 0.0 0.0 1.0 0.0 1.0 1.0 0.0\n", "308 0.0 0 0.0 1.0 0.0 0.0 1.0 1.0 0.0\n", "\n", "[230 rows x 9 columns]" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "X_test[clf.feature_names_in_]" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "KkBlxHuBY9cM", "outputId": "80420dc6-cd49-4f0c-fa5f-a466df712df7" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0.8217391304347826\n" ] } ], "source": [ "predictions = clf.predict(X_test[clf.feature_names_in_])\n", "print(accuracy_score(Y_test, predictions))" ] }, { "cell_type": "code", "execution_count": 14, "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", "
sexexangcp_1.0cp_2.0cp_4.0slope_1slope_2thal_3.0thal_7.0
2721.010.00.01.00.01.00.01.0
591.011.00.00.01.00.01.00.0
6101.010.00.01.00.01.01.00.0
3281.000.00.01.00.01.01.00.0
8041.010.00.01.00.00.01.00.0
..............................
3740.000.01.00.00.01.01.00.0
5901.010.00.01.00.01.01.00.0
5731.010.00.01.00.01.01.00.0
5801.010.00.01.00.01.01.00.0
3080.000.01.00.00.01.01.00.0
\n", "

230 rows × 9 columns

\n", "
" ], "text/plain": [ " sex exang cp_1.0 cp_2.0 cp_4.0 slope_1 slope_2 thal_3.0 thal_7.0\n", "272 1.0 1 0.0 0.0 1.0 0.0 1.0 0.0 1.0\n", "59 1.0 1 1.0 0.0 0.0 1.0 0.0 1.0 0.0\n", "610 1.0 1 0.0 0.0 1.0 0.0 1.0 1.0 0.0\n", "328 1.0 0 0.0 0.0 1.0 0.0 1.0 1.0 0.0\n", "804 1.0 1 0.0 0.0 1.0 0.0 0.0 1.0 0.0\n", ".. ... ... ... ... ... ... ... ... ...\n", "374 0.0 0 0.0 1.0 0.0 0.0 1.0 1.0 0.0\n", "590 1.0 1 0.0 0.0 1.0 0.0 1.0 1.0 0.0\n", "573 1.0 1 0.0 0.0 1.0 0.0 1.0 1.0 0.0\n", "580 1.0 1 0.0 0.0 1.0 0.0 1.0 1.0 0.0\n", "308 0.0 0 0.0 1.0 0.0 0.0 1.0 1.0 0.0\n", "\n", "[230 rows x 9 columns]" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "X_test[clf.feature_names_in_]" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 1, 1,\n", " 0, 1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0,\n", " 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 1,\n", " 0, 1, 0, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1,\n", " 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1,\n", " 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0,\n", " 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 1, 0, 1, 1,\n", " 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1,\n", " 1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 1,\n", " 1, 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 0,\n", " 0, 0, 1, 0, 1, 0, 1, 1, 1, 0], dtype=int64)" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "predictions" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "image/svg+xml": [ "\n", "\n", "\n", "\n", "\n", "\n", "Tree\n", "\n", "\n", "\n", "0\n", "\n", "cp_4.0 <= 0.5\n", "gini = 0.494\n", "samples = 690\n", "value = [308.0, 382.0]\n", "\n", "\n", "\n", "1\n", "\n", "sex <= 0.5\n", "gini = 0.415\n", "samples = 320\n", "value = [226, 94]\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "True\n", "\n", "\n", "\n", "86\n", "\n", "exang <= 0.5\n", "gini = 0.345\n", "samples = 370\n", "value = [82, 288]\n", "\n", "\n", "\n", "0->86\n", "\n", "\n", "False\n", "\n", "\n", "\n", "2\n", "\n", "thal_7.0 <= 0.5\n", "gini = 0.172\n", "samples = 95\n", "value = [86, 9]\n", "\n", "\n", "\n", "1->2\n", "\n", "\n", "\n", "\n", "\n", "29\n", "\n", "cp_2.0 <= 0.5\n", "gini = 0.47\n", "samples = 225\n", "value = [140, 85]\n", "\n", "\n", "\n", "1->29\n", "\n", "\n", "\n", "\n", "\n", "3\n", "\n", "cp_2.0 <= 0.5\n", "gini = 0.126\n", "samples = 89\n", "value = [83, 6]\n", "\n", "\n", "\n", "2->3\n", "\n", "\n", "\n", "\n", "\n", "22\n", "\n", "slope_1 <= 0.5\n", "gini = 0.5\n", "samples = 6\n", "value = [3, 3]\n", "\n", "\n", "\n", "2->22\n", "\n", "\n", "\n", "\n", "\n", "4\n", "\n", "slope_2 <= 0.5\n", "gini = 0.162\n", "samples = 45\n", "value = [41, 4]\n", "\n", "\n", "\n", "3->4\n", "\n", "\n", "\n", "\n", "\n", "15\n", "\n", "slope_2 <= 0.5\n", "gini = 0.087\n", "samples = 44\n", "value = [42, 2]\n", "\n", "\n", "\n", "3->15\n", "\n", "\n", "\n", "\n", "\n", "5\n", "\n", "exang <= 0.5\n", "gini = 0.087\n", "samples = 22\n", "value = [21, 1]\n", "\n", "\n", "\n", "4->5\n", "\n", "\n", "\n", "\n", "\n", "10\n", "\n", "thal_3.0 <= 0.5\n", "gini = 0.227\n", "samples = 23\n", "value = [20, 3]\n", "\n", "\n", "\n", "4->10\n", "\n", "\n", "\n", "\n", "\n", "6\n", "\n", "cp_1.0 <= 0.5\n", "gini = 0.1\n", "samples = 19\n", "value = [18, 1]\n", "\n", "\n", "\n", "5->6\n", "\n", "\n", "\n", "\n", "\n", "9\n", "\n", "gini = 0.0\n", "samples = 3\n", "value = [3, 0]\n", "\n", "\n", "\n", "5->9\n", "\n", "\n", "\n", "\n", "\n", "7\n", "\n", "gini = 0.117\n", "samples = 16\n", "value = [15, 1]\n", "\n", "\n", "\n", "6->7\n", "\n", "\n", "\n", "\n", "\n", "8\n", "\n", "gini = 0.0\n", "samples = 3\n", "value = [3, 0]\n", "\n", "\n", "\n", "6->8\n", "\n", "\n", "\n", "\n", "\n", "11\n", "\n", "gini = 0.0\n", "samples = 1\n", "value = [1, 0]\n", "\n", "\n", "\n", "10->11\n", "\n", "\n", "\n", "\n", "\n", "12\n", "\n", "cp_1.0 <= 0.5\n", "gini = 0.236\n", "samples = 22\n", "value = [19, 3]\n", "\n", "\n", "\n", "10->12\n", "\n", "\n", "\n", "\n", "\n", "13\n", "\n", "gini = 0.208\n", "samples = 17\n", "value = [15, 2]\n", "\n", "\n", "\n", "12->13\n", "\n", "\n", "\n", "\n", "\n", "14\n", "\n", "gini = 0.32\n", "samples = 5\n", "value = [4, 1]\n", "\n", "\n", "\n", "12->14\n", "\n", "\n", "\n", "\n", "\n", "16\n", "\n", "exang <= 0.5\n", "gini = 0.153\n", "samples = 12\n", "value = [11, 1]\n", "\n", "\n", "\n", "15->16\n", "\n", "\n", "\n", "\n", "\n", "19\n", "\n", "exang <= 0.5\n", "gini = 0.061\n", "samples = 32\n", "value = [31, 1]\n", "\n", "\n", "\n", "15->19\n", "\n", "\n", "\n", "\n", "\n", "17\n", "\n", "gini = 0.18\n", "samples = 10\n", "value = [9, 1]\n", "\n", "\n", "\n", "16->17\n", "\n", "\n", "\n", "\n", "\n", "18\n", "\n", "gini = 0.0\n", "samples = 2\n", "value = [2, 0]\n", "\n", "\n", "\n", "16->18\n", "\n", "\n", "\n", "\n", "\n", "20\n", "\n", "gini = 0.062\n", "samples = 31\n", "value = [30, 1]\n", "\n", "\n", "\n", "19->20\n", "\n", "\n", "\n", "\n", "\n", "21\n", "\n", "gini = 0.0\n", "samples = 1\n", "value = [1, 0]\n", "\n", "\n", "\n", "19->21\n", "\n", "\n", "\n", "\n", "\n", "23\n", "\n", "cp_2.0 <= 0.5\n", "gini = 0.48\n", "samples = 5\n", "value = [2, 3]\n", "\n", "\n", "\n", "22->23\n", "\n", "\n", "\n", "\n", "\n", "28\n", "\n", "gini = 0.0\n", "samples = 1\n", "value = [1, 0]\n", "\n", "\n", "\n", "22->28\n", "\n", "\n", "\n", "\n", "\n", "24\n", "\n", "exang <= 0.5\n", "gini = 0.444\n", "samples = 3\n", "value = [1, 2]\n", "\n", "\n", "\n", "23->24\n", "\n", "\n", "\n", "\n", "\n", "27\n", "\n", "gini = 0.5\n", "samples = 2\n", "value = [1, 1]\n", "\n", "\n", "\n", "23->27\n", "\n", "\n", "\n", "\n", "\n", "25\n", "\n", "gini = 0.5\n", "samples = 2\n", "value = [1, 1]\n", "\n", "\n", "\n", "24->25\n", "\n", "\n", "\n", "\n", "\n", "26\n", "\n", "gini = 0.0\n", "samples = 1\n", "value = [0, 1]\n", "\n", "\n", "\n", "24->26\n", "\n", "\n", "\n", "\n", "\n", "30\n", "\n", "slope_1 <= 0.5\n", "gini = 0.5\n", "samples = 137\n", "value = [70, 67]\n", "\n", "\n", "\n", "29->30\n", "\n", "\n", "\n", "\n", "\n", "69\n", "\n", "exang <= 0.5\n", "gini = 0.325\n", "samples = 88\n", "value = [70, 18]\n", "\n", "\n", "\n", "29->69\n", "\n", "\n", "\n", "\n", "\n", "31\n", "\n", "exang <= 0.5\n", "gini = 0.496\n", "samples = 105\n", "value = [48.0, 57.0]\n", "\n", "\n", "\n", "30->31\n", "\n", "\n", "\n", "\n", "\n", "58\n", "\n", "cp_1.0 <= 0.5\n", "gini = 0.43\n", "samples = 32\n", "value = [22, 10]\n", "\n", "\n", "\n", "30->58\n", "\n", "\n", "\n", "\n", "\n", "32\n", "\n", "cp_1.0 <= 0.5\n", "gini = 0.5\n", "samples = 82\n", "value = [41, 41]\n", "\n", "\n", "\n", "31->32\n", "\n", "\n", "\n", "\n", "\n", "49\n", "\n", "slope_2 <= 0.5\n", "gini = 0.423\n", "samples = 23\n", "value = [7, 16]\n", "\n", "\n", "\n", "31->49\n", "\n", "\n", "\n", "\n", "\n", "33\n", "\n", "thal_3.0 <= 0.5\n", "gini = 0.498\n", "samples = 64\n", "value = [34, 30]\n", "\n", "\n", "\n", "32->33\n", "\n", "\n", "\n", "\n", "\n", "42\n", "\n", "thal_3.0 <= 0.5\n", "gini = 0.475\n", "samples = 18\n", "value = [7, 11]\n", "\n", "\n", "\n", "32->42\n", "\n", "\n", "\n", "\n", "\n", "34\n", "\n", "slope_2 <= 0.5\n", "gini = 0.444\n", "samples = 12\n", "value = [4, 8]\n", "\n", "\n", "\n", "33->34\n", "\n", "\n", "\n", "\n", "\n", "39\n", "\n", "slope_2 <= 0.5\n", "gini = 0.488\n", "samples = 52\n", "value = [30.0, 22.0]\n", "\n", "\n", "\n", "33->39\n", "\n", "\n", "\n", "\n", "\n", "35\n", "\n", "gini = 0.0\n", "samples = 1\n", "value = [1, 0]\n", "\n", "\n", "\n", "34->35\n", "\n", "\n", "\n", "\n", "\n", "36\n", "\n", "thal_7.0 <= 0.5\n", "gini = 0.397\n", "samples = 11\n", "value = [3, 8]\n", "\n", "\n", "\n", "34->36\n", "\n", "\n", "\n", "\n", "\n", "37\n", "\n", "gini = 0.375\n", "samples = 4\n", "value = [1, 3]\n", "\n", "\n", "\n", "36->37\n", "\n", "\n", "\n", "\n", "\n", "38\n", "\n", "gini = 0.408\n", "samples = 7\n", "value = [2, 5]\n", "\n", "\n", "\n", "36->38\n", "\n", "\n", "\n", "\n", "\n", "40\n", "\n", "gini = 0.5\n", "samples = 4\n", "value = [2, 2]\n", "\n", "\n", "\n", "39->40\n", "\n", "\n", "\n", "\n", "\n", "41\n", "\n", "gini = 0.486\n", "samples = 48\n", "value = [28, 20]\n", "\n", "\n", "\n", "39->41\n", "\n", "\n", "\n", "\n", "\n", "43\n", "\n", "slope_2 <= 0.5\n", "gini = 0.408\n", "samples = 7\n", "value = [5, 2]\n", "\n", "\n", "\n", "42->43\n", "\n", "\n", "\n", "\n", "\n", "46\n", "\n", "slope_2 <= 0.5\n", "gini = 0.298\n", "samples = 11\n", "value = [2, 9]\n", "\n", "\n", "\n", "42->46\n", "\n", "\n", "\n", "\n", "\n", "44\n", "\n", "gini = 0.0\n", "samples = 2\n", "value = [2, 0]\n", "\n", "\n", "\n", "43->44\n", "\n", "\n", "\n", "\n", "\n", "45\n", "\n", "gini = 0.48\n", "samples = 5\n", "value = [3, 2]\n", "\n", "\n", "\n", "43->45\n", "\n", "\n", "\n", "\n", "\n", "47\n", "\n", "gini = 0.0\n", "samples = 1\n", "value = [0, 1]\n", "\n", "\n", "\n", "46->47\n", "\n", "\n", "\n", "\n", "\n", "48\n", "\n", "gini = 0.32\n", "samples = 10\n", "value = [2, 8]\n", "\n", "\n", "\n", "46->48\n", "\n", "\n", "\n", "\n", "\n", "50\n", "\n", "gini = 0.0\n", "samples = 1\n", "value = [0, 1]\n", "\n", "\n", "\n", "49->50\n", "\n", "\n", "\n", "\n", "\n", "51\n", "\n", "cp_1.0 <= 0.5\n", "gini = 0.434\n", "samples = 22\n", "value = [7.0, 15.0]\n", "\n", "\n", "\n", "49->51\n", "\n", "\n", "\n", "\n", "\n", "52\n", "\n", "thal_3.0 <= 0.5\n", "gini = 0.444\n", "samples = 21\n", "value = [7, 14]\n", "\n", "\n", "\n", "51->52\n", "\n", "\n", "\n", "\n", "\n", "57\n", "\n", "gini = 0.0\n", "samples = 1\n", "value = [0, 1]\n", "\n", "\n", "\n", "51->57\n", "\n", "\n", "\n", "\n", "\n", "53\n", "\n", "thal_7.0 <= 0.5\n", "gini = 0.408\n", "samples = 7\n", "value = [2, 5]\n", "\n", "\n", "\n", "52->53\n", "\n", "\n", "\n", "\n", "\n", "56\n", "\n", "gini = 0.459\n", "samples = 14\n", "value = [5, 9]\n", "\n", "\n", "\n", "52->56\n", "\n", "\n", "\n", "\n", "\n", "54\n", "\n", "gini = 0.0\n", "samples = 1\n", "value = [0, 1]\n", "\n", "\n", "\n", "53->54\n", "\n", "\n", "\n", "\n", "\n", "55\n", "\n", "gini = 0.444\n", "samples = 6\n", "value = [2, 4]\n", "\n", "\n", "\n", "53->55\n", "\n", "\n", "\n", "\n", "\n", "59\n", "\n", "exang <= 0.5\n", "gini = 0.393\n", "samples = 26\n", "value = [19, 7]\n", "\n", "\n", "\n", "58->59\n", "\n", "\n", "\n", "\n", "\n", "66\n", "\n", "thal_3.0 <= 0.5\n", "gini = 0.5\n", "samples = 6\n", "value = [3, 3]\n", "\n", "\n", "\n", "58->66\n", "\n", "\n", "\n", "\n", "\n", "60\n", "\n", "thal_7.0 <= 0.5\n", "gini = 0.375\n", "samples = 24\n", "value = [18, 6]\n", "\n", "\n", "\n", "59->60\n", "\n", "\n", "\n", "\n", "\n", "63\n", "\n", "thal_3.0 <= 0.5\n", "gini = 0.5\n", "samples = 2\n", "value = [1, 1]\n", "\n", "\n", "\n", "59->63\n", "\n", "\n", "\n", "\n", "\n", "61\n", "\n", "gini = 0.375\n", "samples = 20\n", "value = [15, 5]\n", "\n", "\n", "\n", "60->61\n", "\n", "\n", "\n", "\n", "\n", "62\n", "\n", "gini = 0.375\n", "samples = 4\n", "value = [3, 1]\n", "\n", "\n", "\n", "60->62\n", "\n", "\n", "\n", "\n", "\n", "64\n", "\n", "gini = 0.0\n", "samples = 1\n", "value = [1, 0]\n", "\n", "\n", "\n", "63->64\n", "\n", "\n", "\n", "\n", "\n", "65\n", "\n", "gini = 0.0\n", "samples = 1\n", "value = [0, 1]\n", "\n", "\n", "\n", "63->65\n", "\n", "\n", "\n", "\n", "\n", "67\n", "\n", "gini = 0.0\n", "samples = 1\n", "value = [1, 0]\n", "\n", "\n", "\n", "66->67\n", "\n", "\n", "\n", "\n", "\n", "68\n", "\n", "gini = 0.48\n", "samples = 5\n", "value = [2, 3]\n", "\n", "\n", "\n", "66->68\n", "\n", "\n", "\n", "\n", "\n", "70\n", "\n", "thal_7.0 <= 0.5\n", "gini = 0.242\n", "samples = 78\n", "value = [67, 11]\n", "\n", "\n", "\n", "69->70\n", "\n", "\n", "\n", "\n", "\n", "81\n", "\n", "slope_1 <= 0.5\n", "gini = 0.42\n", "samples = 10\n", "value = [3, 7]\n", "\n", "\n", "\n", "69->81\n", "\n", "\n", "\n", "\n", "\n", "71\n", "\n", "slope_1 <= 0.5\n", "gini = 0.185\n", "samples = 68\n", "value = [61, 7]\n", "\n", "\n", "\n", "70->71\n", "\n", "\n", "\n", "\n", "\n", "76\n", "\n", "slope_2 <= 0.5\n", "gini = 0.48\n", "samples = 10\n", "value = [6, 4]\n", "\n", "\n", "\n", "70->76\n", "\n", "\n", "\n", "\n", "\n", "72\n", "\n", "thal_3.0 <= 0.5\n", "gini = 0.215\n", "samples = 49\n", "value = [43, 6]\n", "\n", "\n", "\n", "71->72\n", "\n", "\n", "\n", "\n", "\n", "75\n", "\n", "gini = 0.1\n", "samples = 19\n", "value = [18, 1]\n", "\n", "\n", "\n", "71->75\n", "\n", "\n", "\n", "\n", "\n", "73\n", "\n", "gini = 0.0\n", "samples = 2\n", "value = [2, 0]\n", "\n", "\n", "\n", "72->73\n", "\n", "\n", "\n", "\n", "\n", "74\n", "\n", "gini = 0.223\n", "samples = 47\n", "value = [41.0, 6.0]\n", "\n", "\n", "\n", "72->74\n", "\n", "\n", "\n", "\n", "\n", "77\n", "\n", "slope_1 <= 0.5\n", "gini = 0.5\n", "samples = 6\n", "value = [3, 3]\n", "\n", "\n", "\n", "76->77\n", "\n", "\n", "\n", "\n", "\n", "80\n", "\n", "gini = 0.375\n", "samples = 4\n", "value = [3, 1]\n", "\n", "\n", "\n", "76->80\n", "\n", "\n", "\n", "\n", "\n", "78\n", "\n", "gini = 0.0\n", "samples = 1\n", "value = [0, 1]\n", "\n", "\n", "\n", "77->78\n", "\n", "\n", "\n", "\n", "\n", "79\n", "\n", "gini = 0.48\n", "samples = 5\n", "value = [3, 2]\n", "\n", "\n", "\n", "77->79\n", "\n", "\n", "\n", "\n", "\n", "82\n", "\n", "thal_3.0 <= 0.5\n", "gini = 0.346\n", "samples = 9\n", "value = [2, 7]\n", "\n", "\n", "\n", "81->82\n", "\n", "\n", "\n", "\n", "\n", "85\n", "\n", "gini = 0.0\n", "samples = 1\n", "value = [1, 0]\n", "\n", "\n", "\n", "81->85\n", "\n", "\n", "\n", "\n", "\n", "83\n", "\n", "gini = 0.0\n", "samples = 1\n", "value = [0, 1]\n", "\n", "\n", "\n", "82->83\n", "\n", "\n", "\n", "\n", "\n", "84\n", "\n", "gini = 0.375\n", "samples = 8\n", "value = [2, 6]\n", "\n", "\n", "\n", "82->84\n", "\n", "\n", "\n", "\n", "\n", "87\n", "\n", "thal_3.0 <= 0.5\n", "gini = 0.462\n", "samples = 160\n", "value = [58, 102]\n", "\n", "\n", "\n", "86->87\n", "\n", "\n", "\n", "\n", "\n", "110\n", "\n", "sex <= 0.5\n", "gini = 0.202\n", "samples = 210\n", "value = [24, 186]\n", "\n", "\n", "\n", "86->110\n", "\n", "\n", "\n", "\n", "\n", "88\n", "\n", "slope_1 <= 0.5\n", "gini = 0.236\n", "samples = 44\n", "value = [6, 38]\n", "\n", "\n", "\n", "87->88\n", "\n", "\n", "\n", "\n", "\n", "99\n", "\n", "sex <= 0.5\n", "gini = 0.495\n", "samples = 116\n", "value = [52, 64]\n", "\n", "\n", "\n", "87->99\n", "\n", "\n", "\n", "\n", "\n", "89\n", "\n", "thal_7.0 <= 0.5\n", "gini = 0.111\n", "samples = 34\n", "value = [2, 32]\n", "\n", "\n", "\n", "88->89\n", "\n", "\n", "\n", "\n", "\n", "96\n", "\n", "thal_7.0 <= 0.5\n", "gini = 0.48\n", "samples = 10\n", "value = [4, 6]\n", "\n", "\n", "\n", "88->96\n", "\n", "\n", "\n", "\n", "\n", "90\n", "\n", "slope_2 <= 0.5\n", "gini = 0.198\n", "samples = 9\n", "value = [1, 8]\n", "\n", "\n", "\n", "89->90\n", "\n", "\n", "\n", "\n", "\n", "93\n", "\n", "sex <= 0.5\n", "gini = 0.077\n", "samples = 25\n", "value = [1, 24]\n", "\n", "\n", "\n", "89->93\n", "\n", "\n", "\n", "\n", "\n", "91\n", "\n", "gini = 0.0\n", "samples = 1\n", "value = [0, 1]\n", "\n", "\n", "\n", "90->91\n", "\n", "\n", "\n", "\n", "\n", "92\n", "\n", "gini = 0.219\n", "samples = 8\n", "value = [1, 7]\n", "\n", "\n", "\n", "90->92\n", "\n", "\n", "\n", "\n", "\n", "94\n", "\n", "gini = 0.0\n", "samples = 4\n", "value = [0, 4]\n", "\n", "\n", "\n", "93->94\n", "\n", "\n", "\n", "\n", "\n", "95\n", "\n", "gini = 0.091\n", "samples = 21\n", "value = [1, 20]\n", "\n", "\n", "\n", "93->95\n", "\n", "\n", "\n", "\n", "\n", "97\n", "\n", "gini = 0.0\n", "samples = 1\n", "value = [1, 0]\n", "\n", "\n", "\n", "96->97\n", "\n", "\n", "\n", "\n", "\n", "98\n", "\n", "gini = 0.444\n", "samples = 9\n", "value = [3, 6]\n", "\n", "\n", "\n", "96->98\n", "\n", "\n", "\n", "\n", "\n", "100\n", "\n", "slope_2 <= 0.5\n", "gini = 0.397\n", "samples = 22\n", "value = [16, 6]\n", "\n", "\n", "\n", "99->100\n", "\n", "\n", "\n", "\n", "\n", "105\n", "\n", "slope_1 <= 0.5\n", "gini = 0.473\n", "samples = 94\n", "value = [36, 58]\n", "\n", "\n", "\n", "99->105\n", "\n", "\n", "\n", "\n", "\n", "101\n", "\n", "slope_1 <= 0.5\n", "gini = 0.48\n", "samples = 10\n", "value = [6, 4]\n", "\n", "\n", "\n", "100->101\n", "\n", "\n", "\n", "\n", "\n", "104\n", "\n", "gini = 0.278\n", "samples = 12\n", "value = [10, 2]\n", "\n", "\n", "\n", "100->104\n", "\n", "\n", "\n", "\n", "\n", "102\n", "\n", "gini = 0.0\n", "samples = 2\n", "value = [0, 2]\n", "\n", "\n", "\n", "101->102\n", "\n", "\n", "\n", "\n", "\n", "103\n", "\n", "gini = 0.375\n", "samples = 8\n", "value = [6, 2]\n", "\n", "\n", "\n", "101->103\n", "\n", "\n", "\n", "\n", "\n", "106\n", "\n", "slope_2 <= 0.5\n", "gini = 0.477\n", "samples = 74\n", "value = [29, 45]\n", "\n", "\n", "\n", "105->106\n", "\n", "\n", "\n", "\n", "\n", "109\n", "\n", "gini = 0.455\n", "samples = 20\n", "value = [7, 13]\n", "\n", "\n", "\n", "105->109\n", "\n", "\n", "\n", "\n", "\n", "107\n", "\n", "gini = 0.5\n", "samples = 4\n", "value = [2, 2]\n", "\n", "\n", "\n", "106->107\n", "\n", "\n", "\n", "\n", "\n", "108\n", "\n", "gini = 0.474\n", "samples = 70\n", "value = [27, 43]\n", "\n", "\n", "\n", "106->108\n", "\n", "\n", "\n", "\n", "\n", "111\n", "\n", "thal_3.0 <= 0.5\n", "gini = 0.384\n", "samples = 27\n", "value = [7, 20]\n", "\n", "\n", "\n", "110->111\n", "\n", "\n", "\n", "\n", "\n", "118\n", "\n", "thal_3.0 <= 0.5\n", "gini = 0.169\n", "samples = 183\n", "value = [17, 166]\n", "\n", "\n", "\n", "110->118\n", "\n", "\n", "\n", "\n", "\n", "112\n", "\n", "gini = 0.0\n", "samples = 9\n", "value = [0, 9]\n", "\n", "\n", "\n", "111->112\n", "\n", "\n", "\n", "\n", "\n", "113\n", "\n", "slope_1 <= 0.5\n", "gini = 0.475\n", "samples = 18\n", "value = [7, 11]\n", "\n", "\n", "\n", "111->113\n", "\n", "\n", "\n", "\n", "\n", "114\n", "\n", "slope_2 <= 0.5\n", "gini = 0.444\n", "samples = 15\n", "value = [5, 10]\n", "\n", "\n", "\n", "113->114\n", "\n", "\n", "\n", "\n", "\n", "117\n", "\n", "gini = 0.444\n", "samples = 3\n", "value = [2, 1]\n", "\n", "\n", "\n", "113->117\n", "\n", "\n", "\n", "\n", "\n", "115\n", "\n", "gini = 0.0\n", "samples = 1\n", "value = [0, 1]\n", "\n", "\n", "\n", "114->115\n", "\n", "\n", "\n", "\n", "\n", "116\n", "\n", "gini = 0.459\n", "samples = 14\n", "value = [5, 9]\n", "\n", "\n", "\n", "114->116\n", "\n", "\n", "\n", "\n", "\n", "119\n", "\n", "slope_2 <= 0.5\n", "gini = 0.123\n", "samples = 76\n", "value = [5, 71]\n", "\n", "\n", "\n", "118->119\n", "\n", "\n", "\n", "\n", "\n", "128\n", "\n", "slope_2 <= 0.5\n", "gini = 0.199\n", "samples = 107\n", "value = [12, 95]\n", "\n", "\n", "\n", "118->128\n", "\n", "\n", "\n", "\n", "\n", "120\n", "\n", "thal_7.0 <= 0.5\n", "gini = 0.185\n", "samples = 29\n", "value = [3, 26]\n", "\n", "\n", "\n", "119->120\n", "\n", "\n", "\n", "\n", "\n", "125\n", "\n", "thal_7.0 <= 0.5\n", "gini = 0.081\n", "samples = 47\n", "value = [2, 45]\n", "\n", "\n", "\n", "119->125\n", "\n", "\n", "\n", "\n", "\n", "121\n", "\n", "gini = 0.0\n", "samples = 2\n", "value = [0, 2]\n", "\n", "\n", "\n", "120->121\n", "\n", "\n", "\n", "\n", "\n", "122\n", "\n", "slope_1 <= 0.5\n", "gini = 0.198\n", "samples = 27\n", "value = [3, 24]\n", "\n", "\n", "\n", "120->122\n", "\n", "\n", "\n", "\n", "\n", "123\n", "\n", "gini = 0.198\n", "samples = 9\n", "value = [1, 8]\n", "\n", "\n", "\n", "122->123\n", "\n", "\n", "\n", "\n", "\n", "124\n", "\n", "gini = 0.198\n", "samples = 18\n", "value = [2, 16]\n", "\n", "\n", "\n", "122->124\n", "\n", "\n", "\n", "\n", "\n", "126\n", "\n", "gini = 0.0\n", "samples = 9\n", "value = [0, 9]\n", "\n", "\n", "\n", "125->126\n", "\n", "\n", "\n", "\n", "\n", "127\n", "\n", "gini = 0.1\n", "samples = 38\n", "value = [2, 36]\n", "\n", "\n", "\n", "125->127\n", "\n", "\n", "\n", "\n", "\n", "129\n", "\n", "slope_1 <= 0.5\n", "gini = 0.142\n", "samples = 26\n", "value = [2, 24]\n", "\n", "\n", "\n", "128->129\n", "\n", "\n", "\n", "\n", "\n", "132\n", "\n", "gini = 0.216\n", "samples = 81\n", "value = [10, 71]\n", "\n", "\n", "\n", "128->132\n", "\n", "\n", "\n", "\n", "\n", "130\n", "\n", "gini = 0.124\n", "samples = 15\n", "value = [1, 14]\n", "\n", "\n", "\n", "129->130\n", "\n", "\n", "\n", "\n", "\n", "131\n", "\n", "gini = 0.165\n", "samples = 11\n", "value = [1, 10]\n", "\n", "\n", "\n", "129->131\n", "\n", "\n", "\n", "\n", "\n" ], "text/plain": [ "" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import graphviz\n", "from sklearn import tree\n", "\n", "tree.export_graphviz(clf, feature_names=clf.feature_names_in_, rounded=True, out_file='decision.dot')\n", "\n", "graphviz.Source(open('./decision.dot').read())" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "colab": { "provenance": [] }, "kernelspec": { "display_name": "Python 3", "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.8" } }, "nbformat": 4, "nbformat_minor": 0 }