From 011ecd053ff331f4f691624b08b5b2b693fa0c26 Mon Sep 17 00:00:00 2001 From: PyCaret Date: Mon, 4 May 2020 10:47:08 -0400 Subject: [PATCH] Deleting. will be relocated. Deleting. will be relocated. --- Examples/PyCaret Classification.ipynb | 16106 ------------------------ 1 file changed, 16106 deletions(-) delete mode 100644 Examples/PyCaret Classification.ipynb diff --git a/Examples/PyCaret Classification.ipynb b/Examples/PyCaret Classification.ipynb deleted file mode 100644 index eace93e..0000000 --- a/Examples/PyCaret Classification.ipynb +++ /dev/null @@ -1,16106 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "from pycaret.datasets import get_data" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
DatasetData TypesDefault TaskTarget Variable# Instances# AttributesMissing Values
0cancerMultivariateClassificationClass68310N
1creditMultivariateClassificationdefault2400024N
2employeeMultivariateClassificationleft1499910N
3heartMultivariateClassificationDEATH20017N
4hepatitisMultivariateClassificationClass15432Y
5incomeMultivariateClassificationincome >50K3256114Y
6irisMultivariateClassificationClass1005N
7juiceMultivariateClassificationPurchase107015N
8heart_diseaseMultivariateClassificationDisease27014N
9glassMultivariateMulticlass ClassificationType21410N
10satelliteMultivariateMulticlass ClassificationClass643537N
11pokerMultivariateMulticlass ClassificationCLASS10000011N
12automobileMultivariateRegressionprice20226Y
13bikeMultivariateRegressioncnt1737915N
14bostonMultivariateRegressionmedv50614N
15diamondMultivariateRegressionPrice60008N
16goldMultivariateRegressionGold_T+222558121N
17tweetsTextNLPtweet85942N
18amazonTextNLP / ClassificationreviewText200002N
19kivaTextNLP / Classificationen68187N
20spxTextNLP / Regressiontext8744N
21germanyMultivariateAssociation Rule MiningInvoiceNo, Description94958N
22franceMultivariateAssociation Rule MiningInvoiceNo, Description85578N
\n", - "
" - ], - "text/plain": [ - " Dataset Data Types Default Task \\\n", - "0 cancer Multivariate Classification \n", - "1 credit Multivariate Classification \n", - "2 employee Multivariate Classification \n", - "3 heart Multivariate Classification \n", - "4 hepatitis Multivariate Classification \n", - "5 income Multivariate Classification \n", - "6 iris Multivariate Classification \n", - "7 juice Multivariate Classification \n", - "8 heart_disease Multivariate Classification \n", - "9 glass Multivariate Multiclass Classification \n", - "10 satellite Multivariate Multiclass Classification \n", - "11 poker Multivariate Multiclass Classification \n", - "12 automobile Multivariate Regression \n", - "13 bike Multivariate Regression \n", - "14 boston Multivariate Regression \n", - "15 diamond Multivariate Regression \n", - "16 gold Multivariate Regression \n", - "17 tweets Text NLP \n", - "18 amazon Text NLP / Classification \n", - "19 kiva Text NLP / Classification \n", - "20 spx Text NLP / Regression \n", - "21 germany Multivariate Association Rule Mining \n", - "22 france Multivariate Association Rule Mining \n", - "\n", - " Target Variable # Instances # Attributes Missing Values \n", - "0 Class 683 10 N \n", - "1 default 24000 24 N \n", - "2 left 14999 10 N \n", - "3 DEATH 200 17 N \n", - "4 Class 154 32 Y \n", - "5 income >50K 32561 14 Y \n", - "6 Class 100 5 N \n", - "7 Purchase 1070 15 N \n", - "8 Disease 270 14 N \n", - "9 Type 214 10 N \n", - "10 Class 6435 37 N \n", - "11 CLASS 100000 11 N \n", - "12 price 202 26 Y \n", - "13 cnt 17379 15 N \n", - "14 medv 506 14 N \n", - "15 Price 6000 8 N \n", - "16 Gold_T+22 2558 121 N \n", - "17 tweet 8594 2 N \n", - "18 reviewText 20000 2 N \n", - "19 en 6818 7 N \n", - "20 text 874 4 N \n", - "21 InvoiceNo, Description 9495 8 N \n", - "22 InvoiceNo, Description 8557 8 N " - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "get_data('index')" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - " \n", - " " - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/plain": [] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "data = get_data('cancer', profile=True)" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "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", - "
Classagemenopausetumor-sizeinv-nodesnode-capsdeg-maligbreastbreast-quadirradiat
00511121311
105445710321
20311122311
30688134371
40411321311
\n", - "
" - ], - "text/plain": [ - " Class age menopause tumor-size inv-nodes node-caps deg-malig breast \\\n", - "0 0 5 1 1 1 2 1 3 \n", - "1 0 5 4 4 5 7 10 3 \n", - "2 0 3 1 1 1 2 2 3 \n", - "3 0 6 8 8 1 3 4 3 \n", - "4 0 4 1 1 3 2 1 3 \n", - "\n", - " breast-quad irradiat \n", - "0 1 1 \n", - "1 2 1 \n", - "2 1 1 \n", - "3 7 1 \n", - "4 1 1 " - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "data = get_data('cancer')" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [], - "source": [ - "from pycaret.classification import *" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - " \n", - "Setup Succesfully Completed!\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", - "
Description Value
session_id4290
Target TypeBinary
Original Data(683, 9)
Sampled Data(683, 9)
Sample %1
Training Set(478, 9)
Testing Set(205, 9)
" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "s = setup(data, target='Class')" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "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", - "
ageworkclasseducationeducation-nummarital-statusoccupationrelationshipracesexcapital-gaincapital-losshours-per-weeknative-countryincome >50K
039State-govBachelors13Never-marriedAdm-clericalNot-in-familyWhiteMale2174040United-States0
150Self-emp-not-incBachelors13Married-civ-spouseExec-managerialHusbandWhiteMale0013United-States0
238PrivateHS-grad9DivorcedHandlers-cleanersNot-in-familyWhiteMale0040United-States0
353Private11th7Married-civ-spouseHandlers-cleanersHusbandBlackMale0040United-States0
428PrivateBachelors13Married-civ-spouseProf-specialtyWifeBlackFemale0040Cuba0
\n", - "
" - ], - "text/plain": [ - " age workclass education education-num marital-status \\\n", - "0 39 State-gov Bachelors 13 Never-married \n", - "1 50 Self-emp-not-inc Bachelors 13 Married-civ-spouse \n", - "2 38 Private HS-grad 9 Divorced \n", - "3 53 Private 11th 7 Married-civ-spouse \n", - "4 28 Private Bachelors 13 Married-civ-spouse \n", - "\n", - " occupation relationship race sex capital-gain \\\n", - "0 Adm-clerical Not-in-family White Male 2174 \n", - "1 Exec-managerial Husband White Male 0 \n", - "2 Handlers-cleaners Not-in-family White Male 0 \n", - "3 Handlers-cleaners Husband Black Male 0 \n", - "4 Prof-specialty Wife Black Female 0 \n", - "\n", - " capital-loss hours-per-week native-country income >50K \n", - "0 0 40 United-States 0 \n", - "1 0 13 United-States 0 \n", - "2 0 40 United-States 0 \n", - "3 0 40 United-States 0 \n", - "4 0 40 Cuba 0 " - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "import pandas as pd\n", - "data = get_data('income')\n", - "data = pd.get_dummies(data)" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "(32561, 105)" - ] - }, - "execution_count": 13, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "data.shape" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - " \n", - "Setup Succesfully Completed!\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", - "
Description Value
session_id8454
Target TypeBinary
Original Data(32561, 104)
Sampled Data(16280, 104)
Sample %0.499985
Training Set(11395, 104)
Testing Set(4885, 104)
" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "s = setup(data,'income >50K')" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "metadata": {}, - "outputs": [], - "source": [ - "#%%matplotlib inline\n", - "#must run the magic function" - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - " \n", - "Setup Succesfully Completed!\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", - "
Description Value
session_id8454
Target TypeBinary
Original Data(32561, 104)
Sampled Data(32561, 104)
Sample %1
Training Set(22792, 104)
Testing Set(9769, 104)
" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "s = setup(data,'income >50K', session_id = 8454)" - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - " \n", - "Setup Succesfully Completed!\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", - "
Description Value
session_id5414
Target TypeBinary
Original Data(32561, 104)
Sampled Data(32561, 104)
Sample %1
Training Set(22792, 104)
Testing Set(9769, 104)
" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "s = setup(data,'income >50K')" - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "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", - "
PurchaseStoreIDPriceCHPriceMMDiscCHDiscMMSpecialCHSpecialMMLoyalCHSalePriceMMSalePriceCHPriceDiffPctDiscMMPctDiscCHListPriceDiff
0111.751.990.000.0000.5000001.991.750.240.0000000.0000000.24
1111.751.990.000.3010.6000001.691.75-0.060.1507540.0000000.24
2111.862.090.170.0000.6800002.091.690.400.0000000.0913980.23
3011.691.690.000.0000.4000001.691.690.000.0000000.0000000.00
4171.691.690.000.0000.9565351.691.690.000.0000000.0000000.00
\n", - "
" - ], - "text/plain": [ - " Purchase StoreID PriceCH PriceMM DiscCH DiscMM SpecialCH SpecialMM \\\n", - "0 1 1 1.75 1.99 0.00 0.0 0 0 \n", - "1 1 1 1.75 1.99 0.00 0.3 0 1 \n", - "2 1 1 1.86 2.09 0.17 0.0 0 0 \n", - "3 0 1 1.69 1.69 0.00 0.0 0 0 \n", - "4 1 7 1.69 1.69 0.00 0.0 0 0 \n", - "\n", - " LoyalCH SalePriceMM SalePriceCH PriceDiff PctDiscMM PctDiscCH \\\n", - "0 0.500000 1.99 1.75 0.24 0.000000 0.000000 \n", - "1 0.600000 1.69 1.75 -0.06 0.150754 0.000000 \n", - "2 0.680000 2.09 1.69 0.40 0.000000 0.091398 \n", - "3 0.400000 1.69 1.69 0.00 0.000000 0.000000 \n", - "4 0.956535 1.69 1.69 0.00 0.000000 0.000000 \n", - "\n", - " ListPriceDiff \n", - "0 0.24 \n", - "1 0.24 \n", - "2 0.23 \n", - "3 0.00 \n", - "4 0.00 " - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "data = get_data('juice')" - ] - }, - { - "cell_type": "code", - "execution_count": 20, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - " \n", - "Setup Succesfully Completed!\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", - "
Description Value
session_id2454
Target TypeBinary
Original Data(1070, 14)
Sampled Data(1070, 14)
Sample %1
Training Set(748, 14)
Testing Set(322, 14)
" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "s = setup(data, 'Purchase')" - ] - }, - { - "cell_type": "code", - "execution_count": 21, - "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", - "
AccuracyAUCRecallPrec.F1Kappa
00.63160.60290.73910.68000.70830.2107
10.78950.78770.82610.82610.82610.5594
20.64000.65670.65220.73170.68970.2644
30.73330.73310.71740.82500.76740.4585
40.72000.72940.80430.75510.77890.3982
50.65330.65290.69570.72730.71110.2783
60.77030.78470.75560.85000.80000.5323
70.72970.73680.73330.80490.76740.4465
80.82430.83720.80000.90000.84710.6424
90.79730.80420.82220.84090.83150.5773
Mean0.72890.73260.75460.79410.77280.4368
SD0.06510.07130.05500.06440.05240.1393
\n", - "
" - ], - "text/plain": [ - " Accuracy AUC Recall Prec. F1 Kappa\n", - "0 0.6316 0.6029 0.7391 0.6800 0.7083 0.2107\n", - "1 0.7895 0.7877 0.8261 0.8261 0.8261 0.5594\n", - "2 0.6400 0.6567 0.6522 0.7317 0.6897 0.2644\n", - "3 0.7333 0.7331 0.7174 0.8250 0.7674 0.4585\n", - "4 0.7200 0.7294 0.8043 0.7551 0.7789 0.3982\n", - "5 0.6533 0.6529 0.6957 0.7273 0.7111 0.2783\n", - "6 0.7703 0.7847 0.7556 0.8500 0.8000 0.5323\n", - "7 0.7297 0.7368 0.7333 0.8049 0.7674 0.4465\n", - "8 0.8243 0.8372 0.8000 0.9000 0.8471 0.6424\n", - "9 0.7973 0.8042 0.8222 0.8409 0.8315 0.5773\n", - "Mean 0.7289 0.7326 0.7546 0.7941 0.7728 0.4368\n", - "SD 0.0651 0.0713 0.0550 0.0644 0.0524 0.1393" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "dt = create_model('dt')" - ] - }, - { - "cell_type": "code", - "execution_count": 24, - "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", - "
AccuracyAUCRecallPrec.F1Kappa
00.72370.74020.84780.73580.78790.3973
10.81580.85720.86960.83330.85110.6100
20.73330.84070.78260.78260.78260.4378
30.73330.79420.73910.80950.77270.4518
40.81330.87220.84780.84780.84780.6064
50.73330.82160.71740.82500.76740.4585
60.81080.85440.80000.87800.83720.6126
70.75680.84870.73330.84620.78570.5078
80.82430.92110.82220.88100.85060.6381
90.81080.86400.84440.84440.84440.6031
Mean0.77560.84140.80040.82840.81270.5323
SD0.04040.04600.05210.04150.03410.0859
\n", - "
" - ], - "text/plain": [ - " Accuracy AUC Recall Prec. F1 Kappa\n", - "0 0.7237 0.7402 0.8478 0.7358 0.7879 0.3973\n", - "1 0.8158 0.8572 0.8696 0.8333 0.8511 0.6100\n", - "2 0.7333 0.8407 0.7826 0.7826 0.7826 0.4378\n", - "3 0.7333 0.7942 0.7391 0.8095 0.7727 0.4518\n", - "4 0.8133 0.8722 0.8478 0.8478 0.8478 0.6064\n", - "5 0.7333 0.8216 0.7174 0.8250 0.7674 0.4585\n", - "6 0.8108 0.8544 0.8000 0.8780 0.8372 0.6126\n", - "7 0.7568 0.8487 0.7333 0.8462 0.7857 0.5078\n", - "8 0.8243 0.9211 0.8222 0.8810 0.8506 0.6381\n", - "9 0.8108 0.8640 0.8444 0.8444 0.8444 0.6031\n", - "Mean 0.7756 0.8414 0.8004 0.8284 0.8127 0.5323\n", - "SD 0.0404 0.0460 0.0521 0.0415 0.0341 0.0859" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "dt_ensemble = create_model('dt', ensemble=True, method='Bagging')" - ] - }, - { - "cell_type": "code", - "execution_count": 28, - "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", - "
AccuracyAUCRecallPrec.F1Kappa
00.71050.79310.84780.72220.78000.3647
10.80260.84930.82610.84440.83520.5893
20.73330.84480.82610.76000.79170.4231
30.74670.81410.73910.82930.78160.4824
40.78670.86730.80430.84090.82220.5559
50.74670.83430.73910.82930.78160.4824
60.79730.87320.80000.85710.82760.5824
70.79730.85480.80000.85710.82760.5824
80.83780.93260.86670.86670.86670.6598
90.79730.86780.82220.84090.83150.5773
Mean0.77560.85310.80710.82480.81460.5300
SD0.03720.03560.03940.04420.02780.0849
\n", - "
" - ], - "text/plain": [ - " Accuracy AUC Recall Prec. F1 Kappa\n", - "0 0.7105 0.7931 0.8478 0.7222 0.7800 0.3647\n", - "1 0.8026 0.8493 0.8261 0.8444 0.8352 0.5893\n", - "2 0.7333 0.8448 0.8261 0.7600 0.7917 0.4231\n", - "3 0.7467 0.8141 0.7391 0.8293 0.7816 0.4824\n", - "4 0.7867 0.8673 0.8043 0.8409 0.8222 0.5559\n", - "5 0.7467 0.8343 0.7391 0.8293 0.7816 0.4824\n", - "6 0.7973 0.8732 0.8000 0.8571 0.8276 0.5824\n", - "7 0.7973 0.8548 0.8000 0.8571 0.8276 0.5824\n", - "8 0.8378 0.9326 0.8667 0.8667 0.8667 0.6598\n", - "9 0.7973 0.8678 0.8222 0.8409 0.8315 0.5773\n", - "Mean 0.7756 0.8531 0.8071 0.8248 0.8146 0.5300\n", - "SD 0.0372 0.0356 0.0394 0.0442 0.0278 0.0849" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "dt_ensemble_through_ensemble = ensemble_model(dt, n_estimators=50)" - ] - }, - { - "cell_type": "code", - "execution_count": 33, - "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", - "
AccuracyAUCRecallPrec.F1Kappa
00.72370.73550.86960.72730.79210.3899
10.77630.84130.80430.82220.81320.5346
20.66670.75110.71740.73330.72530.3017
30.74670.78260.73910.82930.78160.4824
40.77330.80470.82610.80850.81720.5190
50.72000.77660.71740.80490.75860.4279
60.75680.83600.73330.84620.78570.5078
70.78380.84100.77780.85370.81400.5572
80.77030.88240.80000.81820.80900.5209
90.81080.83870.91110.80390.85420.5879
Mean0.75280.80900.78960.80470.79510.4829
SD0.03870.04420.06250.04040.03370.0819
\n", - "
" - ], - "text/plain": [ - " Accuracy AUC Recall Prec. F1 Kappa\n", - "0 0.7237 0.7355 0.8696 0.7273 0.7921 0.3899\n", - "1 0.7763 0.8413 0.8043 0.8222 0.8132 0.5346\n", - "2 0.6667 0.7511 0.7174 0.7333 0.7253 0.3017\n", - "3 0.7467 0.7826 0.7391 0.8293 0.7816 0.4824\n", - "4 0.7733 0.8047 0.8261 0.8085 0.8172 0.5190\n", - "5 0.7200 0.7766 0.7174 0.8049 0.7586 0.4279\n", - "6 0.7568 0.8360 0.7333 0.8462 0.7857 0.5078\n", - "7 0.7838 0.8410 0.7778 0.8537 0.8140 0.5572\n", - "8 0.7703 0.8824 0.8000 0.8182 0.8090 0.5209\n", - "9 0.8108 0.8387 0.9111 0.8039 0.8542 0.5879\n", - "Mean 0.7528 0.8090 0.7896 0.8047 0.7951 0.4829\n", - "SD 0.0387 0.0442 0.0625 0.0404 0.0337 0.0819" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "dt_ensemble_through_ensemble_boosting = ensemble_model(dt, method='Boosting', n_estimators=50)" - ] - }, - { - "cell_type": "code", - "execution_count": 35, - "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", - "
AccuracyAUCRecallPrec.F1Kappa
00.75000.75220.82610.77550.80000.4676
10.80260.85870.80430.86050.83150.5940
20.80000.87110.86960.81630.84210.5701
30.77330.84000.76090.85370.80460.5369
40.80000.84860.78260.87800.82760.5914
50.70670.79800.73910.77270.75560.3893
60.78380.83910.80000.83720.81820.5519
70.67570.81150.71110.74420.72730.3278
80.81080.90800.80000.87800.83720.6126
90.75680.82640.82220.78720.80430.4833
Mean0.76600.83530.79160.82030.80480.5125
SD0.04250.04030.04330.04570.03510.0897
\n", - "
" - ], - "text/plain": [ - " Accuracy AUC Recall Prec. F1 Kappa\n", - "0 0.7500 0.7522 0.8261 0.7755 0.8000 0.4676\n", - "1 0.8026 0.8587 0.8043 0.8605 0.8315 0.5940\n", - "2 0.8000 0.8711 0.8696 0.8163 0.8421 0.5701\n", - "3 0.7733 0.8400 0.7609 0.8537 0.8046 0.5369\n", - "4 0.8000 0.8486 0.7826 0.8780 0.8276 0.5914\n", - "5 0.7067 0.7980 0.7391 0.7727 0.7556 0.3893\n", - "6 0.7838 0.8391 0.8000 0.8372 0.8182 0.5519\n", - "7 0.6757 0.8115 0.7111 0.7442 0.7273 0.3278\n", - "8 0.8108 0.9080 0.8000 0.8780 0.8372 0.6126\n", - "9 0.7568 0.8264 0.8222 0.7872 0.8043 0.4833\n", - "Mean 0.7660 0.8353 0.7916 0.8203 0.8048 0.5125\n", - "SD 0.0425 0.0403 0.0433 0.0457 0.0351 0.0897" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "tuned_dt = tune_model('dt')" - ] - }, - { - "cell_type": "code", - "execution_count": 36, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "DecisionTreeClassifier(class_weight=None, criterion='entropy', max_depth=10,\n", - " max_features=9, max_leaf_nodes=None,\n", - " min_impurity_decrease=0.0, min_impurity_split=None,\n", - " min_samples_leaf=4, min_samples_split=2,\n", - " min_weight_fraction_leaf=0.0, presort=False,\n", - " random_state=2454, splitter='best')" - ] - }, - "execution_count": 36, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "tuned_dt" - ] - }, - { - "cell_type": "code", - "execution_count": 37, - "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", - "
AccuracyAUCRecallPrec.F1Kappa
00.76320.81920.91300.75000.82350.4738
10.78950.82390.76090.87500.81400.5742
20.77330.81330.84780.79590.82110.5128
30.70670.78710.71740.78570.75000.3969
40.80000.86060.84780.82980.83870.5756
50.74670.83770.71740.84620.77650.4887
60.75680.85750.66670.90910.76920.5246
70.70270.81840.75560.75560.75560.3762
80.81080.88160.80000.87800.83720.6126
90.81080.89120.82220.86050.84090.6079
Mean0.76600.83910.78490.82860.80270.5143
SD0.03710.03120.07110.05180.03410.0781
\n", - "
" - ], - "text/plain": [ - " Accuracy AUC Recall Prec. F1 Kappa\n", - "0 0.7632 0.8192 0.9130 0.7500 0.8235 0.4738\n", - "1 0.7895 0.8239 0.7609 0.8750 0.8140 0.5742\n", - "2 0.7733 0.8133 0.8478 0.7959 0.8211 0.5128\n", - "3 0.7067 0.7871 0.7174 0.7857 0.7500 0.3969\n", - "4 0.8000 0.8606 0.8478 0.8298 0.8387 0.5756\n", - "5 0.7467 0.8377 0.7174 0.8462 0.7765 0.4887\n", - "6 0.7568 0.8575 0.6667 0.9091 0.7692 0.5246\n", - "7 0.7027 0.8184 0.7556 0.7556 0.7556 0.3762\n", - "8 0.8108 0.8816 0.8000 0.8780 0.8372 0.6126\n", - "9 0.8108 0.8912 0.8222 0.8605 0.8409 0.6079\n", - "Mean 0.7660 0.8391 0.7849 0.8286 0.8027 0.5143\n", - "SD 0.0371 0.0312 0.0711 0.0518 0.0341 0.0781" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "tuned_dt_2 = tune_model('dt', n_iter = 20)" - ] - }, - { - "cell_type": "code", - "execution_count": 38, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "DecisionTreeClassifier(class_weight=None, criterion='gini', max_depth=9,\n", - " max_features=8, max_leaf_nodes=None,\n", - " min_impurity_decrease=0.0, min_impurity_split=None,\n", - " min_samples_leaf=4, min_samples_split=2,\n", - " min_weight_fraction_leaf=0.0, presort=False,\n", - " random_state=2454, splitter='best')" - ] - }, - "execution_count": 38, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "tuned_dt_2" - ] - }, - { - "cell_type": "code", - "execution_count": 39, - "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", - "
AccuracyAUCRecallPrec.F1Kappa
00.76320.83480.89130.75930.82000.4802
10.81580.87100.82610.86360.84440.6189
20.78670.85270.89130.78850.83670.5323
30.74670.81930.69570.86490.77110.4949
40.81330.84450.82610.86360.84440.6114
50.72000.81300.71740.80490.75860.4279
60.81080.90190.84440.84440.84440.6031
70.81080.86090.84440.84440.84440.6031
80.83780.94710.86670.86670.86670.6598
90.79730.86700.84440.82610.83520.5721
Mean0.79020.86120.82480.83260.82660.5604
SD0.03450.03780.06320.03540.03290.0698
\n", - "
" - ], - "text/plain": [ - " Accuracy AUC Recall Prec. F1 Kappa\n", - "0 0.7632 0.8348 0.8913 0.7593 0.8200 0.4802\n", - "1 0.8158 0.8710 0.8261 0.8636 0.8444 0.6189\n", - "2 0.7867 0.8527 0.8913 0.7885 0.8367 0.5323\n", - "3 0.7467 0.8193 0.6957 0.8649 0.7711 0.4949\n", - "4 0.8133 0.8445 0.8261 0.8636 0.8444 0.6114\n", - "5 0.7200 0.8130 0.7174 0.8049 0.7586 0.4279\n", - "6 0.8108 0.9019 0.8444 0.8444 0.8444 0.6031\n", - "7 0.8108 0.8609 0.8444 0.8444 0.8444 0.6031\n", - "8 0.8378 0.9471 0.8667 0.8667 0.8667 0.6598\n", - "9 0.7973 0.8670 0.8444 0.8261 0.8352 0.5721\n", - "Mean 0.7902 0.8612 0.8248 0.8326 0.8266 0.5604\n", - "SD 0.0345 0.0378 0.0632 0.0354 0.0329 0.0698" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "tuned_dt_3 = tune_model('dt', n_iter = 30)" - ] - }, - { - "cell_type": "code", - "execution_count": 41, - "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", - "
AccuracyAUCRecallPrec.F1Kappa
00.78950.85070.95650.75860.84620.5265
10.80260.87210.80430.86050.83150.5940
20.80000.89810.86960.81630.84210.5701
30.73330.84780.71740.82500.76740.4585
40.78670.86390.80430.84090.82220.5559
50.73330.84860.73910.80950.77270.4518
60.79730.91650.80000.85710.82760.5824
70.83780.89120.82220.90240.86050.6679
80.83780.92950.86670.86670.86670.6598
90.78380.86740.82220.82220.82220.5464
Mean0.79020.87860.82020.83590.82590.5613
SD0.03370.02750.06420.03720.03140.0683
\n", - "
" - ], - "text/plain": [ - " Accuracy AUC Recall Prec. F1 Kappa\n", - "0 0.7895 0.8507 0.9565 0.7586 0.8462 0.5265\n", - "1 0.8026 0.8721 0.8043 0.8605 0.8315 0.5940\n", - "2 0.8000 0.8981 0.8696 0.8163 0.8421 0.5701\n", - "3 0.7333 0.8478 0.7174 0.8250 0.7674 0.4585\n", - "4 0.7867 0.8639 0.8043 0.8409 0.8222 0.5559\n", - "5 0.7333 0.8486 0.7391 0.8095 0.7727 0.4518\n", - "6 0.7973 0.9165 0.8000 0.8571 0.8276 0.5824\n", - "7 0.8378 0.8912 0.8222 0.9024 0.8605 0.6679\n", - "8 0.8378 0.9295 0.8667 0.8667 0.8667 0.6598\n", - "9 0.7838 0.8674 0.8222 0.8222 0.8222 0.5464\n", - "Mean 0.7902 0.8786 0.8202 0.8359 0.8259 0.5613\n", - "SD 0.0337 0.0275 0.0642 0.0372 0.0314 0.0683" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "tuned_dt_4 = tune_model('dt', ensemble=True, method='Bagging')" - ] - }, - { - "cell_type": "code", - "execution_count": 42, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "BaggingClassifier(base_estimator=DecisionTreeClassifier(class_weight=None,\n", - " criterion='gini',\n", - " max_depth=None,\n", - " max_features=None,\n", - " max_leaf_nodes=None,\n", - " min_impurity_decrease=0.0,\n", - " min_impurity_split=None,\n", - " min_samples_leaf=1,\n", - " min_samples_split=2,\n", - " min_weight_fraction_leaf=0.0,\n", - " presort=False,\n", - " random_state=2454,\n", - " splitter='best'),\n", - " bootstrap=True, bootstrap_features=False, max_features=1.0,\n", - " max_samples=1.0, n_estimators=10, n_jobs=None,\n", - " oob_score=False, random_state=2454, verbose=0,\n", - " warm_start=False)" - ] - }, - "execution_count": 42, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "dt_ensemble" - ] - }, - { - "cell_type": "code", - "execution_count": 43, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "BaggingClassifier(base_estimator=DecisionTreeClassifier(class_weight=None,\n", - " criterion='entropy',\n", - " max_depth=8,\n", - " max_features=None,\n", - " max_leaf_nodes=None,\n", - " min_impurity_decrease=0.0,\n", - " min_impurity_split=None,\n", - " min_samples_leaf=3,\n", - " min_samples_split=2,\n", - " min_weight_fraction_leaf=0.0,\n", - " presort=False,\n", - " random_state=2454,\n", - " splitter='best'),\n", - " bootstrap=False, bootstrap_features=False, max_features=0.9,\n", - " max_samples=0.5, n_estimators=25, n_jobs=None,\n", - " oob_score=False, random_state=2454, verbose=0,\n", - " warm_start=False)" - ] - }, - "execution_count": 43, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "tuned_dt_4" - ] - }, - { - "cell_type": "code", - "execution_count": 44, - "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", - "
AccuracyAUCRecallPrec.F1Kappa
00.76320.82170.93480.74140.82690.4673
10.81580.87750.84780.84780.84780.6145
20.77330.86430.84780.79590.82110.5128
30.76000.85460.76090.83330.79550.5066
40.80000.87030.80430.86050.83150.5862
50.72000.83960.73910.79070.76400.4207
60.79730.90730.77780.87500.82350.5874
70.83780.87510.84440.88370.86360.6639
80.83780.92570.84440.88370.86360.6639
90.78380.88200.82220.82220.82220.5464
Mean0.78890.87180.82240.83340.82600.5570
SD0.03500.02860.05290.04420.02860.0769
\n", - "
" - ], - "text/plain": [ - " Accuracy AUC Recall Prec. F1 Kappa\n", - "0 0.7632 0.8217 0.9348 0.7414 0.8269 0.4673\n", - "1 0.8158 0.8775 0.8478 0.8478 0.8478 0.6145\n", - "2 0.7733 0.8643 0.8478 0.7959 0.8211 0.5128\n", - "3 0.7600 0.8546 0.7609 0.8333 0.7955 0.5066\n", - "4 0.8000 0.8703 0.8043 0.8605 0.8315 0.5862\n", - "5 0.7200 0.8396 0.7391 0.7907 0.7640 0.4207\n", - "6 0.7973 0.9073 0.7778 0.8750 0.8235 0.5874\n", - "7 0.8378 0.8751 0.8444 0.8837 0.8636 0.6639\n", - "8 0.8378 0.9257 0.8444 0.8837 0.8636 0.6639\n", - "9 0.7838 0.8820 0.8222 0.8222 0.8222 0.5464\n", - "Mean 0.7889 0.8718 0.8224 0.8334 0.8260 0.5570\n", - "SD 0.0350 0.0286 0.0529 0.0442 0.0286 0.0769" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/plain": [ - "AdaBoostClassifier(algorithm='SAMME.R',\n", - " base_estimator=BaggingClassifier(base_estimator=DecisionTreeClassifier(class_weight=None,\n", - " criterion='entropy',\n", - " max_depth=8,\n", - " max_features=None,\n", - " max_leaf_nodes=None,\n", - " min_impurity_decrease=0.0,\n", - " min_impurity_split=None,\n", - " min_samples_leaf=3,\n", - " min_samples_split=2,\n", - " min_weight_fraction_leaf=0.0,\n", - " presort=False,\n", - " random_state=2454,\n", - " splitter='best'),\n", - " bootstrap=False,\n", - " bootstrap_features=False,\n", - " max_features=0.9,\n", - " max_samples=0.5,\n", - " n_estimators=25,\n", - " n_jobs=None,\n", - " oob_score=False,\n", - " random_state=2454,\n", - " verbose=0,\n", - " warm_start=False),\n", - " learning_rate=1.0, n_estimators=10, random_state=2454)" - ] - }, - "execution_count": 44, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "ensemble_model(tuned_dt_4, method='Boosting')" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": 46, - "metadata": {}, - "outputs": [], - "source": [ - "riaz = ['lr', 'nb', 'xgboost']\n", - "models = []\n", - "for i in riaz:\n", - " a = _model(i, verbose=False)\n", - " models.append(a)" - ] - }, - { - "cell_type": "code", - "execution_count": 47, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "[LogisticRegression(C=1.0, class_weight=None, dual=False, fit_intercept=True,\n", - " intercept_scaling=1, l1_ratio=None, max_iter=100,\n", - " multi_class='warn', n_jobs=None, penalty='l2',\n", - " random_state=2454, solver='warn', tol=0.0001, verbose=0,\n", - " warm_start=False),\n", - " GaussianNB(priors=None, var_smoothing=1e-09),\n", - " XGBClassifier(base_score=0.5, booster='gbtree', colsample_bylevel=1,\n", - " colsample_bynode=1, colsample_bytree=1, gamma=0,\n", - " learning_rate=0.1, max_delta_step=0, max_depth=3,\n", - " min_child_weight=1, missing=None, n_estimators=100, n_jobs=-1,\n", - " nthread=None, objective='binary:logistic', random_state=2454,\n", - " reg_alpha=0, reg_lambda=1, scale_pos_weight=1, seed=None,\n", - " silent=None, subsample=1, verbosity=0)]" - ] - }, - "execution_count": 47, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "models" - ] - }, - { - "cell_type": "code", - "execution_count": 48, - "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", - "
AccuracyAUCRecallPrec.F1Kappa
00.81580.85290.95650.78570.86270.5908
10.78950.87320.82610.82610.82610.5594
20.77330.89660.84780.79590.82110.5128
30.77330.87180.76090.85370.80460.5369
40.77330.87180.80430.82220.81320.5251
50.76000.85830.76090.83330.79550.5066
60.82430.91030.82220.88100.85060.6381
70.87840.88580.88890.90910.89890.7464
80.82430.94020.84440.86360.85390.6337
90.79730.88970.84440.82610.83520.5721
Mean0.80100.88510.83570.83970.83620.5822
SD0.03380.02470.05490.03580.02950.0702
\n", - "
" - ], - "text/plain": [ - " Accuracy AUC Recall Prec. F1 Kappa\n", - "0 0.8158 0.8529 0.9565 0.7857 0.8627 0.5908\n", - "1 0.7895 0.8732 0.8261 0.8261 0.8261 0.5594\n", - "2 0.7733 0.8966 0.8478 0.7959 0.8211 0.5128\n", - "3 0.7733 0.8718 0.7609 0.8537 0.8046 0.5369\n", - "4 0.7733 0.8718 0.8043 0.8222 0.8132 0.5251\n", - "5 0.7600 0.8583 0.7609 0.8333 0.7955 0.5066\n", - "6 0.8243 0.9103 0.8222 0.8810 0.8506 0.6381\n", - "7 0.8784 0.8858 0.8889 0.9091 0.8989 0.7464\n", - "8 0.8243 0.9402 0.8444 0.8636 0.8539 0.6337\n", - "9 0.7973 0.8897 0.8444 0.8261 0.8352 0.5721\n", - "Mean 0.8010 0.8851 0.8357 0.8397 0.8362 0.5822\n", - "SD 0.0338 0.0247 0.0549 0.0358 0.0295 0.0702" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "lr = create_model('lr', ensemble=False)\n", - "nb = create_model('nb', ensemble=False)\n", - "catboost = create_model('catboost', ensemble=False)" - ] - }, - { - "cell_type": "code", - "execution_count": 51, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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siFL59hDQkJISEhg+vTpvPrqqzgcDiZNmuTp2kRERCSbstRj//XXX1m9erX78cSJE2nXrp3HihIREZGcyVKP3TRNoqOj3Y+jo6Px8vLyWFEiIiKSM1nqsQ8ePJgePXrQrFkzTNPkhx9+4LHHHvN0bSIiIpJNWQr27t27U7NmTXbu3IlhGMydO5cqVap4ujYRERHJpkwPxf/www8ArFy5kt9++43AwEAKFizIwYMHWbly5S0pUERERLIu0x77gQMHaNq0KT///HOGy7t06eKRokRERCRnMg32UaNGAWlncYuJieHvv//m3nvv9WxlIiIikm1Zuir+008/Zdy4cVy4cIH27dszatQo3n33XU/XJiIiItmUpWBfsmQJo0ePZs2aNTRv3pwvv/yStWvXero2ERERyaYsBTtAyZIl2bRpEw8//DDe3t4kJSV5si4RERHJgSwFe6VKlRg+fDinTp2iQYMGPPPMM9SsWdPTtYmIiEg2Zek+9unTp7N3717uvfdefH196dSpE02aNPF0bSIiIpJNmQb7smXL6N27t/tCuStve/vtt9948sknPVudiIiIZEumh+JN07xVdYiIiMhNkGmPvU+fPgA8/vjjbNq0iebNm3PhwgU2bNhA9+7db0mBIiIiknVZunju5ZdfTnN7288//6z52EVERG5DWbp4LjQ0lC+//BKAYsWKMXv2bDp27OjRwkRERCT7stRjNwyDiIgI9+Pz589jt2f5FngRERG5RbLUY3/88cfp2rUr9erVA2D//v28+OKLHi1MREREsi9Lwd6xY0ceeOAB9u3bh7e3Ny+99BIlS5b0dG0iIiKSTVk6np6cnMwXX3zB+vXreeCBB1i+fDnJycmerk1ERESyKUvBHhISQnx8PL/99hve3t6cOHGCCRMmeLo2ERERyaYsBfuvv/7K6NGj8fb2pkCBArz66qscOnTI07WJiIhINmUp2G02G8nJydhsNgAuXrzo/reIiIjcPrJ08dzAgQMZMmQIZ8+eZdq0aaxbt46RI0d6ujYRERHJpiwFe+PGjalRowY///wzLpeLefPmUbVqVU/XJiIiItmUpWDv378/33zzDZUqVfJ0PSIiInIDshTsVatWZeXKldSqVQt/f3/383fffbfHChMREZHsy1Kw79+/n19++SXNNK42m43169d7rDARERHJvkyDPTw8nFmzZhEY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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "plot_model(lr,'pr')" - ] - }, - { - "cell_type": "code", - "execution_count": 52, - "metadata": {}, - "outputs": [ - { - "ename": "SystemExit", - "evalue": "(Estimator Error): CatBoost estimator is not compatible with plot_model function, try using Catboost with interpret_model instead.", - "output_type": "error", - "traceback": [ - "An exception has occurred, use %tb to see the full traceback.\n", - "\u001b[1;31mSystemExit\u001b[0m\u001b[1;31m:\u001b[0m (Estimator Error): CatBoost estimator is not compatible with plot_model function, try using Catboost with interpret_model instead.\n" - ] - } - ], - "source": [ - "plot_model(catboost)" - ] - }, - { - "cell_type": "code", - "execution_count": 53, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAewAAAEoCAYAAACaU8LCAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nOzdd0CT1/7H8XfCRnCCOHCh4l5IBWcF1DpwYhUt1nVvl+PWaqu2buu2rXt12OGorbNaN4oDRQUV96giiCIOFGQGkuf3B7e55acQB0lAv6+/SJ4n53wTxodnnHNUiqIoCCGEEKJAU5u7ACGEEEIYJoEthBBCFAIS2EIIIUQhIIEthBBCFAIS2EIIIUQhIIEthBBCFAIS2KLQ0Gq1rFy5kh49etC1a1c6duzInDlz0Gg0Bl9bo0YNEhISCA4O5ssvvwSgX79+7Ny586VqunnzJsOGDQMgPj6ewMDAl2rvWRw7dgx/f3+D+y1atIi9e/e+VF8XL15k7Nixz/Wa2NhYGjVqBMDatWtZsWJFnvvn9X7mz5/P5s2bgad/D0NCQpg/f/5z1WcO586dY/z48eYuQxRyluYuQIhnNWnSJBITE/npp59wdHQkNTWVUaNG8cUXXzBnzpxnasPPzw8/P798q+n27dtERUUB4OLiwq+//ppvbb+sY8eOUa1atRd+vU6n44svvmDp0qUv3EafPn1e+LUA//nPf5547p/fw7Nnz5KYmPhSfZhC3bp1Wb16Nfv378fHx8fc5YhCSgJbFAqxsbFs3bqVw4cP4+DgAIC9vT2TJ0/m5MmTAERFRTFlyhRSUlK4d+8eNWvWZN68edjY2Ojb2bhxI7t27WL58uUA7NmzhxUrVpCenk7nzp358MMPiY2N5Z133qFq1arcunWLX375hY0bNxIcHEx6ejppaWmMHj0aX19fxo0bR3x8PIMHD2by5Ml07tyZU6dOkZmZycyZMzl69CgWFhbUr1+fsWPH4uDggK+vL927d+fo0aPExcXRtWtXPv744yfes6+vL506dSI0NJTHjx8zcOBA+vbtm2Ofx48fM3nyZC5duoRKpaJly5Z88sknrFu3jnPnzjF79mwsLCwoUaIEM2fORKfTAfD+++/z1ltv5fmZ79ixA1dXV1xcXPT11K9fn8uXL/PJJ59Qv359pkyZQlxcHJmZmXTq1IkPPvggRxsLFy7k4cOHTJgwgf3797N8+XI0Gg0JCQl069ZN/75TU1MZPnw40dHRFC1alClTplClShXGjBlD9erVGTx48BPfw48++ohff/0VrVaLo6MjZ86coUOHDvTq1QuAJUuW8OjRIz7//PMcNUVGRvLll1+SlpaGlZUVn332GU2bNqVGjRocPXqUkiVLAugfX716lWnTpmFvb09KSgrVq1enbt26DBo0CIA1a9Zw/Phx5s2bx759+1i6dCmZmZnY2toyevRo/dmG3r17M2nSJAls8eIUIQqBnTt3KgEBAXnuM3PmTGXz5s2KoiiKRqNR/P39lZ07dyqKoiju7u7KgwcPlA0bNijvvfeeoiiKEhQUpLz//vtKZmam8vjxY6V9+/ZKSEiIcvPmTcXd3V05ceKEoiiKEhsbq/Tr109JS0tTFEVRtm3bpvj7+yuKoihhYWFKp06dFEVRlJs3byoNGzZUFEVR5s+frwwdOlTRaDSKVqtVxowZo4wfP15RFEXx8fFRZs6cqSiKoty5c0epV6+eEhMT88T78fHxUcaPH6/odDolLi5O8fLyUi5dupSjz88++0yZOnWqotPplIyMDGXQoEHK8uXL9e9vx44diqIoyrvvvqts27ZNURRFuXjxojJp0iSDn/mwYcOUDRs25Khn0aJF+sf9+vVTgoODFUVRlPT0dKVfv37Kn3/+meNzWLBggTJ58mRFp9MpQUFBSlRUlP5916pVS3nw4IESFham1KxZU4mIiFAURVF+/fVXpWfPnoqiKMro0aOV7777Ltfv4d/tK4qi7NmzR/8zotVqFR8fH+XatWs53pNGo1GaN2+u7N+/X1EURTl79qzi7++vaLVafft/+/vx3/XFxsYqiqIoR48e1X//FUVRevbsqYSGhipRUVGKv7+/kpCQoCiKoly5ckVp3ry5kpKSot+3UaNGT/1eC/Es5AhbFApqtVp/dJibTz/9lNDQUL799ltu3LjB3bt3SU1NzfM1PXv2xNLSEgcHB9566y2OHDlC1apVsbS0pGHDhgCUL1+e2bNns3XrVqKjo4mMjCQlJSXPdg8ePMiIESOwsrICsq+XDxkyRL/971O6Li4ulCpVisTERCpUqPBEO3379kWlUlGmTBlatmxJaGgoderUydHP2rVrUalUWFtbExgYyE8//cR7772Xo50OHTowZcoU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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "plot_model(lr,plot='calibration')" - ] - }, - { - "cell_type": "code", - "execution_count": 54, - "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", - "
AccuracyAUCRecallPrec.F1Kappa
00.63160.60290.73910.68000.70830.2107
10.78950.78770.82610.82610.82610.5594
20.64000.65670.65220.73170.68970.2644
30.73330.73310.71740.82500.76740.4585
40.72000.72940.80430.75510.77890.3982
50.65330.65290.69570.72730.71110.2783
60.77030.78470.75560.85000.80000.5323
70.72970.73680.73330.80490.76740.4465
80.82430.83720.80000.90000.84710.6424
90.79730.80420.82220.84090.83150.5773
Mean0.72890.73260.75460.79410.77280.4368
SD0.06510.07130.05500.06440.05240.1393
\n", - "
" - ], - "text/plain": [ - " Accuracy AUC Recall Prec. F1 Kappa\n", - "0 0.6316 0.6029 0.7391 0.6800 0.7083 0.2107\n", - "1 0.7895 0.7877 0.8261 0.8261 0.8261 0.5594\n", - "2 0.6400 0.6567 0.6522 0.7317 0.6897 0.2644\n", - "3 0.7333 0.7331 0.7174 0.8250 0.7674 0.4585\n", - "4 0.7200 0.7294 0.8043 0.7551 0.7789 0.3982\n", - "5 0.6533 0.6529 0.6957 0.7273 0.7111 0.2783\n", - "6 0.7703 0.7847 0.7556 0.8500 0.8000 0.5323\n", - "7 0.7297 0.7368 0.7333 0.8049 0.7674 0.4465\n", - "8 0.8243 0.8372 0.8000 0.9000 0.8471 0.6424\n", - "9 0.7973 0.8042 0.8222 0.8409 0.8315 0.5773\n", - "Mean 0.7289 0.7326 0.7546 0.7941 0.7728 0.4368\n", - "SD 0.0651 0.0713 0.0550 0.0644 0.0524 0.1393" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "dt = create_model('dt')" - ] - }, - { - "cell_type": "code", - "execution_count": 55, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "plot_model(dt,plot='calibration')" - ] - }, - { - "cell_type": "code", - "execution_count": 58, - "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", - "
AccuracyAUCRecallPrec.F1Kappa
00.68420.74240.86960.68970.76920.2897
10.80260.85690.89130.80390.84540.5746
20.76000.78040.86960.76920.81630.4739
30.72000.79420.76090.77780.76920.4134
40.78670.82350.86960.80000.83330.5385
50.69330.77020.71740.76740.74160.3656
60.78380.82840.82220.82220.82220.5464
70.83780.84410.91110.83670.87230.6512
80.83780.92990.84440.88370.86360.6639
90.81080.81110.88890.81630.85110.5931
Mean0.77170.81810.84450.79670.81840.5110
SD0.05310.04990.05840.04870.04210.1170
\n", - "
" - ], - "text/plain": [ - " Accuracy AUC Recall Prec. F1 Kappa\n", - "0 0.6842 0.7424 0.8696 0.6897 0.7692 0.2897\n", - "1 0.8026 0.8569 0.8913 0.8039 0.8454 0.5746\n", - "2 0.7600 0.7804 0.8696 0.7692 0.8163 0.4739\n", - "3 0.7200 0.7942 0.7609 0.7778 0.7692 0.4134\n", - "4 0.7867 0.8235 0.8696 0.8000 0.8333 0.5385\n", - "5 0.6933 0.7702 0.7174 0.7674 0.7416 0.3656\n", - "6 0.7838 0.8284 0.8222 0.8222 0.8222 0.5464\n", - "7 0.8378 0.8441 0.9111 0.8367 0.8723 0.6512\n", - "8 0.8378 0.9299 0.8444 0.8837 0.8636 0.6639\n", - "9 0.8108 0.8111 0.8889 0.8163 0.8511 0.5931\n", - "Mean 0.7717 0.8181 0.8445 0.7967 0.8184 0.5110\n", - "SD 0.0531 0.0499 0.0584 0.0487 0.0421 0.1170" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "calibrated_dt = calibrate_model(dt, method='sigmoid')" - ] - }, - { - "cell_type": "code", - "execution_count": 59, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "plot_model(calibrated_dt, plot='calibration')" - ] - }, - { - "cell_type": "code", - "execution_count": 60, - "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", - "
AccuracyAUCRecallPrec.F1Kappa
00.68420.71200.78260.72000.75000.3234
10.77630.84750.80430.82220.81320.5346
20.65330.65480.69570.72730.71110.2783
30.74670.77360.73910.82930.78160.4824
40.74670.82230.80430.78720.79570.4625
50.70670.77700.69570.80000.74420.4043
60.71620.84370.71110.80000.75290.4223
70.79730.83330.82220.84090.83150.5773
80.79730.91000.80000.85710.82760.5824
90.82430.88660.88890.83330.86020.6245
Mean0.74490.80610.77440.80170.78680.4692
SD0.05210.07420.05960.04380.04460.1083
\n", - "
" - ], - "text/plain": [ - " Accuracy AUC Recall Prec. F1 Kappa\n", - "0 0.6842 0.7120 0.7826 0.7200 0.7500 0.3234\n", - "1 0.7763 0.8475 0.8043 0.8222 0.8132 0.5346\n", - "2 0.6533 0.6548 0.6957 0.7273 0.7111 0.2783\n", - "3 0.7467 0.7736 0.7391 0.8293 0.7816 0.4824\n", - "4 0.7467 0.8223 0.8043 0.7872 0.7957 0.4625\n", - "5 0.7067 0.7770 0.6957 0.8000 0.7442 0.4043\n", - "6 0.7162 0.8437 0.7111 0.8000 0.7529 0.4223\n", - "7 0.7973 0.8333 0.8222 0.8409 0.8315 0.5773\n", - "8 0.7973 0.9100 0.8000 0.8571 0.8276 0.5824\n", - "9 0.8243 0.8866 0.8889 0.8333 0.8602 0.6245\n", - "Mean 0.7449 0.8061 0.7744 0.8017 0.7868 0.4692\n", - "SD 0.0521 0.0742 0.0596 0.0438 0.0446 0.1083" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "dt_boosted = create_model('dt', ensemble=True, method='Boosting')" - ] - }, - { - "cell_type": "code", - "execution_count": 61, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "plot_model(dt_boosted, plot='calibration')" - ] - }, - { - "cell_type": "code", - "execution_count": 62, - "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", - "
AccuracyAUCRecallPrec.F1Kappa
00.71050.74170.84780.72220.78000.3647
10.77630.85180.84780.79590.82110.5236
20.72000.80580.80430.75510.77890.3982
30.73330.81520.76090.79550.77780.4449
40.78670.85160.84780.81250.82980.5444
50.73330.82080.78260.78260.78260.4378
60.78380.86510.82220.82220.82220.5464
70.86490.87510.91110.87230.89130.7130
80.81080.91950.86670.82980.84780.5981
90.83780.83980.88890.85110.86960.6555
Mean0.77570.83870.83800.80390.82010.5227
SD0.04920.04500.04410.04200.03860.1069
\n", - "
" - ], - "text/plain": [ - " Accuracy AUC Recall Prec. F1 Kappa\n", - "0 0.7105 0.7417 0.8478 0.7222 0.7800 0.3647\n", - "1 0.7763 0.8518 0.8478 0.7959 0.8211 0.5236\n", - "2 0.7200 0.8058 0.8043 0.7551 0.7789 0.3982\n", - "3 0.7333 0.8152 0.7609 0.7955 0.7778 0.4449\n", - "4 0.7867 0.8516 0.8478 0.8125 0.8298 0.5444\n", - "5 0.7333 0.8208 0.7826 0.7826 0.7826 0.4378\n", - "6 0.7838 0.8651 0.8222 0.8222 0.8222 0.5464\n", - "7 0.8649 0.8751 0.9111 0.8723 0.8913 0.7130\n", - "8 0.8108 0.9195 0.8667 0.8298 0.8478 0.5981\n", - "9 0.8378 0.8398 0.8889 0.8511 0.8696 0.6555\n", - "Mean 0.7757 0.8387 0.8380 0.8039 0.8201 0.5227\n", - "SD 0.0492 0.0450 0.0441 0.0420 0.0386 0.1069" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "dt_boosted_calibrated = calibrate_model(dt_boosted, method='isotonic')" - ] - }, - { - "cell_type": "code", - "execution_count": 63, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "plot_model(dt_boosted_calibrated, 'calibration')" - ] - }, - { - "cell_type": "code", - "execution_count": 64, - "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", - "
Model Accuracy AUC Recall Prec. F1 Kappa
0Ridge Classifier0.832900.87490.85660.86480.646
1Linear Discriminant Analysis0.82890.90280.87930.84830.86230.6363
2Logistic Regression0.82630.90280.88150.84280.86080.6298
3Ada Boost Classifier0.81420.88440.85960.84030.84880.6075
4Extreme Gradient Boosting0.8090.89180.83120.85490.84120.6013
5Gradient Boosting Classifier0.80750.88760.83120.85060.83970.5987
6CatBoost Classifier0.8010.88510.83570.83970.83620.5822
7K Neighbors Classifier0.77960.85060.83560.81310.82170.5321
8Random Forest Classifier0.77690.8340.80490.82680.81430.5345
9Light Gradient Boosting Machine0.7730.86720.80940.81930.81290.5238
10Naive Bayes0.76220.8310.76520.83620.79750.5097
11SVM - Linear Kernel0.745700.78210.8270.7660.4737
12Extra Trees Classifier0.7340.79220.75430.79980.77490.4498
13Decision Tree Classifier0.72890.73260.75460.79410.77280.4368
14Quadratic Discriminant Analysis0.71550.77760.71730.79530.75020.4212
" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 64, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "compare_models()" - ] - }, - { - "cell_type": "code", - "execution_count": 65, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Model Accuracy AUC Recall Prec. F1 Kappa
0Ridge Classifier0.832900.87490.85660.86480.646
1MLP Classifier0.83030.90170.87270.85520.86230.6407
2Linear Discriminant Analysis0.82890.90280.87930.84830.86230.6363
3Logistic Regression0.82630.90280.88150.84280.86080.6298
4Ada Boost Classifier0.81420.88440.85960.84030.84880.6075
5Extreme Gradient Boosting0.8090.89180.83120.85490.84120.6013
6Gradient Boosting Classifier0.80750.88760.83120.85060.83970.5987
7Gaussian Process Classifier0.80370.89370.87720.81850.84540.5772
8CatBoost Classifier0.8010.88510.83570.83970.83620.5822
9SVM - Radial Kernel0.8010.89260.89020.80780.84540.5678
10K Neighbors Classifier0.77960.85060.83560.81310.82170.5321
11Random Forest Classifier0.77690.8340.80490.82680.81430.5345
12Light Gradient Boosting Machine0.7730.86720.80940.81930.81290.5238
13Naive Bayes0.76220.8310.76520.83620.79750.5097
14SVM - Linear Kernel0.745700.78210.8270.7660.4737
15Extra Trees Classifier0.7340.79220.75430.79980.77490.4498
16Decision Tree Classifier0.72890.73260.75460.79410.77280.4368
17Quadratic Discriminant Analysis0.71550.77760.71730.79530.75020.4212
" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 65, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "compare_models(turbo=False)" - ] - }, - { - "cell_type": "code", - "execution_count": 66, - "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", - "
Model Accuracy AUC Recall Prec. F1 Kappa
0Ridge Classifier0.832900.87490.85660.86480.646
1Linear Discriminant Analysis0.82890.90280.87930.84830.86230.6363
2Logistic Regression0.82630.90280.88150.84280.86080.6298
3Ada Boost Classifier0.81420.88440.85960.84030.84880.6075
4Gradient Boosting Classifier0.80750.88760.83120.85060.83970.5987
5K Neighbors Classifier0.77960.85060.83560.81310.82170.5321
6Random Forest Classifier0.77690.8340.80490.82680.81430.5345
7Naive Bayes0.76220.8310.76520.83620.79750.5097
8SVM - Linear Kernel0.745700.78210.8270.7660.4737
9Extra Trees Classifier0.7340.79220.75430.79980.77490.4498
10Decision Tree Classifier0.72890.73260.75460.79410.77280.4368
11Quadratic Discriminant Analysis0.71550.77760.71730.79530.75020.4212
" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 66, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "compare_models(blacklist=['catboost', 'xgboost', 'lightgbm'])" - ] - }, - { - "cell_type": "code", - "execution_count": 67, - "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", - "
AccuracyAUCRecallPrec.F1Kappa
00.78950.00.93480.76790.84310.5323
10.84210.00.86960.86960.86960.6696
20.89330.00.93480.89580.91490.7722
30.81330.00.84780.84780.84780.6064
40.84000.00.84780.88640.86670.6669
50.82670.00.84780.86670.85710.6369
60.85140.00.88890.86960.87910.6862
70.85140.00.86670.88640.87640.6900
80.86490.00.88890.88890.88890.7165
90.75680.00.82220.78720.80430.4833
Mean0.83290.00.87490.85660.86480.6460
SD0.03690.00.03550.04190.02820.0815
\n", - "
" - ], - "text/plain": [ - " Accuracy AUC Recall Prec. F1 Kappa\n", - "0 0.7895 0.0 0.9348 0.7679 0.8431 0.5323\n", - "1 0.8421 0.0 0.8696 0.8696 0.8696 0.6696\n", - "2 0.8933 0.0 0.9348 0.8958 0.9149 0.7722\n", - "3 0.8133 0.0 0.8478 0.8478 0.8478 0.6064\n", - "4 0.8400 0.0 0.8478 0.8864 0.8667 0.6669\n", - "5 0.8267 0.0 0.8478 0.8667 0.8571 0.6369\n", - "6 0.8514 0.0 0.8889 0.8696 0.8791 0.6862\n", - "7 0.8514 0.0 0.8667 0.8864 0.8764 0.6900\n", - "8 0.8649 0.0 0.8889 0.8889 0.8889 0.7165\n", - "9 0.7568 0.0 0.8222 0.7872 0.8043 0.4833\n", - "Mean 0.8329 0.0 0.8749 0.8566 0.8648 0.6460\n", - "SD 0.0369 0.0 0.0355 0.0419 0.0282 0.0815" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "ridge = create_model('ridge')" - ] - }, - { - "cell_type": "code", - "execution_count": 68, - "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", - "
AccuracyAUCRecallPrec.F1Kappa
00.80260.00.93480.78180.85150.5642
10.78950.00.82610.82610.82610.5594
20.89330.00.93480.89580.91490.7722
30.77330.00.76090.85370.80460.5369
40.82670.00.84780.86670.85710.6369
50.77330.00.78260.83720.80900.5311
60.79730.00.80000.85710.82760.5824
70.86490.00.86670.90700.88640.7199
80.86490.00.88890.88890.88890.7165
90.77030.00.82220.80430.81320.5150
Mean0.81560.00.84650.85190.84790.6134
SD0.04220.00.05690.03830.03640.0874
\n", - "
" - ], - "text/plain": [ - " Accuracy AUC Recall Prec. F1 Kappa\n", - "0 0.8026 0.0 0.9348 0.7818 0.8515 0.5642\n", - "1 0.7895 0.0 0.8261 0.8261 0.8261 0.5594\n", - "2 0.8933 0.0 0.9348 0.8958 0.9149 0.7722\n", - "3 0.7733 0.0 0.7609 0.8537 0.8046 0.5369\n", - "4 0.8267 0.0 0.8478 0.8667 0.8571 0.6369\n", - "5 0.7733 0.0 0.7826 0.8372 0.8090 0.5311\n", - "6 0.7973 0.0 0.8000 0.8571 0.8276 0.5824\n", - "7 0.8649 0.0 0.8667 0.9070 0.8864 0.7199\n", - "8 0.8649 0.0 0.8889 0.8889 0.8889 0.7165\n", - "9 0.7703 0.0 0.8222 0.8043 0.8132 0.5150\n", - "Mean 0.8156 0.0 0.8465 0.8519 0.8479 0.6134\n", - "SD 0.0422 0.0 0.0569 0.0383 0.0364 0.0874" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "b1 = blend_models()" - ] - }, - { - "cell_type": "code", - "execution_count": 69, - "metadata": {}, - "outputs": [], - "source": [ - "lda = create_model('lda', verbose=False)\n", - "lr = create_model('lr', verbose=False)\n", - "ada = create_model('ada', verbose=False)\n", - "gbc = create_model('gbc', verbose=False)" - ] - }, - { - "cell_type": "code", - "execution_count": 75, - "metadata": {}, - "outputs": [], - "source": [ - "ridge = create_model('ridge', verbose=False)" - ] - }, - { - "cell_type": "code", - "execution_count": 74, - "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", - "
AccuracyAUCRecallPrec.F1Kappa
00.80260.89490.95650.77190.85440.5588
10.81580.90360.84780.84780.84780.6145
20.89330.93030.95650.88000.91670.7692
30.78670.88980.78260.85710.81820.5614
40.82670.89660.84780.86670.85710.6369
50.81330.86960.84780.84780.84780.6064
60.85140.93330.91110.85420.88170.6823
70.85140.90190.86670.88640.87640.6900
80.86490.94480.88890.88890.88890.7165
90.77030.87740.82220.80430.81320.5150
Mean0.82760.90420.87280.85050.86020.6351
SD0.03570.02340.05320.03500.03010.0753
\n", - "
" - ], - "text/plain": [ - " Accuracy AUC Recall Prec. F1 Kappa\n", - "0 0.8026 0.8949 0.9565 0.7719 0.8544 0.5588\n", - "1 0.8158 0.9036 0.8478 0.8478 0.8478 0.6145\n", - "2 0.8933 0.9303 0.9565 0.8800 0.9167 0.7692\n", - "3 0.7867 0.8898 0.7826 0.8571 0.8182 0.5614\n", - "4 0.8267 0.8966 0.8478 0.8667 0.8571 0.6369\n", - "5 0.8133 0.8696 0.8478 0.8478 0.8478 0.6064\n", - "6 0.8514 0.9333 0.9111 0.8542 0.8817 0.6823\n", - "7 0.8514 0.9019 0.8667 0.8864 0.8764 0.6900\n", - "8 0.8649 0.9448 0.8889 0.8889 0.8889 0.7165\n", - "9 0.7703 0.8774 0.8222 0.8043 0.8132 0.5150\n", - "Mean 0.8276 0.9042 0.8728 0.8505 0.8602 0.6351\n", - "SD 0.0357 0.0234 0.0532 0.0350 0.0301 0.0753" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "b2 = blend_models([lda,lr,ada,gbc], method='soft')" - ] - }, - { - "cell_type": "code", - "execution_count": 77, - "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", - "
AccuracyAUCRecallPrec.F1Kappa
00.80260.00.95650.77190.85440.5588
10.82890.00.86960.85110.86020.6399
20.90670.00.95650.89800.92630.7994
30.80000.00.82610.84440.83520.5810
40.82670.00.84780.86670.85710.6369
50.81330.00.84780.84780.84780.6064
60.86490.00.91110.87230.89130.7130
70.85140.00.86670.88640.87640.6900
80.86490.00.88890.88890.88890.7165
90.75680.00.82220.78720.80430.4833
Mean0.83160.00.87930.85150.86420.6425
SD0.04010.00.04620.04000.03190.0865
\n", - "
" - ], - "text/plain": [ - " Accuracy AUC Recall Prec. F1 Kappa\n", - "0 0.8026 0.0 0.9565 0.7719 0.8544 0.5588\n", - "1 0.8289 0.0 0.8696 0.8511 0.8602 0.6399\n", - "2 0.9067 0.0 0.9565 0.8980 0.9263 0.7994\n", - "3 0.8000 0.0 0.8261 0.8444 0.8352 0.5810\n", - "4 0.8267 0.0 0.8478 0.8667 0.8571 0.6369\n", - "5 0.8133 0.0 0.8478 0.8478 0.8478 0.6064\n", - "6 0.8649 0.0 0.9111 0.8723 0.8913 0.7130\n", - "7 0.8514 0.0 0.8667 0.8864 0.8764 0.6900\n", - "8 0.8649 0.0 0.8889 0.8889 0.8889 0.7165\n", - "9 0.7568 0.0 0.8222 0.7872 0.8043 0.4833\n", - "Mean 0.8316 0.0 0.8793 0.8515 0.8642 0.6425\n", - "SD 0.0401 0.0 0.0462 0.0400 0.0319 0.0865" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "b3 = blend_models([lda,lr,ada,gbc,ridge], method='hard')" - ] - }, - { - "cell_type": "code", - "execution_count": 78, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - " pycaret.classification\n", - " ----------------------\n", - " This module is used for binary and multiclass classification problems.\n", - " \n", - " \n", - " get_data()\n", - " ----------\n", - " get_data imports the dataset from pycaret git repository. To see list of available datasets:\n", - "\n", - " from pycaret.datasets import get_data\n", - " get_data('index')\n", - "\n", - " To import dataset:\n", - " data = get_data(data='juice')\n", - "\n", - " * * *\n", - "\n", - " setup\n", - " -------\n", - " setup initialize the pycaret environment. It takes two mandatory inputs. (i) Dataframe and \n", - " (ii) Name of target column. \n", - "\n", - " s = setup(data=data, target='Purchase')\n", - "\n", - " * * *\n", - "\n", - " create_model\n", - " ------------\n", - " create_model takes an abbreviated string of model name as input param and trains an estimator given\n", - " in estimator param. It will also evaluate model performance on 10 fold stratified cross validation.\n", - " It evaluates and returns model performance on Accuracy, AUC, Recall, Precision, F1 and Kappa. \n", - "\n", - " lr = create_model(estimator='lr')\n", - "\n", - " This will train and evaulate Logistic Regression estimator. See the docstring for create_model() to\n", - " see list of available estimators and their abbreviated string to be passed in the function.\n", - "\n", - " You can also ensemble the model during create stage. \n", - "\n", - " lr_bagging = create_model(estimator = 'lr', ensemble = True, method = 'Bagging')\n", - "\n", - " For boosting change the method param to 'Boosting'.\n", - "\n", - " Other parameters that can be passed in create_model:\n", - " fold : defines the number of folds to be used in CV (default = 10)\n", - " round : defines the decimal places metrics in score grid will be rounded to (default = 4)\n", - " verbose : controls the printing of output. \n", - "\n", - "\n", - " * * *\n", - "\n", - " ensemble_model\n", - " --------------\n", - " ensemble_model takes a trained estimator and ensemble it using 'Bagging' or 'Boosting' as defined in \n", - " method param. \n", - "\n", - " lr = create_model(estimator = 'lr')\n", - " lr_bagging = ensemble_model(lr, method = 'Bagging')\n", - "\n", - " lr_bagging is equivalent create_model when ensemble and method param is passed in create_model. The results\n", - " will be identical.\n", - "\n", - "\n", - " * * *\n", - " \n", - " \n", - " tune_model\n", - " ----------\n", - " tune_model takes an abbreviated string of model name as input param and tunes the hyperparameter of the \n", - " estimator over a predefined search space. \n", - " \n", - " tuned_lr = tune_model('lr', optimize='Accuracy')\n", - " \n", - " This will train and optimize hyperparameter of Logistic Regression estimator. Optimize parameter defines\n", - " the objective function of iterator. By default is set to 'Accuracy'. Other possible values are 'AUC',\n", - " 'Recall', 'Precision' and 'F1'.\n", - " \n", - " Other parameters that can be passed in tune_model:\n", - " fold : defines the number of folds to be used in CV (default = 10)\n", - " round : defines the decimal places metrics in score grid will be rounded to (default = 4)\n", - " n_iter : number of iterations for tuning the estimator. (default = 10)\n", - " optimize : Objective function of iterator. Possible values 'Accuracy', AUC', 'Recall', 'Precision', 'F1'.\n", - " ensemble = True will also tune the hyperparameter of wrapper as defined by method param (default = False)\n", - " method = 'Bagging' or 'Boosting'. Only accepts the value when ensemble is True.\n", - " verbose : controls the printing of output. \n", - " \n", - " \n", - " * * *\n", - " \n", - " \n", - " plot_model\n", - " ----------\n", - " plot_model takes a trained estimator as in input and returns the plot as defined in plot parameter.\n", - " \n", - " lr = create_model('lr')\n", - " plot_model(lr, plot='auc')\n", - " \n", - " by default plot is set to 'auc'. See docstring of plot_model to see complete list of available plot.\n", - " \n", - " \n", - " \n", - " * * *\n", - " \n", - " compare_models\n", - " --------------\n", - " compare_model doesn't take any mandatory input parameter.\n", - " \n", - " compare_models()\n", - " \n", - " This will train all the estimators in the library and evaluate the 10 Fold CV performance. \n", - " \n", - " Other parameters that can be passed in compare_models:\n", - " fold : defines the number of folds to be used in CV (default = 10)\n", - " round : defines the decimal places metrics in score grid will be rounded to (default = 4)\n", - " sort : sorting parameter of score grid so that best place comes on top. Acceptable values are\n", - " 'Accuracy', 'AUC', 'Recall', 'Precision', 'F1', 'Kappa'. (default = 'Accuracy').\n", - " turbo : when turbo is set to True it will blacklist models that take longer training times. \n", - " blacklist : list of abbreviated strings to be passed to blacklist certain models. For Example:\n", - " \n", - " compare_models( blacklist = ['lr', 'svm', 'catboost'] )\n", - " \n", - " This will return all models except Logistic Regression, Support Vector Machine and CatBoost.\n", - " \n", - " \n", - " \n", - " * * *\n", - " \n", - " blend_models\n", - " ------------\n", - " blend_models doesn't take any mandatory input parameters. \n", - " \n", - " blend_models()\n", - " \n", - " This will return trained voting classifier based on all models in the library. If specific \n", - " models need to be blend, it can be passed as a list of trained estimators. For Example\n", - " \n", - " lr = create_model('lr')\n", - " nb = create_model('nb')\n", - " xgboost = create_model('xgboost')\n", - " \n", - " blend_models(estimator_list = [ lr, nb, xgboost] )\n", - " \n", - " This will train the voting classifier based on trained estimators passed as a list in\n", - " estimator_list param. \n", - " \n", - " Other parameters that can be passed in blend_models:\n", - " fold : defines the number of folds to be used in CV (default = 10)\n", - " round : defines the decimal places metrics in score grid will be rounded to (default = 4)\n", - " method : 'hard' or 'soft' (default = 'hard').\n", - " turbo : when turbo is set to True it will blacklist models that take longer training times.\n", - " verbose : controls the printing of output. \n", - " \n", - " \n", - " * * *\n", - " \n", - " stack_models\n", - " ------------\n", - " stack_models takes an input parameter of list of trained estimators for stacking. It will\n", - " then use meta_model to do the final prediction based on output from base level models.\n", - " \n", - " xgboost = create_model('xgboost')\n", - " svm = create_model('svm')\n", - " nb = create_model('nb')\n", - " lr = create_model('lr')\n", - " \n", - " stack_models(estimator_list = [xgboost,svm,nb], meta_model = lr)\n", - " \n", - " This will create a stacker of three models with Logistic Regression as meta model.\n", - " \n", - " Other parameters that can be passed in stack_models:\n", - " fold : defines the number of folds to be used in CV (default = 10)\n", - " round : defines the decimal places metrics in score grid will be rounded to (default = 4)\n", - " method : 'hard' or 'soft' (default = 'hard').\n", - " restack : 'True' or 'False'. (default = False)\n", - " plot : True or False (default = False). Set True for correlation plot of predictions.\n", - " verbose : controls the printing of output. \n", - " \n", - " \n", - " * * *\n", - " \n", - " \n", - " create_stacknet\n", - " ---------------\n", - " This function is similar to stack_models except that it stacks in multiple layers. Instead\n", - " of passing a single list as estimator_list, nested list is expected in this function.\n", - " \n", - " nb = create_model('nb')\n", - " rf = create_model('rf')\n", - " ada = create_model('ada')\n", - " ridge = create_model('ridge')\n", - " knn = create_model('knn')\n", - " lr = create_model ('lr')\n", - "\n", - " create_stacknet( estimator_list = [[nb,rf],[ada,ridge,knn]], meta_model = lr)\n", - " \n", - " Other parameters that can be passed in stack_models:\n", - " fold : defines the number of folds to be used in CV (default = 10)\n", - " round : defines the decimal places metrics in score grid will be rounded to (default = 4)\n", - " method : 'hard' or 'soft' (default = 'hard').\n", - " restack : 'True' or 'False'. (default = False)\n", - " plot : True or False (default = False). Set True for correlation plot of predictions.\n", - " verbose : controls the printing of output. \n", - " \n", - " This will create a stacknet with two layers and use Logistic Regression (lr) as a meta model\n", - " \n", - " \n", - " * * *\n", - " \n", - " interpret_model\n", - " ---------------\n", - " This function takes a trained model object and returns the interpretation plot on\n", - " test set. This function only supports tree based algorithm. This function is implemented based \n", - " SHapley Additive exPlanations (Shap Values).\n", - " \n", - " dt = create_model('dt')\n", - " interpret_model(estimator = dt)\n", - " \n", - " Other parameters that can be passed in interpret_model:\n", - " plot : 'summary', 'correlation', 'reason' - three types of plot (default = 'summary')\n", - " feature : when plot is 'correlation', feature name as string can be passed.\n", - " observation : when plot type is 'reason', observation # on test set may be passed.\n", - " \n", - " \n", - " * * *\n", - " \n", - " calibrate_model\n", - " ---------------\n", - " This functions takes an trained estimator as an input and calibrate the probability of classifier\n", - " using 'sigmoid' or 'isotonic' regression. \n", - " \n", - " lr = create_model('lr')\n", - " calibrate_model(lr, method = 'sigmoid')\n", - " \n", - " This will calibrate the probability of Logistic Regression using sigmoid method and returns a\n", - " calibrated classifier.\n", - " \n", - " Other parameters that can be passed in method_model:\n", - " fold : defines the number of folds to be used in CV (default = 10)\n", - " round : defines the decimal places metrics in score grid will be rounded to (default = 4)\n", - " method : 'sigmoid' or 'isotonic' (default = 'sigmoid')\n", - " verbose : controls the printing of output. \n", - " \n", - " \n", - " * * *\n", - " \n", - " evaluate_model\n", - " --------------\n", - " This function takes an trained estimator as an input and returns the interactive user interface for\n", - " plotting. This is equivalent to plot_model(estimator, plot = 'XXX')\n", - "\n", - " lr = create_model('lr')\n", - " evaluate_model(lr)\n", - " \n", - " \n", - " * * *\n", - " \n", - " save_model\n", - " ----------\n", - " This function takes a trained model estimator and name as string to be saved as pickle file.\n", - " \n", - " lr = create_model('lr')\n", - " save_model(lr, 'lr_30122019')\n", - " \n", - " \n", - " * * *\n", - " \n", - " load_model\n", - " ----------\n", - " This function loads the saved model into Jupyter environment. You must be your current directory\n", - " to perform this function.\n", - " \n", - " lr = load_model('lr_30122019')\n", - " \n", - " \n", - " \n", - " * * *\n", - " \n", - " save_experiment\n", - " ---------------\n", - " Similar to save_model, this function will save all the outputs including model and score grids generated\n", - " during the experiment. The experiment starts when you call setup() to initialize. \n", - " \n", - " save_experiment('experiment_30122019')\n", - " \n", - " This will save all the objects as pickled list in current directory.\n", - " \n", - " \n", - " \n", - " * * *\n", - " \n", - " load_experiment\n", - " ---------------\n", - " This function loads the saved experiment into Jupyter environment. You must be in your current directory\n", - " to perform this function.\n", - " \n", - " experiment_30122019 = load_experiment('experiment_30122019')\n", - " \n", - " \n", - " \n", - " \n" - ] - } - ], - "source": [ - "help()" - ] - }, - { - "cell_type": "code", - "execution_count": 81, - "metadata": {}, - "outputs": [ - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "73b4972c46c14af2b4f3c66b64fa4fee", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "interactive(children=(ToggleButtons(description='Plot Type:', icons=('',), options=(('Hyperparameters', 'param…" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "evaluate_model(dt)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": 82, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "LogisticRegression(C=1.0, class_weight=None, dual=False, fit_intercept=True,\n", - " intercept_scaling=1, l1_ratio=None, max_iter=100,\n", - " multi_class='warn', n_jobs=None, penalty='l2',\n", - " random_state=2454, solver='warn', tol=0.0001, verbose=0,\n", - " warm_start=False)" - ] - }, - "execution_count": 82, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "lr = create_model('lr', verbose=False)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "\tModel\tAccuracy\tAUC\tRecall\tPrec.\tF1\tKappa\n", - "0\tRidge Classifier\t0.8329\t0\t0.8749\t0.8566\t0.8648\t0.646\n", - "1\tLinear Discriminant Analysis\t0.8289\t0.9028\t0.8793\t0.8483\t0.8623\t0.6363\n", - "2\tLogistic Regression\t0.8263\t0.9028\t0.8815\t0.8428\t0.8608\t0.6298\n", - "3\tAda Boost Classifier\t0.8142\t0.8844\t0.8596\t0.8403\t0.8488\t0.6075\n", - "4\tGradient Boosting Classifier\t0.8075\t0.8876\t0.8312\t0.8506\t0.8397\t0.5987" - ] - }, - { - "cell_type": "code", - "execution_count": 83, - "metadata": {}, - "outputs": [], - "source": [ - "ridge = create_model('ridge', verbose=False)\n", - "lda = create_model('lda', verbose=False)\n", - "lr = create_model('lr', verbose=False)\n", - "ada = create_model('ada', verbose=False)\n", - "gbc = create_model('gbc', verbose=False)" - ] - }, - { - "cell_type": "code", - "execution_count": 84, - "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", - "
AccuracyAUCRecallPrec.F1Kappa
00.78950.89710.95650.75860.84620.5265
10.81580.90720.84780.84780.84780.6145
20.90670.93550.95650.89800.92630.7994
30.78670.88980.80430.84090.82220.5559
40.82670.89810.84780.86670.85710.6369
50.80000.87480.84780.82980.83870.5756
60.86490.93330.93330.85710.89360.7093
70.86490.89350.88890.88890.88890.7165
80.86490.94180.88890.88890.88890.7165
90.75680.87280.82220.78720.80430.4833
Mean0.82770.90440.87940.84640.86140.6334
SD0.04410.02350.05180.04280.03540.0953
\n", - "
" - ], - "text/plain": [ - " Accuracy AUC Recall Prec. F1 Kappa\n", - "0 0.7895 0.8971 0.9565 0.7586 0.8462 0.5265\n", - "1 0.8158 0.9072 0.8478 0.8478 0.8478 0.6145\n", - "2 0.9067 0.9355 0.9565 0.8980 0.9263 0.7994\n", - "3 0.7867 0.8898 0.8043 0.8409 0.8222 0.5559\n", - "4 0.8267 0.8981 0.8478 0.8667 0.8571 0.6369\n", - "5 0.8000 0.8748 0.8478 0.8298 0.8387 0.5756\n", - "6 0.8649 0.9333 0.9333 0.8571 0.8936 0.7093\n", - "7 0.8649 0.8935 0.8889 0.8889 0.8889 0.7165\n", - "8 0.8649 0.9418 0.8889 0.8889 0.8889 0.7165\n", - "9 0.7568 0.8728 0.8222 0.7872 0.8043 0.4833\n", - "Mean 0.8277 0.9044 0.8794 0.8464 0.8614 0.6334\n", - "SD 0.0441 0.0235 0.0518 0.0428 0.0354 0.0953" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/plain": [ - "[RidgeClassifier(alpha=1.0, class_weight=None, copy_X=True, fit_intercept=True,\n", - " max_iter=None, normalize=False, random_state=2454,\n", - " solver='auto', tol=0.001),\n", - " LinearDiscriminantAnalysis(n_components=None, priors=None, shrinkage=None,\n", - " solver='svd', store_covariance=False, tol=0.0001),\n", - " LogisticRegression(C=1.0, class_weight=None, dual=False, fit_intercept=True,\n", - " intercept_scaling=1, l1_ratio=None, max_iter=100,\n", - " multi_class='warn', n_jobs=None, penalty='l2',\n", - " random_state=2454, solver='warn', tol=0.0001, verbose=0,\n", - " warm_start=False),\n", - " AdaBoostClassifier(algorithm='SAMME.R', base_estimator=None, learning_rate=1.0,\n", - " n_estimators=50, random_state=2454),\n", - " GradientBoostingClassifier(criterion='friedman_mse', init=None,\n", - " learning_rate=0.1, loss='deviance', max_depth=3,\n", - " max_features=None, max_leaf_nodes=None,\n", - " min_impurity_decrease=0.0, min_impurity_split=None,\n", - " min_samples_leaf=1, min_samples_split=2,\n", - " min_weight_fraction_leaf=0.0, n_estimators=100,\n", - " n_iter_no_change=None, presort='auto',\n", - " random_state=2454, subsample=1.0, tol=0.0001,\n", - " validation_fraction=0.1, verbose=0,\n", - " warm_start=False),\n", - " LogisticRegression(C=1.0, class_weight=None, dual=False, fit_intercept=True,\n", - " intercept_scaling=1, l1_ratio=None, max_iter=100,\n", - " multi_class='warn', n_jobs=None, penalty='l2',\n", - " random_state=None, solver='warn', tol=0.0001, verbose=0,\n", - " warm_start=False),\n", - " 'soft',\n", - " False]" - ] - }, - "execution_count": 84, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "stack_models([ridge,lda,lr,ada,gbc], method='soft')" - ] - }, - { - "cell_type": "code", - "execution_count": 85, - "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", - "
AccuracyAUCRecallPrec.F1Kappa
00.80260.90360.95650.77190.85440.5588
10.81580.90290.84780.84780.84780.6145
20.90670.93250.95650.89800.92630.7994
30.78670.88680.80430.84090.82220.5559
40.82670.89810.84780.86670.85710.6369
50.81330.87780.84780.84780.84780.6064
60.82430.92870.86670.84780.85710.6291
70.86490.89200.88890.88890.88890.7165
80.86490.93870.88890.88890.88890.7165
90.75680.86820.82220.78720.80430.4833
Mean0.82630.90290.87280.84860.85950.6317
SD0.04080.02250.04870.03960.03310.0875
\n", - "
" - ], - "text/plain": [ - " Accuracy AUC Recall Prec. F1 Kappa\n", - "0 0.8026 0.9036 0.9565 0.7719 0.8544 0.5588\n", - "1 0.8158 0.9029 0.8478 0.8478 0.8478 0.6145\n", - "2 0.9067 0.9325 0.9565 0.8980 0.9263 0.7994\n", - "3 0.7867 0.8868 0.8043 0.8409 0.8222 0.5559\n", - "4 0.8267 0.8981 0.8478 0.8667 0.8571 0.6369\n", - "5 0.8133 0.8778 0.8478 0.8478 0.8478 0.6064\n", - "6 0.8243 0.9287 0.8667 0.8478 0.8571 0.6291\n", - "7 0.8649 0.8920 0.8889 0.8889 0.8889 0.7165\n", - "8 0.8649 0.9387 0.8889 0.8889 0.8889 0.7165\n", - "9 0.7568 0.8682 0.8222 0.7872 0.8043 0.4833\n", - "Mean 0.8263 0.9029 0.8728 0.8486 0.8595 0.6317\n", - "SD 0.0408 0.0225 0.0487 0.0396 0.0331 0.0875" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/plain": [ - "[RidgeClassifier(alpha=1.0, class_weight=None, copy_X=True, fit_intercept=True,\n", - " max_iter=None, normalize=False, random_state=2454,\n", - " solver='auto', tol=0.001),\n", - " LinearDiscriminantAnalysis(n_components=None, priors=None, shrinkage=None,\n", - " solver='svd', store_covariance=False, tol=0.0001),\n", - " LogisticRegression(C=1.0, class_weight=None, dual=False, fit_intercept=True,\n", - " intercept_scaling=1, l1_ratio=None, max_iter=100,\n", - " multi_class='warn', n_jobs=None, penalty='l2',\n", - " random_state=2454, solver='warn', tol=0.0001, verbose=0,\n", - " warm_start=False),\n", - " AdaBoostClassifier(algorithm='SAMME.R', base_estimator=None, learning_rate=1.0,\n", - " n_estimators=50, random_state=2454),\n", - " GradientBoostingClassifier(criterion='friedman_mse', init=None,\n", - " learning_rate=0.1, loss='deviance', max_depth=3,\n", - " max_features=None, max_leaf_nodes=None,\n", - " min_impurity_decrease=0.0, min_impurity_split=None,\n", - " min_samples_leaf=1, min_samples_split=2,\n", - " min_weight_fraction_leaf=0.0, n_estimators=100,\n", - " n_iter_no_change=None, presort='auto',\n", - " random_state=2454, subsample=1.0, tol=0.0001,\n", - " validation_fraction=0.1, verbose=0,\n", - " warm_start=False),\n", - " LogisticRegression(C=1.0, class_weight=None, dual=False, fit_intercept=True,\n", - " intercept_scaling=1, l1_ratio=None, max_iter=100,\n", - " multi_class='warn', n_jobs=None, penalty='l2',\n", - " random_state=None, solver='warn', tol=0.0001, verbose=0,\n", - " warm_start=False),\n", - " 'soft',\n", - " True]" - ] - }, - "execution_count": 85, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "stack_models([ridge,lda,lr,ada,gbc], method='soft', restack=True)" - ] - }, - { - "cell_type": "code", - "execution_count": 86, - "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", - "
AccuracyAUCRecallPrec.F1Kappa
00.81580.85290.95650.78570.86270.5908
10.78950.87320.82610.82610.82610.5594
20.77330.89660.84780.79590.82110.5128
30.77330.87180.76090.85370.80460.5369
40.77330.87180.80430.82220.81320.5251
50.76000.85830.76090.83330.79550.5066
60.82430.91030.82220.88100.85060.6381
70.87840.88580.88890.90910.89890.7464
80.82430.94020.84440.86360.85390.6337
90.79730.88970.84440.82610.83520.5721
Mean0.80100.88510.83570.83970.83620.5822
SD0.03380.02470.05490.03580.02950.0702
\n", - "
" - ], - "text/plain": [ - " Accuracy AUC Recall Prec. F1 Kappa\n", - "0 0.8158 0.8529 0.9565 0.7857 0.8627 0.5908\n", - "1 0.7895 0.8732 0.8261 0.8261 0.8261 0.5594\n", - "2 0.7733 0.8966 0.8478 0.7959 0.8211 0.5128\n", - "3 0.7733 0.8718 0.7609 0.8537 0.8046 0.5369\n", - "4 0.7733 0.8718 0.8043 0.8222 0.8132 0.5251\n", - "5 0.7600 0.8583 0.7609 0.8333 0.7955 0.5066\n", - "6 0.8243 0.9103 0.8222 0.8810 0.8506 0.6381\n", - "7 0.8784 0.8858 0.8889 0.9091 0.8989 0.7464\n", - "8 0.8243 0.9402 0.8444 0.8636 0.8539 0.6337\n", - "9 0.7973 0.8897 0.8444 0.8261 0.8352 0.5721\n", - "Mean 0.8010 0.8851 0.8357 0.8397 0.8362 0.5822\n", - "SD 0.0338 0.0247 0.0549 0.0358 0.0295 0.0702" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "catboost = create_model('catboost')" - ] - }, - { - "cell_type": "code", - "execution_count": 87, - "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", - "
AccuracyAUCRecallPrec.F1Kappa
00.76320.86090.91300.75000.82350.4738
10.82890.90870.86960.85110.86020.6399
20.90670.92580.93480.91490.92470.8020
30.76000.87030.73910.85000.79070.5126
40.84000.86810.84780.88640.86670.6669
50.76000.86510.76090.83330.79550.5066
60.81080.92260.84440.84440.84440.6031
70.86490.90270.88890.88890.88890.7165
80.86490.94560.84440.92680.88370.7233
90.78380.89270.80000.83720.81820.5519
Mean0.81830.89620.84430.85830.84970.6197
SD0.04880.02810.05960.04770.04110.1031
\n", - "
" - ], - "text/plain": [ - " Accuracy AUC Recall Prec. F1 Kappa\n", - "0 0.7632 0.8609 0.9130 0.7500 0.8235 0.4738\n", - "1 0.8289 0.9087 0.8696 0.8511 0.8602 0.6399\n", - "2 0.9067 0.9258 0.9348 0.9149 0.9247 0.8020\n", - "3 0.7600 0.8703 0.7391 0.8500 0.7907 0.5126\n", - "4 0.8400 0.8681 0.8478 0.8864 0.8667 0.6669\n", - "5 0.7600 0.8651 0.7609 0.8333 0.7955 0.5066\n", - "6 0.8108 0.9226 0.8444 0.8444 0.8444 0.6031\n", - "7 0.8649 0.9027 0.8889 0.8889 0.8889 0.7165\n", - "8 0.8649 0.9456 0.8444 0.9268 0.8837 0.7233\n", - "9 0.7838 0.8927 0.8000 0.8372 0.8182 0.5519\n", - "Mean 0.8183 0.8962 0.8443 0.8583 0.8497 0.6197\n", - "SD 0.0488 0.0281 0.0596 0.0477 0.0411 0.1031" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/plain": [ - "[RidgeClassifier(alpha=1.0, class_weight=None, copy_X=True, fit_intercept=True,\n", - " max_iter=None, normalize=False, random_state=2454,\n", - " solver='auto', tol=0.001),\n", - " LinearDiscriminantAnalysis(n_components=None, priors=None, shrinkage=None,\n", - " solver='svd', store_covariance=False, tol=0.0001),\n", - " LogisticRegression(C=1.0, class_weight=None, dual=False, fit_intercept=True,\n", - " intercept_scaling=1, l1_ratio=None, max_iter=100,\n", - " multi_class='warn', n_jobs=None, penalty='l2',\n", - " random_state=2454, solver='warn', tol=0.0001, verbose=0,\n", - " warm_start=False),\n", - " AdaBoostClassifier(algorithm='SAMME.R', base_estimator=None, learning_rate=1.0,\n", - " n_estimators=50, random_state=2454),\n", - " GradientBoostingClassifier(criterion='friedman_mse', init=None,\n", - " learning_rate=0.1, loss='deviance', max_depth=3,\n", - " max_features=None, max_leaf_nodes=None,\n", - " min_impurity_decrease=0.0, min_impurity_split=None,\n", - " min_samples_leaf=1, min_samples_split=2,\n", - " min_weight_fraction_leaf=0.0, n_estimators=100,\n", - " n_iter_no_change=None, presort='auto',\n", - " random_state=2454, subsample=1.0, tol=0.0001,\n", - " validation_fraction=0.1, verbose=0,\n", - " warm_start=False),\n", - " ,\n", - " 'soft',\n", - " True]" - ] - }, - "execution_count": 87, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "stack_models([ridge,lda,lr,ada,gbc], meta_model = catboost, method='soft', restack=True)" - ] - }, - { - "cell_type": "code", - "execution_count": 88, - "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", - "
AccuracyAUCRecallPrec.F1Kappa
00.80260.90800.95650.77190.85440.5588
10.81580.88840.84780.84780.84780.6145
20.89330.93100.93480.89580.91490.7722
30.81330.89060.84780.84780.84780.6064
40.84000.88830.84780.88640.86670.6669
50.80000.87710.84780.82980.83870.5756
60.85140.92490.88890.86960.87910.6862
70.86490.89660.88890.88890.88890.7165
80.86490.93490.88890.88890.88890.7165
90.75680.85980.82220.78720.80430.4833
Mean0.83030.89990.87710.85140.86320.6397
SD0.03810.02320.04060.04150.02980.0831
\n", - "
" - ], - "text/plain": [ - " Accuracy AUC Recall Prec. F1 Kappa\n", - "0 0.8026 0.9080 0.9565 0.7719 0.8544 0.5588\n", - "1 0.8158 0.8884 0.8478 0.8478 0.8478 0.6145\n", - "2 0.8933 0.9310 0.9348 0.8958 0.9149 0.7722\n", - "3 0.8133 0.8906 0.8478 0.8478 0.8478 0.6064\n", - "4 0.8400 0.8883 0.8478 0.8864 0.8667 0.6669\n", - "5 0.8000 0.8771 0.8478 0.8298 0.8387 0.5756\n", - "6 0.8514 0.9249 0.8889 0.8696 0.8791 0.6862\n", - "7 0.8649 0.8966 0.8889 0.8889 0.8889 0.7165\n", - "8 0.8649 0.9349 0.8889 0.8889 0.8889 0.7165\n", - "9 0.7568 0.8598 0.8222 0.7872 0.8043 0.4833\n", - "Mean 0.8303 0.8999 0.8771 0.8514 0.8632 0.6397\n", - "SD 0.0381 0.0232 0.0406 0.0415 0.0298 0.0831" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "stacknet1 = create_stacknet([[ridge,lda],[lr,ada],[gbc]], restack=True)" - ] - }, - { - "cell_type": "code", - "execution_count": 89, - "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", - "
AccuracyAUCRecallPrec.F1Kappa
00.80260.86380.95650.77190.85440.5588
10.76320.88620.80430.80430.80430.5043
20.86670.92800.86960.90910.88890.7224
30.74670.87260.76090.81400.78650.4759
40.80000.87820.80430.86050.83150.5862
50.77330.84930.78260.83720.80900.5311
60.81080.92180.77780.89740.83330.6171
70.86490.89230.86670.90700.88640.7199
80.86490.93560.86670.90700.88640.7199
90.79730.88970.82220.84090.83150.5773
Mean0.80900.89180.83120.85490.84120.6013
SD0.04130.02710.05600.04670.03490.0870
\n", - "
" - ], - "text/plain": [ - " Accuracy AUC Recall Prec. F1 Kappa\n", - "0 0.8026 0.8638 0.9565 0.7719 0.8544 0.5588\n", - "1 0.7632 0.8862 0.8043 0.8043 0.8043 0.5043\n", - "2 0.8667 0.9280 0.8696 0.9091 0.8889 0.7224\n", - "3 0.7467 0.8726 0.7609 0.8140 0.7865 0.4759\n", - "4 0.8000 0.8782 0.8043 0.8605 0.8315 0.5862\n", - "5 0.7733 0.8493 0.7826 0.8372 0.8090 0.5311\n", - "6 0.8108 0.9218 0.7778 0.8974 0.8333 0.6171\n", - "7 0.8649 0.8923 0.8667 0.9070 0.8864 0.7199\n", - "8 0.8649 0.9356 0.8667 0.9070 0.8864 0.7199\n", - "9 0.7973 0.8897 0.8222 0.8409 0.8315 0.5773\n", - "Mean 0.8090 0.8918 0.8312 0.8549 0.8412 0.6013\n", - "SD 0.0413 0.0271 0.0560 0.0467 0.0349 0.0870" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "xgboost = create_model('xgboost')" - ] - }, - { - "cell_type": "code", - "execution_count": 90, - "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", - "
AccuracyAUCRecallPrec.F1Kappa
00.80260.90800.95650.77190.85440.5588
10.80260.88840.84780.82980.83870.5845
20.89330.92950.93480.89580.91490.7722
30.81330.88980.84780.84780.84780.6064
40.84000.88680.84780.88640.86670.6669
50.81330.87780.84780.84780.84780.6064
60.85140.92570.88890.86960.87910.6862
70.86490.89500.88890.88890.88890.7165
80.86490.93640.88890.88890.88890.7165
90.75680.85820.82220.78720.80430.4833
Mean0.83030.89960.87710.85140.86320.6398
SD0.03800.02360.04060.04150.02980.0828
\n", - "
" - ], - "text/plain": [ - " Accuracy AUC Recall Prec. F1 Kappa\n", - "0 0.8026 0.9080 0.9565 0.7719 0.8544 0.5588\n", - "1 0.8026 0.8884 0.8478 0.8298 0.8387 0.5845\n", - "2 0.8933 0.9295 0.9348 0.8958 0.9149 0.7722\n", - "3 0.8133 0.8898 0.8478 0.8478 0.8478 0.6064\n", - "4 0.8400 0.8868 0.8478 0.8864 0.8667 0.6669\n", - "5 0.8133 0.8778 0.8478 0.8478 0.8478 0.6064\n", - "6 0.8514 0.9257 0.8889 0.8696 0.8791 0.6862\n", - "7 0.8649 0.8950 0.8889 0.8889 0.8889 0.7165\n", - "8 0.8649 0.9364 0.8889 0.8889 0.8889 0.7165\n", - "9 0.7568 0.8582 0.8222 0.7872 0.8043 0.4833\n", - "Mean 0.8303 0.8996 0.8771 0.8514 0.8632 0.6398\n", - "SD 0.0380 0.0236 0.0406 0.0415 0.0298 0.0828" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "stacknet1 = create_stacknet([[ridge,lda],[lr,ada],[gbc,xgboost]], restack=True)" - ] - }, - { - "cell_type": "code", - "execution_count": 91, - "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", - "
AccuracyAUCRecallPrec.F1Kappa
00.63160.60290.73910.68000.70830.2107
10.78950.78770.82610.82610.82610.5594
20.64000.65670.65220.73170.68970.2644
30.73330.73310.71740.82500.76740.4585
40.72000.72940.80430.75510.77890.3982
50.65330.65290.69570.72730.71110.2783
60.77030.78470.75560.85000.80000.5323
70.72970.73680.73330.80490.76740.4465
80.82430.83720.80000.90000.84710.6424
90.79730.80420.82220.84090.83150.5773
Mean0.72890.73260.75460.79410.77280.4368
SD0.06510.07130.05500.06440.05240.1393
\n", - "
" - ], - "text/plain": [ - " Accuracy AUC Recall Prec. F1 Kappa\n", - "0 0.6316 0.6029 0.7391 0.6800 0.7083 0.2107\n", - "1 0.7895 0.7877 0.8261 0.8261 0.8261 0.5594\n", - "2 0.6400 0.6567 0.6522 0.7317 0.6897 0.2644\n", - "3 0.7333 0.7331 0.7174 0.8250 0.7674 0.4585\n", - "4 0.7200 0.7294 0.8043 0.7551 0.7789 0.3982\n", - "5 0.6533 0.6529 0.6957 0.7273 0.7111 0.2783\n", - "6 0.7703 0.7847 0.7556 0.8500 0.8000 0.5323\n", - "7 0.7297 0.7368 0.7333 0.8049 0.7674 0.4465\n", - "8 0.8243 0.8372 0.8000 0.9000 0.8471 0.6424\n", - "9 0.7973 0.8042 0.8222 0.8409 0.8315 0.5773\n", - "Mean 0.7289 0.7326 0.7546 0.7941 0.7728 0.4368\n", - "SD 0.0651 0.0713 0.0550 0.0644 0.0524 0.1393" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "dt = create_model('dt')" - ] - }, - { - "cell_type": "code", - "execution_count": 94, - "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", - "
ModelAccuracyAUCRecallPrec.F1Kappa
0Decision Tree Classifier0.79190.78610.82740.83160.82950.5626
\n", - "
" - ], - "text/plain": [ - " Model Accuracy AUC Recall Prec. F1 Kappa\n", - "0 Decision Tree Classifier 0.7919 0.7861 0.8274 0.8316 0.8295 0.5626" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "predicted_dt = predict_model(dt);" - ] - }, - { - "cell_type": "code", - "execution_count": 95, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
StoreIDPriceCHPriceMMDiscCHDiscMMSpecialCHSpecialMMLoyalCHSalePriceMMSalePriceCHPriceDiffPctDiscMMPctDiscCHListPriceDiffPurchaseLabelScore
071.751.990.000.40000.9857571.591.75-0.160.2010050.0000000.24111.0
111.751.990.000.00000.3508221.991.750.240.0000000.0000000.24000.0
221.691.690.000.00000.5000001.691.690.000.0000000.0000000.00000.0
341.992.090.000.40000.7183111.691.99-0.300.1913880.0000000.10111.0
411.962.130.000.74010.4770371.391.96-0.570.3474180.0000000.17000.0
......................................................
31721.992.180.000.00000.8267812.181.990.190.0000000.0000000.19111.0
31871.862.130.370.00100.8951422.131.490.640.0000000.1989250.27111.0
31941.792.090.000.00000.9780102.091.790.300.0000000.0000000.30111.0
32021.862.180.000.00010.1638402.181.860.320.0000000.0000000.32100.0
32171.862.130.370.00100.8821562.131.490.640.0000000.1989250.27111.0
\n", - "

322 rows × 17 columns

\n", - "
" - ], - "text/plain": [ - " StoreID PriceCH PriceMM DiscCH DiscMM SpecialCH SpecialMM \\\n", - "0 7 1.75 1.99 0.00 0.40 0 0 \n", - "1 1 1.75 1.99 0.00 0.00 0 0 \n", - "2 2 1.69 1.69 0.00 0.00 0 0 \n", - "3 4 1.99 2.09 0.00 0.40 0 0 \n", - "4 1 1.96 2.13 0.00 0.74 0 1 \n", - ".. ... ... ... ... ... ... ... \n", - "317 2 1.99 2.18 0.00 0.00 0 0 \n", - "318 7 1.86 2.13 0.37 0.00 1 0 \n", - "319 4 1.79 2.09 0.00 0.00 0 0 \n", - "320 2 1.86 2.18 0.00 0.00 0 1 \n", - "321 7 1.86 2.13 0.37 0.00 1 0 \n", - "\n", - " LoyalCH SalePriceMM SalePriceCH PriceDiff PctDiscMM PctDiscCH \\\n", - "0 0.985757 1.59 1.75 -0.16 0.201005 0.000000 \n", - "1 0.350822 1.99 1.75 0.24 0.000000 0.000000 \n", - "2 0.500000 1.69 1.69 0.00 0.000000 0.000000 \n", - "3 0.718311 1.69 1.99 -0.30 0.191388 0.000000 \n", - "4 0.477037 1.39 1.96 -0.57 0.347418 0.000000 \n", - ".. ... ... ... ... ... ... \n", - "317 0.826781 2.18 1.99 0.19 0.000000 0.000000 \n", - "318 0.895142 2.13 1.49 0.64 0.000000 0.198925 \n", - "319 0.978010 2.09 1.79 0.30 0.000000 0.000000 \n", - "320 0.163840 2.18 1.86 0.32 0.000000 0.000000 \n", - "321 0.882156 2.13 1.49 0.64 0.000000 0.198925 \n", - "\n", - " ListPriceDiff Purchase Label Score \n", - "0 0.24 1 1 1.0 \n", - "1 0.24 0 0 0.0 \n", - "2 0.00 0 0 0.0 \n", - "3 0.10 1 1 1.0 \n", - "4 0.17 0 0 0.0 \n", - ".. ... ... ... ... \n", - "317 0.19 1 1 1.0 \n", - "318 0.27 1 1 1.0 \n", - "319 0.30 1 1 1.0 \n", - "320 0.32 1 0 0.0 \n", - "321 0.27 1 1 1.0 \n", - "\n", - "[322 rows x 17 columns]" - ] - }, - "execution_count": 95, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "predicted_dt" - ] - }, - { - "cell_type": "code", - "execution_count": 96, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAfYAAAFlCAYAAAAZGcpRAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nOzdeXxU1f34/9edfcvMJDPZF5aEEAggEMIiIIogClIX6oJKtbauH2t/9WP9YqmWWrdPS7VVq7V1/WDdl37qUre6IIgQIvsOAZJA9mSyzD5z7++PSW4yJOyEsJzn4+FDMnPm3nMvPPKec+77vI+kKIqCIAiCIAinBU1fd0AQBEEQhONHBHZBEARBOI2IwC4IgiAIpxER2AVBEAThNCICuyAIgiCcRkRgFwRBEITTiK6vOyAIAIMHDyY/Px+NRoMkSfj9fmw2GwsXLmT48OEA+Hw+nnzySb744gsMBgMAU6dO5bbbbsNkMqnHeu+993j99dcJBAKEw2GKior45S9/id1u7/HcR9r+RKuqquKmm25Cq9WycOFCRo0adcTHqKysZPr06eTn5wMgyzJWq5Uf/ehHzJw586j7dtNNN/H//t//Iy8vr8f3169fz9///neeeOKJozr+nXfeyZ49ewDYsmWL+m/EbrezePHio+73/mpqanj88cfZuHEjkiRhNBq55ZZbmDZtGhD797l8+XKSkpKO2zkXLFjArFmzOPvss3nmmWd44403mDBhAhqNRn1dEI6KIggngfz8fKWhoSHuteeee0658sorFUVRlHA4rFx55ZXKww8/rPh8PkVRFMXn8ym/+93vlGuuuUYJh8OKoijKM888o8ydO1epq6tTFEVRQqGQsnDhQmXu3Lk9nvdI2/eF9957T7n++uuP6RgVFRXKyJEj416rrKxUpk2bpnz88cfHdOwTpad/I8dDQ0ODcu655yrvvfeeIsuyoiiKsnnzZmX8+PHK0qVLe/XcHaZOnaqUlJT02vGFM4sYsQsnpUgkQlVVFQ6HA4CPP/4YWZa599571TZms5kFCxZw6aWX8tlnnzFlyhSeffZZ3nvvPdxuNwB6vZ577rmHzz77jFAopI70ITYDcKj2zz77LE1NTdx///0APPnkk+rP8+bNw+FwUFZWxlVXXcXTTz/NN998g8FgIBqNcu655/LSSy+RkpLCQw89xLZt2wiHw0yYMIF77rkHnU7HE088wWeffYZerycxMZFHHnmElJQUtY/fffcdf/rTn2htbWXevHksXryYN954g8WLF6PRaHC73dx3330MGDCA+fPn4/F4qKio4Nxzz+WXv/zlQe9xZmYmd955J88//zwzZswgFAqxaNEiSkpKiEajDB06lF//+tfYbDZ27drF/fffT2NjIxqNhttuu42ZM2cydepU/vznPzNw4EDuvfde9uzZg0ajobCwkAceeICSkhJ+97vf8cEHH9Da2spvf/tbtmzZgiRJTJ48mbvuugudTsfw4cO5+eabWbZsGbW1tfz0pz/lmmuuOWj/Kysrufbaa8nNzWXv3r0sXryYyspKFi1ahN/vR6PRcMcdd3DeeecB8NZbb/Haa68hyzJOp5P77ruP3NxcXn31VUaPHs2ll16qHrugoIAnnnii26yNz+dj4cKF7NmzB4/Hg9VqZdGiRQwcOJBPP/2UZ555BkmS0Gq13HPPPRQXFx/w9Xnz5nHttdfy8ccfU1NTw4IFC/j5z3/Oa6+9xrXXXsuFF17I999/3+P1vPvuu7z99tvqzNbxnL0QTn0isAsnjeuvvx6ApqYmjEYj5513Ho888ggAq1evZsyYMd0+I0kSEyZMoLS0lOzsbEwmE/37949rYzab+cEPftDts2VlZUfUvid2u52PPvoIgM8++4wvvviCCy+8kKVLl5KVlUVubi733nsvhYWFPProo0SjUebPn8+LL77IxRdfzMsvv8zy5csxGAy88MILrFu3Tp3+BRg/fjx33nknn3zyCc8++yzLly/nueee44033iApKYl3332X//qv/+LDDz8EIBAIqH8+HAUFBWzbtg2Av/3tb2i1Wt59910kSeKxxx5j0aJFLFy4kLvuuosf/vCHXHvttVRVVTFv3jzOOecc9TifffYZXq+X//u//yMajfKb3/yGioqKuHM9+OCDOJ1O3n//fcLhMLfddhsvvPACN998M6FQiMTERF5//XU2bNjA3LlzmTNnDkaj8aD9r66u5o9//CNjxoyhubmZe++9l+eff56srCxqamq48sorGTx4MJWVlfzzn//kH//4B2azmaVLl3LHHXfw73//mw0bNjB58uRuxy4uLu722pIlS7Db7bzxxhsA3H///fzjH//gvvvu4/e//z2LFi1i5MiRLF26lBUr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ZpV4vv32W7KysnjuueeQyWS8//77bR6HIAiC0HV0qsSemFNCenEZzw/L40DaV9ToiqjUFNPbdwh2asc2j6e2tpbFixebFqC4djqHIAitb+bMmfXmVndGTRXEUavVrVoQp63MmDEDgI8++si07bbbbuOHH34wjRpPS0tj4cKFrF27FqPRyMqVK/nll19Mi9vMnz//utf3NxqNLFy4kDNnzqBWq1m8eDHBwcFmx6xevZotW7Ygk8mYMWMGY8aMoba2lueff56ioiIcHBxYvnw57u7uf+YSNFunSuxxiRkM8i9DIZdQK+zIvHwSGTIiA9quNKskSRQUFODj44OdnR2rV6/Gzc1NJHVBsIKukNSvaKwgzh133NGqBXHaQl5enmm1vqysrGYtWLNq1SpKSkr44osvkMvlnDhxgqeffppt27ahUqma/dk7duxAq9Wyfv16EhMTWbZsGR9++KFpf3l5OWvXruWnn36ipqaG+++/nzFjxvDll18SFhbGM888w5YtW/jggw+YP3/+H/r/X69Ok9glSSIuKYNpMXV1131denCx+BQhnlE42Xq0WQzTp09n37597N+/HxcXF2JiYtrkswXB2uKPLGtwe6T/LYT71U3D+uXMevLL0+sd4+UUxMg+DwFw9tJhkrJ2MfHGOU1+3rfffsvu3bupra2lsLCQqVOnsnPnTs6dO8ff//53xo0bZypDmpSUxJIlS5AkCR8fH958802eeOIJ3NzcKC8vZ+XKlbz00ktkZWVhMBj429/+Vq8ca2VlJS+99BIVFRWUlJQwceJE7rzzTh5++GG2bt2KTCbj1VdfNRWbWbx4MQCurq4sXbqU06dP8+abb6JSqYiNjcXW1pZ169aZzv/vf/8bNzc3Xn31VZKTk/H09CQnJ4cPP/wQhULByy+/jEajwcbGhtdee41u3bo1em2uLYiTnJzcIgVxMv6/vXuPy/n+/zj+uK7qKh0cIibTEJozMVkOc2oOhVU6SBnLMMbEvgsjIWdjDpvDFyGnDsIc5lg/Oc5omG00loaNiooO6uq6Pr8/uvX5alKhVNfe99ttt+W6rs/n8/68tb2uz+n1vHWL6dOno1arMTIyYu7cucyZM0eOfo2JieHgwYMsWLCAHj160KhRI6ysrDh16hR79+7F2NiY9evXo6+vT58+fV5ofyIiIujVqxdGRkZs374df3//In83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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "plot_model(dt)" - ] - }, - { - "cell_type": "code", - "execution_count": 97, - "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", - "
AccuracyAUCRecallPrec.F1Kappa
00.80260.90870.95650.77190.85440.5588
10.81580.89640.86960.83330.85110.6100
20.89330.93400.95650.88000.91670.7692
30.80000.89730.82610.84440.83520.5810
40.84000.89810.86960.86960.86960.6627
50.77330.87560.84780.79590.82110.5128
60.85140.93330.88890.86960.87910.6862
70.86490.88810.88890.88890.88890.7165
80.85140.93330.88890.86960.87910.6862
90.77030.86280.82220.80430.81320.5150
Mean0.82630.90280.88150.84280.86080.6298
SD0.03840.02350.04410.03800.03050.0831
\n", - "
" - ], - "text/plain": [ - " Accuracy AUC Recall Prec. F1 Kappa\n", - "0 0.8026 0.9087 0.9565 0.7719 0.8544 0.5588\n", - "1 0.8158 0.8964 0.8696 0.8333 0.8511 0.6100\n", - "2 0.8933 0.9340 0.9565 0.8800 0.9167 0.7692\n", - "3 0.8000 0.8973 0.8261 0.8444 0.8352 0.5810\n", - "4 0.8400 0.8981 0.8696 0.8696 0.8696 0.6627\n", - "5 0.7733 0.8756 0.8478 0.7959 0.8211 0.5128\n", - "6 0.8514 0.9333 0.8889 0.8696 0.8791 0.6862\n", - "7 0.8649 0.8881 0.8889 0.8889 0.8889 0.7165\n", - "8 0.8514 0.9333 0.8889 0.8696 0.8791 0.6862\n", - "9 0.7703 0.8628 0.8222 0.8043 0.8132 0.5150\n", - "Mean 0.8263 0.9028 0.8815 0.8428 0.8608 0.6298\n", - "SD 0.0384 0.0235 0.0441 0.0380 0.0305 0.0831" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "lr = create_model('lr')" - ] - }, - { - "cell_type": "code", - "execution_count": 98, - "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", - "
ModelAccuracyAUCRecallPrec.F1Kappa
0Logistic Regression0.84470.90090.88830.86210.8750.6702
\n", - "
" - ], - "text/plain": [ - " Model Accuracy AUC Recall Prec. F1 Kappa\n", - "0 Logistic Regression 0.8447 0.9009 0.8883 0.8621 0.875 0.6702" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "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", - "
StoreIDPriceCHPriceMMDiscCHDiscMMSpecialCHSpecialMMLoyalCHSalePriceMMSalePriceCHPriceDiffPctDiscMMPctDiscCHListPriceDiffPurchaseLabelScore
071.751.990.000.40000.9857571.591.75-0.160.2010050.0000000.24110.9375
111.751.990.000.00000.3508221.991.750.240.0000000.0000000.24000.4050
221.691.690.000.00000.5000001.691.690.000.0000000.0000000.00010.5075
341.992.090.000.40000.7183111.691.99-0.300.1913880.0000000.10110.6072
411.962.130.000.74010.4770371.391.96-0.570.3474180.0000000.17000.1394
......................................................
31721.992.180.000.00000.8267812.181.990.190.0000000.0000000.19110.8573
31871.862.130.370.00100.8951422.131.490.640.0000000.1989250.27110.9823
31941.792.090.000.00000.9780102.091.790.300.0000000.0000000.30110.9627
32021.862.180.000.00010.1638402.181.860.320.0000000.0000000.32100.1886
32171.862.130.370.00100.8821562.131.490.640.0000000.1989250.27110.9810
\n", - "

322 rows × 17 columns

\n", - "
" - ], - "text/plain": [ - " StoreID PriceCH PriceMM DiscCH DiscMM SpecialCH SpecialMM \\\n", - "0 7 1.75 1.99 0.00 0.40 0 0 \n", - "1 1 1.75 1.99 0.00 0.00 0 0 \n", - "2 2 1.69 1.69 0.00 0.00 0 0 \n", - "3 4 1.99 2.09 0.00 0.40 0 0 \n", - "4 1 1.96 2.13 0.00 0.74 0 1 \n", - ".. ... ... ... ... ... ... ... \n", - "317 2 1.99 2.18 0.00 0.00 0 0 \n", - "318 7 1.86 2.13 0.37 0.00 1 0 \n", - "319 4 1.79 2.09 0.00 0.00 0 0 \n", - "320 2 1.86 2.18 0.00 0.00 0 1 \n", - "321 7 1.86 2.13 0.37 0.00 1 0 \n", - "\n", - " LoyalCH SalePriceMM SalePriceCH PriceDiff PctDiscMM PctDiscCH \\\n", - "0 0.985757 1.59 1.75 -0.16 0.201005 0.000000 \n", - "1 0.350822 1.99 1.75 0.24 0.000000 0.000000 \n", - "2 0.500000 1.69 1.69 0.00 0.000000 0.000000 \n", - "3 0.718311 1.69 1.99 -0.30 0.191388 0.000000 \n", - "4 0.477037 1.39 1.96 -0.57 0.347418 0.000000 \n", - ".. ... ... ... ... ... ... \n", - "317 0.826781 2.18 1.99 0.19 0.000000 0.000000 \n", - "318 0.895142 2.13 1.49 0.64 0.000000 0.198925 \n", - "319 0.978010 2.09 1.79 0.30 0.000000 0.000000 \n", - "320 0.163840 2.18 1.86 0.32 0.000000 0.000000 \n", - "321 0.882156 2.13 1.49 0.64 0.000000 0.198925 \n", - "\n", - " ListPriceDiff Purchase Label Score \n", - "0 0.24 1 1 0.9375 \n", - "1 0.24 0 0 0.4050 \n", - "2 0.00 0 1 0.5075 \n", - "3 0.10 1 1 0.6072 \n", - "4 0.17 0 0 0.1394 \n", - ".. ... ... ... ... \n", - "317 0.19 1 1 0.8573 \n", - "318 0.27 1 1 0.9823 \n", - "319 0.30 1 1 0.9627 \n", - "320 0.32 1 0 0.1886 \n", - "321 0.27 1 1 0.9810 \n", - "\n", - "[322 rows x 17 columns]" - ] - }, - "execution_count": 98, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "predict_model(lr)" - ] - }, - { - "cell_type": "code", - "execution_count": 99, - "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", - "
ModelAccuracyAUCRecallPrec.F1Kappa
0Stacking Classifier0.84470.89580.87310.87310.87310.6731
\n", - "
" - ], - "text/plain": [ - " Model Accuracy AUC Recall Prec. F1 Kappa\n", - "0 Stacking Classifier 0.8447 0.8958 0.8731 0.8731 0.8731 0.6731" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "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", - "
StoreIDPriceCHPriceMMDiscCHDiscMMSpecialCHSpecialMMLoyalCHSalePriceMMSalePriceCHPriceDiffPctDiscMMPctDiscCHListPriceDiffPurchaseLabelScore
071.751.990.000.40000.9857571.591.75-0.160.2010050.0000000.24110.9323
111.751.990.000.00000.3508221.991.750.240.0000000.0000000.24000.2722
221.691.690.000.00000.5000001.691.690.000.0000000.0000000.00000.3565
341.992.090.000.40000.7183111.691.99-0.300.1913880.0000000.10110.7444
411.962.130.000.74010.4770371.391.96-0.570.3474180.0000000.17000.1093
......................................................
31721.992.180.000.00000.8267812.181.990.190.0000000.0000000.19110.8737
31871.862.130.370.00100.8951422.131.490.640.0000000.1989250.27110.9703
31941.792.090.000.00000.9780102.091.790.300.0000000.0000000.30110.9499
32021.862.180.000.00010.1638402.181.860.320.0000000.0000000.32100.1394
32171.862.130.370.00100.8821562.131.490.640.0000000.1989250.27110.9690
\n", - "

322 rows × 17 columns

\n", - "
" - ], - "text/plain": [ - " StoreID PriceCH PriceMM DiscCH DiscMM SpecialCH SpecialMM \\\n", - "0 7 1.75 1.99 0.00 0.40 0 0 \n", - "1 1 1.75 1.99 0.00 0.00 0 0 \n", - "2 2 1.69 1.69 0.00 0.00 0 0 \n", - "3 4 1.99 2.09 0.00 0.40 0 0 \n", - "4 1 1.96 2.13 0.00 0.74 0 1 \n", - ".. ... ... ... ... ... ... ... \n", - "317 2 1.99 2.18 0.00 0.00 0 0 \n", - "318 7 1.86 2.13 0.37 0.00 1 0 \n", - "319 4 1.79 2.09 0.00 0.00 0 0 \n", - "320 2 1.86 2.18 0.00 0.00 0 1 \n", - "321 7 1.86 2.13 0.37 0.00 1 0 \n", - "\n", - " LoyalCH SalePriceMM SalePriceCH PriceDiff PctDiscMM PctDiscCH \\\n", - "0 0.985757 1.59 1.75 -0.16 0.201005 0.000000 \n", - "1 0.350822 1.99 1.75 0.24 0.000000 0.000000 \n", - "2 0.500000 1.69 1.69 0.00 0.000000 0.000000 \n", - "3 0.718311 1.69 1.99 -0.30 0.191388 0.000000 \n", - "4 0.477037 1.39 1.96 -0.57 0.347418 0.000000 \n", - ".. ... ... ... ... ... ... \n", - "317 0.826781 2.18 1.99 0.19 0.000000 0.000000 \n", - "318 0.895142 2.13 1.49 0.64 0.000000 0.198925 \n", - "319 0.978010 2.09 1.79 0.30 0.000000 0.000000 \n", - "320 0.163840 2.18 1.86 0.32 0.000000 0.000000 \n", - "321 0.882156 2.13 1.49 0.64 0.000000 0.198925 \n", - "\n", - " ListPriceDiff Purchase Label Score \n", - "0 0.24 1 1 0.9323 \n", - "1 0.24 0 0 0.2722 \n", - "2 0.00 0 0 0.3565 \n", - "3 0.10 1 1 0.7444 \n", - "4 0.17 0 0 0.1093 \n", - ".. ... ... ... ... \n", - "317 0.19 1 1 0.8737 \n", - "318 0.27 1 1 0.9703 \n", - "319 0.30 1 1 0.9499 \n", - "320 0.32 1 0 0.1394 \n", - "321 0.27 1 1 0.9690 \n", - "\n", - "[322 rows x 17 columns]" - ] - }, - "execution_count": 99, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "predict_model(stacknet1)" - ] - }, - { - "cell_type": "code", - "execution_count": 100, - "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", - "
AccuracyAUCRecallPrec.F1Kappa
00.80260.90870.95650.77190.85440.5588
10.81580.89640.86960.83330.85110.6100
20.89330.93400.95650.88000.91670.7692
30.80000.89730.82610.84440.83520.5810
40.84000.89810.86960.86960.86960.6627
50.77330.87560.84780.79590.82110.5128
60.85140.93330.88890.86960.87910.6862
70.86490.88810.88890.88890.88890.7165
80.85140.93330.88890.86960.87910.6862
90.77030.86280.82220.80430.81320.5150
Mean0.82630.90280.88150.84280.86080.6298
SD0.03840.02350.04410.03800.03050.0831
\n", - "
" - ], - "text/plain": [ - " Accuracy AUC Recall Prec. F1 Kappa\n", - "0 0.8026 0.9087 0.9565 0.7719 0.8544 0.5588\n", - "1 0.8158 0.8964 0.8696 0.8333 0.8511 0.6100\n", - "2 0.8933 0.9340 0.9565 0.8800 0.9167 0.7692\n", - "3 0.8000 0.8973 0.8261 0.8444 0.8352 0.5810\n", - "4 0.8400 0.8981 0.8696 0.8696 0.8696 0.6627\n", - "5 0.7733 0.8756 0.8478 0.7959 0.8211 0.5128\n", - "6 0.8514 0.9333 0.8889 0.8696 0.8791 0.6862\n", - "7 0.8649 0.8881 0.8889 0.8889 0.8889 0.7165\n", - "8 0.8514 0.9333 0.8889 0.8696 0.8791 0.6862\n", - "9 0.7703 0.8628 0.8222 0.8043 0.8132 0.5150\n", - "Mean 0.8263 0.9028 0.8815 0.8428 0.8608 0.6298\n", - "SD 0.0384 0.0235 0.0441 0.0380 0.0305 0.0831" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "lr = create_model('lr')" - ] - }, - { - "cell_type": "code", - "execution_count": 102, - "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", - "
PurchaseStoreIDPriceCHPriceMMDiscCHDiscMMSpecialCHSpecialMMLoyalCHSalePriceMMSalePriceCHPriceDiffPctDiscMMPctDiscCHListPriceDiff
0111.751.990.000.0000.5000001.991.750.240.0000000.0000000.24
1111.751.990.000.3010.6000001.691.75-0.060.1507540.0000000.24
2111.862.090.170.0000.6800002.091.690.400.0000000.0913980.23
3011.691.690.000.0000.4000001.691.690.000.0000000.0000000.00
4171.691.690.000.0000.9565351.691.690.000.0000000.0000000.00
\n", - "
" - ], - "text/plain": [ - " Purchase StoreID PriceCH PriceMM DiscCH DiscMM SpecialCH SpecialMM \\\n", - "0 1 1 1.75 1.99 0.00 0.0 0 0 \n", - "1 1 1 1.75 1.99 0.00 0.3 0 1 \n", - "2 1 1 1.86 2.09 0.17 0.0 0 0 \n", - "3 0 1 1.69 1.69 0.00 0.0 0 0 \n", - "4 1 7 1.69 1.69 0.00 0.0 0 0 \n", - "\n", - " LoyalCH SalePriceMM SalePriceCH PriceDiff PctDiscMM PctDiscCH \\\n", - "0 0.500000 1.99 1.75 0.24 0.000000 0.000000 \n", - "1 0.600000 1.69 1.75 -0.06 0.150754 0.000000 \n", - "2 0.680000 2.09 1.69 0.40 0.000000 0.091398 \n", - "3 0.400000 1.69 1.69 0.00 0.000000 0.000000 \n", - "4 0.956535 1.69 1.69 0.00 0.000000 0.000000 \n", - "\n", - " ListPriceDiff \n", - "0 0.24 \n", - "1 0.24 \n", - "2 0.23 \n", - "3 0.00 \n", - "4 0.00 " - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "data_new = get_data('juice')" - ] - }, - { - "cell_type": "code", - "execution_count": 105, - "metadata": {}, - "outputs": [], - "source": [ - "data_new.drop('Purchase', inplace=True, axis=1)" - ] - }, - { - "cell_type": "code", - "execution_count": 106, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
StoreIDPriceCHPriceMMDiscCHDiscMMSpecialCHSpecialMMLoyalCHSalePriceMMSalePriceCHPriceDiffPctDiscMMPctDiscCHListPriceDiff
011.751.990.000.00000.5000001.991.750.240.0000000.0000000.24
111.751.990.000.30010.6000001.691.75-0.060.1507540.0000000.24
211.862.090.170.00000.6800002.091.690.400.0000000.0913980.23
311.691.690.000.00000.4000001.691.690.000.0000000.0000000.00
471.691.690.000.00000.9565351.691.690.000.0000000.0000000.00
.............................................
106571.862.090.100.00000.5878222.091.760.330.0000000.0537630.23
106671.862.180.000.00000.6702582.181.860.320.0000000.0000000.32
106771.862.180.000.00000.7362062.181.860.320.0000000.0000000.32
106871.862.130.000.24000.5889651.891.860.030.1126760.0000000.27
106911.862.180.000.00000.6711722.181.860.320.0000000.0000000.32
\n", - "

1070 rows × 14 columns

\n", - "
" - ], - "text/plain": [ - " StoreID PriceCH PriceMM DiscCH DiscMM SpecialCH SpecialMM \\\n", - "0 1 1.75 1.99 0.00 0.00 0 0 \n", - "1 1 1.75 1.99 0.00 0.30 0 1 \n", - "2 1 1.86 2.09 0.17 0.00 0 0 \n", - "3 1 1.69 1.69 0.00 0.00 0 0 \n", - "4 7 1.69 1.69 0.00 0.00 0 0 \n", - "... ... ... ... ... ... ... ... \n", - "1065 7 1.86 2.09 0.10 0.00 0 0 \n", - "1066 7 1.86 2.18 0.00 0.00 0 0 \n", - "1067 7 1.86 2.18 0.00 0.00 0 0 \n", - "1068 7 1.86 2.13 0.00 0.24 0 0 \n", - "1069 1 1.86 2.18 0.00 0.00 0 0 \n", - "\n", - " LoyalCH SalePriceMM SalePriceCH PriceDiff PctDiscMM PctDiscCH \\\n", - "0 0.500000 1.99 1.75 0.24 0.000000 0.000000 \n", - "1 0.600000 1.69 1.75 -0.06 0.150754 0.000000 \n", - "2 0.680000 2.09 1.69 0.40 0.000000 0.091398 \n", - "3 0.400000 1.69 1.69 0.00 0.000000 0.000000 \n", - "4 0.956535 1.69 1.69 0.00 0.000000 0.000000 \n", - "... ... ... ... ... ... ... \n", - "1065 0.587822 2.09 1.76 0.33 0.000000 0.053763 \n", - "1066 0.670258 2.18 1.86 0.32 0.000000 0.000000 \n", - "1067 0.736206 2.18 1.86 0.32 0.000000 0.000000 \n", - "1068 0.588965 1.89 1.86 0.03 0.112676 0.000000 \n", - "1069 0.671172 2.18 1.86 0.32 0.000000 0.000000 \n", - "\n", - " ListPriceDiff \n", - "0 0.24 \n", - "1 0.24 \n", - "2 0.23 \n", - "3 0.00 \n", - "4 0.00 \n", - "... ... \n", - "1065 0.23 \n", - "1066 0.32 \n", - "1067 0.32 \n", - "1068 0.27 \n", - "1069 0.32 \n", - "\n", - "[1070 rows x 14 columns]" - ] - }, - "execution_count": 106, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "data_new" - ] - }, - { - "cell_type": "code", - "execution_count": 109, - "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", - "
ModelAccuracyAUCRecallPrec.F1Kappa
0Logistic Regression0.84470.90090.88830.86210.8750.6702
\n", - "
" - ], - "text/plain": [ - " Model Accuracy AUC Recall Prec. F1 Kappa\n", - "0 Logistic Regression 0.8447 0.9009 0.8883 0.8621 0.875 0.6702" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "predict_model(lr);" - ] - }, - { - "cell_type": "code", - "execution_count": 110, - "metadata": {}, - "outputs": [], - "source": [ - "final_lr = finalize_model(lr)" - ] - }, - { - "cell_type": "code", - "execution_count": 111, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
StoreIDPriceCHPriceMMDiscCHDiscMMSpecialCHSpecialMMLoyalCHSalePriceMMSalePriceCHPriceDiffPctDiscMMPctDiscCHListPriceDiff
011.751.990.000.00000.5000001.991.750.240.0000000.0000000.24
111.751.990.000.30010.6000001.691.75-0.060.1507540.0000000.24
211.862.090.170.00000.6800002.091.690.400.0000000.0913980.23
311.691.690.000.00000.4000001.691.690.000.0000000.0000000.00
471.691.690.000.00000.9565351.691.690.000.0000000.0000000.00
.............................................
106571.862.090.100.00000.5878222.091.760.330.0000000.0537630.23
106671.862.180.000.00000.6702582.181.860.320.0000000.0000000.32
106771.862.180.000.00000.7362062.181.860.320.0000000.0000000.32
106871.862.130.000.24000.5889651.891.860.030.1126760.0000000.27
106911.862.180.000.00000.6711722.181.860.320.0000000.0000000.32
\n", - "

1070 rows × 14 columns

\n", - "
" - ], - "text/plain": [ - " StoreID PriceCH PriceMM DiscCH DiscMM SpecialCH SpecialMM \\\n", - "0 1 1.75 1.99 0.00 0.00 0 0 \n", - "1 1 1.75 1.99 0.00 0.30 0 1 \n", - "2 1 1.86 2.09 0.17 0.00 0 0 \n", - "3 1 1.69 1.69 0.00 0.00 0 0 \n", - "4 7 1.69 1.69 0.00 0.00 0 0 \n", - "... ... ... ... ... ... ... ... \n", - "1065 7 1.86 2.09 0.10 0.00 0 0 \n", - "1066 7 1.86 2.18 0.00 0.00 0 0 \n", - "1067 7 1.86 2.18 0.00 0.00 0 0 \n", - "1068 7 1.86 2.13 0.00 0.24 0 0 \n", - "1069 1 1.86 2.18 0.00 0.00 0 0 \n", - "\n", - " LoyalCH SalePriceMM SalePriceCH PriceDiff PctDiscMM PctDiscCH \\\n", - "0 0.500000 1.99 1.75 0.24 0.000000 0.000000 \n", - "1 0.600000 1.69 1.75 -0.06 0.150754 0.000000 \n", - "2 0.680000 2.09 1.69 0.40 0.000000 0.091398 \n", - "3 0.400000 1.69 1.69 0.00 0.000000 0.000000 \n", - "4 0.956535 1.69 1.69 0.00 0.000000 0.000000 \n", - "... ... ... ... ... ... ... \n", - "1065 0.587822 2.09 1.76 0.33 0.000000 0.053763 \n", - "1066 0.670258 2.18 1.86 0.32 0.000000 0.000000 \n", - "1067 0.736206 2.18 1.86 0.32 0.000000 0.000000 \n", - "1068 0.588965 1.89 1.86 0.03 0.112676 0.000000 \n", - "1069 0.671172 2.18 1.86 0.32 0.000000 0.000000 \n", - "\n", - " ListPriceDiff \n", - "0 0.24 \n", - "1 0.24 \n", - "2 0.23 \n", - "3 0.00 \n", - "4 0.00 \n", - "... ... \n", - "1065 0.23 \n", - "1066 0.32 \n", - "1067 0.32 \n", - "1068 0.27 \n", - "1069 0.32 \n", - "\n", - "[1070 rows x 14 columns]" - ] - }, - "execution_count": 111, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "data_new" - ] - }, - { - "cell_type": "code", - "execution_count": 113, - "metadata": {}, - "outputs": [ - { - "ename": "UnboundLocalError", - "evalue": "local variable 'ytest' referenced before assignment", - "output_type": "error", - "traceback": [ - "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[1;31mUnboundLocalError\u001b[0m Traceback (most recent call last)", - "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[0mpredict_model\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mfinal_lr\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mdata\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mdata_new\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m", - "\u001b[1;32m~\\AppData\\Local\\Continuum\\anaconda3\\lib\\site-packages\\pycaret\\classification.py\u001b[0m in \u001b[0;36mpredict_model\u001b[1;34m(estimator, data)\u001b[0m\n\u001b[0;32m 8673\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 8674\u001b[0m \u001b[0mXtest\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mreset_index\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mdrop\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;32mTrue\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0minplace\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;32mTrue\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m-> 8675\u001b[1;33m \u001b[0mytest\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mreset_index\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mdrop\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;32mTrue\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0minplace\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;32mTrue\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 8676\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 8677\u001b[0m \u001b[1;31m#copy X_test\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;31mUnboundLocalError\u001b[0m: local variable 'ytest' referenced before assignment" - ] - } - ], - "source": [ - "predict_model(final_lr, data = data_new)" - ] - }, - { - "cell_type": "code", - "execution_count": 114, - "metadata": {}, - "outputs": [ - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "4acb0882d9b643a7a4f94f8de2174551", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "IntProgress(value=0, description='Processing: ', max=520)" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "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", - "
Initiated. . . . . . . . . . . . . . . . . .20:02:22
Status. . . . . . . . . . . . . . . . . .Compiling Base Estimators
Estimator. . . . . . . . . . . . . . . . . .Stacking Classifier # 4
ETC. . . . . . . . . . . . . . . . . .Calculating ETC
\n", - "
" - ], - "text/plain": [ - " \n", - " \n", - "Initiated . . . . . . . . . . . . . . . . . . 20:02:22\n", - "Status . . . . . . . . . . . . . . . . . . Compiling Base Estimators\n", - "Estimator . . . . . . . . . . . . . . . . . . Stacking Classifier # 4\n", - "ETC . . . . . . . . . . . . . . . . . . Calculating ETC" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
ModelAccuracyAUCRecallPrec.F1Kappa
0Ensemble Tuned Ridge Classifier0.83430.83950.88810.84930.86740.6467
1Voting Classifier0.83300.00000.87710.85480.86500.6459
2Ridge Classifier0.83290.00000.87490.85660.86480.6460
3Tuned Logistic Regression0.83290.90280.88140.85190.86550.6450
4Ensemble Tuned Logistic Regression0.83170.90330.87710.85360.86420.6426
5Tuned Linear Discriminant Analysis0.83160.90170.87490.85470.86380.6431
6Ensemble Linear Discriminant Analysis (Bagging)0.83160.90160.87930.85240.86410.6423
7Tuned Ridge Classifier0.83030.00000.88590.84540.86430.6381
8Voting Classifier0.83030.00000.88150.84820.86360.6390
9Ensemble Tuned Linear Discriminant Analysis0.83030.90190.87490.85340.86300.6399
10Stacking Classifier0.82900.89980.87500.85150.86210.6368
11Ensemble Logistic Regression (Bagging)0.82890.90230.88150.84620.86260.6360
12Linear Discriminant Analysis0.82890.90280.87930.84830.86230.6363
13Ensemble Ridge Classifier (Bagging)0.82760.84320.87050.85290.86040.6347
14Stacking Classifier0.82630.89730.87280.84930.85990.6312
15Logistic Regression0.82630.90280.88150.84280.86080.6298
16Voting Classifier0.82490.00000.85960.85580.85630.6320
17Stacking Classifier0.81960.90030.87060.84060.85420.6173
18Tuned Ada Boost Classifier0.81960.88880.86180.84660.85280.6193
19Ensemble Tuned Ada Boost Classifier0.81820.88490.86190.84440.85190.6163
20Voting Classifier0.81690.00000.83560.86280.84750.6183
21Ensemble Ada Boost Classifier (Boosting)0.81430.88010.86190.83980.84970.6066
22Ada Boost Classifier0.81420.88440.85960.84030.84880.6075
23Voting Classifier0.81410.00000.83540.85700.84480.6130
24Ensemble Ada Boost Classifier (Bagging)0.81290.88170.86410.83560.84830.6038
25Ensemble Logistic Regression (Boosting)0.81170.89590.89900.81550.85390.5906
26Extreme Gradient Boosting0.80900.89180.83120.85490.84120.6013
27Ensemble Extreme Gradient Boosting (Bagging)0.80890.89590.83540.85030.84150.6006
28Gradient Boosting Classifier0.80750.88760.83120.85060.83970.5987
29CatBoost Classifier0.80100.88510.83570.83970.83620.5822
30Ensemble Tuned Extreme Gradient Boosting0.78880.86770.82020.83300.82530.5580
31Tuned Extreme Gradient Boosting0.78330.83530.82020.82610.82160.5452
32K Neighbors Classifier0.77960.85060.83560.81310.82170.5321
33Random Forest Classifier0.77690.83400.80490.82680.81430.5345
34Light Gradient Boosting Machine0.77300.86720.80940.81930.81290.5238
35Naive Bayes0.76220.83100.76520.83620.79750.5097
36SVM - Linear Kernel0.74570.00000.78210.82700.76600.4737
37Extra Trees Classifier0.73400.79220.75430.79980.77490.4498
38Decision Tree Classifier0.72890.73260.75460.79410.77280.4368
39Quadratic Discriminant Analysis0.71550.77760.71730.79530.75020.4212
40Ensemble Extreme Gradient Boosting (Boosting)0.60960.50001.00000.60960.75750.0000
\n", - "
" - ], - "text/plain": [ - " Model Accuracy AUC Recall \\\n", - "0 Ensemble Tuned Ridge Classifier 0.8343 0.8395 0.8881 \n", - "1 Voting Classifier 0.8330 0.0000 0.8771 \n", - "2 Ridge Classifier 0.8329 0.0000 0.8749 \n", - "3 Tuned Logistic Regression 0.8329 0.9028 0.8814 \n", - "4 Ensemble Tuned Logistic Regression 0.8317 0.9033 0.8771 \n", - "5 Tuned Linear Discriminant Analysis 0.8316 0.9017 0.8749 \n", - "6 Ensemble Linear Discriminant Analysis (Bagging) 0.8316 0.9016 0.8793 \n", - "7 Tuned Ridge Classifier 0.8303 0.0000 0.8859 \n", - "8 Voting Classifier 0.8303 0.0000 0.8815 \n", - "9 Ensemble Tuned Linear Discriminant Analysis 0.8303 0.9019 0.8749 \n", - "10 Stacking Classifier 0.8290 0.8998 0.8750 \n", - "11 Ensemble Logistic Regression (Bagging) 0.8289 0.9023 0.8815 \n", - "12 Linear Discriminant Analysis 0.8289 0.9028 0.8793 \n", - "13 Ensemble Ridge Classifier (Bagging) 0.8276 0.8432 0.8705 \n", - "14 Stacking Classifier 0.8263 0.8973 0.8728 \n", - "15 Logistic Regression 0.8263 0.9028 0.8815 \n", - "16 Voting Classifier 0.8249 0.0000 0.8596 \n", - "17 Stacking Classifier 0.8196 0.9003 0.8706 \n", - "18 Tuned Ada Boost Classifier 0.8196 0.8888 0.8618 \n", - "19 Ensemble Tuned Ada Boost Classifier 0.8182 0.8849 0.8619 \n", - "20 Voting Classifier 0.8169 0.0000 0.8356 \n", - "21 Ensemble Ada Boost Classifier (Boosting) 0.8143 0.8801 0.8619 \n", - "22 Ada Boost Classifier 0.8142 0.8844 0.8596 \n", - "23 Voting Classifier 0.8141 0.0000 0.8354 \n", - "24 Ensemble Ada Boost Classifier (Bagging) 0.8129 0.8817 0.8641 \n", - "25 Ensemble Logistic Regression (Boosting) 0.8117 0.8959 0.8990 \n", - "26 Extreme Gradient Boosting 0.8090 0.8918 0.8312 \n", - "27 Ensemble Extreme Gradient Boosting (Bagging) 0.8089 0.8959 0.8354 \n", - "28 Gradient Boosting Classifier 0.8075 0.8876 0.8312 \n", - "29 CatBoost Classifier 0.8010 0.8851 0.8357 \n", - "30 Ensemble Tuned Extreme Gradient Boosting 0.7888 0.8677 0.8202 \n", - "31 Tuned Extreme Gradient Boosting 0.7833 0.8353 0.8202 \n", - "32 K Neighbors Classifier 0.7796 0.8506 0.8356 \n", - "33 Random Forest Classifier 0.7769 0.8340 0.8049 \n", - "34 Light Gradient Boosting Machine 0.7730 0.8672 0.8094 \n", - "35 Naive Bayes 0.7622 0.8310 0.7652 \n", - "36 SVM - Linear Kernel 0.7457 0.0000 0.7821 \n", - "37 Extra Trees Classifier 0.7340 0.7922 0.7543 \n", - "38 Decision Tree Classifier 0.7289 0.7326 0.7546 \n", - "39 Quadratic Discriminant Analysis 0.7155 0.7776 0.7173 \n", - "40 Ensemble Extreme Gradient Boosting (Boosting) 0.6096 0.5000 1.0000 \n", - "\n", - " Prec. F1 Kappa \n", - "0 0.8493 0.8674 0.6467 \n", - "1 0.8548 0.8650 0.6459 \n", - "2 0.8566 0.8648 0.6460 \n", - "3 0.8519 0.8655 0.6450 \n", - "4 0.8536 0.8642 0.6426 \n", - "5 0.8547 0.8638 0.6431 \n", - "6 0.8524 0.8641 0.6423 \n", - "7 0.8454 0.8643 0.6381 \n", - "8 0.8482 0.8636 0.6390 \n", - "9 0.8534 0.8630 0.6399 \n", - "10 0.8515 0.8621 0.6368 \n", - "11 0.8462 0.8626 0.6360 \n", - "12 0.8483 0.8623 0.6363 \n", - "13 0.8529 0.8604 0.6347 \n", - "14 0.8493 0.8599 0.6312 \n", - "15 0.8428 0.8608 0.6298 \n", - "16 0.8558 0.8563 0.6320 \n", - "17 0.8406 0.8542 0.6173 \n", - "18 0.8466 0.8528 0.6193 \n", - "19 0.8444 0.8519 0.6163 \n", - "20 0.8628 0.8475 0.6183 \n", - "21 0.8398 0.8497 0.6066 \n", - "22 0.8403 0.8488 0.6075 \n", - "23 0.8570 0.8448 0.6130 \n", - "24 0.8356 0.8483 0.6038 \n", - "25 0.8155 0.8539 0.5906 \n", - "26 0.8549 0.8412 0.6013 \n", - "27 0.8503 0.8415 0.6006 \n", - "28 0.8506 0.8397 0.5987 \n", - "29 0.8397 0.8362 0.5822 \n", - "30 0.8330 0.8253 0.5580 \n", - "31 0.8261 0.8216 0.5452 \n", - "32 0.8131 0.8217 0.5321 \n", - "33 0.8268 0.8143 0.5345 \n", - "34 0.8193 0.8129 0.5238 \n", - "35 0.8362 0.7975 0.5097 \n", - "36 0.8270 0.7660 0.4737 \n", - "37 0.7998 0.7749 0.4498 \n", - "38 0.7941 0.7728 0.4368 \n", - "39 0.7953 0.7502 0.4212 \n", - "40 0.6096 0.7575 0.0000 " - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "ename": "KeyboardInterrupt", - "evalue": "", - "output_type": "error", - "traceback": [ - "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[1;31mKeyboardInterrupt\u001b[0m Traceback (most recent call last)", - "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[0maml1\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mautoml\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m", - "\u001b[1;32m~\\AppData\\Local\\Continuum\\anaconda3\\lib\\site-packages\\pycaret\\classification.py\u001b[0m in \u001b[0;36mautoml\u001b[1;34m(qualifier, target_metric, fold, round, turbo)\u001b[0m\n\u001b[0;32m 7364\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 7365\u001b[0m \u001b[1;32mfor\u001b[0m \u001b[0mmodel\u001b[0m \u001b[1;32min\u001b[0m \u001b[0mestimator_list\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m-> 7366\u001b[1;33m \u001b[0mbase_array\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mcross_val_predict\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mmodel\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0mdata_X_original\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0mdata_y_original\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0mcv\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mfold\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mmethod\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;34m'predict'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 7367\u001b[0m \u001b[0mbase_array_df\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mpd\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mDataFrame\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mbase_array\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 7368\u001b[0m \u001b[0mbase_prediction\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mpd\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mconcat\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mbase_prediction\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0mbase_array_df\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0maxis\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;36m1\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32m~\\AppData\\Local\\Continuum\\anaconda3\\lib\\site-packages\\sklearn\\model_selection\\_validation.py\u001b[0m in \u001b[0;36mcross_val_predict\u001b[1;34m(estimator, X, y, groups, cv, n_jobs, verbose, fit_params, pre_dispatch, method)\u001b[0m\n\u001b[0;32m 787\u001b[0m prediction_blocks = parallel(delayed(_fit_and_predict)(\n\u001b[0;32m 788\u001b[0m clone(estimator), X, y, train, test, verbose, fit_params, method)\n\u001b[1;32m--> 789\u001b[1;33m for train, test in cv.split(X, y, groups))\n\u001b[0m\u001b[0;32m 790\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 791\u001b[0m \u001b[1;31m# Concatenate the predictions\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32m~\\AppData\\Local\\Continuum\\anaconda3\\lib\\site-packages\\joblib\\parallel.py\u001b[0m in \u001b[0;36m__call__\u001b[1;34m(self, iterable)\u001b[0m\n\u001b[0;32m 922\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_iterating\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_original_iterator\u001b[0m \u001b[1;32mis\u001b[0m \u001b[1;32mnot\u001b[0m \u001b[1;32mNone\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 923\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 924\u001b[1;33m \u001b[1;32mwhile\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mdispatch_one_batch\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0miterator\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 925\u001b[0m \u001b[1;32mpass\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 926\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32m~\\AppData\\Local\\Continuum\\anaconda3\\lib\\site-packages\\joblib\\parallel.py\u001b[0m in \u001b[0;36mdispatch_one_batch\u001b[1;34m(self, iterator)\u001b[0m\n\u001b[0;32m 757\u001b[0m \u001b[1;32mreturn\u001b[0m \u001b[1;32mFalse\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 758\u001b[0m \u001b[1;32melse\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 759\u001b[1;33m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_dispatch\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mtasks\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 760\u001b[0m \u001b[1;32mreturn\u001b[0m \u001b[1;32mTrue\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 761\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32m~\\AppData\\Local\\Continuum\\anaconda3\\lib\\site-packages\\joblib\\parallel.py\u001b[0m in \u001b[0;36m_dispatch\u001b[1;34m(self, batch)\u001b[0m\n\u001b[0;32m 714\u001b[0m \u001b[1;32mwith\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_lock\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 715\u001b[0m \u001b[0mjob_idx\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mlen\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_jobs\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 716\u001b[1;33m \u001b[0mjob\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_backend\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mapply_async\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mbatch\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mcallback\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mcb\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 717\u001b[0m \u001b[1;31m# A job can complete so quickly than its callback is\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 718\u001b[0m \u001b[1;31m# called before we get here, causing self._jobs to\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32m~\\AppData\\Local\\Continuum\\anaconda3\\lib\\site-packages\\joblib\\_parallel_backends.py\u001b[0m in \u001b[0;36mapply_async\u001b[1;34m(self, func, callback)\u001b[0m\n\u001b[0;32m 180\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0mapply_async\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mfunc\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mcallback\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;32mNone\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 181\u001b[0m \u001b[1;34m\"\"\"Schedule a func to be run\"\"\"\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 182\u001b[1;33m \u001b[0mresult\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mImmediateResult\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mfunc\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 183\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mcallback\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 184\u001b[0m \u001b[0mcallback\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mresult\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32m~\\AppData\\Local\\Continuum\\anaconda3\\lib\\site-packages\\joblib\\_parallel_backends.py\u001b[0m in \u001b[0;36m__init__\u001b[1;34m(self, batch)\u001b[0m\n\u001b[0;32m 547\u001b[0m \u001b[1;31m# Don't delay the application, to avoid keeping the input\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 548\u001b[0m \u001b[1;31m# arguments in memory\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 549\u001b[1;33m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mresults\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mbatch\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 550\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 551\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0mget\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32m~\\AppData\\Local\\Continuum\\anaconda3\\lib\\site-packages\\joblib\\parallel.py\u001b[0m in \u001b[0;36m__call__\u001b[1;34m(self)\u001b[0m\n\u001b[0;32m 223\u001b[0m \u001b[1;32mwith\u001b[0m \u001b[0mparallel_backend\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_backend\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mn_jobs\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_n_jobs\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 224\u001b[0m return [func(*args, **kwargs)\n\u001b[1;32m--> 225\u001b[1;33m for func, args, kwargs in self.items]\n\u001b[0m\u001b[0;32m 226\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 227\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0m__len__\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32m~\\AppData\\Local\\Continuum\\anaconda3\\lib\\site-packages\\joblib\\parallel.py\u001b[0m in \u001b[0;36m\u001b[1;34m(.0)\u001b[0m\n\u001b[0;32m 223\u001b[0m \u001b[1;32mwith\u001b[0m \u001b[0mparallel_backend\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_backend\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mn_jobs\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_n_jobs\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 224\u001b[0m return [func(*args, **kwargs)\n\u001b[1;32m--> 225\u001b[1;33m for func, args, kwargs in self.items]\n\u001b[0m\u001b[0;32m 226\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 227\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0m__len__\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32m~\\AppData\\Local\\Continuum\\anaconda3\\lib\\site-packages\\sklearn\\model_selection\\_validation.py\u001b[0m in \u001b[0;36m_fit_and_predict\u001b[1;34m(estimator, X, y, train, test, verbose, fit_params, method)\u001b[0m\n\u001b[0;32m 874\u001b[0m \u001b[0mestimator\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mfit\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mX_train\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;33m**\u001b[0m\u001b[0mfit_params\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 875\u001b[0m \u001b[1;32melse\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 876\u001b[1;33m \u001b[0mestimator\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mfit\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mX_train\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0my_train\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;33m**\u001b[0m\u001b[0mfit_params\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 877\u001b[0m \u001b[0mfunc\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mgetattr\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mestimator\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mmethod\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 878\u001b[0m \u001b[0mpredictions\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mfunc\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mX_test\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32m~\\AppData\\Local\\Continuum\\anaconda3\\lib\\site-packages\\sklearn\\ensemble\\weight_boosting.py\u001b[0m in \u001b[0;36mfit\u001b[1;34m(self, X, y, sample_weight)\u001b[0m\n\u001b[0;32m 425\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 426\u001b[0m \u001b[1;31m# Fit\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 427\u001b[1;33m \u001b[1;32mreturn\u001b[0m \u001b[0msuper\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mfit\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mX\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0my\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0msample_weight\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 428\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 429\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0m_validate_estimator\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32m~\\AppData\\Local\\Continuum\\anaconda3\\lib\\site-packages\\sklearn\\ensemble\\weight_boosting.py\u001b[0m in \u001b[0;36mfit\u001b[1;34m(self, X, y, sample_weight)\u001b[0m\n\u001b[0;32m 148\u001b[0m \u001b[0mX\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0my\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 149\u001b[0m \u001b[0msample_weight\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 150\u001b[1;33m random_state)\n\u001b[0m\u001b[0;32m 151\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 152\u001b[0m \u001b[1;31m# Early termination\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32m~\\AppData\\Local\\Continuum\\anaconda3\\lib\\site-packages\\sklearn\\ensemble\\weight_boosting.py\u001b[0m in \u001b[0;36m_boost\u001b[1;34m(self, iboost, X, y, sample_weight, random_state)\u001b[0m\n\u001b[0;32m 484\u001b[0m \"\"\"\n\u001b[0;32m 485\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0malgorithm\u001b[0m \u001b[1;33m==\u001b[0m \u001b[1;34m'SAMME.R'\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 486\u001b[1;33m \u001b[1;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_boost_real\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0miboost\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mX\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0my\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0msample_weight\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mrandom_state\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 487\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 488\u001b[0m \u001b[1;32melse\u001b[0m\u001b[1;33m:\u001b[0m \u001b[1;31m# elif self.algorithm == \"SAMME\":\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32m~\\AppData\\Local\\Continuum\\anaconda3\\lib\\site-packages\\sklearn\\ensemble\\weight_boosting.py\u001b[0m in \u001b[0;36m_boost_real\u001b[1;34m(self, iboost, X, y, sample_weight, random_state)\u001b[0m\n\u001b[0;32m 494\u001b[0m \u001b[0mestimator\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_make_estimator\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mrandom_state\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mrandom_state\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 495\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 496\u001b[1;33m \u001b[0mestimator\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mfit\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mX\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0my\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0msample_weight\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0msample_weight\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 497\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 498\u001b[0m \u001b[0my_predict_proba\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mestimator\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mpredict_proba\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mX\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32m~\\AppData\\Local\\Continuum\\anaconda3\\lib\\site-packages\\sklearn\\ensemble\\weight_boosting.py\u001b[0m in \u001b[0;36mfit\u001b[1;34m(self, X, y, sample_weight)\u001b[0m\n\u001b[0;32m 425\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 426\u001b[0m \u001b[1;31m# Fit\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 427\u001b[1;33m \u001b[1;32mreturn\u001b[0m \u001b[0msuper\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mfit\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mX\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0my\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0msample_weight\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 428\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 429\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0m_validate_estimator\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32m~\\AppData\\Local\\Continuum\\anaconda3\\lib\\site-packages\\sklearn\\ensemble\\weight_boosting.py\u001b[0m in \u001b[0;36mfit\u001b[1;34m(self, X, y, sample_weight)\u001b[0m\n\u001b[0;32m 148\u001b[0m \u001b[0mX\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0my\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 149\u001b[0m \u001b[0msample_weight\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 150\u001b[1;33m random_state)\n\u001b[0m\u001b[0;32m 151\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 152\u001b[0m \u001b[1;31m# Early termination\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32m~\\AppData\\Local\\Continuum\\anaconda3\\lib\\site-packages\\sklearn\\ensemble\\weight_boosting.py\u001b[0m in \u001b[0;36m_boost\u001b[1;34m(self, iboost, X, y, sample_weight, random_state)\u001b[0m\n\u001b[0;32m 484\u001b[0m \"\"\"\n\u001b[0;32m 485\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0malgorithm\u001b[0m \u001b[1;33m==\u001b[0m \u001b[1;34m'SAMME.R'\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 486\u001b[1;33m \u001b[1;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_boost_real\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0miboost\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mX\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0my\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0msample_weight\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mrandom_state\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 487\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 488\u001b[0m \u001b[1;32melse\u001b[0m\u001b[1;33m:\u001b[0m \u001b[1;31m# elif self.algorithm == \"SAMME\":\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32m~\\AppData\\Local\\Continuum\\anaconda3\\lib\\site-packages\\sklearn\\ensemble\\weight_boosting.py\u001b[0m in \u001b[0;36m_boost_real\u001b[1;34m(self, iboost, X, y, sample_weight, random_state)\u001b[0m\n\u001b[0;32m 494\u001b[0m \u001b[0mestimator\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_make_estimator\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mrandom_state\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mrandom_state\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 495\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 496\u001b[1;33m \u001b[0mestimator\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mfit\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mX\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0my\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0msample_weight\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0msample_weight\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 497\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 498\u001b[0m \u001b[0my_predict_proba\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mestimator\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mpredict_proba\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mX\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32m~\\AppData\\Local\\Continuum\\anaconda3\\lib\\site-packages\\sklearn\\tree\\tree.py\u001b[0m in \u001b[0;36mfit\u001b[1;34m(self, X, y, sample_weight, check_input, X_idx_sorted)\u001b[0m\n\u001b[0;32m 814\u001b[0m \u001b[0msample_weight\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0msample_weight\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 815\u001b[0m \u001b[0mcheck_input\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mcheck_input\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 816\u001b[1;33m X_idx_sorted=X_idx_sorted)\n\u001b[0m\u001b[0;32m 817\u001b[0m \u001b[1;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 818\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32m~\\AppData\\Local\\Continuum\\anaconda3\\lib\\site-packages\\sklearn\\tree\\tree.py\u001b[0m in \u001b[0;36mfit\u001b[1;34m(self, X, y, sample_weight, check_input, X_idx_sorted)\u001b[0m\n\u001b[0;32m 164\u001b[0m \u001b[1;32mfor\u001b[0m \u001b[0mk\u001b[0m \u001b[1;32min\u001b[0m \u001b[0mrange\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mn_outputs_\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 165\u001b[0m classes_k, y_encoded[:, k] = np.unique(y[:, k],\n\u001b[1;32m--> 166\u001b[1;33m return_inverse=True)\n\u001b[0m\u001b[0;32m 167\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mclasses_\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mappend\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mclasses_k\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 168\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mn_classes_\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mappend\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mclasses_k\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mshape\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;36m0\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32m~\\AppData\\Local\\Continuum\\anaconda3\\lib\\site-packages\\numpy\\lib\\arraysetops.py\u001b[0m in \u001b[0;36munique\u001b[1;34m(ar, return_index, return_inverse, return_counts, axis)\u001b[0m\n\u001b[0;32m 262\u001b[0m \u001b[0mar\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0masanyarray\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mar\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 263\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0maxis\u001b[0m \u001b[1;32mis\u001b[0m \u001b[1;32mNone\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 264\u001b[1;33m \u001b[0mret\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0m_unique1d\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mar\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mreturn_index\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mreturn_inverse\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mreturn_counts\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 265\u001b[0m \u001b[1;32mreturn\u001b[0m \u001b[0m_unpack_tuple\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mret\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 266\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32m~\\AppData\\Local\\Continuum\\anaconda3\\lib\\site-packages\\numpy\\lib\\arraysetops.py\u001b[0m in \u001b[0;36m_unique1d\u001b[1;34m(ar, return_index, return_inverse, return_counts)\u001b[0m\n\u001b[0;32m 307\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 308\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0moptional_indices\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 309\u001b[1;33m \u001b[0mperm\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mar\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0margsort\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mkind\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;34m'mergesort'\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mreturn_index\u001b[0m \u001b[1;32melse\u001b[0m \u001b[1;34m'quicksort'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 310\u001b[0m \u001b[0maux\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mar\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mperm\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 311\u001b[0m \u001b[1;32melse\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;31mKeyboardInterrupt\u001b[0m: " - ] - } - ], - "source": [ - "aml1 = automl()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "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.7.4" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} -- GitLab