{
"cells": [
{
"cell_type": "markdown",
"metadata": {
"cell_id": "7088943d-f7b9-4b97-b640-6a775e1e8450",
"tags": []
},
"source": [
"# Customer Churn Prediction\n",
"Last Update: 08/02/2020 \n",
"PyCaret Version: 2.0 \n",
"Author: Alexandre Farias \n",
"Email: afarias@tuta.io \n",
"\n",
"![](https://res.cloudinary.com/dn1j6dpd7/image/fetch/f_auto,q_auto,w_736/https://www.livechat.com/wp-content/uploads/2016/04/customer-churn@2x.jpg)\n",
"Image Source: [What Is Churn Rate and Why It Will Mess With Your Growth](https://www.livechat.com/success/churn-rate/)"
]
},
{
"cell_type": "markdown",
"metadata": {
"cell_id": "9b238085-0cbf-4c9e-afa5-88b72a835fae",
"tags": []
},
"source": [
"# 1. Introduction\n",
"Customer Churn is when customers leave a service in a given period of time, which is bad for business. \n",
"This work has as objective to build a machine learning model to predict which customers will leave the service, the dataset used on this notebook is the [Telco Customer Churn](https://www.kaggle.com/blastchar/telco-customer-churn) hosted at Kaggle. Also, an Exploratory Data Analysis is made to a better understand about the data. \n",
"Another point on this work is use Deepnote as development enviroment and the [PyCaret 2.0](https://pycaret.org/) Python Module to make all the experiment pipeline. "
]
},
{
"cell_type": "markdown",
"metadata": {
"cell_id": "1e78a237-948f-480d-ba96-3503917949ad",
"tags": []
},
"source": [
"# 1.1 Enviroment Setup\n",
"The Modules used for this work, highlights for PyCaret 2.0 and good plots by [Plotly](https://plotly.com/)."
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"cell_id": "464a9356-824f-4c4d-9945-224698b09877",
"output_cleared": false
},
"outputs": [],
"source": [
"# Standard\n",
"import pandas as pd\n",
"import numpy as np\n",
"import os\n",
"# Pycaret\n",
"from pycaret.classification import *\n",
"# Plots\n",
"from plotly.offline import iplot\n",
"import plotly.graph_objects as go\n",
"from plotly.subplots import make_subplots\n",
"import seaborn as sns\n",
"# Sklearn tools\n",
"from sklearn.preprocessing import LabelEncoder\n",
"from sklearn.metrics import *\n",
"# Extras\n",
"from datetime import date\n",
"import warnings\n",
"warnings.filterwarnings(\"ignore\")\n",
"# Datapath and Setup\n",
"os.chdir(\"..\")\n",
"PATH = os.getcwd()+os.sep\n",
"RANDOM_SEED = 142\n",
"K_FOLDS = 5"
]
},
{
"cell_type": "markdown",
"metadata": {
"cell_id": "2bcfc94d-a561-405d-ac35-65ac706a54dc",
"tags": []
},
"source": [
"And the helper functions used on this notebook."
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"cell_id": "28308802-8246-4878-aa00-e65ee5bd184a",
"tags": []
},
"outputs": [],
"source": [
"# Helper functions for structured data\n",
"# Get info about the dataset\n",
"def dataset_info(dataset, dataset_name: str):\n",
" print(f\"Dataset Name: {dataset_name} \\\n",
" | Number of Samples: {dataset.shape[0]} \\\n",
" | Number of Columns: {dataset.shape[1]}\")\n",
" print(30*\"=\")\n",
" print(\"Column Data Type\")\n",
" print(dataset.dtypes)\n",
" print(30*\"=\")\n",
" missing_data = dataset.isnull().sum()\n",
" if sum(missing_data) > 0:\n",
" print(missing_data[missing_data.values > 0])\n",
" else:\n",
" print(\"No Missing Data on this Dataset!\")\n",
" print(30*\"=\")\n",
" print(\"Memory Usage: {} MB\".\\\n",
" format(np.round(\n",
" dataset.memory_usage(index=True).sum() / 10e5, 3\n",
" )))\n",
"# Dataset Sampling\n",
"def data_sampling(dataset, frac: float, random_seed: int):\n",
" data_sampled_a = dataset.sample(frac=frac, random_state=random_seed)\n",
" data_sampled_b = dataset.drop(data_sampled_a.index).reset_index(drop=True)\n",
" data_sampled_a.reset_index(drop=True, inplace=True)\n",
" return data_sampled_a, data_sampled_b \n",
"# Bar Plot\n",
"def bar_plot(data, plot_title: str, x_axis: str, y_axis: str):\n",
" colors = [\"#0080ff\",] * len(data)\n",
" colors[0] = \"#ff8000\"\n",
" trace = go.Bar(y=data.values, x=data.index, text=data.values, \n",
" marker_color=colors)\n",
" layout = go.Layout(autosize=False, height=600,\n",
" title={\"text\" : plot_title,\n",
" \"y\" : 0.9,\n",
" \"x\" : 0.5,\n",
" \"xanchor\" : \"center\",\n",
" \"yanchor\" : \"top\"}, \n",
" xaxis={\"title\" : x_axis},\n",
" yaxis={\"title\" : y_axis},)\n",
" fig = go.Figure(data=trace, layout=layout)\n",
" fig.update_layout(template=\"simple_white\")\n",
" fig.update_traces(textposition=\"outside\",\n",
" textfont_size=14,\n",
" marker=dict(line=dict(color=\"#000000\", width=2))) \n",
" fig.update_yaxes(automargin=True)\n",
" iplot(fig)\n",
"# Plot Pie Chart\n",
"def pie_plot(data, plot_title: str):\n",
" trace = go.Pie(labels=data.index, values=data.values)\n",
" layout = go.Layout(autosize=False,\n",
" title={\"text\" : plot_title,\n",
" \"y\" : 0.9,\n",
" \"x\" : 0.5,\n",
" \"xanchor\" : \"center\",\n",
" \"yanchor\" : \"top\"})\n",
" fig = go.Figure(data=trace, layout=layout)\n",
" fig.update_traces(textfont_size=14,\n",
" marker=dict(line=dict(color=\"#000000\", width=2)))\n",
" fig.update_yaxes(automargin=True) \n",
" iplot(fig)\n",
"# Histogram\n",
"def histogram_plot(data, plot_title: str, y_axis: str):\n",
" trace = go.Histogram(x=data)\n",
" layout = go.Layout(autosize=False,\n",
" title={\"text\" : plot_title,\n",
" \"y\" : 0.9,\n",
" \"x\" : 0.5,\n",
" \"xanchor\" : \"center\",\n",
" \"yanchor\" : \"top\"}, \n",
" yaxis={\"title\" : y_axis})\n",
" fig = go.Figure(data=trace, layout=layout)\n",
" fig.update_traces(marker=dict(line=dict(color=\"#000000\", width=2)))\n",
" fig.update_layout(template=\"simple_white\")\n",
" fig.update_yaxes(automargin=True)\n",
" iplot(fig)\n",
"# Particular case: Histogram subplot (1, 2)\n",
"def histogram_subplot(dataset_a, dataset_b, feature_a: str,\n",
" feature_b: str, title: str, title_a: str, title_b: str):\n",
" fig = make_subplots(rows=1, cols=2, subplot_titles=(\n",
" title_a,\n",
" title_b\n",
" )\n",
" )\n",
" fig.add_trace(go.Histogram(x=dataset_a[feature_a],\n",
" showlegend=False),\n",
" row=1, col=1)\n",
" fig.add_trace(go.Histogram(x=dataset_b[feature_b],\n",
" showlegend=False),\n",
" row=1, col=2)\n",
" fig.update_layout(template=\"simple_white\")\n",
" fig.update_layout(autosize=False,\n",
" title={\"text\" : title,\n",
" \"y\" : 0.9,\n",
" \"x\" : 0.5,\n",
" \"xanchor\" : \"center\",\n",
" \"yanchor\" : \"top\"}, \n",
" yaxis={\"title\" : \"Frequency \"})\n",
" fig.update_traces(marker=dict(line=dict(color=\"#000000\", width=2)))\n",
" fig.update_yaxes(automargin=True)\n",
" iplot(fig)\n",
"# Calculate scores with Test/Unseen labeled data\n",
"def test_score_report(data_unseen, predict_unseen):\n",
" le = LabelEncoder()\n",
" data_unseen[\"Label\"] = le.fit_transform(data_unseen.Churn.values)\n",
" data_unseen[\"Label\"] = data_unseen[\"Label\"].astype(int)\n",
" accuracy = accuracy_score(data_unseen[\"Label\"], predict_unseen[\"Label\"])\n",
" roc_auc = roc_auc_score(data_unseen[\"Label\"], predict_unseen[\"Label\"])\n",
" precision = precision_score(data_unseen[\"Label\"], predict_unseen[\"Label\"])\n",
" recall = recall_score(data_unseen[\"Label\"], predict_unseen[\"Label\"])\n",
" f1 = f1_score(data_unseen[\"Label\"], predict_unseen[\"Label\"])\n",
"\n",
" df_unseen = pd.DataFrame({\n",
" \"Accuracy\" : [accuracy],\n",
" \"AUC\" : [roc_auc],\n",
" \"Recall\" : [recall],\n",
" \"Precision\" : [precision],\n",
" \"F1 Score\" : [f1]\n",
" })\n",
" return df_unseen\n",
"# Confusion Matrix\n",
"def conf_mat(data_unseen, predict_unseen):\n",
" unique_label = data_unseen[\"Label\"].unique()\n",
" cmtx = pd.DataFrame(\n",
" confusion_matrix(data_unseen[\"Label\"],\n",
" predict_unseen[\"Label\"],\n",
" labels=unique_label), \n",
" index=['{:}'.format(x) for x in unique_label], \n",
" columns=['{:}'.format(x) for x in unique_label]\n",
" )\n",
" ax = sns.heatmap(cmtx, annot=True, fmt=\"d\", cmap=\"YlGnBu\")\n",
" ax.set_ylabel('Predicted')\n",
" ax.set_xlabel('Target');\n",
" ax.set_title(\"Predict Unseen Confusion Matrix\", size=14);"
]
},
{
"cell_type": "markdown",
"metadata": {
"cell_id": "5ae1c017-271e-410e-abd5-0be3b8727766",
"tags": []
},
"source": [
"# 2. Load Data\n",
"\n",
"The Dataset is load as a Pandas dataframe and show a gimplse of the data.\n",
"A good thing about Deepnote is that the displayed dataframes shows the column type, helping to understand the features."
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"cell_id": "cec0aaf1-7373-484e-bcdd-e39fa067e8ad",
"output_cleared": false,
"tags": []
},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
" \n",
" \n",
" customerID \n",
" gender \n",
" SeniorCitizen \n",
" Partner \n",
" Dependents \n",
" tenure \n",
" PhoneService \n",
" MultipleLines \n",
" InternetService \n",
" OnlineSecurity \n",
" ... \n",
" DeviceProtection \n",
" TechSupport \n",
" StreamingTV \n",
" StreamingMovies \n",
" Contract \n",
" PaperlessBilling \n",
" PaymentMethod \n",
" MonthlyCharges \n",
" TotalCharges \n",
" Churn \n",
" \n",
" \n",
" \n",
" \n",
" 0 \n",
" 7590-VHVEG \n",
" Female \n",
" 0 \n",
" Yes \n",
" No \n",
" 1 \n",
" No \n",
" No phone service \n",
" DSL \n",
" No \n",
" ... \n",
" No \n",
" No \n",
" No \n",
" No \n",
" Month-to-month \n",
" Yes \n",
" Electronic check \n",
" 29.85 \n",
" 29.85 \n",
" No \n",
" \n",
" \n",
" 1 \n",
" 5575-GNVDE \n",
" Male \n",
" 0 \n",
" No \n",
" No \n",
" 34 \n",
" Yes \n",
" No \n",
" DSL \n",
" Yes \n",
" ... \n",
" Yes \n",
" No \n",
" No \n",
" No \n",
" One year \n",
" No \n",
" Mailed check \n",
" 56.95 \n",
" 1889.5 \n",
" No \n",
" \n",
" \n",
" 2 \n",
" 3668-QPYBK \n",
" Male \n",
" 0 \n",
" No \n",
" No \n",
" 2 \n",
" Yes \n",
" No \n",
" DSL \n",
" Yes \n",
" ... \n",
" No \n",
" No \n",
" No \n",
" No \n",
" Month-to-month \n",
" Yes \n",
" Mailed check \n",
" 53.85 \n",
" 108.15 \n",
" Yes \n",
" \n",
" \n",
"
\n",
"
3 rows × 21 columns
\n",
"
"
],
"text/plain": [
" customerID gender SeniorCitizen Partner Dependents tenure PhoneService \\\n",
"0 7590-VHVEG Female 0 Yes No 1 No \n",
"1 5575-GNVDE Male 0 No No 34 Yes \n",
"2 3668-QPYBK Male 0 No No 2 Yes \n",
"\n",
" MultipleLines InternetService OnlineSecurity ... DeviceProtection \\\n",
"0 No phone service DSL No ... No \n",
"1 No DSL Yes ... Yes \n",
"2 No DSL Yes ... No \n",
"\n",
" TechSupport StreamingTV StreamingMovies Contract PaperlessBilling \\\n",
"0 No No No Month-to-month Yes \n",
"1 No No No One year No \n",
"2 No No No Month-to-month Yes \n",
"\n",
" PaymentMethod MonthlyCharges TotalCharges Churn \n",
"0 Electronic check 29.85 29.85 No \n",
"1 Mailed check 56.95 1889.5 No \n",
"2 Mailed check 53.85 108.15 Yes \n",
"\n",
"[3 rows x 21 columns]"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"dataset = pd.read_csv(PATH+\"data\"+os.sep+\"customers.csv\")\n",
"dataset.head(3)"
]
},
{
"cell_type": "markdown",
"metadata": {
"cell_id": "6ec2b507-2382-46dc-a15e-b0795b6c6e6e",
"tags": []
},
"source": [
"Check for duplicated samples."
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"cell_id": "8827849f-c74e-419a-adff-0a0d71e75f1c",
"tags": []
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" \n",
" customerID \n",
" gender \n",
" SeniorCitizen \n",
" Partner \n",
" Dependents \n",
" tenure \n",
" PhoneService \n",
" MultipleLines \n",
" InternetService \n",
" OnlineSecurity \n",
" ... \n",
" DeviceProtection \n",
" TechSupport \n",
" StreamingTV \n",
" StreamingMovies \n",
" Contract \n",
" PaperlessBilling \n",
" PaymentMethod \n",
" MonthlyCharges \n",
" TotalCharges \n",
" Churn \n",
" \n",
" \n",
" \n",
" \n",
"
\n",
"
0 rows × 21 columns
\n",
"
"
],
"text/plain": [
"Empty DataFrame\n",
"Columns: [customerID, gender, SeniorCitizen, Partner, Dependents, tenure, PhoneService, MultipleLines, InternetService, OnlineSecurity, OnlineBackup, DeviceProtection, TechSupport, StreamingTV, StreamingMovies, Contract, PaperlessBilling, PaymentMethod, MonthlyCharges, TotalCharges, Churn]\n",
"Index: []\n",
"\n",
"[0 rows x 21 columns]"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"dataset[dataset.duplicated()]"
]
},
{
"cell_type": "markdown",
"metadata": {
"cell_id": "9b3cb07f-e86e-494a-87ec-04aeafbc5144",
"tags": []
},
"source": [
"There are no duplicated samples on the dataset. \n",
"More information about the dataset is needed as the number of samples, memory size allocation, etc. \n",
"The result is showed on the following output (The Data Type is just showed for convenience, to make this notebook useful on other enviroments)."
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"cell_id": "7a4a0d96-1085-4179-9523-fe1774edff40",
"tags": []
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Dataset Name: customers | Number of Samples: 7043 | Number of Columns: 21\n",
"==============================\n",
"Column Data Type\n",
"customerID object\n",
"gender object\n",
"SeniorCitizen int64\n",
"Partner object\n",
"Dependents object\n",
"tenure int64\n",
"PhoneService object\n",
"MultipleLines object\n",
"InternetService object\n",
"OnlineSecurity object\n",
"OnlineBackup object\n",
"DeviceProtection object\n",
"TechSupport object\n",
"StreamingTV object\n",
"StreamingMovies object\n",
"Contract object\n",
"PaperlessBilling object\n",
"PaymentMethod object\n",
"MonthlyCharges float64\n",
"TotalCharges object\n",
"Churn object\n",
"dtype: object\n",
"==============================\n",
"No Missing Data on this Dataset!\n",
"==============================\n",
"Memory Usage: 1.183 MB\n"
]
}
],
"source": [
"dataset_info(dataset, \"customers\")"
]
},
{
"cell_type": "markdown",
"metadata": {
"cell_id": "f8a7621d-34b8-49d8-85a6-ac7b71a545ba",
"tags": []
},
"source": [
"The dataset has a small memory size allocation (1.183 MB) and is composed for many Categorical (object) features and only a few numeric, but one of the categorical features doesn't look right, the `TotalCharges`, as showed on the displayed dataframe, the festure is numeric. \n",
"`TotalCharges` is converted from Object to float64, the same of `MonthlyCharges` feature."
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"cell_id": "3520f897-c87b-4a90-9814-8edfd3220119",
"tags": []
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Feature TotalCharges is type float64 now!\n"
]
}
],
"source": [
"dataset[\"TotalCharges\"] = pd.to_numeric(dataset[\"TotalCharges\"], errors=\"coerce\")\n",
"print(f\"The Feature TotalCharges is type {dataset.TotalCharges.dtype} now!\")"
]
},
{
"cell_type": "markdown",
"metadata": {
"cell_id": "74bc6ebf-5467-4c13-af9f-4d2744ba11ec",
"tags": []
},
"source": [
"# 3. Exploratory Data Analysis"
]
},
{
"cell_type": "markdown",
"metadata": {
"cell_id": "aceeb11e-7a7d-4367-9492-1714689c6c5a",
"tags": []
},
"source": [
"# 3.1 Churn Distribution\n",
"The Client Churn Distribution is checked for any imbalance, as the feature is the target, it's important to choose what strategy to adopt when dealing with imbalanced classes. \n",
"Below, a Pie Chart shows the feature distribution.\n"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"cell_id": "0e06fe3a-30b9-4ff2-b803-951dd0b8e46c",
"tags": []
},
"outputs": [
{
"data": {
"text/html": [
" \n",
" "
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"application/vnd.plotly.v1+json": {
"config": {
"linkText": "Export to plot.ly",
"plotlyServerURL": "https://plot.ly",
"showLink": false
},
"data": [
{
"labels": [
"No",
"Yes"
],
"marker": {
"line": {
"color": "#000000",
"width": 2
}
},
"textfont": {
"size": 14
},
"type": "pie",
"values": [
5174,
1869
]
}
],
"layout": {
"autosize": false,
"template": {
"data": {
"bar": [
{
"error_x": {
"color": "#2a3f5f"
},
"error_y": {
"color": "#2a3f5f"
},
"marker": {
"line": {
"color": "#E5ECF6",
"width": 0.5
}
},
"type": "bar"
}
],
"barpolar": [
{
"marker": {
"line": {
"color": "#E5ECF6",
"width": 0.5
}
},
"type": "barpolar"
}
],
"carpet": [
{
"aaxis": {
"endlinecolor": "#2a3f5f",
"gridcolor": "white",
"linecolor": "white",
"minorgridcolor": "white",
"startlinecolor": "#2a3f5f"
},
"baxis": {
"endlinecolor": "#2a3f5f",
"gridcolor": "white",
"linecolor": "white",
"minorgridcolor": "white",
"startlinecolor": "#2a3f5f"
},
"type": "carpet"
}
],
"choropleth": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"type": "choropleth"
}
],
"contour": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"colorscale": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
],
"type": "contour"
}
],
"contourcarpet": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"type": "contourcarpet"
}
],
"heatmap": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"colorscale": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
],
"type": "heatmap"
}
],
"heatmapgl": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"colorscale": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
],
"type": "heatmapgl"
}
],
"histogram": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "histogram"
}
],
"histogram2d": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"colorscale": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
],
"type": "histogram2d"
}
],
"histogram2dcontour": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"colorscale": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
],
"type": "histogram2dcontour"
}
],
"mesh3d": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"type": "mesh3d"
}
],
"parcoords": [
{
"line": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "parcoords"
}
],
"pie": [
{
"automargin": true,
"type": "pie"
}
],
"scatter": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scatter"
}
],
"scatter3d": [
{
"line": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scatter3d"
}
],
"scattercarpet": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scattercarpet"
}
],
"scattergeo": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scattergeo"
}
],
"scattergl": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scattergl"
}
],
"scattermapbox": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scattermapbox"
}
],
"scatterpolar": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scatterpolar"
}
],
"scatterpolargl": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scatterpolargl"
}
],
"scatterternary": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scatterternary"
}
],
"surface": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"colorscale": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
],
"type": "surface"
}
],
"table": [
{
"cells": {
"fill": {
"color": "#EBF0F8"
},
"line": {
"color": "white"
}
},
"header": {
"fill": {
"color": "#C8D4E3"
},
"line": {
"color": "white"
}
},
"type": "table"
}
]
},
"layout": {
"annotationdefaults": {
"arrowcolor": "#2a3f5f",
"arrowhead": 0,
"arrowwidth": 1
},
"coloraxis": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"colorscale": {
"diverging": [
[
0,
"#8e0152"
],
[
0.1,
"#c51b7d"
],
[
0.2,
"#de77ae"
],
[
0.3,
"#f1b6da"
],
[
0.4,
"#fde0ef"
],
[
0.5,
"#f7f7f7"
],
[
0.6,
"#e6f5d0"
],
[
0.7,
"#b8e186"
],
[
0.8,
"#7fbc41"
],
[
0.9,
"#4d9221"
],
[
1,
"#276419"
]
],
"sequential": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
],
"sequentialminus": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
]
},
"colorway": [
"#636efa",
"#EF553B",
"#00cc96",
"#ab63fa",
"#FFA15A",
"#19d3f3",
"#FF6692",
"#B6E880",
"#FF97FF",
"#FECB52"
],
"font": {
"color": "#2a3f5f"
},
"geo": {
"bgcolor": "white",
"lakecolor": "white",
"landcolor": "#E5ECF6",
"showlakes": true,
"showland": true,
"subunitcolor": "white"
},
"hoverlabel": {
"align": "left"
},
"hovermode": "closest",
"mapbox": {
"style": "light"
},
"paper_bgcolor": "white",
"plot_bgcolor": "#E5ECF6",
"polar": {
"angularaxis": {
"gridcolor": "white",
"linecolor": "white",
"ticks": ""
},
"bgcolor": "#E5ECF6",
"radialaxis": {
"gridcolor": "white",
"linecolor": "white",
"ticks": ""
}
},
"scene": {
"xaxis": {
"backgroundcolor": "#E5ECF6",
"gridcolor": "white",
"gridwidth": 2,
"linecolor": "white",
"showbackground": true,
"ticks": "",
"zerolinecolor": "white"
},
"yaxis": {
"backgroundcolor": "#E5ECF6",
"gridcolor": "white",
"gridwidth": 2,
"linecolor": "white",
"showbackground": true,
"ticks": "",
"zerolinecolor": "white"
},
"zaxis": {
"backgroundcolor": "#E5ECF6",
"gridcolor": "white",
"gridwidth": 2,
"linecolor": "white",
"showbackground": true,
"ticks": "",
"zerolinecolor": "white"
}
},
"shapedefaults": {
"line": {
"color": "#2a3f5f"
}
},
"ternary": {
"aaxis": {
"gridcolor": "white",
"linecolor": "white",
"ticks": ""
},
"baxis": {
"gridcolor": "white",
"linecolor": "white",
"ticks": ""
},
"bgcolor": "#E5ECF6",
"caxis": {
"gridcolor": "white",
"linecolor": "white",
"ticks": ""
}
},
"title": {
"x": 0.05
},
"xaxis": {
"automargin": true,
"gridcolor": "white",
"linecolor": "white",
"ticks": "",
"title": {
"standoff": 15
},
"zerolinecolor": "white",
"zerolinewidth": 2
},
"yaxis": {
"automargin": true,
"gridcolor": "white",
"linecolor": "white",
"ticks": "",
"title": {
"standoff": 15
},
"zerolinecolor": "white",
"zerolinewidth": 2
}
}
},
"title": {
"text": "Client Churn Distribution",
"x": 0.5,
"xanchor": "center",
"y": 0.9,
"yanchor": "top"
},
"yaxis": {
"automargin": true
}
}
},
"text/html": [
"\n",
" \n",
" \n",
"
\n",
" \n",
"
"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"pie_plot(dataset[\"Churn\"].value_counts(), \n",
" plot_title=\"Client Churn Distribution\")"
]
},
{
"cell_type": "markdown",
"metadata": {
"cell_id": "e30ae2f1-f982-462f-80f3-1bc64e1d31d1",
"tags": []
},
"source": [
"There's some imbalance on Churn Distribution, 26.5% of the clients have churned, and small occurences of a label could lead to bad predictor. \n",
"It's possible to choose some ways to work with this case:\n",
"* Make a random over-sampling, duplicating some samples of the minority class until this reach a balance, but this could lead to an overfitted model.\n",
"* Make a random down-sampling, removing some samples from the majority class until this reach a balance, but this leads to information loss and not feeding the model with the collected samples.\n",
"* Make a random down-sampling, removing some samples from the majority class until this reach a balance, but this leads to information loss and not feeding the model with the collected samples.\n",
"* Another resampling technique, as SMOTE.\n",
"* Choosing a metric that deals with imbalanced datasets, like F1 Score.\n",
"\n",
"The Churn problem is about client retention, is worth to check about false positives, so precision and recall metrics are a must for this situtation. \n",
"F1 Score is used to check the quality of the model predictions, as the metric is an harmonic mean of precision and recall."
]
},
{
"cell_type": "markdown",
"metadata": {
"cell_id": "61904ad8-8f19-4ed5-bf91-8fbabcb40de1",
"tags": []
},
"source": [
"# 3.2 Analysis of the Contract Type\n"
]
},
{
"cell_type": "markdown",
"metadata": {
"cell_id": "84546349-680a-41c9-9a0f-3dc2f376a8b2",
"tags": []
},
"source": [
"The contract type is a good feature to analyze what happens to a client churn from that service, a plot from the contract types of not churned clients is showed below."
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"cell_id": "b560ac2d-e6c1-49ec-980e-da39712c2f85",
"tags": []
},
"outputs": [
{
"data": {
"application/vnd.plotly.v1+json": {
"config": {
"linkText": "Export to plot.ly",
"plotlyServerURL": "https://plot.ly",
"showLink": false
},
"data": [
{
"marker": {
"color": [
"#ff8000",
"#0080ff",
"#0080ff"
],
"line": {
"color": "#000000",
"width": 2
}
},
"text": [
2220,
1647,
1307
],
"textfont": {
"size": 14
},
"textposition": "outside",
"type": "bar",
"x": [
"Month-to-month",
"Two year",
"One year"
],
"y": [
2220,
1647,
1307
]
}
],
"layout": {
"autosize": false,
"height": 600,
"template": {
"data": {
"bar": [
{
"error_x": {
"color": "rgb(36,36,36)"
},
"error_y": {
"color": "rgb(36,36,36)"
},
"marker": {
"line": {
"color": "white",
"width": 0.5
}
},
"type": "bar"
}
],
"barpolar": [
{
"marker": {
"line": {
"color": "white",
"width": 0.5
}
},
"type": "barpolar"
}
],
"carpet": [
{
"aaxis": {
"endlinecolor": "rgb(36,36,36)",
"gridcolor": "white",
"linecolor": "white",
"minorgridcolor": "white",
"startlinecolor": "rgb(36,36,36)"
},
"baxis": {
"endlinecolor": "rgb(36,36,36)",
"gridcolor": "white",
"linecolor": "white",
"minorgridcolor": "white",
"startlinecolor": "rgb(36,36,36)"
},
"type": "carpet"
}
],
"choropleth": [
{
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
},
"type": "choropleth"
}
],
"contour": [
{
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
},
"colorscale": [
[
0,
"#440154"
],
[
0.1111111111111111,
"#482878"
],
[
0.2222222222222222,
"#3e4989"
],
[
0.3333333333333333,
"#31688e"
],
[
0.4444444444444444,
"#26828e"
],
[
0.5555555555555556,
"#1f9e89"
],
[
0.6666666666666666,
"#35b779"
],
[
0.7777777777777778,
"#6ece58"
],
[
0.8888888888888888,
"#b5de2b"
],
[
1,
"#fde725"
]
],
"type": "contour"
}
],
"contourcarpet": [
{
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
},
"type": "contourcarpet"
}
],
"heatmap": [
{
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
},
"colorscale": [
[
0,
"#440154"
],
[
0.1111111111111111,
"#482878"
],
[
0.2222222222222222,
"#3e4989"
],
[
0.3333333333333333,
"#31688e"
],
[
0.4444444444444444,
"#26828e"
],
[
0.5555555555555556,
"#1f9e89"
],
[
0.6666666666666666,
"#35b779"
],
[
0.7777777777777778,
"#6ece58"
],
[
0.8888888888888888,
"#b5de2b"
],
[
1,
"#fde725"
]
],
"type": "heatmap"
}
],
"heatmapgl": [
{
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
},
"colorscale": [
[
0,
"#440154"
],
[
0.1111111111111111,
"#482878"
],
[
0.2222222222222222,
"#3e4989"
],
[
0.3333333333333333,
"#31688e"
],
[
0.4444444444444444,
"#26828e"
],
[
0.5555555555555556,
"#1f9e89"
],
[
0.6666666666666666,
"#35b779"
],
[
0.7777777777777778,
"#6ece58"
],
[
0.8888888888888888,
"#b5de2b"
],
[
1,
"#fde725"
]
],
"type": "heatmapgl"
}
],
"histogram": [
{
"marker": {
"line": {
"color": "white",
"width": 0.6
}
},
"type": "histogram"
}
],
"histogram2d": [
{
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
},
"colorscale": [
[
0,
"#440154"
],
[
0.1111111111111111,
"#482878"
],
[
0.2222222222222222,
"#3e4989"
],
[
0.3333333333333333,
"#31688e"
],
[
0.4444444444444444,
"#26828e"
],
[
0.5555555555555556,
"#1f9e89"
],
[
0.6666666666666666,
"#35b779"
],
[
0.7777777777777778,
"#6ece58"
],
[
0.8888888888888888,
"#b5de2b"
],
[
1,
"#fde725"
]
],
"type": "histogram2d"
}
],
"histogram2dcontour": [
{
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
},
"colorscale": [
[
0,
"#440154"
],
[
0.1111111111111111,
"#482878"
],
[
0.2222222222222222,
"#3e4989"
],
[
0.3333333333333333,
"#31688e"
],
[
0.4444444444444444,
"#26828e"
],
[
0.5555555555555556,
"#1f9e89"
],
[
0.6666666666666666,
"#35b779"
],
[
0.7777777777777778,
"#6ece58"
],
[
0.8888888888888888,
"#b5de2b"
],
[
1,
"#fde725"
]
],
"type": "histogram2dcontour"
}
],
"mesh3d": [
{
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
},
"type": "mesh3d"
}
],
"parcoords": [
{
"line": {
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
}
},
"type": "parcoords"
}
],
"pie": [
{
"automargin": true,
"type": "pie"
}
],
"scatter": [
{
"marker": {
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
}
},
"type": "scatter"
}
],
"scatter3d": [
{
"line": {
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
}
},
"marker": {
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
}
},
"type": "scatter3d"
}
],
"scattercarpet": [
{
"marker": {
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
}
},
"type": "scattercarpet"
}
],
"scattergeo": [
{
"marker": {
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
}
},
"type": "scattergeo"
}
],
"scattergl": [
{
"marker": {
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
}
},
"type": "scattergl"
}
],
"scattermapbox": [
{
"marker": {
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
}
},
"type": "scattermapbox"
}
],
"scatterpolar": [
{
"marker": {
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
}
},
"type": "scatterpolar"
}
],
"scatterpolargl": [
{
"marker": {
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
}
},
"type": "scatterpolargl"
}
],
"scatterternary": [
{
"marker": {
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
}
},
"type": "scatterternary"
}
],
"surface": [
{
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
},
"colorscale": [
[
0,
"#440154"
],
[
0.1111111111111111,
"#482878"
],
[
0.2222222222222222,
"#3e4989"
],
[
0.3333333333333333,
"#31688e"
],
[
0.4444444444444444,
"#26828e"
],
[
0.5555555555555556,
"#1f9e89"
],
[
0.6666666666666666,
"#35b779"
],
[
0.7777777777777778,
"#6ece58"
],
[
0.8888888888888888,
"#b5de2b"
],
[
1,
"#fde725"
]
],
"type": "surface"
}
],
"table": [
{
"cells": {
"fill": {
"color": "rgb(237,237,237)"
},
"line": {
"color": "white"
}
},
"header": {
"fill": {
"color": "rgb(217,217,217)"
},
"line": {
"color": "white"
}
},
"type": "table"
}
]
},
"layout": {
"annotationdefaults": {
"arrowhead": 0,
"arrowwidth": 1
},
"coloraxis": {
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
}
},
"colorscale": {
"diverging": [
[
0,
"rgb(103,0,31)"
],
[
0.1,
"rgb(178,24,43)"
],
[
0.2,
"rgb(214,96,77)"
],
[
0.3,
"rgb(244,165,130)"
],
[
0.4,
"rgb(253,219,199)"
],
[
0.5,
"rgb(247,247,247)"
],
[
0.6,
"rgb(209,229,240)"
],
[
0.7,
"rgb(146,197,222)"
],
[
0.8,
"rgb(67,147,195)"
],
[
0.9,
"rgb(33,102,172)"
],
[
1,
"rgb(5,48,97)"
]
],
"sequential": [
[
0,
"#440154"
],
[
0.1111111111111111,
"#482878"
],
[
0.2222222222222222,
"#3e4989"
],
[
0.3333333333333333,
"#31688e"
],
[
0.4444444444444444,
"#26828e"
],
[
0.5555555555555556,
"#1f9e89"
],
[
0.6666666666666666,
"#35b779"
],
[
0.7777777777777778,
"#6ece58"
],
[
0.8888888888888888,
"#b5de2b"
],
[
1,
"#fde725"
]
],
"sequentialminus": [
[
0,
"#440154"
],
[
0.1111111111111111,
"#482878"
],
[
0.2222222222222222,
"#3e4989"
],
[
0.3333333333333333,
"#31688e"
],
[
0.4444444444444444,
"#26828e"
],
[
0.5555555555555556,
"#1f9e89"
],
[
0.6666666666666666,
"#35b779"
],
[
0.7777777777777778,
"#6ece58"
],
[
0.8888888888888888,
"#b5de2b"
],
[
1,
"#fde725"
]
]
},
"colorway": [
"#1F77B4",
"#FF7F0E",
"#2CA02C",
"#D62728",
"#9467BD",
"#8C564B",
"#E377C2",
"#7F7F7F",
"#BCBD22",
"#17BECF"
],
"font": {
"color": "rgb(36,36,36)"
},
"geo": {
"bgcolor": "white",
"lakecolor": "white",
"landcolor": "white",
"showlakes": true,
"showland": true,
"subunitcolor": "white"
},
"hoverlabel": {
"align": "left"
},
"hovermode": "closest",
"mapbox": {
"style": "light"
},
"paper_bgcolor": "white",
"plot_bgcolor": "white",
"polar": {
"angularaxis": {
"gridcolor": "rgb(232,232,232)",
"linecolor": "rgb(36,36,36)",
"showgrid": false,
"showline": true,
"ticks": "outside"
},
"bgcolor": "white",
"radialaxis": {
"gridcolor": "rgb(232,232,232)",
"linecolor": "rgb(36,36,36)",
"showgrid": false,
"showline": true,
"ticks": "outside"
}
},
"scene": {
"xaxis": {
"backgroundcolor": "white",
"gridcolor": "rgb(232,232,232)",
"gridwidth": 2,
"linecolor": "rgb(36,36,36)",
"showbackground": true,
"showgrid": false,
"showline": true,
"ticks": "outside",
"zeroline": false,
"zerolinecolor": "rgb(36,36,36)"
},
"yaxis": {
"backgroundcolor": "white",
"gridcolor": "rgb(232,232,232)",
"gridwidth": 2,
"linecolor": "rgb(36,36,36)",
"showbackground": true,
"showgrid": false,
"showline": true,
"ticks": "outside",
"zeroline": false,
"zerolinecolor": "rgb(36,36,36)"
},
"zaxis": {
"backgroundcolor": "white",
"gridcolor": "rgb(232,232,232)",
"gridwidth": 2,
"linecolor": "rgb(36,36,36)",
"showbackground": true,
"showgrid": false,
"showline": true,
"ticks": "outside",
"zeroline": false,
"zerolinecolor": "rgb(36,36,36)"
}
},
"shapedefaults": {
"fillcolor": "black",
"line": {
"width": 0
},
"opacity": 0.3
},
"ternary": {
"aaxis": {
"gridcolor": "rgb(232,232,232)",
"linecolor": "rgb(36,36,36)",
"showgrid": false,
"showline": true,
"ticks": "outside"
},
"baxis": {
"gridcolor": "rgb(232,232,232)",
"linecolor": "rgb(36,36,36)",
"showgrid": false,
"showline": true,
"ticks": "outside"
},
"bgcolor": "white",
"caxis": {
"gridcolor": "rgb(232,232,232)",
"linecolor": "rgb(36,36,36)",
"showgrid": false,
"showline": true,
"ticks": "outside"
}
},
"title": {
"x": 0.05
},
"xaxis": {
"automargin": true,
"gridcolor": "rgb(232,232,232)",
"linecolor": "rgb(36,36,36)",
"showgrid": false,
"showline": true,
"ticks": "outside",
"title": {
"standoff": 15
},
"zeroline": false,
"zerolinecolor": "rgb(36,36,36)"
},
"yaxis": {
"automargin": true,
"gridcolor": "rgb(232,232,232)",
"linecolor": "rgb(36,36,36)",
"showgrid": false,
"showline": true,
"ticks": "outside",
"title": {
"standoff": 15
},
"zeroline": false,
"zerolinecolor": "rgb(36,36,36)"
}
}
},
"title": {
"text": "Contract Types of not Churned Clients ",
"x": 0.5,
"xanchor": "center",
"y": 0.9,
"yanchor": "top"
},
"xaxis": {
"title": {
"text": "Contract "
}
},
"yaxis": {
"automargin": true,
"title": {
"text": "Count "
}
}
}
},
"text/html": [
"\n",
" \n",
" \n",
"
\n",
" \n",
"
"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"df_aux = dataset.query('Churn == \"No\"')\n",
"df_aux = df_aux[\"Contract\"].value_counts()\n",
"bar_plot(df_aux, \"Contract Types of not Churned Clients \",\n",
" \"Contract \", \"Count \")"
]
},
{
"cell_type": "markdown",
"metadata": {
"cell_id": "a5778511-9798-45f7-8022-db6210e76fc6",
"tags": []
},
"source": [
"Is showed that a Month-to-month contract is the firts when compared to annual contracts, but the difference between the number of contracts is not so big. \n",
"To a better comparation, the same plot is showed for the churned clients."
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"cell_id": "d73d0256-a7f9-48af-9b08-741ece81ff43",
"tags": []
},
"outputs": [
{
"data": {
"application/vnd.plotly.v1+json": {
"config": {
"linkText": "Export to plot.ly",
"plotlyServerURL": "https://plot.ly",
"showLink": false
},
"data": [
{
"marker": {
"color": [
"#ff8000",
"#0080ff",
"#0080ff"
],
"line": {
"color": "#000000",
"width": 2
}
},
"text": [
1655,
166,
48
],
"textfont": {
"size": 14
},
"textposition": "outside",
"type": "bar",
"x": [
"Month-to-month",
"One year",
"Two year"
],
"y": [
1655,
166,
48
]
}
],
"layout": {
"autosize": false,
"height": 600,
"template": {
"data": {
"bar": [
{
"error_x": {
"color": "rgb(36,36,36)"
},
"error_y": {
"color": "rgb(36,36,36)"
},
"marker": {
"line": {
"color": "white",
"width": 0.5
}
},
"type": "bar"
}
],
"barpolar": [
{
"marker": {
"line": {
"color": "white",
"width": 0.5
}
},
"type": "barpolar"
}
],
"carpet": [
{
"aaxis": {
"endlinecolor": "rgb(36,36,36)",
"gridcolor": "white",
"linecolor": "white",
"minorgridcolor": "white",
"startlinecolor": "rgb(36,36,36)"
},
"baxis": {
"endlinecolor": "rgb(36,36,36)",
"gridcolor": "white",
"linecolor": "white",
"minorgridcolor": "white",
"startlinecolor": "rgb(36,36,36)"
},
"type": "carpet"
}
],
"choropleth": [
{
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
},
"type": "choropleth"
}
],
"contour": [
{
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
},
"colorscale": [
[
0,
"#440154"
],
[
0.1111111111111111,
"#482878"
],
[
0.2222222222222222,
"#3e4989"
],
[
0.3333333333333333,
"#31688e"
],
[
0.4444444444444444,
"#26828e"
],
[
0.5555555555555556,
"#1f9e89"
],
[
0.6666666666666666,
"#35b779"
],
[
0.7777777777777778,
"#6ece58"
],
[
0.8888888888888888,
"#b5de2b"
],
[
1,
"#fde725"
]
],
"type": "contour"
}
],
"contourcarpet": [
{
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
},
"type": "contourcarpet"
}
],
"heatmap": [
{
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
},
"colorscale": [
[
0,
"#440154"
],
[
0.1111111111111111,
"#482878"
],
[
0.2222222222222222,
"#3e4989"
],
[
0.3333333333333333,
"#31688e"
],
[
0.4444444444444444,
"#26828e"
],
[
0.5555555555555556,
"#1f9e89"
],
[
0.6666666666666666,
"#35b779"
],
[
0.7777777777777778,
"#6ece58"
],
[
0.8888888888888888,
"#b5de2b"
],
[
1,
"#fde725"
]
],
"type": "heatmap"
}
],
"heatmapgl": [
{
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
},
"colorscale": [
[
0,
"#440154"
],
[
0.1111111111111111,
"#482878"
],
[
0.2222222222222222,
"#3e4989"
],
[
0.3333333333333333,
"#31688e"
],
[
0.4444444444444444,
"#26828e"
],
[
0.5555555555555556,
"#1f9e89"
],
[
0.6666666666666666,
"#35b779"
],
[
0.7777777777777778,
"#6ece58"
],
[
0.8888888888888888,
"#b5de2b"
],
[
1,
"#fde725"
]
],
"type": "heatmapgl"
}
],
"histogram": [
{
"marker": {
"line": {
"color": "white",
"width": 0.6
}
},
"type": "histogram"
}
],
"histogram2d": [
{
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
},
"colorscale": [
[
0,
"#440154"
],
[
0.1111111111111111,
"#482878"
],
[
0.2222222222222222,
"#3e4989"
],
[
0.3333333333333333,
"#31688e"
],
[
0.4444444444444444,
"#26828e"
],
[
0.5555555555555556,
"#1f9e89"
],
[
0.6666666666666666,
"#35b779"
],
[
0.7777777777777778,
"#6ece58"
],
[
0.8888888888888888,
"#b5de2b"
],
[
1,
"#fde725"
]
],
"type": "histogram2d"
}
],
"histogram2dcontour": [
{
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
},
"colorscale": [
[
0,
"#440154"
],
[
0.1111111111111111,
"#482878"
],
[
0.2222222222222222,
"#3e4989"
],
[
0.3333333333333333,
"#31688e"
],
[
0.4444444444444444,
"#26828e"
],
[
0.5555555555555556,
"#1f9e89"
],
[
0.6666666666666666,
"#35b779"
],
[
0.7777777777777778,
"#6ece58"
],
[
0.8888888888888888,
"#b5de2b"
],
[
1,
"#fde725"
]
],
"type": "histogram2dcontour"
}
],
"mesh3d": [
{
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
},
"type": "mesh3d"
}
],
"parcoords": [
{
"line": {
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
}
},
"type": "parcoords"
}
],
"pie": [
{
"automargin": true,
"type": "pie"
}
],
"scatter": [
{
"marker": {
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
}
},
"type": "scatter"
}
],
"scatter3d": [
{
"line": {
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
}
},
"marker": {
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
}
},
"type": "scatter3d"
}
],
"scattercarpet": [
{
"marker": {
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
}
},
"type": "scattercarpet"
}
],
"scattergeo": [
{
"marker": {
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
}
},
"type": "scattergeo"
}
],
"scattergl": [
{
"marker": {
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
}
},
"type": "scattergl"
}
],
"scattermapbox": [
{
"marker": {
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
}
},
"type": "scattermapbox"
}
],
"scatterpolar": [
{
"marker": {
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
}
},
"type": "scatterpolar"
}
],
"scatterpolargl": [
{
"marker": {
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
}
},
"type": "scatterpolargl"
}
],
"scatterternary": [
{
"marker": {
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
}
},
"type": "scatterternary"
}
],
"surface": [
{
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
},
"colorscale": [
[
0,
"#440154"
],
[
0.1111111111111111,
"#482878"
],
[
0.2222222222222222,
"#3e4989"
],
[
0.3333333333333333,
"#31688e"
],
[
0.4444444444444444,
"#26828e"
],
[
0.5555555555555556,
"#1f9e89"
],
[
0.6666666666666666,
"#35b779"
],
[
0.7777777777777778,
"#6ece58"
],
[
0.8888888888888888,
"#b5de2b"
],
[
1,
"#fde725"
]
],
"type": "surface"
}
],
"table": [
{
"cells": {
"fill": {
"color": "rgb(237,237,237)"
},
"line": {
"color": "white"
}
},
"header": {
"fill": {
"color": "rgb(217,217,217)"
},
"line": {
"color": "white"
}
},
"type": "table"
}
]
},
"layout": {
"annotationdefaults": {
"arrowhead": 0,
"arrowwidth": 1
},
"coloraxis": {
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
}
},
"colorscale": {
"diverging": [
[
0,
"rgb(103,0,31)"
],
[
0.1,
"rgb(178,24,43)"
],
[
0.2,
"rgb(214,96,77)"
],
[
0.3,
"rgb(244,165,130)"
],
[
0.4,
"rgb(253,219,199)"
],
[
0.5,
"rgb(247,247,247)"
],
[
0.6,
"rgb(209,229,240)"
],
[
0.7,
"rgb(146,197,222)"
],
[
0.8,
"rgb(67,147,195)"
],
[
0.9,
"rgb(33,102,172)"
],
[
1,
"rgb(5,48,97)"
]
],
"sequential": [
[
0,
"#440154"
],
[
0.1111111111111111,
"#482878"
],
[
0.2222222222222222,
"#3e4989"
],
[
0.3333333333333333,
"#31688e"
],
[
0.4444444444444444,
"#26828e"
],
[
0.5555555555555556,
"#1f9e89"
],
[
0.6666666666666666,
"#35b779"
],
[
0.7777777777777778,
"#6ece58"
],
[
0.8888888888888888,
"#b5de2b"
],
[
1,
"#fde725"
]
],
"sequentialminus": [
[
0,
"#440154"
],
[
0.1111111111111111,
"#482878"
],
[
0.2222222222222222,
"#3e4989"
],
[
0.3333333333333333,
"#31688e"
],
[
0.4444444444444444,
"#26828e"
],
[
0.5555555555555556,
"#1f9e89"
],
[
0.6666666666666666,
"#35b779"
],
[
0.7777777777777778,
"#6ece58"
],
[
0.8888888888888888,
"#b5de2b"
],
[
1,
"#fde725"
]
]
},
"colorway": [
"#1F77B4",
"#FF7F0E",
"#2CA02C",
"#D62728",
"#9467BD",
"#8C564B",
"#E377C2",
"#7F7F7F",
"#BCBD22",
"#17BECF"
],
"font": {
"color": "rgb(36,36,36)"
},
"geo": {
"bgcolor": "white",
"lakecolor": "white",
"landcolor": "white",
"showlakes": true,
"showland": true,
"subunitcolor": "white"
},
"hoverlabel": {
"align": "left"
},
"hovermode": "closest",
"mapbox": {
"style": "light"
},
"paper_bgcolor": "white",
"plot_bgcolor": "white",
"polar": {
"angularaxis": {
"gridcolor": "rgb(232,232,232)",
"linecolor": "rgb(36,36,36)",
"showgrid": false,
"showline": true,
"ticks": "outside"
},
"bgcolor": "white",
"radialaxis": {
"gridcolor": "rgb(232,232,232)",
"linecolor": "rgb(36,36,36)",
"showgrid": false,
"showline": true,
"ticks": "outside"
}
},
"scene": {
"xaxis": {
"backgroundcolor": "white",
"gridcolor": "rgb(232,232,232)",
"gridwidth": 2,
"linecolor": "rgb(36,36,36)",
"showbackground": true,
"showgrid": false,
"showline": true,
"ticks": "outside",
"zeroline": false,
"zerolinecolor": "rgb(36,36,36)"
},
"yaxis": {
"backgroundcolor": "white",
"gridcolor": "rgb(232,232,232)",
"gridwidth": 2,
"linecolor": "rgb(36,36,36)",
"showbackground": true,
"showgrid": false,
"showline": true,
"ticks": "outside",
"zeroline": false,
"zerolinecolor": "rgb(36,36,36)"
},
"zaxis": {
"backgroundcolor": "white",
"gridcolor": "rgb(232,232,232)",
"gridwidth": 2,
"linecolor": "rgb(36,36,36)",
"showbackground": true,
"showgrid": false,
"showline": true,
"ticks": "outside",
"zeroline": false,
"zerolinecolor": "rgb(36,36,36)"
}
},
"shapedefaults": {
"fillcolor": "black",
"line": {
"width": 0
},
"opacity": 0.3
},
"ternary": {
"aaxis": {
"gridcolor": "rgb(232,232,232)",
"linecolor": "rgb(36,36,36)",
"showgrid": false,
"showline": true,
"ticks": "outside"
},
"baxis": {
"gridcolor": "rgb(232,232,232)",
"linecolor": "rgb(36,36,36)",
"showgrid": false,
"showline": true,
"ticks": "outside"
},
"bgcolor": "white",
"caxis": {
"gridcolor": "rgb(232,232,232)",
"linecolor": "rgb(36,36,36)",
"showgrid": false,
"showline": true,
"ticks": "outside"
}
},
"title": {
"x": 0.05
},
"xaxis": {
"automargin": true,
"gridcolor": "rgb(232,232,232)",
"linecolor": "rgb(36,36,36)",
"showgrid": false,
"showline": true,
"ticks": "outside",
"title": {
"standoff": 15
},
"zeroline": false,
"zerolinecolor": "rgb(36,36,36)"
},
"yaxis": {
"automargin": true,
"gridcolor": "rgb(232,232,232)",
"linecolor": "rgb(36,36,36)",
"showgrid": false,
"showline": true,
"ticks": "outside",
"title": {
"standoff": 15
},
"zeroline": false,
"zerolinecolor": "rgb(36,36,36)"
}
}
},
"title": {
"text": "Contract Types of Churned Clients ",
"x": 0.5,
"xanchor": "center",
"y": 0.9,
"yanchor": "top"
},
"xaxis": {
"title": {
"text": "Contract "
}
},
"yaxis": {
"automargin": true,
"title": {
"text": "Count "
}
}
}
},
"text/html": [
"\n",
" \n",
" \n",
"
\n",
" \n",
"
"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"df_aux = dataset.query('Churn == \"Yes\"')\n",
"df_aux = df_aux[\"Contract\"].value_counts()\n",
"bar_plot(df_aux, \"Contract Types of Churned Clients \",\n",
" \"Contract \", \"Count \")"
]
},
{
"cell_type": "markdown",
"metadata": {
"cell_id": "da76f779-776c-4d75-bd18-d0e9c4e8e439",
"tags": []
},
"source": [
"Now, the difference between a Month-to-month and annual contractts is bigger, and can lead to a conclusion that annual contracts are better to retain the clients, perhaps fidelity promotions could aid to reduce the churn rate. \n",
"As the problem can be examined more deep on Month-to-month contract types, a good idea is see the Monthly Charges and Total Charges distribution for the not churned clients of this contract.\n"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"cell_id": "632a627e-7764-4629-9408-93e86f15d99e",
"tags": []
},
"outputs": [
{
"data": {
"application/vnd.plotly.v1+json": {
"config": {
"linkText": "Export to plot.ly",
"plotlyServerURL": "https://plot.ly",
"showLink": false
},
"data": [
{
"marker": {
"line": {
"color": "#000000",
"width": 2
}
},
"showlegend": false,
"type": "histogram",
"x": [
29.85,
89.1,
29.75,
49.95,
105.5,
90.05,
59.6,
55.3,
95.5,
20.2,
45.25,
74.8,
76.2,
84.5,
49.25,
90.25,
69.5,
100.5,
89.9,
75.3,
79.85,
49.05,
64.5,
54.65,
74.75,
50.55,
103.8,
99.3,
33.75,
82.05,
74.7,
111.05,
20.2,
19.45,
24.3,
91.65,
89.85,
85.2,
20.7,
50.7,
20.85,
19.75,
85.95,
75,
69.5,
68.55,
19.7,
80.9,
84.15,
56,
69.7,
20.4,
24.7,
105.35,
45.3,
51.8,
30.4,
56.6,
96.55,
111.35,
20.75,
80.05,
78.3,
68.85,
25.25,
86.8,
58.75,
80,
89.9,
93.5,
25.15,
73.15,
94.4,
54.8,
75.35,
19.85,
45,
89.85,
105,
107.05,
64.95,
55,
50.55,
55.15,
51.2,
25.4,
54.45,
44.35,
89.35,
19.7,
20.25,
100.8,
74.55,
90.4,
81.85,
101.15,
19.25,
89.05,
69.35,
91.5,
44.8,
102.7,
82.9,
35.9,
82.65,
94.8,
54.65,
67.45,
72.1,
44.95,
89.15,
54.1,
20.2,
75.9,
59.95,
19.15,
96.1,
25.35,
90.4,
44,
95.6,
84.8,
44.3,
19.9,
95.05,
109.9,
54.6,
93.95,
74.95,
87.35,
70.65,
73.25,
24.3,
69.85,
40.7,
51.65,
85.95,
75.6,
53.45,
44.45,
89.85,
55.05,
112.95,
101.55,
64.8,
80.4,
94.75,
69.75,
60.2,
104.15,
20,
75.1,
19.65,
69.45,
70.05,
53.6,
76.05,
75.7,
81.45,
100.15,
59,
20.4,
60.9,
84.05,
78,
19.85,
106.45,
105.45,
95,
70.05,
20.05,
51.6,
85.5,
79.95,
89.55,
81.55,
58.95,
19.55,
19.75,
19.9,
70.2,
49.3,
23.6,
69.7,
64.3,
110.85,
70.5,
94.55,
19.65,
19,
20,
84.3,
45.6,
65.55,
74.55,
48.85,
25.25,
87.55,
78.55,
34.55,
95.15,
84.25,
55,
25.25,
70,
24.8,
95.1,
20.35,
45.25,
20.05,
74.75,
30.2,
24.85,
107.95,
81.4,
64.4,
71.1,
49.9,
83.4,
20.45,
20.65,
83.15,
84.9,
20.55,
49.25,
75.3,
80.1,
81,
86,
89.15,
85.65,
50.35,
80.35,
21.25,
80.85,
20.35,
75.5,
90.15,
50.6,
79.35,
80.45,
44.05,
75.05,
56.7,
71.35,
90.35,
19.85,
20.8,
35.8,
78.85,
74.25,
20.45,
40.3,
44.8,
54.75,
60.85,
45,
64.2,
25.55,
20,
55.2,
20.05,
84.6,
106.35,
63.95,
25.55,
44.85,
88.8,
93.25,
79.2,
30.85,
24.85,
64.35,
20.5,
34.8,
54.65,
20.05,
84.35,
89.3,
81.1,
94.3,
94.4,
19.5,
56.4,
19.95,
89,
75.4,
80.7,
20.45,
75.4,
81.7,
76.3,
75.1,
83.25,
19.9,
30.15,
79.85,
104.1,
20.5,
91.35,
75.6,
55.1,
58.95,
95.1,
56.75,
81.75,
86.1,
29.8,
60.9,
20.85,
93.85,
75.25,
19.5,
43.8,
19.75,
19.15,
70.3,
69.55,
20,
50.15,
95.9,
49.5,
40.05,
19.5,
51.05,
84.7,
86.1,
70.35,
69.75,
71.6,
49.15,
70.2,
99.3,
50.25,
35.5,
50.2,
62.25,
89.25,
21.1,
96.65,
69.55,
98.85,
87.65,
74.75,
80.55,
81.25,
55.7,
24.8,
20,
79.75,
50.15,
98.85,
105.25,
70.55,
49.05,
19.4,
86.05,
19.25,
81.95,
65.15,
20.2,
75.2,
56.8,
75.5,
60.25,
40.35,
18.85,
54.85,
94.1,
95.1,
53.8,
100.4,
80,
94.3,
53.75,
87.9,
85.7,
50.45,
60,
19.45,
78.9,
49.4,
25.55,
70.15,
69.4,
69.55,
70.45,
65.75,
24.6,
100.85,
87.2,
64.4,
58.7,
20.15,
64.5,
28.5,
90.45,
105.15,
19.45,
50.3,
80.15,
51.25,
80.25,
19.45,
88.2,
62.8,
107.5,
80.7,
75.6,
59.55,
19.95,
24.6,
66.7,
19.95,
54.25,
25.15,
75.35,
20.5,
49.65,
20.45,
19.5,
75.2,
111.45,
70.15,
82.15,
60.9,
95.3,
19.85,
66.8,
70.7,
58.35,
85.8,
20.35,
82.85,
84.35,
19.95,
66.25,
92.55,
101.45,
95.5,
49.85,
89.55,
99.8,
74.15,
73.85,
20.75,
68.95,
109.4,
49,
55.8,
98.55,
50.05,
20.85,
19.5,
19.35,
69.5,
48.8,
94.5,
20.65,
95.9,
64.95,
74.6,
49.2,
19.2,
88.65,
95.95,
20.25,
96.85,
51.25,
19.55,
79.5,
98.15,
20.25,
79.15,
94.25,
40.2,
71.1,
88.45,
84.8,
92.6,
20.55,
19.6,
43.55,
109.85,
20.65,
95.4,
56.2,
25.75,
19.6,
64.2,
50.3,
80.3,
50,
85.9,
80.8,
81.5,
20.9,
67.25,
20.35,
34.65,
69.35,
81.55,
67.8,
111.4,
46.3,
20.05,
36,
48.95,
64.95,
21.1,
18.85,
70.35,
19.7,
59.45,
29.05,
59.2,
75.9,
90.05,
102.6,
43.8,
19.85,
90.35,
80.95,
56.15,
34.4,
90.8,
25.6,
25.4,
108.8,
76.85,
115.65,
74.6,
80.15,
45.75,
50.15,
70.55,
58.85,
97.55,
35.65,
90.45,
73.85,
82.75,
61.35,
54.75,
107.95,
83.8,
94.9,
94.2,
49.9,
71.05,
19.05,
44.25,
20.4,
71.4,
110.75,
54.3,
19.4,
89.65,
45.4,
93.25,
48.75,
54.9,
91.15,
66.05,
30.4,
69.4,
73.65,
43.85,
69.7,
20.65,
79.35,
75.5,
19.2,
74.35,
45.65,
54.2,
90.65,
50.9,
74.85,
63.55,
47.95,
45,
90.05,
75.95,
67.45,
50.5,
44.05,
45.55,
93.8,
20.75,
44.65,
60.2,
70.3,
31.1,
50.95,
69.1,
43.95,
69.95,
90.95,
92,
78.5,
30.5,
64.6,
51.1,
54.95,
20.45,
60.35,
85.35,
81.05,
20.5,
20.2,
20.9,
21.05,
54.65,
49.8,
90.4,
50.2,
95.5,
95.4,
53.1,
84.85,
34.25,
88.6,
70.7,
54.8,
85.6,
90.7,
95.25,
19.95,
83.55,
75.5,
20.15,
85.7,
61.8,
49.9,
86.25,
60.95,
25.05,
63.95,
74.3,
70.6,
64.45,
69.65,
24.7,
77.4,
85.4,
103.85,
108.45,
81,
92.95,
85.35,
100.75,
19.9,
101.05,
106.05,
75.3,
24.7,
29.5,
24.8,
19.65,
94.05,
90.75,
78.85,
80.55,
70.2,
93.35,
44.95,
20.2,
61.9,
80.15,
20.45,
80.45,
44.45,
74.55,
20.15,
106.6,
91,
66.85,
20.15,
50.5,
72.9,
19,
19.55,
84.1,
50.1,
74.6,
96.6,
60.85,
43.95,
86.05,
50.2,
31.2,
20.2,
63.85,
19.55,
108.95,
89.95,
101.15,
70.5,
69.9,
71.45,
95.85,
100.8,
54.45,
70.5,
69.35,
51.2,
52.15,
91.55,
49.85,
104.15,
48.2,
100.15,
55.9,
64.4,
85.3,
45.2,
90.25,
97.7,
69.85,
104.5,
20.7,
90.6,
95.45,
19.95,
85.7,
102.05,
64.4,
65.2,
85.05,
55.8,
106.4,
46.1,
20.05,
33.6,
84,
19.7,
80.35,
45.2,
72.75,
39.2,
44.75,
82.65,
93.9,
25.7,
19.4,
55.3,
103.75,
26.05,
91.05,
29.65,
50.2,
105.3,
55.45,
59.25,
90.7,
30.25,
49.85,
93,
54.55,
19.7,
80.45,
35.75,
86.45,
38.55,
39.9,
70.05,
20.3,
35.65,
19.65,
59.8,
73.55,
61.4,
19.45,
81.5,
74.4,
74.9,
59.65,
74.45,
20.45,
70.45,
85.65,
19.85,
106.35,
86.05,
44.55,
45,
20.5,
60.45,
20.35,
90.75,
19.6,
53.8,
99.65,
91.45,
100.4,
76.15,
69.95,
20.05,
19.45,
19.2,
50,
60,
84.55,
45.45,
19.25,
108.25,
101.3,
20,
105.3,
65.25,
19.6,
49.4,
88.4,
100.6,
19.45,
75.15,
70.1,
100.55,
104.35,
80.45,
68.35,
80.55,
66.7,
86.4,
83.4,
94.95,
59.9,
19.8,
20,
59.6,
84.35,
55.55,
66.1,
52.1,
105.4,
20.05,
91,
49.8,
19.65,
19.85,
96.35,
24.15,
44,
53.95,
29.35,
20.45,
25.25,
44.9,
20.5,
24.5,
108.25,
20.4,
55.3,
20.25,
72.95,
89.45,
19.4,
24.85,
41.35,
19.6,
20.25,
19.65,
81.05,
67.6,
70.15,
84.8,
63.15,
29.1,
50.05,
20,
44.4,
94.1,
88.95,
48.85,
80.1,
56.05,
89.8,
20.35,
97.1,
36.65,
55.2,
26.35,
50.15,
98.7,
84.4,
25.1,
48.25,
94.2,
62.15,
79.3,
20.3,
99,
50.15,
20.55,
101.4,
44.6,
63.75,
84.6,
85.75,
87,
79.95,
64.9,
104.95,
20.45,
74.1,
35.5,
48.8,
93.5,
44.45,
43.35,
89.8,
69.9,
105.35,
19.4,
102.65,
50.95,
75.6,
80.75,
90.4,
20.2,
20.25,
99,
80.3,
19.55,
100.75,
53.75,
46.35,
90.4,
60.65,
24.1,
19.5,
85.95,
19.2,
90,
34,
25.25,
60.6,
74.75,
20.6,
20.4,
20.3,
25,
80.45,
89.2,
19.95,
19.95,
20.4,
20.7,
69.3,
49.9,
44.45,
55.05,
34.25,
100.05,
68.65,
45.8,
75.75,
20.55,
50.95,
59.45,
24.3,
95.65,
84.8,
20.4,
94.45,
79.8,
74.05,
49.15,
19.1,
95.4,
75.15,
69.95,
19,
38.85,
20.35,
74.3,
19.2,
76.45,
72.8,
18.95,
101.75,
75.45,
64.1,
25.65,
75.1,
54.4,
72.75,
19.05,
94.85,
69.6,
90.7,
101.4,
48.8,
20,
89.85,
19.8,
29.35,
80.55,
55.25,
20,
19.65,
80,
80.25,
20.45,
29.75,
44.9,
29.8,
71.95,
20.75,
56.3,
84.45,
29.9,
55.3,
49.45,
39.7,
54.5,
55.55,
104.5,
101.8,
93.2,
24.4,
70.55,
85.8,
91.1,
100.85,
105.1,
84.9,
88.5,
35,
55.15,
50.95,
64,
49.3,
20.05,
94.75,
80,
44.8,
20.3,
19.2,
59.1,
20.25,
75.55,
70.25,
50.3,
25,
75.35,
43.8,
84.05,
85.05,
53.45,
19.95,
74.65,
55.6,
48.7,
104.9,
19.4,
19.3,
20.65,
55.15,
70.6,
19,
90.7,
84.3,
20.45,
86.8,
87.8,
69.85,
56.3,
109.55,
69.5,
94.3,
71.3,
98.8,
44.95,
35.65,
19.5,
100.05,
55.7,
91.15,
83.85,
45.9,
19.7,
91.5,
51.3,
104.75,
85.75,
74.15,
50.7,
45,
77.8,
83.45,
59.9,
29.2,
46.6,
74.3,
69.3,
24.95,
84.75,
19.75,
44.9,
75.25,
20.95,
55.5,
19.45,
84.85,
19.6,
74.2,
69,
79.15,
40.65,
95.7,
71.05,
59.45,
43.9,
90.5,
99.15,
62.1,
79.5,
19.55,
20.35,
51.7,
65.1,
81.2,
80.5,
75,
69.05,
59.7,
40.75,
95.7,
46.3,
81.3,
20,
66.15,
19.6,
49.8,
73.7,
54.25,
50,
72.25,
96.1,
55.3,
69.5,
79.65,
71.25,
19.7,
104.1,
19.05,
69.7,
89.9,
19.4,
54.25,
88.4,
50.8,
111.5,
24.25,
20.5,
30.55,
84.9,
75.35,
98.05,
69.15,
98.85,
89.6,
83.25,
84.3,
50.75,
78.5,
48.95,
99.65,
54.55,
20.45,
69.8,
84.05,
49.2,
71.65,
106.5,
58.5,
109.45,
29.15,
20.05,
49.55,
73.6,
49,
25.45,
77.75,
26.2,
50.4,
84.05,
105.2,
75.75,
95.3,
19.85,
69.1,
20.25,
54.75,
81.45,
100.3,
20,
79.85,
73.55,
19.3,
44.55,
54.45,
112.9,
94.05,
55.3,
74.75,
100.5,
20.05,
95,
45.45,
20,
49.2,
19.65,
72.8,
109.65,
65,
114.1,
20.65,
25.35,
102.55,
24,
103.1,
43.75,
100.65,
44.8,
79.8,
88.85,
74.95,
19.7,
51.3,
109.1,
29.9,
80.6,
20.8,
89.95,
69.95,
66.3,
94.65,
34.7,
95.95,
71.05,
19.7,
68.25,
20.15,
50.95,
25.15,
20.25,
44,
55.8,
57.65,
94.8,
45.9,
57.55,
29.25,
69.95,
50.9,
90.7,
85.2,
54.55,
38.5,
92.9,
54.5,
99.75,
20.4,
54.35,
108.1,
45.35,
18.85,
25.05,
51,
84.65,
44.65,
93.25,
20.25,
94.1,
51.35,
50.15,
98.9,
60.25,
56.25,
50.1,
50.15,
74,
38.9,
79.55,
46.3,
95.8,
78.15,
20.9,
49.9,
68.9,
20.25,
76,
74,
82.3,
89.4,
99.15,
29.45,
59.15,
44.75,
49.55,
99.45,
74.8,
71.55,
94.95,
86.1,
19.55,
84.05,
36.25,
98.6,
103.65,
20.1,
80.5,
39.85,
103.85,
67.8,
19.35,
89,
55,
19.75,
45.2,
89.75,
49.95,
87.95,
19.5,
86.55,
45.65,
73.3,
101.35,
33.6,
20.7,
108.75,
19.75,
70.05,
84.75,
85.55,
43.55,
54.9,
75.1,
25.05,
19.3,
70.3,
20.25,
19.95,
19.75,
64.1,
90.55,
56.1,
88.75,
99.4,
104.45,
25.75,
20.95,
25.4,
35,
70.2,
90.95,
88.05,
46,
58.55,
110.1,
69.75,
50.6,
79.1,
80.35,
70.15,
67.45,
20.75,
69.9,
51.1,
90.55,
76.4,
84.95,
99.65,
45.4,
48.65,
66.4,
44.55,
20.35,
91.8,
50.35,
18.8,
20.45,
98.7,
89.45,
85.6,
79.85,
20.15,
80,
48.75,
20.25,
100.4,
57.95,
59.5,
19.2,
59.55,
103.1,
24.7,
110.2,
62.45,
89.55,
78.9,
20.35,
94.65,
49.9,
20.75,
75.4,
21.05,
88.85,
66.4,
69.2,
61.4,
69.8,
75.65,
90.7,
80.5,
60.6,
44.75,
107.7,
93.9,
19.4,
75,
78.2,
94.2,
44.65,
98.1,
19.55,
54.2,
40.15,
70.35,
89.2,
19.75,
84.3,
66.05,
19.9,
68.15,
80.6,
83.2,
45.55,
75.3,
93.4,
73.75,
88.15,
49.2,
49,
49.8,
20.95,
79.3,
44.15,
105.5,
92.7,
96.95,
20.45,
108.2,
20.15,
55.75,
105.35,
18.95,
69.8,
106.15,
25.25,
19.75,
60.95,
81.15,
85.9,
95,
21.2,
20.3,
56.25,
103.65,
35.1,
99.1,
59.55,
20.25,
54.6,
20.7,
94.75,
49.45,
83.8,
95.35,
74.05,
89.6,
54.2,
19.3,
65.05,
18.75,
93.6,
24.4,
65.25,
50.55,
70.7,
45.25,
70.3,
26.45,
75.8,
25.1,
44.45,
20.15,
19.2,
19.25,
61.2,
35.05,
44,
20,
58.4,
94.1,
90.85,
19.9,
66.4,
100.7,
19.85,
94.65,
45.85,
104.35,
61.15,
78.95,
96.85,
96.6,
84.6,
79,
94.65,
100.45,
91.25,
72.45,
69.15,
91.55,
68.95,
51.55,
96.8,
70.05,
78.75,
19.55,
54.7,
84.85,
20,
19.35,
74.9,
19.8,
54.65,
91.7,
20.3,
99.8,
19.9,
83.05,
41.1,
45,
104.25,
78.35,
33.45,
94.6,
69.15,
24.9,
48.8,
63.05,
100.85,
80.55,
19.3,
59.05,
76.55,
94.9,
20.45,
92.55,
65.6,
84.35,
85.15,
49.7,
30.2,
56.35,
107.55,
39.2,
79.55,
19.6,
99.95,
59.8,
49.75,
44.55,
103.45,
57.2,
97.05,
18.9,
74.45,
24.4,
55.5,
84.3,
100.2,
20.4,
94.75,
44.35,
74.55,
50.1,
19.85,
19.55,
93.8,
59.65,
79.55,
29.8,
45.5,
30.05,
49.5,
111.15,
20.6,
94.5,
20.1,
34.65,
52.3,
65,
95.6,
69.8,
50.3,
101.5,
89.15,
19.4,
78.8,
96.8,
104.6,
80.05,
45.15,
73.15,
105.35,
45.65,
79.95,
75.85,
48.8,
35.2,
66.3,
75.35,
104.45,
92.15,
95.7,
71.35,
40.6,
20.35,
54.4,
20.45,
96.75,
106.65,
59.45,
58.6,
49.7,
73.5,
83.4,
85.9,
75.65,
49.85,
103.05,
99.7,
81.9,
19.75,
72.6,
116.5,
89.25,
19.25,
30.75,
86.2,
30.1,
20.1,
20.35,
94.55,
76.25,
74.35,
54.15,
19.45,
34.95,
53.65,
19.65,
45.9,
44.8,
45.8,
104.4,
101.5,
54.3,
103.95,
70.7,
24.85,
91.2,
59.45,
92.55,
24.5,
20.6,
65.5,
21.15,
96.2,
44.4,
20.3,
81.15,
54.75,
89.3,
94.55,
107.5,
76.05,
77.9,
90.65,
44.85,
59.65,
66.4,
109.6,
48.8,
20.55,
108.75,
105.9,
65.5,
40.45,
70.45,
90.1,
66.25,
89.7,
81.9,
19.1,
50,
85.45,
98.65,
61.65,
89.35,
95.4,
19.25,
20.35,
90.8,
104.95,
61.3,
64.4,
45.8,
30.5,
69.15,
105.1,
19.75,
70.4,
86.2,
94,
50.3,
80.55,
100.45,
84.75,
95.3,
54.5,
49.6,
45.45,
107.75,
44.75,
19.7,
51,
88.85,
79,
74.2,
81,
49.6,
84.6,
69.05,
45.4,
50.75,
25.2,
55.7,
65.35,
25.1,
20.2,
101.3,
55.3,
48.45,
55.7,
64.65,
69.2,
20.05,
95.4,
80.35,
78.85,
86.55,
42.4,
19.6,
80.2,
31.65,
94.15,
20.65,
76.85,
20.15,
95.1,
95.15,
20.45,
19.15,
83.75,
19.4,
70.8,
60.2,
100.4,
54.5,
20.75,
20.35,
51.1,
89.8,
20.55,
64.05,
74.85,
25,
26.35,
54.7,
20.65,
69.1,
20.05,
48.6,
49.75,
94.75,
93,
19.85,
95.25,
25.05,
20.15,
101.25,
69.6,
19.75,
35,
74.65,
54.8,
85.3,
79.3,
76.5,
86.85,
19.65,
45.55,
78.1,
20.3,
55.3,
80.65,
51.05,
19.9,
87.3,
20.05,
83.25,
99.85,
19.9,
19.05,
96.5,
25.7,
91.55,
105.7,
70.25,
20.4,
60.55,
65.6,
20.3,
89.2,
74.8,
25.15,
50.85,
102.4,
55.5,
106.4,
88.8,
80.05,
75.55,
49.55,
66.4,
85.95,
20.6,
44.6,
70.55,
20.05,
90.05,
34.3,
105.05,
51.4,
71.85,
75.4,
78.75,
70.4,
76.1,
48.8,
50.55,
44.65,
70.5,
20.85,
19.65,
44,
75.4,
20.3,
50.3,
50.25,
51.65,
59.85,
75.7,
50.85,
85,
44.3,
60.9,
34.2,
54.3,
19.95,
78.8,
89.25,
78.65,
89.1,
59.9,
108.9,
33.6,
34.85,
95.3,
44.95,
24.7,
100.3,
25.45,
50.7,
55,
55.05,
35.9,
80.75,
61.75,
87.6,
89.15,
20.05,
34.3,
84.25,
50.35,
79.15,
94.7,
74.95,
89.75,
24.9,
30.35,
19.35,
74.55,
56.15,
20.45,
18.9,
45.2,
19.45,
94.9,
29.3,
109.4,
19.95,
76.6,
85.3,
65.85,
99.4,
20,
55,
61.55,
45.9,
87.1,
49.5,
73.8,
18.8,
54.1,
49.8,
95,
19.65,
70.2,
19.75,
19.95,
25.15,
54.15,
59.8,
83.85,
75.3,
66.65,
59.45,
78.1,
39.9,
53.4,
24.9,
44.7,
83.85,
20.2,
19.95,
90,
91.05,
85.8,
19.65,
74.35,
89.1,
70.65,
90.05,
19.4,
88.75,
91,
55.7,
20.05,
55.65,
74.7,
80.7,
25.15,
95.65,
89.4,
20.05,
20.7,
100.6,
74,
99.05,
74.5,
19.25,
39.45,
44.85,
19.9,
45.25,
33.45,
44.95,
93.5,
20.05,
79.45,
80,
54.9,
19.9,
70.35,
73.85,
21.05,
24.95,
75.85,
90.15,
69.65,
74.3,
20.25,
96.9,
104.1,
56.55,
68.6,
69.05,
20.05,
94.4,
54.95,
79.4,
62.8,
74.9,
74.85,
92.95,
104.35,
19.55,
56.85,
49.75,
92.4,
91.95,
73.1,
50.65,
70.1,
84.9,
19.35,
61,
106.9,
101.35,
55.35,
19.5,
90.65,
19.55,
87.75,
81.3,
44.3,
49.15,
29.45,
85.3,
70.35,
74.15,
75.05,
75.9,
53.45,
69.95,
97,
73.55,
29.8,
103.05,
20.3,
56.25,
60.9,
59.65,
54.85,
34,
65.8,
105.8,
24.4,
73.05,
51.15,
54.35,
100,
98.7,
73.8,
20.05,
106.2,
99.7,
29.15,
90.1,
59.05,
20.3,
103.5,
20.05,
96.35,
66.6,
44.5,
80.1,
20.4,
50.1,
86.65,
20.15,
78.75,
55.55,
79,
74.6,
20.1,
20.05,
19.85,
20.2,
67.45,
29.75,
54.65,
29.3,
83.85,
103.65,
99.05,
43.95,
23.5,
94.3,
29.15,
50.25,
74.65,
48.25,
96.55,
85.6,
51.1,
19.9,
98.35,
85.45,
95.9,
100.75,
89.2,
19.5,
45.3,
89.55,
50.35,
20.35,
55.9,
24,
79.9,
89.75,
19.4,
19.9,
55.7,
78.9,
20.65,
19.65,
29.9,
45,
44.8,
51.1,
24.7,
109.95,
20.8,
85.1,
69.05,
70.15,
89.1,
90.35,
85.7,
94,
93.35,
50.55,
81.3,
20.7,
79.05,
103.6,
79.7,
19.3,
55.75,
89.65,
45.85,
55.95,
69,
83.55,
61.9,
20,
92.85,
74.6,
94.6,
49.2,
86.05,
35.15,
105.35,
80.7,
89.85,
29.05,
80.4,
43.85,
44.5,
53.55,
85.5,
89.4,
79.85,
74.45,
64.4,
20.05,
56.75,
35.75,
19.1,
45.55,
49.4,
19.8,
45.05,
86.25,
95.55,
102.6,
94.2,
49.7,
24.2,
65.45,
83.2,
25,
69.5,
93.6,
76.1,
80.5,
35.75,
95.1,
93.4,
89.2,
85.2,
49.95,
19.2,
103.5,
84.8,
95.05,
73.35,
44.4,
20.05,
69.5,
78.7,
29.6
],
"xaxis": "x",
"yaxis": "y"
},
{
"marker": {
"line": {
"color": "#000000",
"width": 2
}
},
"showlegend": false,
"type": "histogram",
"x": [
29.85,
1949.4,
301.9,
587.45,
2686.05,
1862.9,
2970.3,
1530.6,
181.65,
20.2,
45.25,
3548.3,
981.45,
3906.7,
97,
3838.75,
1752.65,
4707.1,
5450.7,
244.1,
887.35,
49.05,
177.4,
482.25,
2111.3,
565.35,
4327.5,
918.75,
1009.25,
2570.2,
74.7,
7107,
20.2,
19.45,
100.2,
3954.1,
248.4,
2151.6,
112.75,
350.35,
62.9,
19.75,
1215.65,
1778.5,
1071.4,
564.35,
113.5,
1152.8,
1821.95,
764.55,
135.2,
321.4,
780.2,
1559.25,
45.3,
1023.85,
82.15,
2379.1,
1901.65,
6519.75,
20.75,
1112.3,
1033.95,
2958.95,
25.25,
1975.85,
3437.45,
624.6,
2723.15,
4747.5,
702,
1305.95,
6126.15,
731.3,
273.4,
193.05,
1228.65,
4925.35,
2007.25,
2172.05,
1339.8,
771.95,
244.75,
322.9,
498.25,
25.4,
3687.75,
927.15,
567.8,
220.35,
20.25,
3437.5,
3015.75,
356.65,
3141.7,
3741.85,
19.25,
1886.25,
341.6,
3236.35,
44.8,
5138.1,
880.05,
973.65,
1470.05,
3565.65,
1830.1,
4508.65,
72.1,
996.85,
574.35,
889,
83.75,
1373.05,
1406,
19.15,
3646.8,
25.35,
4063,
44,
2595.25,
2309.55,
89.3,
367.55,
3944.5,
3694.7,
1803.7,
2861.45,
2149.05,
4473,
3545.05,
1195.75,
132.25,
515.45,
449.3,
2838.55,
858.6,
1395.05,
119.5,
1183.8,
3161.2,
55.05,
1882.55,
5070.4,
1166.7,
2937.65,
759.55,
1545.4,
3582.4,
2494.65,
38,
75.1,
100.9,
1614.05,
564.4,
1315.35,
2747.2,
554.05,
1671.6,
1415,
114.15,
20.4,
1785.65,
4326.8,
851.8,
19.85,
6300.15,
5916.95,
2852.4,
302.6,
265.45,
1442,
4713.4,
174.45,
1021.75,
5029.05,
601.6,
19.55,
311.6,
19.9,
760.05,
49.3,
89.05,
516.15,
445.95,
3204.4,
597.9,
3365.4,
38.8,
19,
61.7,
2438.6,
45.6,
237.2,
1170.5,
631.4,
186.3,
4884.85,
522.95,
362.6,
2395.7,
1968.1,
2473.95,
394.85,
1732.6,
475.25,
865.1,
697.65,
428.7,
20.05,
238.1,
1453.1,
493.4,
313.6,
3775.85,
195.65,
71.1,
49.9,
4149.45,
20.45,
20.65,
2848.45,
2516.2,
33.6,
208.45,
2263.4,
2211.8,
1683.7,
1164.05,
4245.55,
2664.3,
1277.5,
5589.3,
204.55,
356.1,
92.75,
1901.05,
2423.4,
1653.45,
3344.1,
137.1,
202.15,
202.9,
1652.95,
515.75,
190.5,
57.2,
20.8,
363.15,
1600.25,
3089.1,
237.3,
92.5,
220.45,
1510.3,
2003.6,
298.7,
143.65,
507.4,
20,
1058.1,
94.15,
2088.05,
6751.35,
318.1,
372.45,
1442.6,
3340.55,
5774.55,
2854.95,
394.1,
62,
352.65,
104.3,
113.95,
1665.2,
20.05,
609.65,
2823,
2619.25,
2679.7,
4914.9,
27.55,
234.85,
170.9,
1288.3,
1643.55,
2193,
255.35,
1189.4,
1820.9,
2404.15,
1212.85,
308.05,
320.45,
382.2,
2001,
5645.8,
77.6,
2896.55,
535.55,
1253.15,
955.15,
2162.6,
245.15,
2028.8,
2723.75,
220.45,
551.95,
60.65,
4733.1,
888.65,
413,
540.95,
19.75,
537.35,
132.4,
284.9,
417.7,
160.85,
827.45,
49.5,
162.45,
470.2,
2066,
392.5,
3861.45,
2552.9,
3557.7,
1957.1,
649.4,
1046.5,
4209.95,
152.3,
552.7,
1815.3,
612.95,
2210.2,
21.1,
5580.8,
200.2,
4564.9,
2766.4,
1129.35,
80.55,
580.1,
259.4,
324.15,
417.65,
769.1,
2058.5,
3145.9,
4997.5,
1493.55,
593.05,
529.8,
3865.6,
48.35,
2070.05,
723.35,
98.35,
775.3,
1074.65,
2324.7,
170.5,
1677.85,
18.85,
370.4,
5475.9,
2326.05,
283.95,
3217.65,
1029.35,
3953.15,
3196,
1500.5,
256.75,
765.45,
1259.35,
340.85,
1348.95,
611.65,
467.85,
194.2,
571.45,
521.35,
4300.45,
1111.2,
190.1,
4847.35,
4017.45,
1398.6,
168.6,
536.35,
1888.45,
629.35,
2117.25,
4730.9,
19.45,
92.75,
194.55,
612.1,
303.7,
86.05,
4159.45,
62.8,
3242.5,
1614.2,
402.5,
1646.45,
147.5,
86.35,
579,
187.75,
1221.55,
25.15,
1114.55,
563.05,
2553.35,
250.8,
178.85,
633.85,
5315.1,
735.5,
4904.85,
2033.85,
2192.9,
19.85,
3970.4,
129.2,
740.55,
2440.25,
20.35,
319.6,
1938.05,
58.3,
546.45,
4039,
2948.6,
3418.2,
865.75,
6373.1,
5985.75,
741.4,
3122.4,
739.9,
593.85,
7227.45,
1291.35,
154.55,
2031.95,
50.05,
473.9,
106.8,
152.6,
1199.4,
2555.05,
2979.2,
654.85,
2234.95,
547.8,
74.6,
571.15,
156.85,
2683.2,
4456.65,
36.8,
1235.55,
51.25,
19.55,
795.65,
4993.4,
61.45,
4018.55,
6081.4,
1478.85,
1247.75,
2130.55,
1203.9,
1579.7,
96.1,
55.25,
335.4,
7002.95,
158.95,
293.15,
1093.4,
882.55,
300.4,
475,
217.1,
4896.35,
1474.9,
2199.05,
457.1,
3107.3,
518.3,
832.3,
45.3,
246.6,
261.65,
4509.5,
653.15,
1183.05,
639.45,
20.05,
780.15,
273.25,
493.65,
385.55,
84.2,
120.25,
675.6,
1611.65,
44.75,
1191.2,
866.4,
2627.2,
4009.2,
43.8,
573.05,
3419.3,
4859.1,
1439.35,
592.75,
4921.2,
901.25,
1139.2,
7082.45,
663.55,
5125.5,
548.9,
319.85,
344.2,
1655.35,
1943.9,
465.7,
6669.05,
425.1,
5044.8,
196.4,
417.75,
3169.55,
438.05,
318.6,
163.7,
273.2,
1608.15,
1441.95,
2168.15,
19.05,
313.45,
745.3,
1212.1,
5832,
654.5,
415.4,
3161.6,
80.95,
6669.45,
48.75,
1505.15,
168.5,
1652.4,
1621.35,
3058.3,
1642.75,
43.85,
1490.4,
716.4,
1835.3,
75.5,
19.2,
4453.3,
323.45,
1739.6,
5931,
2333.85,
572.45,
1381.8,
47.95,
45,
4931.8,
3273.8,
3252,
2566.3,
44.05,
45.55,
4539.35,
67.1,
1156.55,
1834.15,
1706.45,
419.7,
207.35,
1083.7,
2007.85,
2657.55,
1612.2,
266.8,
571.05,
167.2,
174.2,
1269.6,
1348.5,
471.55,
1404.65,
1961.6,
81.05,
76.95,
20.2,
20.9,
21.05,
189.1,
49.8,
5099.15,
668.85,
1916.2,
4613.95,
2459.8,
2048.8,
163.55,
2888.7,
553.4,
1291.3,
1868.4,
2845.15,
1021.55,
268.4,
1329.15,
637.4,
117.95,
4616.1,
750.1,
1410.25,
1340.1,
134.6,
125.5,
2737.05,
74.3,
70.6,
1867.6,
1043.3,
24.7,
206.15,
5869.4,
4946.05,
4964.7,
4085.75,
3415.25,
2896.6,
4669.2,
283.75,
5594,
7554.05,
1702.9,
467.15,
1423.05,
223.9,
391.7,
811.65,
174.75,
3126.85,
1406.65,
834.7,
3092,
2168.9,
65.95,
2647.1,
1790.65,
20.45,
2429.1,
44.45,
3023.55,
20.15,
5893.95,
1430.05,
458.1,
341.35,
147.75,
818.45,
348.8,
128.6,
1737.45,
50.1,
1797.75,
2684.35,
111.4,
43.95,
308.1,
109.25,
926.2,
382.2,
4264.6,
161.15,
7111.3,
1648.45,
3956.7,
294.2,
3883.3,
371.6,
95.85,
6690.75,
1588.7,
829.3,
712.25,
51.2,
2583.75,
3673.6,
49.85,
4495.65,
340.35,
908.55,
157.55,
581.7,
420.45,
45.2,
743.75,
3410,
199.85,
5068.05,
73.05,
1020.2,
6223.3,
82.9,
2067,
3452.55,
1802.15,
3687.85,
1391.15,
274.35,
3211.9,
130.15,
85.5,
2117.2,
424.75,
168.9,
253.8,
2065.15,
2447.45,
1838.15,
44.75,
1185,
1743.9,
25.7,
50.6,
2654.05,
5969.95,
565.75,
4370.75,
90.05,
2169.4,
550.6,
55.45,
436.6,
1781.35,
63.75,
617.15,
870.25,
601.25,
111.65,
3398.9,
389.8,
2401.05,
156.1,
2796.35,
70.05,
511.25,
646.05,
60.65,
824.85,
2094.65,
438.9,
674.55,
162.55,
1972.35,
490.55,
683.25,
294.45,
162.3,
70.45,
659.45,
119.3,
4849.1,
244.85,
220.75,
89.75,
255.5,
1440.75,
869.9,
512.25,
93.45,
1389.85,
2404.85,
171.45,
715,
1992.95,
562.7,
33.7,
227.45,
37.2,
892.7,
487.75,
3713.95,
141.7,
617.65,
5935.1,
2974.5,
198.7,
1275.65,
3791.6,
780.25,
408.25,
2191.15,
5611.7,
246.25,
525,
70.1,
2878.75,
3205.6,
1137.05,
1299.8,
188.1,
1077.05,
4922.4,
83.4,
2142.8,
287.85,
19.8,
40.9,
2094.9,
1302.65,
55.55,
1912.15,
670.65,
6713.2,
91.45,
2626.15,
1049.05,
169.75,
51.6,
3190.25,
812.5,
44,
2215.4,
216.45,
20.45,
996.45,
839.65,
402.85,
46.4,
6780.1,
94.5,
55.3,
208,
3829.75,
5294.6,
168.65,
434.8,
107.25,
851.2,
109.8,
19.65,
5135.35,
2000.2,
931.75,
3958.85,
816.8,
688,
288.35,
185.4,
265.8,
4107.3,
2072.75,
736.8,
336.15,
1522.65,
4959.6,
442.6,
184.15,
1315,
220.65,
378.6,
50.15,
4920.55,
1936.85,
79.8,
202.25,
999.9,
113.1,
2015.8,
246.7,
6017.9,
50.15,
252.75,
6841.05,
44.6,
226.2,
1017.35,
2146.5,
1850.65,
1043.4,
716.1,
6236.75,
20.45,
450.9,
432.25,
297.35,
2970.8,
2181.55,
371.4,
4667,
69.9,
3465.05,
198.1,
4108.15,
605.75,
661.55,
4116.9,
4494.65,
55.7,
493.95,
5038.15,
324.2,
19.55,
2793.55,
648.65,
672.7,
268.45,
196.9,
439.2,
19.5,
2107.15,
19.2,
3371.75,
442.45,
25.25,
1156.35,
144.8,
414.95,
181.8,
459.95,
25,
3162.65,
4040.2,
107.05,
38.15,
184.1,
137.6,
1813.1,
49.9,
82.7,
2030.75,
828.2,
3810.55,
1493.2,
45.8,
777.3,
187.35,
307.6,
2136.9,
38.45,
1640,
888.75,
42.9,
5073.1,
4526.85,
678.45,
1237.3,
19.1,
3474.2,
392.65,
1205.5,
78.9,
1025.15,
122,
74.3,
702.9,
1117.55,
930.05,
110.15,
1669.4,
3545.1,
504.05,
440.2,
1151.55,
1249.25,
317.75,
461.3,
335.75,
1394.55,
3413.25,
3143.65,
664.4,
63.6,
3091.75,
272.95,
381.2,
653.9,
55.25,
109.2,
92.05,
3168.75,
3439,
42.45,
96.85,
111.05,
94.4,
923.85,
141.1,
628.65,
1287.85,
118.25,
875.35,
799,
710.05,
568.2,
551.3,
3684.95,
1752.45,
2157.3,
24.4,
433.95,
4433.3,
964.35,
399.25,
3634.8,
3369.05,
3645.05,
135.75,
1319.85,
229.4,
370.25,
1233.25,
83.3,
3653,
241.3,
2104.55,
20.3,
19.2,
1011.05,
535.35,
75.55,
70.25,
908.75,
316.2,
564.65,
2106.05,
186.05,
999.8,
1461.45,
416.4,
4869.35,
580.8,
2495.2,
5913.95,
19.4,
44.4,
155.9,
3673.15,
70.6,
73.45,
5586.45,
1537.9,
82.85,
5327.25,
2621.75,
837.5,
401.5,
6118.95,
1800.05,
1948.35,
157.75,
2807.1,
44.95,
1025.15,
19.5,
4834,
3131.8,
3369.25,
2674.15,
199.75,
19.7,
1400.3,
411.6,
5841.35,
5688.45,
1345.75,
214.55,
865.85,
1358.6,
3147.15,
542.4,
98.5,
87.9,
1952.25,
153.8,
190.25,
1651.95,
78.3,
44.9,
576.7,
267.35,
934.15,
19.45,
3645.6,
314.45,
140.1,
1108,
79.15,
2070.75,
4729.75,
472.65,
1884.65,
278.4,
2595.85,
1956.4,
2096.1,
2665,
543.8,
20.35,
3005.8,
2586,
3292.3,
232.35,
658.1,
653.95,
1825.5,
359.4,
2338.35,
46.3,
3541.1,
1087.25,
2522.4,
717.3,
1734.2,
1558.7,
2538.2,
1750.85,
2575.45,
6019.35,
1284.2,
653.25,
1928.7,
71.25,
216.2,
3121.1,
157.65,
572.85,
2433.5,
641.15,
583,
788.6,
202.3,
4915.15,
838.5,
20.5,
30.55,
1398.25,
3161.4,
3990.6,
235,
3089.6,
2901.8,
4949.1,
2281.6,
50.75,
874.2,
1323.7,
5497.05,
2455.05,
357,
146.65,
134.05,
1701.65,
135.75,
4282.4,
224.85,
6572.85,
29.15,
20.05,
49.55,
232.5,
749.25,
134.75,
4266.4,
1077.5,
137.25,
966.55,
6936.85,
1929,
5817.7,
178.8,
435,
186.15,
445.85,
912,
4222.95,
20,
797.25,
1359.45,
54.7,
44.55,
87.3,
8061.5,
518.75,
238.5,
827.05,
2599.95,
284.3,
2462.55,
411.75,
198.6,
103.7,
19.65,
3249.4,
5405.8,
3363.8,
7132.15,
93.55,
566.1,
1742.5,
24,
970.45,
405.7,
2415.95,
176.2,
1001.2,
1594.75,
212.4,
340.35,
419.35,
5647.95,
29.9,
4348.1,
635.9,
1682.4,
143.9,
1559.45,
6079,
383.55,
1745.5,
1837.7,
180.7,
576.95,
68.45,
123.05,
468.35,
174.7,
44,
300.4,
992.7,
1563.9,
1332.4,
161.45,
226.95,
69.95,
2298.55,
237.65,
695.75,
825.1,
330.8,
1337.45,
2301.15,
4036,
20.4,
117.05,
5839.3,
45.35,
163.2,
189.95,
286.8,
5683.6,
369.15,
4631.7,
401.95,
701.3,
262.3,
2139.1,
5780.7,
662.95,
1765.95,
709.5,
50.15,
4052.4,
664.4,
718.55,
2546.85,
1346.3,
765.15,
247,
49.9,
1370.35,
20.25,
2215.25,
74,
214.4,
1871.15,
6171.2,
161.45,
336.7,
333.65,
393.45,
5623.7,
2971.7,
2427.35,
1760.25,
3551.65,
122.9,
2909.95,
374,
5581.05,
5676.65,
232.4,
2088.45,
1434.6,
2215,
842.25,
601.6,
605.45,
3094.05,
19.75,
492,
5496.9,
107.1,
522.35,
19.5,
1066.9,
985.05,
828.05,
6164.7,
33.6,
20.7,
6871.7,
208.25,
3062.45,
1816.75,
408.5,
1011.5,
2549.1,
1013.35,
152.95,
19.3,
220.4,
158.35,
19.95,
19.75,
2460.35,
5116.6,
1033.9,
1885.15,
5025,
4863.85,
25.75,
109.5,
546.85,
1782.4,
280.35,
2897.95,
801.3,
492.1,
1718.95,
4469.1,
1729.35,
1073.3,
1783.75,
1058.1,
123.8,
2731,
20.75,
497.3,
711.15,
2929.75,
838.7,
1443.65,
6951.15,
214.75,
235.2,
2727.8,
1462.6,
150.6,
5960.5,
314.55,
56,
330.8,
2249.1,
2807.65,
4902.8,
1857.75,
20.15,
1706.45,
179.85,
20.25,
2936.25,
1271.8,
530.05,
19.2,
1144.6,
6595,
149.05,
4972.1,
2045.55,
2187.15,
2976.95,
178.7,
1461.15,
2782.4,
452.2,
1322.55,
139.75,
3000.25,
2245.4,
944.65,
1864.65,
1221.65,
302.35,
1374.9,
1336.9,
1297.8,
44.75,
7320.9,
4200.25,
93.4,
1573.95,
1468.75,
2607.6,
322.5,
2510.7,
61.05,
140.4,
1626.05,
70.35,
5500.6,
19.75,
235.05,
574.5,
400.3,
2656.3,
2244.95,
1130,
2062.15,
720.45,
2979.3,
956.65,
3973.2,
447.9,
49,
836.35,
20.95,
2570,
44.15,
6487.2,
1556.85,
5432.2,
147.55,
2203.7,
130.5,
446.8,
3540.65,
130.55,
1540.35,
6411.25,
101.9,
313.4,
629.55,
2640.55,
2196.45,
3008.15,
222.65,
246.3,
969.85,
4747.85,
101.1,
6496.15,
59.55,
144.35,
1125.2,
39.85,
422.4,
314.6,
4331.4,
6382,
600.15,
5538.8,
690.5,
279.3,
1427.55,
53.15,
2404.1,
24.4,
209.9,
610.75,
70.7,
155.35,
144,
911.6,
1615.1,
1097.15,
369.3,
432.5,
532.1,
375.25,
125.95,
1620.25,
659.35,
377.55,
964.9,
2322.85,
6470.1,
57.4,
2019.8,
1522.7,
252,
6747.35,
105.6,
2271.85,
61.15,
494.95,
5219.65,
2877.95,
959.9,
929.3,
1285.05,
3414.65,
2964.05,
2156.25,
2275.1,
5511.65,
351.5,
106.2,
1743.05,
657.5,
426.35,
19.55,
235.05,
2633.4,
49.65,
46.35,
2659.45,
196.75,
1517.5,
3479.05,
20.3,
4391.25,
19.9,
1799.3,
1597.05,
524.35,
6812.95,
1837.9,
1500.25,
2283.15,
488.65,
505.95,
349.8,
1067.05,
3527.3,
1248.9,
144.95,
1882.8,
2065.4,
3848,
781.25,
4779.45,
250.1,
1745.2,
3670.5,
1167.8,
469.65,
1381.2,
3645.5,
849.9,
151.75,
299.4,
3767.4,
3641.5,
2535.55,
44.55,
1539.8,
223.75,
4385.05,
18.9,
1261.35,
253.9,
227.35,
2357.75,
198.5,
251.65,
5597.65,
768.05,
1215.8,
910.45,
52,
389.25,
1261,
2536.55,
958.25,
201.95,
285.2,
1529.45,
312.7,
6953.4,
541.5,
4156.8,
223.6,
768.45,
3765.05,
2157.5,
1273.3,
377.85,
355.1,
906.85,
1057.55,
19.4,
1641.3,
1826.7,
2180.55,
2835.9,
45.15,
2730.85,
5794.45,
747.2,
1267.95,
724.65,
1536.75,
607.3,
1923.5,
75.35,
2184.85,
3875.4,
1451.1,
2847.2,
1494.5,
41.85,
475.1,
150.75,
3403.4,
1672.1,
3043.7,
2723.4,
1081.25,
632.2,
4113.7,
3729.75,
399.45,
1336.15,
5925.75,
4747.2,
1028.9,
19.75,
154.3,
6382.55,
89.25,
86.05,
82.85,
893.2,
810.85,
43.15,
35.1,
3851.45,
684.85,
74.35,
1312.45,
159.2,
610.2,
404.35,
19.65,
505.95,
169.65,
1147,
4133.95,
2917.65,
54.3,
2964.8,
225.65,
955.75,
3382.3,
780.85,
1614.7,
270.15,
20.6,
573.15,
306.05,
639.7,
348.15,
40.25,
784.45,
1406.9,
4192.15,
1173.55,
7713.55,
2227.8,
2351.45,
2989.6,
2479.05,
638.95,
831.75,
5953,
953.65,
20.55,
5431.9,
6401.25,
616.9,
1912.85,
849.1,
90.1,
2907.35,
4952.95,
2078.55,
19.1,
1003.05,
2509.95,
2537,
1393.6,
89.35,
4445.3,
331.35,
673.2,
1442.2,
5222.35,
249.4,
253,
436.2,
118.4,
3649.6,
5083.55,
39.3,
2406.1,
4524.05,
1505.45,
913.3,
1411.65,
3096.9,
2613.4,
3275.15,
54.5,
962.9,
1233.15,
4882.8,
148.05,
129.55,
581.7,
929.45,
2576.8,
1993.25,
1923.85,
939.8,
84.6,
651.5,
45.4,
50.75,
321.05,
335.65,
1424.4,
382.8,
20.2,
1794.65,
501.2,
48.45,
55.7,
3735.45,
477.55,
42.7,
2025.1,
1747.2,
1043.8,
1857.25,
146.4,
356.15,
384.25,
389.95,
5731.85,
20.65,
4275.75,
84.5,
4060.55,
3532.85,
775.6,
477.6,
1849.95,
61.05,
1207,
563.5,
5749.8,
2076.05,
44.2,
215.25,
2092.9,
5629.55,
469.85,
733.95,
485.25,
78.25,
184.05,
1178.75,
109.3,
3168,
669.45,
48.6,
49.75,
1691.9,
2248.05,
63,
3314.15,
852.7,
91.4,
3949.15,
207.4,
19.75,
35,
383.65,
452.8,
1219.85,
2414.55,
1155.6,
1564.4,
19.65,
84.4,
864.85,
470.6,
108.65,
4807.35,
1815,
199.45,
1637.3,
20.05,
1611.15,
1992.55,
33.7,
454.05,
1392.25,
734.6,
1540.05,
3181.8,
229.7,
266.6,
1982.6,
339.9,
20.3,
2383.6,
1438.05,
99.95,
2036.55,
6444.05,
767.55,
4040.65,
1672.35,
1345.65,
2425.4,
2077.95,
1286.05,
514.6,
330.25,
122.7,
2419,
470.2,
3097,
577.15,
6914.95,
96.8,
3827.9,
533.05,
995.35,
154.8,
257.6,
720.1,
2832.75,
472.25,
1165.6,
72,
68.35,
44,
1380.4,
275.4,
846.8,
2997.45,
524.5,
2341.5,
5060.85,
466.6,
85,
44.3,
414.1,
256.6,
1296.8,
59.25,
2006.1,
487.05,
483.3,
5618.3,
788.35,
3625.2,
550.35,
1267.2,
5567.45,
3085.35,
24.7,
3541.4,
84.2,
50.7,
1165.55,
608.15,
35.9,
1321.3,
3024.15,
2724.25,
413.25,
218.5,
1004.75,
3847.6,
1098.85,
827.7,
3512.5,
151.75,
552.65,
24.9,
678.75,
683.75,
233.65,
291.45,
254.5,
347.65,
1841.9,
232.1,
360.55,
355.9,
7031.45,
109.6,
893,
781.4,
902.25,
5943.65,
275.7,
340.4,
1093.2,
521.9,
713.6,
1265.65,
4003.85,
251.25,
1373,
49.8,
3440.25,
67.55,
70.2,
294.9,
19.95,
476.8,
101.65,
1130.85,
3532.25,
1570.7,
520.95,
357.6,
1122.4,
2020.9,
3579.15,
49.7,
276.5,
5588.8,
50.6,
58,
2024.1,
2871.5,
2193.65,
31.2,
533.6,
1620.8,
293.85,
4137.2,
19.4,
5348.65,
3180.5,
2237.55,
358.5,
2421.75,
1294.6,
374.8,
331.85,
5088.4,
5976.9,
20.05,
57.5,
3270.25,
3919.15,
5295.7,
217.45,
19.25,
2021.35,
2564.95,
45.75,
74.2,
1175.85,
926.25,
2341.55,
163.6,
145.15,
3769.7,
3725.5,
601.55,
139.25,
401.3,
235.8,
1364.75,
647.5,
2044.95,
921.4,
4018.35,
20.25,
2085.45,
5135.15,
118.25,
1108.6,
1815.65,
75.45,
4014.6,
568.85,
4238.45,
418.3,
136.05,
708.2,
4122.9,
6578.55,
19.55,
1861.1,
3069.45,
2349.8,
3301.05,
4144.9,
1905.4,
141.65,
5785.65,
275.9,
2130.45,
3756.45,
3334.9,
920.5,
150.35,
367.95,
19.55,
1242.2,
3190.65,
2666.75,
295.65,
1459.35,
4297.95,
3454.6,
1387,
786.3,
1375.6,
718.1,
320.4,
1334.45,
4764,
786.5,
5364.8,
20.3,
2419.55,
688.5,
867.1,
355.1,
1505.35,
1679.65,
2998,
24.4,
1959.5,
1275.7,
1647,
3320.6,
5669.5,
704.3,
95.55,
6375.2,
1566.75,
110.05,
816.8,
1253.5,
41.2,
6548.65,
299.3,
3915.4,
979.5,
90.05,
398.55,
63.15,
484.05,
2208.75,
238.15,
1218.25,
1405.3,
1902,
239.05,
39.8,
406.05,
138.85,
123.65,
1801.1,
790.7,
54.65,
1224.05,
2310.2,
3988.5,
3554.6,
85.1,
173,
3893.6,
357.15,
2221.55,
3090.65,
1293.8,
500.1,
1601.5,
1232.9,
19.9,
4889.2,
2289.9,
6503.2,
1313.25,
990.3,
805.2,
528.45,
2259.35,
1411.35,
20.35,
238.5,
226.55,
3313.4,
1938.9,
460.25,
19.9,
3171.6,
299.75,
702.05,
19.65,
92.25,
1242.45,
559.2,
531.15,
465.85,
3782.4,
460.2,
4600.95,
1793.25,
886.7,
1879.25,
434.5,
3778.1,
5438.95,
5386.5,
235.65,
2272.8,
83.75,
4663.4,
1806.35,
497.6,
19.3,
266.95,
2623.65,
45.85,
1082.8,
147.8,
2570.2,
2924.05,
32.7,
5305.05,
3720.35,
5025.8,
1498.55,
1818.9,
1051.05,
3688.6,
239.45,
244.45,
129.6,
4981.15,
2751,
1307.8,
53.55,
791.7,
4869.5,
4308.25,
221.1,
316.9,
471.7,
503.25,
961.4,
53.05,
2108.35,
232.55,
309.4,
523.1,
770.5,
3930.6,
897.75,
5895.45,
1218.25,
24.2,
554.45,
2032.3,
789.2,
1652.1,
3366.05,
2093.4,
1011.8,
1022.5,
3691.2,
3756.4,
3645.75,
2874.45,
49.95,
239,
6479.4,
3626.35,
1679.4,
931.55,
263.05,
39.25,
2625.25,
1495.1,
346.45
],
"xaxis": "x2",
"yaxis": "y2"
}
],
"layout": {
"annotations": [
{
"font": {
"size": 16
},
"showarrow": false,
"text": "(a) Monthtly Charges Distribution",
"x": 0.225,
"xanchor": "center",
"xref": "paper",
"y": 1,
"yanchor": "bottom",
"yref": "paper"
},
{
"font": {
"size": 16
},
"showarrow": false,
"text": "(b) Total Charges Distribution",
"x": 0.775,
"xanchor": "center",
"xref": "paper",
"y": 1,
"yanchor": "bottom",
"yref": "paper"
}
],
"autosize": false,
"template": {
"data": {
"bar": [
{
"error_x": {
"color": "rgb(36,36,36)"
},
"error_y": {
"color": "rgb(36,36,36)"
},
"marker": {
"line": {
"color": "white",
"width": 0.5
}
},
"type": "bar"
}
],
"barpolar": [
{
"marker": {
"line": {
"color": "white",
"width": 0.5
}
},
"type": "barpolar"
}
],
"carpet": [
{
"aaxis": {
"endlinecolor": "rgb(36,36,36)",
"gridcolor": "white",
"linecolor": "white",
"minorgridcolor": "white",
"startlinecolor": "rgb(36,36,36)"
},
"baxis": {
"endlinecolor": "rgb(36,36,36)",
"gridcolor": "white",
"linecolor": "white",
"minorgridcolor": "white",
"startlinecolor": "rgb(36,36,36)"
},
"type": "carpet"
}
],
"choropleth": [
{
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
},
"type": "choropleth"
}
],
"contour": [
{
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
},
"colorscale": [
[
0,
"#440154"
],
[
0.1111111111111111,
"#482878"
],
[
0.2222222222222222,
"#3e4989"
],
[
0.3333333333333333,
"#31688e"
],
[
0.4444444444444444,
"#26828e"
],
[
0.5555555555555556,
"#1f9e89"
],
[
0.6666666666666666,
"#35b779"
],
[
0.7777777777777778,
"#6ece58"
],
[
0.8888888888888888,
"#b5de2b"
],
[
1,
"#fde725"
]
],
"type": "contour"
}
],
"contourcarpet": [
{
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
},
"type": "contourcarpet"
}
],
"heatmap": [
{
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
},
"colorscale": [
[
0,
"#440154"
],
[
0.1111111111111111,
"#482878"
],
[
0.2222222222222222,
"#3e4989"
],
[
0.3333333333333333,
"#31688e"
],
[
0.4444444444444444,
"#26828e"
],
[
0.5555555555555556,
"#1f9e89"
],
[
0.6666666666666666,
"#35b779"
],
[
0.7777777777777778,
"#6ece58"
],
[
0.8888888888888888,
"#b5de2b"
],
[
1,
"#fde725"
]
],
"type": "heatmap"
}
],
"heatmapgl": [
{
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
},
"colorscale": [
[
0,
"#440154"
],
[
0.1111111111111111,
"#482878"
],
[
0.2222222222222222,
"#3e4989"
],
[
0.3333333333333333,
"#31688e"
],
[
0.4444444444444444,
"#26828e"
],
[
0.5555555555555556,
"#1f9e89"
],
[
0.6666666666666666,
"#35b779"
],
[
0.7777777777777778,
"#6ece58"
],
[
0.8888888888888888,
"#b5de2b"
],
[
1,
"#fde725"
]
],
"type": "heatmapgl"
}
],
"histogram": [
{
"marker": {
"line": {
"color": "white",
"width": 0.6
}
},
"type": "histogram"
}
],
"histogram2d": [
{
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
},
"colorscale": [
[
0,
"#440154"
],
[
0.1111111111111111,
"#482878"
],
[
0.2222222222222222,
"#3e4989"
],
[
0.3333333333333333,
"#31688e"
],
[
0.4444444444444444,
"#26828e"
],
[
0.5555555555555556,
"#1f9e89"
],
[
0.6666666666666666,
"#35b779"
],
[
0.7777777777777778,
"#6ece58"
],
[
0.8888888888888888,
"#b5de2b"
],
[
1,
"#fde725"
]
],
"type": "histogram2d"
}
],
"histogram2dcontour": [
{
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
},
"colorscale": [
[
0,
"#440154"
],
[
0.1111111111111111,
"#482878"
],
[
0.2222222222222222,
"#3e4989"
],
[
0.3333333333333333,
"#31688e"
],
[
0.4444444444444444,
"#26828e"
],
[
0.5555555555555556,
"#1f9e89"
],
[
0.6666666666666666,
"#35b779"
],
[
0.7777777777777778,
"#6ece58"
],
[
0.8888888888888888,
"#b5de2b"
],
[
1,
"#fde725"
]
],
"type": "histogram2dcontour"
}
],
"mesh3d": [
{
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
},
"type": "mesh3d"
}
],
"parcoords": [
{
"line": {
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
}
},
"type": "parcoords"
}
],
"pie": [
{
"automargin": true,
"type": "pie"
}
],
"scatter": [
{
"marker": {
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
}
},
"type": "scatter"
}
],
"scatter3d": [
{
"line": {
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
}
},
"marker": {
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
}
},
"type": "scatter3d"
}
],
"scattercarpet": [
{
"marker": {
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
}
},
"type": "scattercarpet"
}
],
"scattergeo": [
{
"marker": {
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
}
},
"type": "scattergeo"
}
],
"scattergl": [
{
"marker": {
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
}
},
"type": "scattergl"
}
],
"scattermapbox": [
{
"marker": {
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
}
},
"type": "scattermapbox"
}
],
"scatterpolar": [
{
"marker": {
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
}
},
"type": "scatterpolar"
}
],
"scatterpolargl": [
{
"marker": {
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
}
},
"type": "scatterpolargl"
}
],
"scatterternary": [
{
"marker": {
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
}
},
"type": "scatterternary"
}
],
"surface": [
{
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
},
"colorscale": [
[
0,
"#440154"
],
[
0.1111111111111111,
"#482878"
],
[
0.2222222222222222,
"#3e4989"
],
[
0.3333333333333333,
"#31688e"
],
[
0.4444444444444444,
"#26828e"
],
[
0.5555555555555556,
"#1f9e89"
],
[
0.6666666666666666,
"#35b779"
],
[
0.7777777777777778,
"#6ece58"
],
[
0.8888888888888888,
"#b5de2b"
],
[
1,
"#fde725"
]
],
"type": "surface"
}
],
"table": [
{
"cells": {
"fill": {
"color": "rgb(237,237,237)"
},
"line": {
"color": "white"
}
},
"header": {
"fill": {
"color": "rgb(217,217,217)"
},
"line": {
"color": "white"
}
},
"type": "table"
}
]
},
"layout": {
"annotationdefaults": {
"arrowhead": 0,
"arrowwidth": 1
},
"coloraxis": {
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
}
},
"colorscale": {
"diverging": [
[
0,
"rgb(103,0,31)"
],
[
0.1,
"rgb(178,24,43)"
],
[
0.2,
"rgb(214,96,77)"
],
[
0.3,
"rgb(244,165,130)"
],
[
0.4,
"rgb(253,219,199)"
],
[
0.5,
"rgb(247,247,247)"
],
[
0.6,
"rgb(209,229,240)"
],
[
0.7,
"rgb(146,197,222)"
],
[
0.8,
"rgb(67,147,195)"
],
[
0.9,
"rgb(33,102,172)"
],
[
1,
"rgb(5,48,97)"
]
],
"sequential": [
[
0,
"#440154"
],
[
0.1111111111111111,
"#482878"
],
[
0.2222222222222222,
"#3e4989"
],
[
0.3333333333333333,
"#31688e"
],
[
0.4444444444444444,
"#26828e"
],
[
0.5555555555555556,
"#1f9e89"
],
[
0.6666666666666666,
"#35b779"
],
[
0.7777777777777778,
"#6ece58"
],
[
0.8888888888888888,
"#b5de2b"
],
[
1,
"#fde725"
]
],
"sequentialminus": [
[
0,
"#440154"
],
[
0.1111111111111111,
"#482878"
],
[
0.2222222222222222,
"#3e4989"
],
[
0.3333333333333333,
"#31688e"
],
[
0.4444444444444444,
"#26828e"
],
[
0.5555555555555556,
"#1f9e89"
],
[
0.6666666666666666,
"#35b779"
],
[
0.7777777777777778,
"#6ece58"
],
[
0.8888888888888888,
"#b5de2b"
],
[
1,
"#fde725"
]
]
},
"colorway": [
"#1F77B4",
"#FF7F0E",
"#2CA02C",
"#D62728",
"#9467BD",
"#8C564B",
"#E377C2",
"#7F7F7F",
"#BCBD22",
"#17BECF"
],
"font": {
"color": "rgb(36,36,36)"
},
"geo": {
"bgcolor": "white",
"lakecolor": "white",
"landcolor": "white",
"showlakes": true,
"showland": true,
"subunitcolor": "white"
},
"hoverlabel": {
"align": "left"
},
"hovermode": "closest",
"mapbox": {
"style": "light"
},
"paper_bgcolor": "white",
"plot_bgcolor": "white",
"polar": {
"angularaxis": {
"gridcolor": "rgb(232,232,232)",
"linecolor": "rgb(36,36,36)",
"showgrid": false,
"showline": true,
"ticks": "outside"
},
"bgcolor": "white",
"radialaxis": {
"gridcolor": "rgb(232,232,232)",
"linecolor": "rgb(36,36,36)",
"showgrid": false,
"showline": true,
"ticks": "outside"
}
},
"scene": {
"xaxis": {
"backgroundcolor": "white",
"gridcolor": "rgb(232,232,232)",
"gridwidth": 2,
"linecolor": "rgb(36,36,36)",
"showbackground": true,
"showgrid": false,
"showline": true,
"ticks": "outside",
"zeroline": false,
"zerolinecolor": "rgb(36,36,36)"
},
"yaxis": {
"backgroundcolor": "white",
"gridcolor": "rgb(232,232,232)",
"gridwidth": 2,
"linecolor": "rgb(36,36,36)",
"showbackground": true,
"showgrid": false,
"showline": true,
"ticks": "outside",
"zeroline": false,
"zerolinecolor": "rgb(36,36,36)"
},
"zaxis": {
"backgroundcolor": "white",
"gridcolor": "rgb(232,232,232)",
"gridwidth": 2,
"linecolor": "rgb(36,36,36)",
"showbackground": true,
"showgrid": false,
"showline": true,
"ticks": "outside",
"zeroline": false,
"zerolinecolor": "rgb(36,36,36)"
}
},
"shapedefaults": {
"fillcolor": "black",
"line": {
"width": 0
},
"opacity": 0.3
},
"ternary": {
"aaxis": {
"gridcolor": "rgb(232,232,232)",
"linecolor": "rgb(36,36,36)",
"showgrid": false,
"showline": true,
"ticks": "outside"
},
"baxis": {
"gridcolor": "rgb(232,232,232)",
"linecolor": "rgb(36,36,36)",
"showgrid": false,
"showline": true,
"ticks": "outside"
},
"bgcolor": "white",
"caxis": {
"gridcolor": "rgb(232,232,232)",
"linecolor": "rgb(36,36,36)",
"showgrid": false,
"showline": true,
"ticks": "outside"
}
},
"title": {
"x": 0.05
},
"xaxis": {
"automargin": true,
"gridcolor": "rgb(232,232,232)",
"linecolor": "rgb(36,36,36)",
"showgrid": false,
"showline": true,
"ticks": "outside",
"title": {
"standoff": 15
},
"zeroline": false,
"zerolinecolor": "rgb(36,36,36)"
},
"yaxis": {
"automargin": true,
"gridcolor": "rgb(232,232,232)",
"linecolor": "rgb(36,36,36)",
"showgrid": false,
"showline": true,
"ticks": "outside",
"title": {
"standoff": 15
},
"zeroline": false,
"zerolinecolor": "rgb(36,36,36)"
}
}
},
"title": {
"text": "Charges Distribution for Month-to-month contracts for not Churned Clients ",
"x": 0.5,
"xanchor": "center",
"y": 0.9,
"yanchor": "top"
},
"xaxis": {
"anchor": "y",
"domain": [
0,
0.45
]
},
"xaxis2": {
"anchor": "y2",
"domain": [
0.55,
1
]
},
"yaxis": {
"anchor": "x",
"automargin": true,
"domain": [
0,
1
],
"title": {
"text": "Frequency "
}
},
"yaxis2": {
"anchor": "x2",
"automargin": true,
"domain": [
0,
1
]
}
}
},
"text/html": [
"\n",
" \n",
" \n",
"
\n",
" \n",
"
"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"df_aux = dataset.query('(Contract == \"Month-to-month\") and (Churn == \"No\")')\n",
"histogram_subplot(df_aux, df_aux, \"MonthlyCharges\", \"TotalCharges\", \n",
" \"Charges Distribution for Month-to-month contracts for not Churned Clients \",\n",
" \"(a) Monthtly Charges Distribution\", \"(b) Total Charges Distribution\")"
]
},
{
"cell_type": "markdown",
"metadata": {
"cell_id": "af9de48f-100b-441c-98c0-76a28a29fc46",
"tags": []
},
"source": [
"From the plots, can be said that many clients just got charged with a few values, principally for the Total Charges. \n",
"On the following plots, the same features are analyzed, but for churned clients."
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"cell_id": "3a7d59f0-0bfa-40a1-80bc-d8208382cf9c",
"tags": []
},
"outputs": [
{
"data": {
"application/vnd.plotly.v1+json": {
"config": {
"linkText": "Export to plot.ly",
"plotlyServerURL": "https://plot.ly",
"showLink": false
},
"data": [
{
"marker": {
"line": {
"color": "#000000",
"width": 2
}
},
"showlegend": false,
"type": "histogram",
"x": [
53.85,
70.7,
99.65,
104.8,
103.7,
55.2,
39.65,
20.15,
99.35,
30.2,
64.7,
69.7,
106.35,
97.85,
80.65,
99.1,
80.65,
95.45,
94.4,
79.35,
75.15,
78.95,
21.05,
98.5,
96.75,
76.5,
100.25,
74.4,
78.05,
58.6,
35.45,
44.35,
70.45,
71.15,
45.65,
95,
82.4,
70.9,
45.3,
104.4,
74.45,
76.45,
29.95,
84.5,
79.25,
24.8,
91,
79.9,
106.6,
46,
70.15,
50.05,
55.2,
84.6,
54.4,
95,
74.4,
48.55,
70.4,
40.2,
44.6,
41.15,
106.9,
94.45,
24.8,
70.6,
85.4,
105.05,
95.15,
70,
74.5,
44.85,
76.1,
73.6,
95.45,
74.9,
80.6,
93.15,
70.35,
73.85,
80.6,
103.4,
90.4,
84.8,
41.9,
80.25,
30.75,
96.5,
85.65,
104.95,
50.65,
90.85,
19.95,
85.45,
73.95,
99.45,
19.9,
19.6,
81.35,
83.3,
75.3,
19.4,
45.4,
105.9,
69.55,
81.05,
101.15,
99.8,
55.95,
55,
74.7,
80.25,
96.1,
69,
45.3,
83.55,
74.35,
74.4,
28.45,
99.7,
94.1,
94.2,
80.5,
74.35,
104.8,
75.2,
75.6,
100.05,
85,
86.05,
45.55,
86.3,
80.35,
100.25,
19,
75.3,
89.2,
85.7,
61.65,
105.25,
29.95,
65,
20,
90.05,
110.75,
105.5,
85.25,
56.15,
89.55,
94.55,
45.7,
89.5,
69.55,
74.6,
19.65,
24.25,
69.65,
45.65,
75.05,
49.15,
34.7,
80,
49.25,
75.1,
50.15,
79.85,
19.55,
85.95,
45.35,
94.5,
91.7,
87.25,
98.55,
98.55,
85.9,
89.25,
70.3,
93.35,
19.9,
88.9,
82,
45.35,
52.2,
98.5,
85.35,
101.3,
69.55,
86.2,
111.2,
89.45,
95.6,
78.85,
44.4,
89.9,
50.8,
73.65,
95.1,
94.65,
80.6,
50.8,
105.1,
110.1,
83.9,
100.55,
103.85,
24.6,
98.9,
98.3,
93.85,
100.5,
72.85,
73.55,
79.4,
81.15,
84.6,
79.05,
74.4,
99.05,
44.95,
44.7,
45.7,
100.3,
19.25,
96,
90.55,
30.35,
69.9,
86.6,
80.6,
85.3,
70,
94.3,
95.35,
75.5,
90.1,
68.95,
99.55,
57.45,
100.6,
83.75,
88.3,
92.1,
79.45,
90.45,
69.75,
19.65,
43.65,
39.5,
97.1,
80,
84.7,
89.55,
90.6,
90.05,
99.05,
69.75,
49.05,
98.05,
114.5,
80.95,
74.3,
89.7,
100.45,
56.15,
94.4,
78.95,
105.65,
74.65,
64.7,
104.05,
35.55,
95.15,
96.65,
80.4,
31.35,
89.75,
19.85,
109.9,
101.35,
60.05,
60.15,
90.45,
74.9,
80.25,
69,
66.35,
86,
80.3,
90.55,
75.9,
45.85,
49.95,
78.3,
76.95,
96.15,
45.3,
19.4,
90.15,
45.05,
75.8,
79.3,
30.9,
89.6,
89.5,
75,
44.75,
44.05,
85.6,
86.6,
85.2,
97.65,
109.55,
19.45,
20.35,
69.25,
25.2,
45,
20.15,
105,
54.7,
87.25,
79.95,
88.35,
94.75,
95.05,
78.45,
70.2,
41.05,
85.6,
79.2,
49.95,
69.25,
94.25,
99.8,
35,
76,
93.85,
84.3,
84.4,
101.1,
50.45,
99.95,
91.4,
75.55,
80.8,
100,
20.55,
85.3,
70.4,
98.8,
74.4,
98.75,
104.7,
96.7,
55.05,
88.2,
75.65,
74.7,
76.65,
25.8,
42.6,
68.85,
90,
75.35,
100.85,
69.95,
45.85,
91.7,
95.6,
74.95,
95.35,
45,
99.5,
59.5,
80.45,
77.95,
74.7,
88.8,
90.25,
64.65,
89.05,
94.75,
86.45,
75.75,
85.35,
45.05,
109.8,
84.65,
79.5,
85.8,
79.1,
44.3,
105.95,
69.75,
94.65,
96.05,
50.15,
113.6,
78.9,
60.05,
34.7,
85.3,
104.4,
99.75,
74.4,
74.25,
59.85,
69.6,
45.4,
19.5,
69.9,
87.15,
84.75,
89.95,
113.2,
90.5,
79,
71.65,
20.35,
84.25,
78.1,
89.65,
98.7,
76.35,
79.15,
85,
85.3,
86.55,
73.85,
44.85,
45.1,
96,
20.05,
45.55,
35.1,
46.2,
45.15,
43.3,
57.15,
73.2,
85.35,
45.95,
83.75,
70.05,
86,
100.5,
72.65,
21,
45.1,
50.4,
78.95,
94.45,
84.8,
50.9,
99.8,
107.35,
19.55,
79.1,
25.5,
80.75,
91.85,
75.35,
75.45,
49.55,
81.1,
74.95,
93.55,
102.1,
90.9,
29.2,
89.15,
84.75,
45.7,
69.95,
44.6,
74.95,
89.85,
47.15,
80.2,
87.1,
75.9,
98.75,
86.45,
45.3,
81,
88.15,
20.2,
90.8,
79.35,
96.8,
83.35,
49.4,
79.2,
48.7,
95.6,
59.75,
108.15,
71.35,
20.15,
69.75,
93.2,
80.85,
33.65,
79.95,
19.3,
85.2,
75.25,
54.35,
24.95,
75.3,
70.55,
86.15,
85,
80.55,
75.8,
98.5,
95.25,
74.4,
85.15,
88.55,
54.75,
91.3,
79.5,
70.1,
95.25,
86.25,
100.8,
86.3,
89.95,
76.45,
70,
102.45,
80.1,
80.2,
98.15,
112.95,
70.9,
86.85,
99.85,
74.5,
109.15,
65.2,
99.5,
71.55,
93.9,
48.75,
85.65,
106.7,
25.15,
47.8,
98.6,
83.05,
70.4,
94.25,
45.95,
70.15,
85.55,
70.3,
106.35,
88.35,
94.2,
96.25,
70.7,
94.55,
35.9,
99.25,
24.45,
103.35,
84.8,
99.95,
90,
104.85,
74.2,
89.35,
77.15,
35.25,
48.55,
98.4,
93.85,
100.7,
80.45,
55.25,
54.45,
75.35,
75.7,
74.25,
89.7,
96.4,
69.5,
85.25,
19.4,
83.3,
80.1,
98.15,
93.7,
105.95,
95.75,
94.05,
54.75,
95.65,
94.6,
98.9,
76.05,
69.75,
34.5,
105.55,
30.1,
70.3,
80.2,
44.6,
19.6,
110.45,
70.7,
99.25,
84.8,
54.45,
85.3,
83.35,
33.5,
90.35,
90.75,
89.6,
49.25,
19.75,
95.15,
101.35,
70.05,
74.65,
50.4,
79.65,
79.85,
78.75,
80.45,
50.1,
76.4,
98.7,
100.8,
51.55,
79.25,
94.85,
85.7,
44.4,
89.5,
86.05,
44.55,
35.4,
95.65,
20.95,
34.7,
19.75,
92.55,
74.3,
85.35,
98.1,
74.55,
100.95,
94.9,
104.9,
88.35,
94.65,
74.4,
79.9,
69.7,
98.1,
20.5,
99.6,
81.95,
69.35,
91.1,
86.1,
94.7,
85.1,
99.15,
102.95,
45.05,
71,
70.55,
79.7,
59,
69.25,
70.95,
89,
99.4,
73.5,
95.5,
92.35,
74.55,
83.8,
54.45,
99.8,
105.85,
75.45,
93.85,
100.75,
31,
80,
70.25,
100.15,
94.5,
33.9,
89.95,
84.45,
79.5,
89.15,
74.95,
74.4,
55.3,
55.15,
84.95,
43.25,
79.55,
71.05,
84.5,
30.3,
30.4,
45.4,
84.15,
19.75,
85.4,
75.2,
106.4,
84.4,
56.25,
85.55,
68.65,
77.85,
105.35,
87.05,
53.5,
25.1,
79.65,
54.2,
19.45,
84.45,
85.95,
59.4,
30.6,
99.55,
70,
45.3,
29.85,
95.1,
19.8,
76.65,
99.15,
44.95,
49.55,
95.9,
81.5,
84.1,
36.45,
25.05,
49.85,
55.55,
104.3,
93.85,
50.45,
74.65,
94.2,
20.1,
83.8,
55.15,
86.65,
106.75,
78.45,
87.45,
70.75,
101.35,
81.7,
68.25,
79.15,
95.45,
69.1,
69.6,
77.95,
78.45,
29.5,
70.75,
84.45,
85.65,
97.8,
46.3,
106.3,
89.4,
83.15,
74.15,
99.5,
44.15,
53.9,
85.45,
50.85,
59.2,
83.2,
54.9,
103.9,
19.25,
75.45,
54.85,
95.1,
75.5,
73.75,
96.05,
88.95,
50.7,
53.4,
101.9,
50.6,
89.5,
69.8,
93.8,
101.05,
94.7,
61.45,
90.55,
88.8,
85.2,
91.4,
106.15,
45.3,
73.25,
51.05,
85.35,
75.35,
75.2,
20.9,
43.3,
84.8,
95.05,
50.35,
74.6,
19.7,
59.45,
45.15,
93.8,
96.2,
79.6,
85.25,
80.5,
89.8,
50.75,
89.65,
72.9,
40,
99.45,
86.25,
45.65,
70.1,
70.2,
55.35,
84.2,
45.85,
75.25,
100.15,
105.75,
48.35,
24.4,
20.95,
49.55,
20.25,
50.15,
95.9,
25.25,
45.15,
84.4,
75.1,
101.75,
45.8,
20.1,
40.65,
101,
69.1,
75,
71.15,
54.15,
49.15,
19.4,
79.15,
80.4,
102,
20.65,
70.8,
89.05,
96.6,
104.5,
50.6,
49.35,
94.25,
68.95,
93.85,
76.05,
24.45,
89.35,
80.35,
55.8,
79.05,
95,
25.2,
98.4,
101.4,
89.8,
91.25,
49.1,
65.25,
85.45,
71.65,
104.65,
74.25,
74.2,
101,
100.2,
96.5,
70.85,
73.9,
100.2,
74.05,
101.55,
45.75,
74.95,
80.15,
35.2,
78.8,
106.4,
49.4,
69.1,
90.2,
93.55,
80.85,
20.55,
78.55,
78.65,
42.9,
34.25,
58.5,
96.2,
74.4,
105.3,
73.85,
84.55,
85.8,
24.45,
105.7,
24.25,
76.5,
93.5,
74.9,
69.6,
24.05,
50.55,
100.55,
20.5,
74.8,
24.45,
71,
40.3,
50.6,
84.85,
65.7,
70.5,
94.85,
19.75,
65.45,
98.7,
69.6,
100.2,
78.05,
73.6,
74.75,
20.2,
93.55,
25.05,
95.55,
39.3,
20.25,
23.9,
85.45,
84.8,
75.2,
74.9,
101.25,
18.95,
28.6,
24.35,
98.65,
79.9,
103.3,
96.2,
102.95,
90.6,
50.8,
90.05,
75.85,
68.5,
73.5,
69.95,
70.05,
94,
61.15,
84.45,
19.6,
66.4,
100.05,
90.2,
79.85,
49.6,
91.85,
40.1,
73.9,
89.8,
72.25,
96.55,
40.1,
101.25,
79.55,
89.1,
94.4,
78.25,
44.15,
75.75,
19.1,
80.3,
74.9,
80.85,
24.75,
90.85,
79.7,
86.5,
103.95,
25.1,
48.95,
83.55,
89.15,
70.45,
24.75,
103.3,
78.5,
19.85,
79.9,
99.7,
58.6,
98.5,
50.45,
94.65,
100.25,
88.45,
69.85,
81.7,
79.9,
25.4,
83.75,
20.9,
69.4,
74.9,
74.15,
70.1,
78.3,
96.8,
94.4,
84.3,
99.55,
81.25,
19.95,
99.25,
79.35,
79.75,
100.05,
69.35,
85.8,
50.55,
80.55,
84.5,
84.3,
67.75,
85.25,
80.05,
20,
48.8,
85.05,
102.8,
99.95,
79.5,
79.65,
94.7,
92.5,
19.45,
75.55,
70,
104.4,
86.2,
51.2,
19.5,
74.9,
74.9,
100.25,
102.8,
99.85,
94.2,
83.85,
88.3,
94.7,
100.65,
78.85,
44.45,
84.9,
20.25,
74.35,
62.05,
104.1,
39.1,
76.5,
49.2,
23.15,
80.85,
60.1,
78.95,
45.15,
79.4,
99.3,
80.65,
71.1,
94,
89.85,
46,
66.25,
90,
53.95,
105.5,
81,
69.8,
73.75,
54.55,
76.25,
93.9,
70.4,
91.15,
70.95,
99.5,
83.9,
117.45,
104.4,
29.4,
44.65,
25.25,
84.05,
85.7,
74.7,
90.8,
106.15,
90.85,
35.75,
46,
89.4,
19.8,
50.9,
81,
98.35,
51,
91.65,
90.85,
69.4,
94.45,
20.15,
95.7,
74.95,
47.95,
63.6,
36.85,
44.1,
50.75,
39.3,
96.05,
75.1,
44.7,
55,
74.35,
55.7,
19.85,
70.3,
85.55,
94.5,
85.35,
79.65,
79.6,
90.6,
20.2,
99.15,
55.9,
82.35,
40.4,
75.35,
94.7,
30.5,
77,
20.1,
75.3,
85.5,
20.05,
70.4,
75.3,
94,
30.45,
96.1,
104.25,
80.2,
104.2,
69.65,
80.8,
80.3,
84.1,
69.35,
79.6,
36.45,
89.4,
80.35,
40.65,
84.9,
73.55,
20.15,
98.75,
101.15,
88.7,
79.75,
94.55,
69.05,
101.1,
55.25,
90.1,
53.75,
89.3,
95.2,
45.7,
74.5,
79.65,
101.3,
80.05,
89.2,
83.65,
19.5,
51.25,
45.6,
49.65,
20,
34,
92.5,
88.35,
74.45,
64.75,
89.8,
29.65,
84.5,
90.7,
70.3,
74.75,
50.8,
80.25,
78.9,
84.75,
85.45,
19.9,
99.45,
70.6,
81,
84.85,
89.15,
24.8,
80.85,
89.45,
72.15,
76.4,
61.6,
79.9,
96.15,
19.65,
84.65,
69.55,
31.05,
51,
44.35,
79.7,
55,
84.85,
73.65,
77.75,
84.35,
84.95,
73.85,
46,
79.4,
71.8,
46,
51.75,
94.4,
70.15,
34.7,
81.1,
20.55,
106.75,
89.45,
97.9,
55.7,
79.8,
39.05,
83.9,
69.85,
53.55,
84.95,
80.5,
19.3,
49.65,
88.45,
90.5,
94.85,
69.95,
48.6,
55.8,
80.15,
75.5,
20.2,
74.75,
104.05,
96.65,
20.05,
103.45,
19.9,
46.35,
19.95,
79.6,
75.9,
76.2,
19.25,
84.3,
79,
70.25,
84.6,
24.1,
60,
86.55,
20.85,
50.75,
85.15,
54.2,
104.4,
105.1,
75.7,
90.8,
97.95,
108.15,
80.5,
104.3,
71.35,
89.4,
20.6,
99.95,
81,
70.15,
70.15,
69.65,
89.3,
87.55,
96.3,
85.2,
35.1,
81.3,
19.6,
85.45,
71,
85.05,
44.4,
70.3,
79.35,
90.8,
70.45,
75.8,
71.3,
69.1,
88.25,
70,
97.35,
25.9,
55.65,
69.65,
100.6,
86,
29.6,
95.6,
100.85,
40.2,
84.5,
78.95,
20.2,
85.2,
98,
94.45,
105,
93.85,
84,
48.75,
84.85,
56.65,
89.9,
78.55,
99.45,
25.2,
55,
89.75,
85.15,
94.6,
94.25,
105.2,
82.85,
103.85,
83.6,
91.5,
80.85,
49.05,
105.3,
88.95,
36.5,
70.75,
40.15,
94.45,
97.35,
45.3,
94.95,
44.55,
23.45,
29.7,
101.1,
50.65,
55.4,
90.6,
86.85,
99.05,
55.1,
102.25,
95.9,
95.05,
53.85,
104.2,
50.25,
99.5,
71,
93.2,
19.35,
19.85,
104.2,
79.25,
44.9,
70.1,
29.65,
77.85,
54.3,
95.15,
80.5,
72.2,
51.5,
89.55,
95.25,
85,
85.75,
98.25,
25.7,
69,
46.05,
76.4,
100.5,
40.05,
69.95,
93.3,
49.15,
35.05,
73,
83.85,
70.1,
70.65,
20.35,
99,
83.95,
19.7,
75.55,
77.65,
95,
95.85,
79.15,
19.65,
79,
91.85,
49.9,
100.35,
74.95,
49.25,
103.7,
20.3,
101.95,
94,
89.3,
74.3,
44.65,
84.05,
80.7,
101.7,
20.4,
55.1,
91.05,
77.5,
69.25,
50.5,
74.4,
100.05,
100.55,
95.65,
94.4,
55,
101.45,
67.95,
69.5,
18.85,
69.2,
69.65,
101.85,
82.3,
79.25,
84.6,
93.4,
94.2,
25.05,
25.1,
48.95,
45.3,
85.85,
95.2,
55.3,
74.85,
79.85,
76,
104.75,
74.65,
56.25,
106.1,
79.75,
68.65,
20.25,
100.2,
74.9,
70.85,
69.8,
54.55,
70.75,
94.1,
29.7,
105,
25.3,
20.1,
69.9,
101.4,
80.8,
62.05,
76.45,
91.3,
95.75,
62.65,
74.5,
102.1,
50.15,
86.5,
81.45,
69.15,
79.55,
91.05,
79.2,
45.25,
74.3,
74.1,
100.6,
75,
70.75,
50.25,
79.2,
96,
100.1,
56.5,
85,
49.4,
55,
69.2,
92.5,
69.65,
48.55,
20.2,
39.65,
56.7,
74.95,
29.7,
50.35,
70.3,
98.8,
99.85,
80.3,
80.45,
86.8,
84.2,
99,
100.75,
91.75,
79.55,
111.1,
89.1,
101.9,
91.65,
88.85,
25.3,
95.45,
91.1,
69.7,
89.5,
35.15,
73.75,
101.35,
55.9,
105.9,
43.95,
45.1,
70.25,
55.35,
103,
69.35,
73.85,
75.15,
69.6,
80.15,
30.5,
107.4,
82,
75.4,
101.25,
89.5,
74.4,
20.5,
74.35,
99.75,
39,
94.1,
95.65,
88.05,
35.45,
49.9,
104.5,
75.05,
81,
74.45,
60.4,
70.65,
44.2,
75.75,
102.95,
74.4
],
"xaxis": "x",
"yaxis": "y"
},
{
"marker": {
"line": {
"color": "#000000",
"width": 2
}
},
"showlegend": false,
"type": "histogram",
"x": [
108.15,
151.65,
820.5,
3046.05,
5036.3,
528.35,
39.65,
20.15,
4749.15,
30.2,
1093.1,
316.9,
3549.25,
1105.4,
144.15,
1426.4,
633.3,
1752.55,
857.25,
79.35,
496.9,
927.35,
113.85,
2514.5,
5238.9,
2868.15,
1064.65,
229.55,
2135.5,
1502.65,
35.45,
81.25,
70.45,
563.65,
45.65,
655.5,
1592.35,
273,
2651.2,
242.8,
1145.7,
503.6,
29.95,
662.65,
1111.65,
24.8,
531,
79.9,
1934.45,
84.5,
268.35,
179.35,
55.2,
84.6,
114.1,
1120.3,
1074.3,
48.55,
147.15,
40.2,
80.55,
132.2,
1364.3,
1511.2,
24.8,
70.6,
401.1,
5624.85,
1779.95,
70,
606.55,
435.4,
1712.7,
73.6,
396.1,
2303.35,
415.55,
2231.05,
139.05,
511.25,
155.8,
6603,
168.2,
371.9,
840.1,
846,
805.1,
492.55,
181.5,
2566.5,
50.65,
90.85,
214.75,
4874.7,
2524.45,
7007.6,
19.9,
19.6,
233.7,
1845.9,
75.3,
1182.55,
518.9,
6396.45,
69.55,
2227.1,
385.9,
673.25,
734.35,
55,
74.7,
1861.5,
453.4,
994.8,
2145,
680.05,
74.35,
139.4,
131.05,
1238.45,
1782.4,
167.5,
502.85,
334.8,
4131.95,
1929.35,
1758.6,
3480,
85,
834.1,
597,
3266,
2596.15,
3527.6,
233.55,
75.3,
346.2,
85.7,
713.75,
6786.4,
248.95,
663.05,
137.6,
4547.25,
4687.9,
6985.65,
855.3,
2499.3,
89.55,
1899.65,
45.7,
161.5,
222.3,
74.6,
164.3,
96.05,
145.15,
191.05,
75.05,
2550.9,
62.25,
80,
91.1,
270.7,
168.15,
2015.35,
19.55,
381.3,
141.5,
3105.55,
2758.15,
3941.7,
1008.55,
1842.8,
1269.55,
1907.85,
208.85,
1444.65,
19.9,
454.15,
184.65,
89.5,
52.2,
1058.25,
489.45,
4113.1,
69.55,
178.7,
2317.1,
1430.25,
644.35,
292.8,
44.4,
89.9,
50.8,
1463.5,
307.4,
2104.55,
319.15,
3027.4,
1582.75,
1043.3,
497.55,
6215.35,
5017.9,
24.6,
1120.95,
923.5,
1625.65,
918.6,
688.65,
73.55,
205.05,
952.3,
360.1,
434.5,
215.8,
3395.8,
85.15,
44.7,
45.7,
832.35,
112.3,
174.8,
90.55,
1359.7,
69.9,
86.6,
2656.5,
2917.5,
2416.1,
424.45,
660.9,
1893.95,
1612.75,
119.75,
3204.65,
990.85,
819.4,
2070.6,
273.75,
729.95,
3013.05,
1266.1,
2347.9,
19.65,
526.95,
210.75,
3706.95,
412.5,
832.05,
185.55,
1943.2,
2169.8,
4853.75,
144.55,
91.1,
713,
4527.45,
171.15,
940.35,
1047.7,
1622.45,
168.15,
387.2,
2839.65,
4284.8,
544.55,
941,
1133.65,
35.55,
196.9,
1162.85,
224.05,
31.35,
1052.4,
19.85,
669.45,
1553.95,
1236.15,
60.15,
593.45,
74.9,
80.25,
1149.65,
740.8,
1532.45,
250.05,
2282.55,
143.35,
45.85,
810.2,
2564.3,
228.4,
1529.2,
45.3,
289.3,
987.95,
45.05,
75.8,
523.15,
59.05,
6127.6,
676.7,
632.95,
270.95,
483.7,
1345.55,
1281,
1553.9,
3207.55,
5124.55,
19.45,
76.35,
69.25,
25.2,
96.45,
20.15,
7133.25,
169.45,
1258.6,
857.2,
1639.3,
889.9,
1290,
330.05,
237.95,
2452.7,
813.85,
79.2,
49.95,
1554,
3217.55,
442.85,
553,
76,
170.85,
1308.4,
732.5,
1504.05,
50.45,
1132.75,
193.6,
349.65,
332.45,
1534.75,
20.55,
424.15,
281,
3475.55,
896.75,
2407.3,
4346.4,
2082.95,
102.75,
1775.8,
1146.65,
74.7,
1313.55,
25.8,
72.4,
1970.5,
190.05,
1025.95,
819.55,
330.15,
45.85,
91.7,
1555.65,
74.95,
898.35,
127.1,
6710.5,
415.95,
950.2,
3384,
165.4,
88.8,
2755.35,
994.55,
1169.35,
2293.6,
3029.1,
655.9,
1463.45,
770.6,
3587.25,
3541.35,
868.5,
85.8,
79.1,
134.5,
5341.8,
324.6,
4812.75,
4399.5,
50.15,
4594.95,
2384.15,
1616.15,
34.7,
264.8,
2200.25,
99.75,
299.7,
639.65,
59.85,
69.6,
418.8,
19.5,
69.9,
183.75,
264.85,
1178.4,
4689.5,
1201.15,
143.65,
71.65,
77.5,
3264.5,
947.3,
1761.05,
973.25,
76.35,
1676.95,
2642.05,
2661.1,
2697.4,
1424.5,
2572.95,
45.1,
2122.45,
20.05,
402.6,
68.75,
46.2,
45.15,
43.3,
2250.65,
1441.1,
4338.6,
45.95,
247.25,
70.05,
165.45,
3653.35,
1194.3,
21,
45.1,
1527.5,
378.4,
5124.6,
3862.55,
50.9,
4872.45,
5118.95,
658.95,
246.5,
215.2,
159.45,
5940.85,
75.35,
75.45,
1210.4,
576.65,
825.7,
93.55,
5885.4,
1259,
309.1,
2257.75,
1350.15,
45.7,
69.95,
97.1,
1710.45,
2165.05,
223.15,
181.1,
341.45,
357.75,
4533.7,
830.85,
45.3,
371.65,
1390.6,
20.2,
2361.8,
1730.35,
2030.3,
4065,
106.55,
1742.75,
340.25,
95.6,
2934.3,
4600.7,
71.35,
20.15,
69.75,
2931,
1400.85,
137.85,
79.95,
19.3,
627.4,
242,
54.35,
100.4,
75.3,
70.55,
2745.7,
2624.25,
184.1,
160.75,
3004.15,
1233.65,
527.9,
2555.9,
179.25,
1338.15,
91.3,
79.5,
467.55,
5427.05,
587.1,
100.8,
1180.95,
2625.55,
1233.4,
740,
102.45,
217.55,
146.05,
567.45,
1384.75,
70.9,
220.95,
2331.3,
74.5,
6941.2,
1043.35,
6822.15,
71.55,
5029.2,
633.4,
321.65,
1253.9,
25.15,
92.45,
2933.2,
1258.3,
1214.05,
1973.75,
45.95,
70.15,
85.55,
2416.55,
3520.75,
88.35,
777.3,
512.45,
141.45,
3640.45,
35.9,
3777.15,
47.5,
847.3,
546.95,
3186.65,
1527.35,
1531.4,
1133.9,
461.7,
77.15,
35.25,
201,
5149.5,
5574.75,
4541.2,
1072,
1715.65,
706.85,
2636.05,
189.2,
74.25,
2187.55,
1581.2,
69.5,
3132.75,
19.4,
803.3,
679.3,
1230.25,
4154.8,
2655.25,
5742.9,
2866.45,
54.75,
3759.05,
94.6,
2911.3,
231.8,
69.75,
279.25,
6281.45,
1131.3,
738.2,
80.2,
260.8,
19.6,
3655.45,
140.7,
665.45,
84.8,
1127.35,
4045.65,
2757.85,
600,
2238.5,
90.75,
365.65,
90.35,
19.75,
1789.25,
2317.1,
266.9,
301.4,
206.6,
604.7,
1471.75,
412.1,
583.45,
50.1,
151.8,
293.65,
1308.1,
765.5,
793.55,
462.8,
169.8,
44.4,
477.7,
86.05,
174.3,
1077.5,
95.65,
20.95,
329.8,
297.3,
1515.1,
1178.25,
758.6,
396.3,
622.9,
329.95,
1048.85,
3351.55,
262.05,
2649.15,
74.4,
3326.2,
560.85,
1060.2,
20.5,
347.65,
81.95,
451.1,
455.3,
1235.55,
2362.1,
1873.7,
6010.05,
7101.5,
45.05,
71,
3309.25,
79.7,
1254.7,
69.25,
1767.35,
1820.45,
1742.95,
73.5,
829.1,
2602.9,
824.75,
1029.75,
2854.55,
4259.3,
2239.65,
480.75,
635.6,
2095,
95.05,
4242.35,
331.9,
6283.3,
2659.4,
298.45,
6143.15,
1059.55,
2180.55,
89.15,
1036.75,
2276.95,
196.15,
1206.05,
1378.25,
219,
79.55,
3444.85,
84.5,
1380.1,
78.65,
45.4,
2585.95,
58.85,
425.9,
3678.3,
2483.5,
556.35,
389.1,
187.45,
261.25,
299.2,
323.25,
762.1,
53.5,
25.1,
2365.15,
308.25,
19.45,
1058.6,
2628.6,
1023.9,
856.35,
3734.25,
1144.5,
45.3,
75.6,
180.25,
19.8,
333.6,
465.05,
431,
878.35,
2448.75,
1329.2,
4348.65,
93.7,
25.05,
365.55,
2342.2,
5278.15,
93.85,
50.45,
521.1,
1046.1,
20.1,
1900.25,
159.15,
856.65,
4056.75,
2435.15,
2874.15,
1974.8,
1218.55,
81.7,
2171.15,
317.25,
3474.05,
69.1,
69.6,
305.55,
78.45,
255.25,
146.9,
762.5,
338.9,
4913.3,
46.3,
4443.45,
1095.65,
446.05,
811.8,
1056.95,
44.15,
834.15,
85.45,
239.55,
59.2,
1060.6,
54.9,
2254.2,
180.3,
158.4,
104.2,
95.1,
438,
325.45,
1148.1,
355.2,
151.3,
188.7,
5549.4,
50.6,
863.1,
69.8,
4750.95,
2391.8,
1687.95,
229.55,
90.55,
2274.35,
602.55,
449.75,
4512.7,
196.95,
131.05,
415.05,
754.65,
75.35,
3198.6,
20.9,
123.65,
906.85,
4888.7,
237.25,
74.6,
342.4,
892.65,
438.4,
3019.5,
3183.4,
79.6,
1734.5,
2088.8,
502.6,
50.75,
1208.35,
651.4,
223.45,
919.4,
181.65,
45.65,
551.35,
115.95,
165.2,
4146.05,
81,
3017.65,
1164.3,
2710.25,
810.7,
36.55,
85.5,
49.55,
178.5,
115.1,
2745.2,
25.25,
416.45,
4116.15,
75.1,
4273.45,
45.8,
20.1,
328.95,
4680.05,
69.1,
999.45,
71.15,
1240.25,
270.8,
374.5,
1520.9,
3605.2,
1145.35,
38.7,
70.8,
1448.6,
291.9,
5921.35,
249.95,
219.65,
669,
68.95,
196.75,
318.9,
24.45,
631.85,
307.4,
55.8,
79.05,
95,
25.2,
4187.75,
3496.3,
914.3,
2351.8,
679.55,
1994.3,
1505.85,
71.65,
2542.45,
210.3,
74.2,
4388.4,
420.2,
3436.1,
70.85,
280.85,
2983.8,
1565.7,
298.35,
45.75,
815.5,
80.15,
108.95,
78.8,
5127.95,
874.8,
69.1,
1776.55,
536.4,
80.85,
51.15,
149.55,
78.65,
42.9,
139.35,
539.85,
4718.25,
434.1,
545.2,
1284.2,
646.85,
1727.5,
86.6,
2979.5,
24.25,
837.95,
362.2,
2068.55,
131.65,
24.05,
50.55,
1415.55,
20.5,
321.9,
482.8,
914,
1172.95,
155.35,
3303.05,
134.35,
70.5,
953.45,
19.75,
937.6,
5812.6,
69.6,
6851.65,
78.05,
520,
706.6,
20.2,
2264.05,
56.35,
2510.2,
2111.45,
20.25,
300.8,
85.45,
2043.45,
2576.2,
469.8,
1457.25,
185.6,
973.55,
41.85,
2862.75,
343.95,
2890.65,
1222.05,
2496.7,
90.6,
288.05,
368.1,
256.6,
68.5,
791.75,
69.95,
346.4,
773.65,
1422.05,
2467.1,
59.75,
94.55,
6871.9,
1454.15,
2404.15,
114.7,
257.05,
40.1,
2217.15,
1129.1,
2568.55,
3580.3,
293.3,
2440.15,
79.55,
89.1,
1607.2,
1490.95,
92.65,
606.25,
19.1,
80.3,
74.9,
751.65,
66.95,
4515.85,
165,
1808.7,
7446.9,
25.1,
1880.85,
477.55,
1496.9,
70.45,
24.75,
2012.7,
242.05,
63.75,
260.9,
2967.35,
939.7,
1037.75,
50.45,
3624.3,
100.25,
1422.1,
69.85,
858.6,
324.3,
399.6,
3273.55,
20.9,
69.4,
541.15,
3229.4,
70.1,
909.25,
5283.95,
1617.5,
84.3,
1131.2,
585.95,
19.95,
2186.4,
661.25,
1111.85,
3046.15,
69.35,
272.2,
50.55,
80.55,
916.9,
1855.65,
116.65,
2287.25,
830.7,
20,
1054.6,
85.05,
2110.15,
547.65,
4370.25,
251.75,
740.3,
452.7,
19.45,
166.3,
70,
3409.6,
1270.2,
1561.5,
31.55,
321.75,
147.15,
2387.75,
2660.2,
990.9,
193.8,
790.15,
2467.75,
1914.9,
5688.05,
1772.25,
44.45,
3067.2,
20.25,
74.35,
62.05,
541.9,
971.3,
162.45,
216.9,
245.2,
302.75,
60.1,
78.95,
98.5,
244.65,
2431.35,
1451.9,
71.1,
94,
1424.95,
193.6,
620.55,
1993.8,
53.95,
829.55,
1312.15,
69.8,
545.15,
494.05,
2841.55,
486.85,
204.7,
2995.45,
137.95,
3762,
3233.6,
5438.9,
1081.45,
221.9,
74.9,
58.9,
333.55,
3171.15,
74.7,
455.5,
3152.5,
3186.7,
35.75,
181.6,
1539.45,
58.15,
225.6,
340.85,
2515.3,
305.95,
365.4,
90.85,
69.4,
742.95,
20.15,
4816.7,
1834.95,
305.1,
155.65,
108.7,
44.1,
712.75,
1637.4,
1740.7,
552.95,
93.7,
1046.5,
834.2,
899.8,
108.05,
70.3,
851.75,
575.45,
1375.15,
152.7,
195.05,
1660,
20.2,
3615.6,
2184.35,
1852.85,
77.15,
338.1,
673.1,
208.7,
237.75,
221.35,
75.3,
4042.3,
164.85,
70.4,
1147.45,
1078.9,
226.45,
4364.1,
2433.9,
1217.25,
1743.5,
69.65,
713.1,
526.7,
3021.6,
191.35,
2718.3,
36.45,
2001.5,
3825.85,
933.3,
764.95,
145.4,
156.25,
1587.55,
842.9,
1761.45,
164.5,
2724.6,
318.5,
3744.05,
2139.2,
521.3,
608,
577.6,
292.85,
198,
609.9,
79.65,
2812.2,
80.05,
2698.35,
1465.75,
146.3,
51.25,
45.6,
267.35,
288.05,
853,
934.1,
1222.8,
74.45,
2345.2,
2335.3,
291.4,
453.75,
1597.25,
235.5,
799.65,
50.8,
144.55,
2447.95,
3050.15,
4517.25,
19.9,
1200.15,
70.6,
389.6,
523.5,
2277.65,
24.8,
1008.7,
853.1,
794.25,
160.8,
1174.35,
741.7,
3019.25,
19.65,
84.65,
69.55,
347.25,
354.05,
44.35,
586.05,
3092.65,
415.55,
73.65,
4458.15,
474.9,
668.4,
926.25,
46,
1156.1,
1167.8,
221.7,
201.1,
2838.7,
70.15,
296.1,
81.1,
20.55,
6252.9,
240.45,
315.3,
55.7,
973.45,
669.85,
267.4,
69.85,
53.55,
2169.75,
896.9,
19.3,
49.65,
370.65,
1910.6,
890.6,
529.5,
48.6,
2109.35,
2265.25,
220.6,
20.2,
229.5,
2470.1,
1244.5,
20.05,
3994.45,
19.9,
667.7,
19.95,
79.6,
75.9,
76.2,
19.25,
3588.4,
522.95,
70.25,
865.55,
409.9,
60,
649.65,
20.85,
2011.4,
503.6,
1152.7,
2157.95,
7548.1,
75.7,
1951,
384.5,
3432.9,
463.05,
2867.75,
71.35,
1132.35,
20.6,
1931.75,
818.05,
916.75,
70.15,
69.65,
89.3,
3078.1,
1426.75,
474.8,
446.1,
416.3,
35.85,
1451.6,
71,
746.5,
44.4,
70.3,
79.35,
809.75,
1470.95,
246.3,
1389.2,
1474.75,
1460.65,
153.05,
2119.5,
135,
1400.55,
69.65,
1060.2,
86,
79.45,
4783.5,
4740,
1448.8,
4254.85,
1101.85,
20.2,
3969.35,
1237.85,
498.1,
294.45,
2381.55,
613.4,
442.2,
84.85,
654.85,
2806.9,
1422.65,
4138.05,
102.5,
757.1,
608.8,
1139.2,
279.55,
1483.25,
4400.75,
460.25,
5485.5,
404.2,
242.95,
866.45,
2076.2,
7299.65,
2291.2,
1032,
70.75,
130.75,
2653.65,
3457.9,
45.3,
178.1,
480.6,
23.45,
29.7,
6039.9,
151.3,
55.4,
90.6,
156.35,
2952.85,
113.35,
1359,
1777.9,
4504.55,
259.8,
5568.35,
2203.65,
2369.05,
672.55,
1573.7,
126.05,
64.55,
3243.45,
79.25,
44.9,
659.65,
118.5,
3365.85,
195.3,
997.65,
80.5,
305.55,
900.5,
3856.75,
3959.35,
3969.4,
470.95,
560.6,
25.7,
506.9,
80.35,
76.4,
514,
880.2,
69.95,
93.3,
169.05,
35.05,
73,
2716.3,
70.1,
142.35,
33.2,
287.4,
2254.2,
19.7,
413.65,
714.15,
2497.2,
197.7,
79.15,
655.85,
303.15,
1574.45,
49.9,
1358.85,
2869.85,
49.25,
5071.05,
20.3,
700.85,
181.7,
4016.85,
74.3,
44.65,
1095.3,
788.8,
364.55,
20.4,
154.65,
2954.5,
3807.35,
418.4,
50.5,
74.4,
4871.05,
4398.15,
167.3,
94.4,
55,
101.45,
350.3,
69.5,
18.85,
69.2,
69.65,
4086.3,
82.3,
267.6,
1115.2,
5435.6,
4186.3,
25.05,
712.85,
48.95,
45.3,
167.3,
930.4,
324.25,
156.4,
152.45,
1130.85,
4323.45,
703.55,
56.25,
2249.95,
159.4,
68.65,
327.45,
1369.8,
1107.25,
70.85,
134.7,
2978.3,
450.8,
1215.6,
91.7,
4026.4,
25.3,
20.1,
69.9,
4528,
80.8,
118.3,
76.45,
1094.5,
573.75,
2274.9,
74.5,
1068.85,
762.25,
582.5,
2122.05,
69.15,
723.4,
289.1,
172.85,
85.5,
1096.25,
228,
5746.15,
209.1,
154.85,
593.75,
3233.85,
1062.1,
5440.9,
235.1,
85,
184.4,
2010.55,
69.2,
3473.4,
220.1,
501,
20.2,
733.35,
113.55,
308.7,
438.25,
50.35,
70.3,
5617.75,
1776.95,
2483.05,
5224.35,
620.35,
519.15,
1301.7,
1129.75,
865.8,
79.55,
6014.85,
2368.4,
3545.35,
1301,
372.45,
77.75,
95.45,
1135.7,
69.7,
573.3,
99.75,
871.4,
780.5,
365.35,
334.65,
43.95,
45.1,
2868.05,
449.75,
4414.3,
69.35,
4092.85,
216.75,
69.6,
385,
30.5,
5121.3,
1127.2,
1747.85,
2754.45,
2196.15,
1692.6,
20.5,
265.35,
1836.25,
679.85,
2804.45,
778.1,
4367.35,
106.85,
130.1,
4036.85,
256.25,
1917.1,
74.45,
272.15,
70.65,
403.35,
75.75,
6886.25,
306.6
],
"xaxis": "x2",
"yaxis": "y2"
}
],
"layout": {
"annotations": [
{
"font": {
"size": 16
},
"showarrow": false,
"text": "(a) Monthtly Charges Distribution",
"x": 0.225,
"xanchor": "center",
"xref": "paper",
"y": 1,
"yanchor": "bottom",
"yref": "paper"
},
{
"font": {
"size": 16
},
"showarrow": false,
"text": "(b) Total Charges Distribution",
"x": 0.775,
"xanchor": "center",
"xref": "paper",
"y": 1,
"yanchor": "bottom",
"yref": "paper"
}
],
"autosize": false,
"template": {
"data": {
"bar": [
{
"error_x": {
"color": "rgb(36,36,36)"
},
"error_y": {
"color": "rgb(36,36,36)"
},
"marker": {
"line": {
"color": "white",
"width": 0.5
}
},
"type": "bar"
}
],
"barpolar": [
{
"marker": {
"line": {
"color": "white",
"width": 0.5
}
},
"type": "barpolar"
}
],
"carpet": [
{
"aaxis": {
"endlinecolor": "rgb(36,36,36)",
"gridcolor": "white",
"linecolor": "white",
"minorgridcolor": "white",
"startlinecolor": "rgb(36,36,36)"
},
"baxis": {
"endlinecolor": "rgb(36,36,36)",
"gridcolor": "white",
"linecolor": "white",
"minorgridcolor": "white",
"startlinecolor": "rgb(36,36,36)"
},
"type": "carpet"
}
],
"choropleth": [
{
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
},
"type": "choropleth"
}
],
"contour": [
{
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
},
"colorscale": [
[
0,
"#440154"
],
[
0.1111111111111111,
"#482878"
],
[
0.2222222222222222,
"#3e4989"
],
[
0.3333333333333333,
"#31688e"
],
[
0.4444444444444444,
"#26828e"
],
[
0.5555555555555556,
"#1f9e89"
],
[
0.6666666666666666,
"#35b779"
],
[
0.7777777777777778,
"#6ece58"
],
[
0.8888888888888888,
"#b5de2b"
],
[
1,
"#fde725"
]
],
"type": "contour"
}
],
"contourcarpet": [
{
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
},
"type": "contourcarpet"
}
],
"heatmap": [
{
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
},
"colorscale": [
[
0,
"#440154"
],
[
0.1111111111111111,
"#482878"
],
[
0.2222222222222222,
"#3e4989"
],
[
0.3333333333333333,
"#31688e"
],
[
0.4444444444444444,
"#26828e"
],
[
0.5555555555555556,
"#1f9e89"
],
[
0.6666666666666666,
"#35b779"
],
[
0.7777777777777778,
"#6ece58"
],
[
0.8888888888888888,
"#b5de2b"
],
[
1,
"#fde725"
]
],
"type": "heatmap"
}
],
"heatmapgl": [
{
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
},
"colorscale": [
[
0,
"#440154"
],
[
0.1111111111111111,
"#482878"
],
[
0.2222222222222222,
"#3e4989"
],
[
0.3333333333333333,
"#31688e"
],
[
0.4444444444444444,
"#26828e"
],
[
0.5555555555555556,
"#1f9e89"
],
[
0.6666666666666666,
"#35b779"
],
[
0.7777777777777778,
"#6ece58"
],
[
0.8888888888888888,
"#b5de2b"
],
[
1,
"#fde725"
]
],
"type": "heatmapgl"
}
],
"histogram": [
{
"marker": {
"line": {
"color": "white",
"width": 0.6
}
},
"type": "histogram"
}
],
"histogram2d": [
{
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
},
"colorscale": [
[
0,
"#440154"
],
[
0.1111111111111111,
"#482878"
],
[
0.2222222222222222,
"#3e4989"
],
[
0.3333333333333333,
"#31688e"
],
[
0.4444444444444444,
"#26828e"
],
[
0.5555555555555556,
"#1f9e89"
],
[
0.6666666666666666,
"#35b779"
],
[
0.7777777777777778,
"#6ece58"
],
[
0.8888888888888888,
"#b5de2b"
],
[
1,
"#fde725"
]
],
"type": "histogram2d"
}
],
"histogram2dcontour": [
{
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
},
"colorscale": [
[
0,
"#440154"
],
[
0.1111111111111111,
"#482878"
],
[
0.2222222222222222,
"#3e4989"
],
[
0.3333333333333333,
"#31688e"
],
[
0.4444444444444444,
"#26828e"
],
[
0.5555555555555556,
"#1f9e89"
],
[
0.6666666666666666,
"#35b779"
],
[
0.7777777777777778,
"#6ece58"
],
[
0.8888888888888888,
"#b5de2b"
],
[
1,
"#fde725"
]
],
"type": "histogram2dcontour"
}
],
"mesh3d": [
{
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
},
"type": "mesh3d"
}
],
"parcoords": [
{
"line": {
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
}
},
"type": "parcoords"
}
],
"pie": [
{
"automargin": true,
"type": "pie"
}
],
"scatter": [
{
"marker": {
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
}
},
"type": "scatter"
}
],
"scatter3d": [
{
"line": {
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
}
},
"marker": {
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
}
},
"type": "scatter3d"
}
],
"scattercarpet": [
{
"marker": {
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
}
},
"type": "scattercarpet"
}
],
"scattergeo": [
{
"marker": {
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
}
},
"type": "scattergeo"
}
],
"scattergl": [
{
"marker": {
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
}
},
"type": "scattergl"
}
],
"scattermapbox": [
{
"marker": {
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
}
},
"type": "scattermapbox"
}
],
"scatterpolar": [
{
"marker": {
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
}
},
"type": "scatterpolar"
}
],
"scatterpolargl": [
{
"marker": {
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
}
},
"type": "scatterpolargl"
}
],
"scatterternary": [
{
"marker": {
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
}
},
"type": "scatterternary"
}
],
"surface": [
{
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
},
"colorscale": [
[
0,
"#440154"
],
[
0.1111111111111111,
"#482878"
],
[
0.2222222222222222,
"#3e4989"
],
[
0.3333333333333333,
"#31688e"
],
[
0.4444444444444444,
"#26828e"
],
[
0.5555555555555556,
"#1f9e89"
],
[
0.6666666666666666,
"#35b779"
],
[
0.7777777777777778,
"#6ece58"
],
[
0.8888888888888888,
"#b5de2b"
],
[
1,
"#fde725"
]
],
"type": "surface"
}
],
"table": [
{
"cells": {
"fill": {
"color": "rgb(237,237,237)"
},
"line": {
"color": "white"
}
},
"header": {
"fill": {
"color": "rgb(217,217,217)"
},
"line": {
"color": "white"
}
},
"type": "table"
}
]
},
"layout": {
"annotationdefaults": {
"arrowhead": 0,
"arrowwidth": 1
},
"coloraxis": {
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
}
},
"colorscale": {
"diverging": [
[
0,
"rgb(103,0,31)"
],
[
0.1,
"rgb(178,24,43)"
],
[
0.2,
"rgb(214,96,77)"
],
[
0.3,
"rgb(244,165,130)"
],
[
0.4,
"rgb(253,219,199)"
],
[
0.5,
"rgb(247,247,247)"
],
[
0.6,
"rgb(209,229,240)"
],
[
0.7,
"rgb(146,197,222)"
],
[
0.8,
"rgb(67,147,195)"
],
[
0.9,
"rgb(33,102,172)"
],
[
1,
"rgb(5,48,97)"
]
],
"sequential": [
[
0,
"#440154"
],
[
0.1111111111111111,
"#482878"
],
[
0.2222222222222222,
"#3e4989"
],
[
0.3333333333333333,
"#31688e"
],
[
0.4444444444444444,
"#26828e"
],
[
0.5555555555555556,
"#1f9e89"
],
[
0.6666666666666666,
"#35b779"
],
[
0.7777777777777778,
"#6ece58"
],
[
0.8888888888888888,
"#b5de2b"
],
[
1,
"#fde725"
]
],
"sequentialminus": [
[
0,
"#440154"
],
[
0.1111111111111111,
"#482878"
],
[
0.2222222222222222,
"#3e4989"
],
[
0.3333333333333333,
"#31688e"
],
[
0.4444444444444444,
"#26828e"
],
[
0.5555555555555556,
"#1f9e89"
],
[
0.6666666666666666,
"#35b779"
],
[
0.7777777777777778,
"#6ece58"
],
[
0.8888888888888888,
"#b5de2b"
],
[
1,
"#fde725"
]
]
},
"colorway": [
"#1F77B4",
"#FF7F0E",
"#2CA02C",
"#D62728",
"#9467BD",
"#8C564B",
"#E377C2",
"#7F7F7F",
"#BCBD22",
"#17BECF"
],
"font": {
"color": "rgb(36,36,36)"
},
"geo": {
"bgcolor": "white",
"lakecolor": "white",
"landcolor": "white",
"showlakes": true,
"showland": true,
"subunitcolor": "white"
},
"hoverlabel": {
"align": "left"
},
"hovermode": "closest",
"mapbox": {
"style": "light"
},
"paper_bgcolor": "white",
"plot_bgcolor": "white",
"polar": {
"angularaxis": {
"gridcolor": "rgb(232,232,232)",
"linecolor": "rgb(36,36,36)",
"showgrid": false,
"showline": true,
"ticks": "outside"
},
"bgcolor": "white",
"radialaxis": {
"gridcolor": "rgb(232,232,232)",
"linecolor": "rgb(36,36,36)",
"showgrid": false,
"showline": true,
"ticks": "outside"
}
},
"scene": {
"xaxis": {
"backgroundcolor": "white",
"gridcolor": "rgb(232,232,232)",
"gridwidth": 2,
"linecolor": "rgb(36,36,36)",
"showbackground": true,
"showgrid": false,
"showline": true,
"ticks": "outside",
"zeroline": false,
"zerolinecolor": "rgb(36,36,36)"
},
"yaxis": {
"backgroundcolor": "white",
"gridcolor": "rgb(232,232,232)",
"gridwidth": 2,
"linecolor": "rgb(36,36,36)",
"showbackground": true,
"showgrid": false,
"showline": true,
"ticks": "outside",
"zeroline": false,
"zerolinecolor": "rgb(36,36,36)"
},
"zaxis": {
"backgroundcolor": "white",
"gridcolor": "rgb(232,232,232)",
"gridwidth": 2,
"linecolor": "rgb(36,36,36)",
"showbackground": true,
"showgrid": false,
"showline": true,
"ticks": "outside",
"zeroline": false,
"zerolinecolor": "rgb(36,36,36)"
}
},
"shapedefaults": {
"fillcolor": "black",
"line": {
"width": 0
},
"opacity": 0.3
},
"ternary": {
"aaxis": {
"gridcolor": "rgb(232,232,232)",
"linecolor": "rgb(36,36,36)",
"showgrid": false,
"showline": true,
"ticks": "outside"
},
"baxis": {
"gridcolor": "rgb(232,232,232)",
"linecolor": "rgb(36,36,36)",
"showgrid": false,
"showline": true,
"ticks": "outside"
},
"bgcolor": "white",
"caxis": {
"gridcolor": "rgb(232,232,232)",
"linecolor": "rgb(36,36,36)",
"showgrid": false,
"showline": true,
"ticks": "outside"
}
},
"title": {
"x": 0.05
},
"xaxis": {
"automargin": true,
"gridcolor": "rgb(232,232,232)",
"linecolor": "rgb(36,36,36)",
"showgrid": false,
"showline": true,
"ticks": "outside",
"title": {
"standoff": 15
},
"zeroline": false,
"zerolinecolor": "rgb(36,36,36)"
},
"yaxis": {
"automargin": true,
"gridcolor": "rgb(232,232,232)",
"linecolor": "rgb(36,36,36)",
"showgrid": false,
"showline": true,
"ticks": "outside",
"title": {
"standoff": 15
},
"zeroline": false,
"zerolinecolor": "rgb(36,36,36)"
}
}
},
"title": {
"text": "Charges Distribution for Month-to-month contracts for Churned Clients ",
"x": 0.5,
"xanchor": "center",
"y": 0.9,
"yanchor": "top"
},
"xaxis": {
"anchor": "y",
"domain": [
0,
0.45
]
},
"xaxis2": {
"anchor": "y2",
"domain": [
0.55,
1
]
},
"yaxis": {
"anchor": "x",
"automargin": true,
"domain": [
0,
1
],
"title": {
"text": "Frequency "
}
},
"yaxis2": {
"anchor": "x2",
"automargin": true,
"domain": [
0,
1
]
}
}
},
"text/html": [
"\n",
" \n",
" \n",
"
\n",
" \n",
"
"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"df_aux = dataset.query('(Contract == \"Month-to-month\") and (Churn == \"Yes\")')\n",
"histogram_subplot(df_aux, df_aux, \"MonthlyCharges\", \"TotalCharges\", \n",
" \"Charges Distribution for Month-to-month contracts for Churned Clients \",\n",
" \"(a) Monthtly Charges Distribution\", \"(b) Total Charges Distribution\")"
]
},
{
"cell_type": "markdown",
"metadata": {
"cell_id": "0a9867c9-7fbc-491c-ac50-c033404f654f",
"tags": []
},
"source": [
"Total Charges had the same behaviour, but the Monthly Charges for many churned clients was high, maybe the amount of chage value could lead the client to leave the service. \n",
"Still on the Month-to-month contract, it's time to analyze the most used Payment methods of churned clients."
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"cell_id": "5b9d7be6-7b0a-4276-bf80-0e955af80524",
"tags": []
},
"outputs": [
{
"data": {
"application/vnd.plotly.v1+json": {
"config": {
"linkText": "Export to plot.ly",
"plotlyServerURL": "https://plot.ly",
"showLink": false
},
"data": [
{
"marker": {
"color": [
"#ff8000",
"#0080ff",
"#0080ff",
"#0080ff"
],
"line": {
"color": "#000000",
"width": 2
}
},
"text": [
1071,
308,
258,
232
],
"textfont": {
"size": 14
},
"textposition": "outside",
"type": "bar",
"x": [
"Electronic check",
"Mailed check",
"Bank transfer (automatic)",
"Credit card (automatic)"
],
"y": [
1071,
308,
258,
232
]
}
],
"layout": {
"autosize": false,
"height": 600,
"template": {
"data": {
"bar": [
{
"error_x": {
"color": "rgb(36,36,36)"
},
"error_y": {
"color": "rgb(36,36,36)"
},
"marker": {
"line": {
"color": "white",
"width": 0.5
}
},
"type": "bar"
}
],
"barpolar": [
{
"marker": {
"line": {
"color": "white",
"width": 0.5
}
},
"type": "barpolar"
}
],
"carpet": [
{
"aaxis": {
"endlinecolor": "rgb(36,36,36)",
"gridcolor": "white",
"linecolor": "white",
"minorgridcolor": "white",
"startlinecolor": "rgb(36,36,36)"
},
"baxis": {
"endlinecolor": "rgb(36,36,36)",
"gridcolor": "white",
"linecolor": "white",
"minorgridcolor": "white",
"startlinecolor": "rgb(36,36,36)"
},
"type": "carpet"
}
],
"choropleth": [
{
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
},
"type": "choropleth"
}
],
"contour": [
{
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
},
"colorscale": [
[
0,
"#440154"
],
[
0.1111111111111111,
"#482878"
],
[
0.2222222222222222,
"#3e4989"
],
[
0.3333333333333333,
"#31688e"
],
[
0.4444444444444444,
"#26828e"
],
[
0.5555555555555556,
"#1f9e89"
],
[
0.6666666666666666,
"#35b779"
],
[
0.7777777777777778,
"#6ece58"
],
[
0.8888888888888888,
"#b5de2b"
],
[
1,
"#fde725"
]
],
"type": "contour"
}
],
"contourcarpet": [
{
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
},
"type": "contourcarpet"
}
],
"heatmap": [
{
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
},
"colorscale": [
[
0,
"#440154"
],
[
0.1111111111111111,
"#482878"
],
[
0.2222222222222222,
"#3e4989"
],
[
0.3333333333333333,
"#31688e"
],
[
0.4444444444444444,
"#26828e"
],
[
0.5555555555555556,
"#1f9e89"
],
[
0.6666666666666666,
"#35b779"
],
[
0.7777777777777778,
"#6ece58"
],
[
0.8888888888888888,
"#b5de2b"
],
[
1,
"#fde725"
]
],
"type": "heatmap"
}
],
"heatmapgl": [
{
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
},
"colorscale": [
[
0,
"#440154"
],
[
0.1111111111111111,
"#482878"
],
[
0.2222222222222222,
"#3e4989"
],
[
0.3333333333333333,
"#31688e"
],
[
0.4444444444444444,
"#26828e"
],
[
0.5555555555555556,
"#1f9e89"
],
[
0.6666666666666666,
"#35b779"
],
[
0.7777777777777778,
"#6ece58"
],
[
0.8888888888888888,
"#b5de2b"
],
[
1,
"#fde725"
]
],
"type": "heatmapgl"
}
],
"histogram": [
{
"marker": {
"line": {
"color": "white",
"width": 0.6
}
},
"type": "histogram"
}
],
"histogram2d": [
{
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
},
"colorscale": [
[
0,
"#440154"
],
[
0.1111111111111111,
"#482878"
],
[
0.2222222222222222,
"#3e4989"
],
[
0.3333333333333333,
"#31688e"
],
[
0.4444444444444444,
"#26828e"
],
[
0.5555555555555556,
"#1f9e89"
],
[
0.6666666666666666,
"#35b779"
],
[
0.7777777777777778,
"#6ece58"
],
[
0.8888888888888888,
"#b5de2b"
],
[
1,
"#fde725"
]
],
"type": "histogram2d"
}
],
"histogram2dcontour": [
{
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
},
"colorscale": [
[
0,
"#440154"
],
[
0.1111111111111111,
"#482878"
],
[
0.2222222222222222,
"#3e4989"
],
[
0.3333333333333333,
"#31688e"
],
[
0.4444444444444444,
"#26828e"
],
[
0.5555555555555556,
"#1f9e89"
],
[
0.6666666666666666,
"#35b779"
],
[
0.7777777777777778,
"#6ece58"
],
[
0.8888888888888888,
"#b5de2b"
],
[
1,
"#fde725"
]
],
"type": "histogram2dcontour"
}
],
"mesh3d": [
{
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
},
"type": "mesh3d"
}
],
"parcoords": [
{
"line": {
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
}
},
"type": "parcoords"
}
],
"pie": [
{
"automargin": true,
"type": "pie"
}
],
"scatter": [
{
"marker": {
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
}
},
"type": "scatter"
}
],
"scatter3d": [
{
"line": {
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
}
},
"marker": {
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
}
},
"type": "scatter3d"
}
],
"scattercarpet": [
{
"marker": {
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
}
},
"type": "scattercarpet"
}
],
"scattergeo": [
{
"marker": {
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
}
},
"type": "scattergeo"
}
],
"scattergl": [
{
"marker": {
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
}
},
"type": "scattergl"
}
],
"scattermapbox": [
{
"marker": {
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
}
},
"type": "scattermapbox"
}
],
"scatterpolar": [
{
"marker": {
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
}
},
"type": "scatterpolar"
}
],
"scatterpolargl": [
{
"marker": {
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
}
},
"type": "scatterpolargl"
}
],
"scatterternary": [
{
"marker": {
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
}
},
"type": "scatterternary"
}
],
"surface": [
{
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
},
"colorscale": [
[
0,
"#440154"
],
[
0.1111111111111111,
"#482878"
],
[
0.2222222222222222,
"#3e4989"
],
[
0.3333333333333333,
"#31688e"
],
[
0.4444444444444444,
"#26828e"
],
[
0.5555555555555556,
"#1f9e89"
],
[
0.6666666666666666,
"#35b779"
],
[
0.7777777777777778,
"#6ece58"
],
[
0.8888888888888888,
"#b5de2b"
],
[
1,
"#fde725"
]
],
"type": "surface"
}
],
"table": [
{
"cells": {
"fill": {
"color": "rgb(237,237,237)"
},
"line": {
"color": "white"
}
},
"header": {
"fill": {
"color": "rgb(217,217,217)"
},
"line": {
"color": "white"
}
},
"type": "table"
}
]
},
"layout": {
"annotationdefaults": {
"arrowhead": 0,
"arrowwidth": 1
},
"coloraxis": {
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
}
},
"colorscale": {
"diverging": [
[
0,
"rgb(103,0,31)"
],
[
0.1,
"rgb(178,24,43)"
],
[
0.2,
"rgb(214,96,77)"
],
[
0.3,
"rgb(244,165,130)"
],
[
0.4,
"rgb(253,219,199)"
],
[
0.5,
"rgb(247,247,247)"
],
[
0.6,
"rgb(209,229,240)"
],
[
0.7,
"rgb(146,197,222)"
],
[
0.8,
"rgb(67,147,195)"
],
[
0.9,
"rgb(33,102,172)"
],
[
1,
"rgb(5,48,97)"
]
],
"sequential": [
[
0,
"#440154"
],
[
0.1111111111111111,
"#482878"
],
[
0.2222222222222222,
"#3e4989"
],
[
0.3333333333333333,
"#31688e"
],
[
0.4444444444444444,
"#26828e"
],
[
0.5555555555555556,
"#1f9e89"
],
[
0.6666666666666666,
"#35b779"
],
[
0.7777777777777778,
"#6ece58"
],
[
0.8888888888888888,
"#b5de2b"
],
[
1,
"#fde725"
]
],
"sequentialminus": [
[
0,
"#440154"
],
[
0.1111111111111111,
"#482878"
],
[
0.2222222222222222,
"#3e4989"
],
[
0.3333333333333333,
"#31688e"
],
[
0.4444444444444444,
"#26828e"
],
[
0.5555555555555556,
"#1f9e89"
],
[
0.6666666666666666,
"#35b779"
],
[
0.7777777777777778,
"#6ece58"
],
[
0.8888888888888888,
"#b5de2b"
],
[
1,
"#fde725"
]
]
},
"colorway": [
"#1F77B4",
"#FF7F0E",
"#2CA02C",
"#D62728",
"#9467BD",
"#8C564B",
"#E377C2",
"#7F7F7F",
"#BCBD22",
"#17BECF"
],
"font": {
"color": "rgb(36,36,36)"
},
"geo": {
"bgcolor": "white",
"lakecolor": "white",
"landcolor": "white",
"showlakes": true,
"showland": true,
"subunitcolor": "white"
},
"hoverlabel": {
"align": "left"
},
"hovermode": "closest",
"mapbox": {
"style": "light"
},
"paper_bgcolor": "white",
"plot_bgcolor": "white",
"polar": {
"angularaxis": {
"gridcolor": "rgb(232,232,232)",
"linecolor": "rgb(36,36,36)",
"showgrid": false,
"showline": true,
"ticks": "outside"
},
"bgcolor": "white",
"radialaxis": {
"gridcolor": "rgb(232,232,232)",
"linecolor": "rgb(36,36,36)",
"showgrid": false,
"showline": true,
"ticks": "outside"
}
},
"scene": {
"xaxis": {
"backgroundcolor": "white",
"gridcolor": "rgb(232,232,232)",
"gridwidth": 2,
"linecolor": "rgb(36,36,36)",
"showbackground": true,
"showgrid": false,
"showline": true,
"ticks": "outside",
"zeroline": false,
"zerolinecolor": "rgb(36,36,36)"
},
"yaxis": {
"backgroundcolor": "white",
"gridcolor": "rgb(232,232,232)",
"gridwidth": 2,
"linecolor": "rgb(36,36,36)",
"showbackground": true,
"showgrid": false,
"showline": true,
"ticks": "outside",
"zeroline": false,
"zerolinecolor": "rgb(36,36,36)"
},
"zaxis": {
"backgroundcolor": "white",
"gridcolor": "rgb(232,232,232)",
"gridwidth": 2,
"linecolor": "rgb(36,36,36)",
"showbackground": true,
"showgrid": false,
"showline": true,
"ticks": "outside",
"zeroline": false,
"zerolinecolor": "rgb(36,36,36)"
}
},
"shapedefaults": {
"fillcolor": "black",
"line": {
"width": 0
},
"opacity": 0.3
},
"ternary": {
"aaxis": {
"gridcolor": "rgb(232,232,232)",
"linecolor": "rgb(36,36,36)",
"showgrid": false,
"showline": true,
"ticks": "outside"
},
"baxis": {
"gridcolor": "rgb(232,232,232)",
"linecolor": "rgb(36,36,36)",
"showgrid": false,
"showline": true,
"ticks": "outside"
},
"bgcolor": "white",
"caxis": {
"gridcolor": "rgb(232,232,232)",
"linecolor": "rgb(36,36,36)",
"showgrid": false,
"showline": true,
"ticks": "outside"
}
},
"title": {
"x": 0.05
},
"xaxis": {
"automargin": true,
"gridcolor": "rgb(232,232,232)",
"linecolor": "rgb(36,36,36)",
"showgrid": false,
"showline": true,
"ticks": "outside",
"title": {
"standoff": 15
},
"zeroline": false,
"zerolinecolor": "rgb(36,36,36)"
},
"yaxis": {
"automargin": true,
"gridcolor": "rgb(232,232,232)",
"linecolor": "rgb(36,36,36)",
"showgrid": false,
"showline": true,
"ticks": "outside",
"title": {
"standoff": 15
},
"zeroline": false,
"zerolinecolor": "rgb(36,36,36)"
}
}
},
"title": {
"text": "Payment Method of Month-to-month contract Churned Clients ",
"x": 0.5,
"xanchor": "center",
"y": 0.9,
"yanchor": "top"
},
"xaxis": {
"title": {
"text": "Payment Method "
}
},
"yaxis": {
"automargin": true,
"title": {
"text": "Count "
}
}
}
},
"text/html": [
"\n",
" \n",
" \n",
"
\n",
" \n",
"
"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"df_aux = dataset.query(('Contract == Month-to-month') and ('Churn == \"Yes\"'))\n",
"df_aux = df_aux[\"PaymentMethod\"].value_counts()\n",
"bar_plot(df_aux, \"Payment Method of Month-to-month contract Churned Clients \",\n",
" \"Payment Method \", \"Count \")"
]
},
{
"cell_type": "markdown",
"metadata": {
"cell_id": "0b85ae6a-63cf-457b-a105-f013d1798415",
"tags": []
},
"source": [
"Many Churned Clients used to pay with electronic checks, automatic payments, as bank transfers or credit card have a few churned clients. A good idea could make promotions to clients that use automatic payment methods. \n",
"Lastly, the tenure of the churned clients."
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {
"cell_id": "0bcdd312-51fd-4748-8035-889060017e5c",
"tags": []
},
"outputs": [
{
"data": {
"application/vnd.plotly.v1+json": {
"config": {
"linkText": "Export to plot.ly",
"plotlyServerURL": "https://plot.ly",
"showLink": false
},
"data": [
{
"marker": {
"color": [
"#ff8000",
"#0080ff",
"#0080ff",
"#0080ff",
"#0080ff"
],
"line": {
"color": "#000000",
"width": 2
}
},
"text": [
380,
123,
94,
83,
64
],
"textfont": {
"size": 14
},
"textposition": "outside",
"type": "bar",
"x": [
1,
2,
3,
4,
5
],
"y": [
380,
123,
94,
83,
64
]
}
],
"layout": {
"autosize": false,
"height": 600,
"template": {
"data": {
"bar": [
{
"error_x": {
"color": "rgb(36,36,36)"
},
"error_y": {
"color": "rgb(36,36,36)"
},
"marker": {
"line": {
"color": "white",
"width": 0.5
}
},
"type": "bar"
}
],
"barpolar": [
{
"marker": {
"line": {
"color": "white",
"width": 0.5
}
},
"type": "barpolar"
}
],
"carpet": [
{
"aaxis": {
"endlinecolor": "rgb(36,36,36)",
"gridcolor": "white",
"linecolor": "white",
"minorgridcolor": "white",
"startlinecolor": "rgb(36,36,36)"
},
"baxis": {
"endlinecolor": "rgb(36,36,36)",
"gridcolor": "white",
"linecolor": "white",
"minorgridcolor": "white",
"startlinecolor": "rgb(36,36,36)"
},
"type": "carpet"
}
],
"choropleth": [
{
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
},
"type": "choropleth"
}
],
"contour": [
{
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
},
"colorscale": [
[
0,
"#440154"
],
[
0.1111111111111111,
"#482878"
],
[
0.2222222222222222,
"#3e4989"
],
[
0.3333333333333333,
"#31688e"
],
[
0.4444444444444444,
"#26828e"
],
[
0.5555555555555556,
"#1f9e89"
],
[
0.6666666666666666,
"#35b779"
],
[
0.7777777777777778,
"#6ece58"
],
[
0.8888888888888888,
"#b5de2b"
],
[
1,
"#fde725"
]
],
"type": "contour"
}
],
"contourcarpet": [
{
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
},
"type": "contourcarpet"
}
],
"heatmap": [
{
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
},
"colorscale": [
[
0,
"#440154"
],
[
0.1111111111111111,
"#482878"
],
[
0.2222222222222222,
"#3e4989"
],
[
0.3333333333333333,
"#31688e"
],
[
0.4444444444444444,
"#26828e"
],
[
0.5555555555555556,
"#1f9e89"
],
[
0.6666666666666666,
"#35b779"
],
[
0.7777777777777778,
"#6ece58"
],
[
0.8888888888888888,
"#b5de2b"
],
[
1,
"#fde725"
]
],
"type": "heatmap"
}
],
"heatmapgl": [
{
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
},
"colorscale": [
[
0,
"#440154"
],
[
0.1111111111111111,
"#482878"
],
[
0.2222222222222222,
"#3e4989"
],
[
0.3333333333333333,
"#31688e"
],
[
0.4444444444444444,
"#26828e"
],
[
0.5555555555555556,
"#1f9e89"
],
[
0.6666666666666666,
"#35b779"
],
[
0.7777777777777778,
"#6ece58"
],
[
0.8888888888888888,
"#b5de2b"
],
[
1,
"#fde725"
]
],
"type": "heatmapgl"
}
],
"histogram": [
{
"marker": {
"line": {
"color": "white",
"width": 0.6
}
},
"type": "histogram"
}
],
"histogram2d": [
{
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
},
"colorscale": [
[
0,
"#440154"
],
[
0.1111111111111111,
"#482878"
],
[
0.2222222222222222,
"#3e4989"
],
[
0.3333333333333333,
"#31688e"
],
[
0.4444444444444444,
"#26828e"
],
[
0.5555555555555556,
"#1f9e89"
],
[
0.6666666666666666,
"#35b779"
],
[
0.7777777777777778,
"#6ece58"
],
[
0.8888888888888888,
"#b5de2b"
],
[
1,
"#fde725"
]
],
"type": "histogram2d"
}
],
"histogram2dcontour": [
{
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
},
"colorscale": [
[
0,
"#440154"
],
[
0.1111111111111111,
"#482878"
],
[
0.2222222222222222,
"#3e4989"
],
[
0.3333333333333333,
"#31688e"
],
[
0.4444444444444444,
"#26828e"
],
[
0.5555555555555556,
"#1f9e89"
],
[
0.6666666666666666,
"#35b779"
],
[
0.7777777777777778,
"#6ece58"
],
[
0.8888888888888888,
"#b5de2b"
],
[
1,
"#fde725"
]
],
"type": "histogram2dcontour"
}
],
"mesh3d": [
{
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
},
"type": "mesh3d"
}
],
"parcoords": [
{
"line": {
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
}
},
"type": "parcoords"
}
],
"pie": [
{
"automargin": true,
"type": "pie"
}
],
"scatter": [
{
"marker": {
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
}
},
"type": "scatter"
}
],
"scatter3d": [
{
"line": {
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
}
},
"marker": {
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
}
},
"type": "scatter3d"
}
],
"scattercarpet": [
{
"marker": {
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
}
},
"type": "scattercarpet"
}
],
"scattergeo": [
{
"marker": {
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
}
},
"type": "scattergeo"
}
],
"scattergl": [
{
"marker": {
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
}
},
"type": "scattergl"
}
],
"scattermapbox": [
{
"marker": {
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
}
},
"type": "scattermapbox"
}
],
"scatterpolar": [
{
"marker": {
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
}
},
"type": "scatterpolar"
}
],
"scatterpolargl": [
{
"marker": {
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
}
},
"type": "scatterpolargl"
}
],
"scatterternary": [
{
"marker": {
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
}
},
"type": "scatterternary"
}
],
"surface": [
{
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
},
"colorscale": [
[
0,
"#440154"
],
[
0.1111111111111111,
"#482878"
],
[
0.2222222222222222,
"#3e4989"
],
[
0.3333333333333333,
"#31688e"
],
[
0.4444444444444444,
"#26828e"
],
[
0.5555555555555556,
"#1f9e89"
],
[
0.6666666666666666,
"#35b779"
],
[
0.7777777777777778,
"#6ece58"
],
[
0.8888888888888888,
"#b5de2b"
],
[
1,
"#fde725"
]
],
"type": "surface"
}
],
"table": [
{
"cells": {
"fill": {
"color": "rgb(237,237,237)"
},
"line": {
"color": "white"
}
},
"header": {
"fill": {
"color": "rgb(217,217,217)"
},
"line": {
"color": "white"
}
},
"type": "table"
}
]
},
"layout": {
"annotationdefaults": {
"arrowhead": 0,
"arrowwidth": 1
},
"coloraxis": {
"colorbar": {
"outlinewidth": 1,
"tickcolor": "rgb(36,36,36)",
"ticks": "outside"
}
},
"colorscale": {
"diverging": [
[
0,
"rgb(103,0,31)"
],
[
0.1,
"rgb(178,24,43)"
],
[
0.2,
"rgb(214,96,77)"
],
[
0.3,
"rgb(244,165,130)"
],
[
0.4,
"rgb(253,219,199)"
],
[
0.5,
"rgb(247,247,247)"
],
[
0.6,
"rgb(209,229,240)"
],
[
0.7,
"rgb(146,197,222)"
],
[
0.8,
"rgb(67,147,195)"
],
[
0.9,
"rgb(33,102,172)"
],
[
1,
"rgb(5,48,97)"
]
],
"sequential": [
[
0,
"#440154"
],
[
0.1111111111111111,
"#482878"
],
[
0.2222222222222222,
"#3e4989"
],
[
0.3333333333333333,
"#31688e"
],
[
0.4444444444444444,
"#26828e"
],
[
0.5555555555555556,
"#1f9e89"
],
[
0.6666666666666666,
"#35b779"
],
[
0.7777777777777778,
"#6ece58"
],
[
0.8888888888888888,
"#b5de2b"
],
[
1,
"#fde725"
]
],
"sequentialminus": [
[
0,
"#440154"
],
[
0.1111111111111111,
"#482878"
],
[
0.2222222222222222,
"#3e4989"
],
[
0.3333333333333333,
"#31688e"
],
[
0.4444444444444444,
"#26828e"
],
[
0.5555555555555556,
"#1f9e89"
],
[
0.6666666666666666,
"#35b779"
],
[
0.7777777777777778,
"#6ece58"
],
[
0.8888888888888888,
"#b5de2b"
],
[
1,
"#fde725"
]
]
},
"colorway": [
"#1F77B4",
"#FF7F0E",
"#2CA02C",
"#D62728",
"#9467BD",
"#8C564B",
"#E377C2",
"#7F7F7F",
"#BCBD22",
"#17BECF"
],
"font": {
"color": "rgb(36,36,36)"
},
"geo": {
"bgcolor": "white",
"lakecolor": "white",
"landcolor": "white",
"showlakes": true,
"showland": true,
"subunitcolor": "white"
},
"hoverlabel": {
"align": "left"
},
"hovermode": "closest",
"mapbox": {
"style": "light"
},
"paper_bgcolor": "white",
"plot_bgcolor": "white",
"polar": {
"angularaxis": {
"gridcolor": "rgb(232,232,232)",
"linecolor": "rgb(36,36,36)",
"showgrid": false,
"showline": true,
"ticks": "outside"
},
"bgcolor": "white",
"radialaxis": {
"gridcolor": "rgb(232,232,232)",
"linecolor": "rgb(36,36,36)",
"showgrid": false,
"showline": true,
"ticks": "outside"
}
},
"scene": {
"xaxis": {
"backgroundcolor": "white",
"gridcolor": "rgb(232,232,232)",
"gridwidth": 2,
"linecolor": "rgb(36,36,36)",
"showbackground": true,
"showgrid": false,
"showline": true,
"ticks": "outside",
"zeroline": false,
"zerolinecolor": "rgb(36,36,36)"
},
"yaxis": {
"backgroundcolor": "white",
"gridcolor": "rgb(232,232,232)",
"gridwidth": 2,
"linecolor": "rgb(36,36,36)",
"showbackground": true,
"showgrid": false,
"showline": true,
"ticks": "outside",
"zeroline": false,
"zerolinecolor": "rgb(36,36,36)"
},
"zaxis": {
"backgroundcolor": "white",
"gridcolor": "rgb(232,232,232)",
"gridwidth": 2,
"linecolor": "rgb(36,36,36)",
"showbackground": true,
"showgrid": false,
"showline": true,
"ticks": "outside",
"zeroline": false,
"zerolinecolor": "rgb(36,36,36)"
}
},
"shapedefaults": {
"fillcolor": "black",
"line": {
"width": 0
},
"opacity": 0.3
},
"ternary": {
"aaxis": {
"gridcolor": "rgb(232,232,232)",
"linecolor": "rgb(36,36,36)",
"showgrid": false,
"showline": true,
"ticks": "outside"
},
"baxis": {
"gridcolor": "rgb(232,232,232)",
"linecolor": "rgb(36,36,36)",
"showgrid": false,
"showline": true,
"ticks": "outside"
},
"bgcolor": "white",
"caxis": {
"gridcolor": "rgb(232,232,232)",
"linecolor": "rgb(36,36,36)",
"showgrid": false,
"showline": true,
"ticks": "outside"
}
},
"title": {
"x": 0.05
},
"xaxis": {
"automargin": true,
"gridcolor": "rgb(232,232,232)",
"linecolor": "rgb(36,36,36)",
"showgrid": false,
"showline": true,
"ticks": "outside",
"title": {
"standoff": 15
},
"zeroline": false,
"zerolinecolor": "rgb(36,36,36)"
},
"yaxis": {
"automargin": true,
"gridcolor": "rgb(232,232,232)",
"linecolor": "rgb(36,36,36)",
"showgrid": false,
"showline": true,
"ticks": "outside",
"title": {
"standoff": 15
},
"zeroline": false,
"zerolinecolor": "rgb(36,36,36)"
}
}
},
"title": {
"text": "Tenure of Month-to-month contract for Churned Clients ",
"x": 0.5,
"xanchor": "center",
"y": 0.9,
"yanchor": "top"
},
"xaxis": {
"title": {
"text": "Tenure "
}
},
"yaxis": {
"automargin": true,
"title": {
"text": "Count "
}
}
}
},
"text/html": [
"\n",
" \n",
" \n",
"
\n",
" \n",
"
"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"df_aux = dataset.query(('Contract == Month-to-month') and ('Churn == \"Yes\"'))\n",
"df_aux = df_aux[\"tenure\"].value_counts().head(5)\n",
"bar_plot(df_aux, \"Tenure of Month-to-month contract for Churned Clients \",\n",
" \"Tenure \", \"Count \")"
]
},
{
"cell_type": "markdown",
"metadata": {
"cell_id": "007f6510-4a74-46a4-952b-225af9f37d03",
"tags": []
},
"source": [
"Most clients just used the service for one month, seems like the clients used to service to check the quality or the couldn't stay for the amount of charges, as the Monthly Charges for these clients was high and the Total Charges was small, as the client just stayed a little time. "
]
},
{
"cell_type": "markdown",
"metadata": {
"cell_id": "8546f71b-652c-4909-b31b-b11cd7cc52c1",
"tags": []
},
"source": [
"# 4. Setting up PyCaret"
]
},
{
"cell_type": "markdown",
"metadata": {
"cell_id": "f96ae182-aead-4514-af36-6ffcf5df7e2e",
"tags": []
},
"source": [
"Before setting up PyCaret, a random sample of 10% size of the dataset will be get to make predictions with unseen data. "
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {
"cell_id": "d6011a29-86c1-44e5-b754-8d952ddce4cc",
"tags": []
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"There are 704 samples for Unseen Data.\n"
]
}
],
"source": [
"data, data_unseen = data_sampling(dataset, 0.9, RANDOM_SEED)\n",
"print(f\"There are {data_unseen.shape[0]} samples for Unseen Data.\")"
]
},
{
"cell_type": "markdown",
"metadata": {
"cell_id": "506eea27-2ffc-48ba-a05f-19ba290d3d1e",
"tags": []
},
"source": [
"The PyCaret's setup is made with 90% of data samples and just use one function (`setup`) from the module. \n",
"It's possible configure with variuos options, as data pre-processing, feature engineering, etc. The easy and efficient of PyCaret buy a lot of time when prototyping models. \n",
"Each setup is an experiment and for this problem, is used the following options:\n",
"* Normalization of the numerical features with Z-Score.\n",
"* Feature Selection with permutation importance techniques.\n",
"* Outliers Removal.\n",
"* Features Removal based on Multicollinearity.\n",
"* Features Scalling Transformation.\n",
"* Ignore low variance on Features.\n",
"* PCA for Dimensionality Reduction, as the dataset has many features.\n",
"* Numeric binning on the features `MonthlyCharges` and `TotalCharges`.\n",
"* 70% of samples for Train and 30% for test.\n",
"* Fix Imbalance with SMOTE.\n",
"* The models will store their metric results via Mlflow, to acess Mlflow UI, type mlflow on the your cmd or !mlflow ui on a cell on the bottom of this notebook. "
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {
"cell_id": "6f4ed29e-1357-47b2-a4e4-637ce4119bbc",
"tags": []
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Setup Succesfully Completed!\n"
]
},
{
"data": {
"text/html": [
" Description Value \n",
" \n",
" 0 \n",
" session_id \n",
" 142 \n",
" \n",
" \n",
" 1 \n",
" Target Type \n",
" Binary \n",
" \n",
" \n",
" 2 \n",
" Label Encoded \n",
" No: 0, Yes: 1 \n",
" \n",
" \n",
" 3 \n",
" Original Data \n",
" (6339, 21) \n",
" \n",
" \n",
" 4 \n",
" Missing Values \n",
" True \n",
" \n",
" \n",
" 5 \n",
" Numeric Features \n",
" 4 \n",
" \n",
" \n",
" 6 \n",
" Categorical Features \n",
" 16 \n",
" \n",
" \n",
" 7 \n",
" Ordinal Features \n",
" False \n",
" \n",
" \n",
" 8 \n",
" High Cardinality Features \n",
" False \n",
" \n",
" \n",
" 9 \n",
" High Cardinality Method \n",
" None \n",
" \n",
" \n",
" 10 \n",
" Sampled Data \n",
" (6022, 21) \n",
" \n",
" \n",
" 11 \n",
" Transformed Train Set \n",
" (4215, 40) \n",
" \n",
" \n",
" 12 \n",
" Transformed Test Set \n",
" (1807, 40) \n",
" \n",
" \n",
" 13 \n",
" Numeric Imputer \n",
" mean \n",
" \n",
" \n",
" 14 \n",
" Categorical Imputer \n",
" constant \n",
" \n",
" \n",
" 15 \n",
" Normalize \n",
" True \n",
" \n",
" \n",
" 16 \n",
" Normalize Method \n",
" zscore \n",
" \n",
" \n",
" 17 \n",
" Transformation \n",
" True \n",
" \n",
" \n",
" 18 \n",
" Transformation Method \n",
" yeo-johnson \n",
" \n",
" \n",
" 19 \n",
" PCA \n",
" True \n",
" \n",
" \n",
" 20 \n",
" PCA Method \n",
" linear \n",
" \n",
" \n",
" 21 \n",
" PCA Components \n",
" 0.990000 \n",
" \n",
" \n",
" 22 \n",
" Ignore Low Variance \n",
" True \n",
" \n",
" \n",
" 23 \n",
" Combine Rare Levels \n",
" False \n",
" \n",
" \n",
" 24 \n",
" Rare Level Threshold \n",
" None \n",
" \n",
" \n",
" 25 \n",
" Numeric Binning \n",
" True \n",
" \n",
" \n",
" 26 \n",
" Remove Outliers \n",
" True \n",
" \n",
" \n",
" 27 \n",
" Outliers Threshold \n",
" 0.050000 \n",
" \n",
" \n",
" 28 \n",
" Remove Multicollinearity \n",
" True \n",
" \n",
" \n",
" 29 \n",
" Multicollinearity Threshold \n",
" 0.900000 \n",
" \n",
" \n",
" 30 \n",
" Clustering \n",
" False \n",
" \n",
" \n",
" 31 \n",
" Clustering Iteration \n",
" None \n",
" \n",
" \n",
" 32 \n",
" Polynomial Features \n",
" False \n",
" \n",
" \n",
" 33 \n",
" Polynomial Degree \n",
" None \n",
" \n",
" \n",
" 34 \n",
" Trignometry Features \n",
" False \n",
" \n",
" \n",
" 35 \n",
" Polynomial Threshold \n",
" None \n",
" \n",
" \n",
" 36 \n",
" Group Features \n",
" False \n",
" \n",
" \n",
" 37 \n",
" Feature Selection \n",
" True \n",
" \n",
" \n",
" 38 \n",
" Features Selection Threshold \n",
" 0.800000 \n",
" \n",
" \n",
" 39 \n",
" Feature Interaction \n",
" False \n",
" \n",
" \n",
" 40 \n",
" Feature Ratio \n",
" False \n",
" \n",
" \n",
" 41 \n",
" Interaction Threshold \n",
" None \n",
" \n",
" \n",
" 42 \n",
" Fix Imbalance \n",
" True \n",
" \n",
" \n",
" 43 \n",
" Fix Imbalance Method \n",
" SMOTE \n",
" \n",
"
"
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"exp01 = setup(data=data, target=\"Churn\", session_id=RANDOM_SEED, ignore_features=[\"customerID\"], \n",
" numeric_features=[\"SeniorCitizen\"], normalize=True,\n",
" feature_selection=True, remove_outliers=True,\n",
" remove_multicollinearity=True, fix_imbalance=True,\n",
" transformation=True, ignore_low_variance=True, pca=True, \n",
" bin_numeric_features=[\"MonthlyCharges\", \"TotalCharges\"],\n",
" silent=True, experiment_name=\"customer-churn-prediction\",\n",
" log_experiment=True)"
]
},
{
"cell_type": "markdown",
"metadata": {
"cell_id": "8d33c0f2-51f2-4b29-8548-7b354dd14b00",
"tags": []
},
"source": [
"PyCaret shows at first if all features types are with it correspondent type, if everything is right, press enter on the blank bar and the setup is finished showing a summary of the experiment. "
]
},
{
"cell_type": "markdown",
"metadata": {
"cell_id": "4ae241d1-57c6-4dcc-91c0-5d6f10b11bf1",
"tags": []
},
"source": [
"# 5. Model Build"
]
},
{
"cell_type": "markdown",
"metadata": {
"cell_id": "cc8f9047-81a4-46cc-902e-5450348b5b33",
"tags": []
},
"source": [
"A great tool on PyCaret is build many models and compare a metric for the bests! \n",
"The models are sorted by F1 Score due Precision and Recall are importants for the evaluation. \n",
"The cross-validation is made with 5-folds."
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {
"cell_id": "922945dc-4001-4a47-b782-9515570044cf",
"tags": []
},
"outputs": [
{
"data": {
"text/html": [
" Model Accuracy AUC Recall Prec. F1 Kappa MCC TT (Sec) \n",
" \n",
" 0 \n",
" Logistic Regression \n",
" 0.7516 \n",
" 0.8373 \n",
" 0.7777 \n",
" 0.5349 \n",
" 0.6336 \n",
" 0.4553 \n",
" 0.4739 \n",
" 0.0468 \n",
" \n",
" \n",
" 1 \n",
" Ridge Classifier \n",
" 0.7416 \n",
" 0.0000 \n",
" 0.7897 \n",
" 0.5216 \n",
" 0.6279 \n",
" 0.4424 \n",
" 0.4653 \n",
" 0.0136 \n",
" \n",
" \n",
" 2 \n",
" Linear Discriminant Analysis \n",
" 0.7414 \n",
" 0.8358 \n",
" 0.7897 \n",
" 0.5213 \n",
" 0.6277 \n",
" 0.4421 \n",
" 0.4650 \n",
" 0.0485 \n",
" \n",
" \n",
" 3 \n",
" SVM - Linear Kernel \n",
" 0.7419 \n",
" 0.0000 \n",
" 0.7356 \n",
" 0.5253 \n",
" 0.6115 \n",
" 0.4267 \n",
" 0.4417 \n",
" 0.0532 \n",
" \n",
" \n",
" 4 \n",
" Ada Boost Classifier \n",
" 0.7464 \n",
" 0.8042 \n",
" 0.7004 \n",
" 0.5313 \n",
" 0.6040 \n",
" 0.4226 \n",
" 0.4316 \n",
" 1.3652 \n",
" \n",
" \n",
" 5 \n",
" Quadratic Discriminant Analysis \n",
" 0.7414 \n",
" 0.8139 \n",
" 0.7082 \n",
" 0.5235 \n",
" 0.6015 \n",
" 0.4164 \n",
" 0.4274 \n",
" 0.0310 \n",
" \n",
" \n",
" 6 \n",
" Light Gradient Boosting Machine \n",
" 0.7692 \n",
" 0.8094 \n",
" 0.6266 \n",
" 0.5772 \n",
" 0.6000 \n",
" 0.4384 \n",
" 0.4398 \n",
" 0.9825 \n",
" \n",
" \n",
" 7 \n",
" K Neighbors Classifier \n",
" 0.6837 \n",
" 0.7636 \n",
" 0.7614 \n",
" 0.4568 \n",
" 0.5709 \n",
" 0.3445 \n",
" 0.3728 \n",
" 0.0920 \n",
" \n",
" \n",
" 8 \n",
" Extreme Gradient Boosting \n",
" 0.7599 \n",
" 0.7934 \n",
" 0.5760 \n",
" 0.5646 \n",
" 0.5696 \n",
" 0.4033 \n",
" 0.4038 \n",
" 2.7836 \n",
" \n",
" \n",
" 9 \n",
" Extra Trees Classifier \n",
" 0.7656 \n",
" 0.7878 \n",
" 0.5382 \n",
" 0.5830 \n",
" 0.5593 \n",
" 0.4001 \n",
" 0.4009 \n",
" 0.5752 \n",
" \n",
" \n",
" 10 \n",
" Random Forest Classifier \n",
" 0.7599 \n",
" 0.7806 \n",
" 0.5391 \n",
" 0.5701 \n",
" 0.5541 \n",
" 0.3900 \n",
" 0.3903 \n",
" 0.2290 \n",
" \n",
" \n",
" 11 \n",
" Naive Bayes \n",
" 0.7070 \n",
" 0.7421 \n",
" 0.6506 \n",
" 0.4779 \n",
" 0.5510 \n",
" 0.3410 \n",
" 0.3500 \n",
" 0.0137 \n",
" \n",
" \n",
" 12 \n",
" Decision Tree Classifier \n",
" 0.6977 \n",
" 0.6559 \n",
" 0.5459 \n",
" 0.4605 \n",
" 0.4994 \n",
" 0.2852 \n",
" 0.2875 \n",
" 0.4045 \n",
" \n",
"
"
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"top_model = compare_models(fold=K_FOLDS,\n",
" sort=\"F1\",\n",
" n_select=1, \n",
" blacklist=[\"gbc\", \"catboost\"])"
]
},
{
"cell_type": "markdown",
"metadata": {
"cell_id": "0bdc63ac-21e4-4d6f-afa3-a12cce4e2023",
"tags": []
},
"source": [
"The best model suggested by PyCaret is the Logistic Regreesion, with a F1 Score around 0.63 and a good Recall, around 0.77. \n",
"Time to tune the model. The `choose_better` argument get the best model between the tuned and best model."
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {
"cell_id": "be5c3da4-91f5-43f1-a5dd-a36802be9dc5",
"tags": []
},
"outputs": [],
"source": [
"tuned_model = tune_model(estimator=top_model, fold=K_FOLDS,\n",
" optimize=\"F1\", choose_better=True,\n",
" verbose=False)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's see the hyperparameters of the chosen model"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" \n",
" Parameters \n",
" \n",
" \n",
" \n",
" \n",
" C \n",
" 8.261 \n",
" \n",
" \n",
" class_weight \n",
" balanced \n",
" \n",
" \n",
" dual \n",
" False \n",
" \n",
" \n",
" fit_intercept \n",
" True \n",
" \n",
" \n",
" intercept_scaling \n",
" 1 \n",
" \n",
" \n",
" l1_ratio \n",
" None \n",
" \n",
" \n",
" max_iter \n",
" 100 \n",
" \n",
" \n",
" multi_class \n",
" auto \n",
" \n",
" \n",
" n_jobs \n",
" -1 \n",
" \n",
" \n",
" penalty \n",
" l2 \n",
" \n",
" \n",
" random_state \n",
" 142 \n",
" \n",
" \n",
" solver \n",
" lbfgs \n",
" \n",
" \n",
" tol \n",
" 0.0001 \n",
" \n",
" \n",
" verbose \n",
" 0 \n",
" \n",
" \n",
" warm_start \n",
" False \n",
" \n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Parameters\n",
"C 8.261\n",
"class_weight balanced\n",
"dual False\n",
"fit_intercept True\n",
"intercept_scaling 1\n",
"l1_ratio None\n",
"max_iter 100\n",
"multi_class auto\n",
"n_jobs -1\n",
"penalty l2\n",
"random_state 142\n",
"solver lbfgs\n",
"tol 0.0001\n",
"verbose 0\n",
"warm_start False"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plot_model(tuned_model, plot=\"parameter\")"
]
},
{
"cell_type": "markdown",
"metadata": {
"cell_id": "590b1194-08b9-4c9e-9329-9b1efab65302",
"tags": []
},
"source": [
"PyCaret also has functions to make ensembles, for this implementation, a bagged model is build."
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {
"cell_id": "66bf4246-2a40-494b-bd2e-69bd8897ff23",
"tags": []
},
"outputs": [
{
"data": {
"text/html": [
" Accuracy AUC Recall Prec. F1 Kappa MCC \n",
" \n",
" 0 \n",
" 0.7711 \n",
" 0.8668 \n",
" 0.8455 \n",
" 0.5565 \n",
" 0.6712 \n",
" 0.5068 \n",
" 0.5329 \n",
" \n",
" \n",
" 1 \n",
" 0.7248 \n",
" 0.8332 \n",
" 0.7682 \n",
" 0.5014 \n",
" 0.6068 \n",
" 0.4092 \n",
" 0.4312 \n",
" \n",
" \n",
" 2 \n",
" 0.7450 \n",
" 0.8274 \n",
" 0.7253 \n",
" 0.5281 \n",
" 0.6112 \n",
" 0.4284 \n",
" 0.4403 \n",
" \n",
" \n",
" 3 \n",
" 0.7473 \n",
" 0.8326 \n",
" 0.7468 \n",
" 0.5305 \n",
" 0.6203 \n",
" 0.4390 \n",
" 0.4534 \n",
" \n",
" \n",
" 4 \n",
" 0.7461 \n",
" 0.8265 \n",
" 0.7768 \n",
" 0.5277 \n",
" 0.6285 \n",
" 0.4462 \n",
" 0.4654 \n",
" \n",
" \n",
" Mean \n",
" 0.7469 \n",
" 0.8373 \n",
" 0.7725 \n",
" 0.5288 \n",
" 0.6276 \n",
" 0.4459 \n",
" 0.4647 \n",
" \n",
" \n",
" SD \n",
" 0.0147 \n",
" 0.0150 \n",
" 0.0406 \n",
" 0.0174 \n",
" 0.0231 \n",
" 0.0329 \n",
" 0.0360 \n",
" \n",
"
"
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"bagged_model = ensemble_model(tuned_model, fold=K_FOLDS)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"And now a boosted model."
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
" Accuracy AUC Recall Prec. F1 Kappa MCC \n",
" \n",
" 0 \n",
" 0.7746 \n",
" 0.8697 \n",
" 0.8541 \n",
" 0.5606 \n",
" 0.6769 \n",
" 0.5150 \n",
" 0.5420 \n",
" \n",
" \n",
" 1 \n",
" 0.7414 \n",
" 0.8365 \n",
" 0.7897 \n",
" 0.5212 \n",
" 0.6280 \n",
" 0.4423 \n",
" 0.4647 \n",
" \n",
" \n",
" 2 \n",
" 0.7497 \n",
" 0.8301 \n",
" 0.7253 \n",
" 0.5348 \n",
" 0.6157 \n",
" 0.4363 \n",
" 0.4474 \n",
" \n",
" \n",
" 3 \n",
" 0.7544 \n",
" 0.8319 \n",
" 0.7554 \n",
" 0.5399 \n",
" 0.6297 \n",
" 0.4535 \n",
" 0.4678 \n",
" \n",
" \n",
" 4 \n",
" 0.7509 \n",
" 0.8261 \n",
" 0.7854 \n",
" 0.5335 \n",
" 0.6354 \n",
" 0.4565 \n",
" 0.4762 \n",
" \n",
" \n",
" Mean \n",
" 0.7542 \n",
" 0.8389 \n",
" 0.7820 \n",
" 0.5380 \n",
" 0.6371 \n",
" 0.4607 \n",
" 0.4796 \n",
" \n",
" \n",
" SD \n",
" 0.0111 \n",
" 0.0158 \n",
" 0.0429 \n",
" 0.0128 \n",
" 0.0209 \n",
" 0.0281 \n",
" 0.0325 \n",
" \n",
"
"
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"boosted_model = ensemble_model(tuned_model, fold=K_FOLDS,\n",
" method=\"Boosting\")"
]
},
{
"cell_type": "markdown",
"metadata": {
"cell_id": "282646c1-03c4-4ad2-a39c-cc99f0fafddb",
"tags": []
},
"source": [
"The boosted model improved a bit the F1 Score, it's also possible make blended and stacked models with PyCaret, both models are created using the the tuned and boosted models."
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {
"cell_id": "bb52afc0-9e6b-4be8-8e41-c51e0f88317c",
"tags": []
},
"outputs": [
{
"data": {
"text/html": [
" Accuracy AUC Recall Prec. F1 Kappa MCC \n",
" \n",
" 0 \n",
" 0.7770 \n",
" 0.0000 \n",
" 0.8412 \n",
" 0.5648 \n",
" 0.6759 \n",
" 0.5157 \n",
" 0.5395 \n",
" \n",
" \n",
" 1 \n",
" 0.7414 \n",
" 0.0000 \n",
" 0.7682 \n",
" 0.5219 \n",
" 0.6215 \n",
" 0.4358 \n",
" 0.4546 \n",
" \n",
" \n",
" 2 \n",
" 0.7509 \n",
" 0.0000 \n",
" 0.7124 \n",
" 0.5372 \n",
" 0.6125 \n",
" 0.4342 \n",
" 0.4436 \n",
" \n",
" \n",
" 3 \n",
" 0.7556 \n",
" 0.0000 \n",
" 0.7468 \n",
" 0.5421 \n",
" 0.6282 \n",
" 0.4529 \n",
" 0.4658 \n",
" \n",
" \n",
" 4 \n",
" 0.7580 \n",
" 0.0000 \n",
" 0.7811 \n",
" 0.5433 \n",
" 0.6408 \n",
" 0.4671 \n",
" 0.4846 \n",
" \n",
" \n",
" Mean \n",
" 0.7566 \n",
" 0.0000 \n",
" 0.7700 \n",
" 0.5419 \n",
" 0.6358 \n",
" 0.4612 \n",
" 0.4776 \n",
" \n",
" \n",
" SD \n",
" 0.0117 \n",
" 0.0000 \n",
" 0.0425 \n",
" 0.0138 \n",
" 0.0221 \n",
" 0.0298 \n",
" 0.0338 \n",
" \n",
"
"
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"blended_model = blend_models(estimator_list=[tuned_model, boosted_model],\n",
" fold=K_FOLDS)"
]
},
{
"cell_type": "markdown",
"metadata": {
"cell_id": "a76c2608-fb6d-4ee9-b706-88391ff104cc",
"tags": []
},
"source": [
"The best model still is the boosted model. \n",
"Let's plot some metric curves, matrices and see what is the model classifier, starting with the hyperparameters and the used model classifier."
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" \n",
" Parameters \n",
" \n",
" \n",
" \n",
" \n",
" algorithm \n",
" SAMME.R \n",
" \n",
" \n",
" base_estimator__C \n",
" 8.261 \n",
" \n",
" \n",
" base_estimator__class_weight \n",
" balanced \n",
" \n",
" \n",
" base_estimator__dual \n",
" False \n",
" \n",
" \n",
" base_estimator__fit_intercept \n",
" True \n",
" \n",
" \n",
" base_estimator__intercept_scaling \n",
" 1 \n",
" \n",
" \n",
" base_estimator__l1_ratio \n",
" None \n",
" \n",
" \n",
" base_estimator__max_iter \n",
" 100 \n",
" \n",
" \n",
" base_estimator__multi_class \n",
" auto \n",
" \n",
" \n",
" base_estimator__n_jobs \n",
" -1 \n",
" \n",
" \n",
" base_estimator__penalty \n",
" l2 \n",
" \n",
" \n",
" base_estimator__random_state \n",
" 142 \n",
" \n",
" \n",
" base_estimator__solver \n",
" lbfgs \n",
" \n",
" \n",
" base_estimator__tol \n",
" 0.0001 \n",
" \n",
" \n",
" base_estimator__verbose \n",
" 0 \n",
" \n",
" \n",
" base_estimator__warm_start \n",
" False \n",
" \n",
" \n",
" base_estimator \n",
" LogisticRegression(C=8.261000000000001, class_... \n",
" \n",
" \n",
" learning_rate \n",
" 1 \n",
" \n",
" \n",
" n_estimators \n",
" 10 \n",
" \n",
" \n",
" random_state \n",
" 142 \n",
" \n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Parameters\n",
"algorithm SAMME.R\n",
"base_estimator__C 8.261\n",
"base_estimator__class_weight balanced\n",
"base_estimator__dual False\n",
"base_estimator__fit_intercept True\n",
"base_estimator__intercept_scaling 1\n",
"base_estimator__l1_ratio None\n",
"base_estimator__max_iter 100\n",
"base_estimator__multi_class auto\n",
"base_estimator__n_jobs -1\n",
"base_estimator__penalty l2\n",
"base_estimator__random_state 142\n",
"base_estimator__solver lbfgs\n",
"base_estimator__tol 0.0001\n",
"base_estimator__verbose 0\n",
"base_estimator__warm_start False\n",
"base_estimator LogisticRegression(C=8.261000000000001, class_...\n",
"learning_rate 1\n",
"n_estimators 10\n",
"random_state 142"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Model: \n"
]
}
],
"source": [
"best_model = boosted_model\n",
"plot_model(best_model, plot=\"parameter\")\n",
"print(f\"Model: {type(best_model)}\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's plot the ROC curve, PR Curve, Confusion Matrix and Metrics for each class."
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {
"cell_id": "b112eea9-4394-414c-8aec-00a046bc7782",
"scrolled": false,
"tags": []
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plot_model(best_model, plot=\"auc\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The AUC for each class was good: 0.85."
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAfYAAAFlCAYAAAAZGcpRAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy86wFpkAAAACXBIWXMAAAsTAAALEwEAmpwYAABXm0lEQVR4nO3dd3gU1dvG8e/sbnohBELvgdB7L0EQUalShAAKqCgiKBYEQQURBRF8fyoidqWoFEGkKSgdEZHee+8JkN52d+a8fyysxAQIZdlk83yuy8vszOzMM2dD7p12jqaUUgghhBDCI5jcXYAQQggh7h4JdiGEEMKDSLALIYQQHkSCXQghhPAgEuxCCCGEB5FgF0IIITyIxd0FiNzt9OnTtG7dmoiICOc0pRR9+vTh0UcfvSvb+PjjjyldujSdOnW67jKPPPIIM2bMIDg4+K5s8/7778fLywtfX180TcNqtWIymRg2bBjNmze/K9u4VsWKFdmwYQOrV69m2bJlfPHFF5mWSU9P57PPPmP16tUopTAMgw4dOvDMM8+gadpdr+lG/vzzT0aOHEmBAgX4/vvv8fX1ve11denShbS0NJYsWXLd/di1axcvvvgiK1euvOG6evfuzZkzZwgKCkIphc1mo127djz//PO3Xd/17Ny5k7lz5zJmzBgAdF1n+vTpLFq0CF3XsdlstGzZkhdffBFvb2+GDx9OhQoV6Nev312rYcWKFWzYsIE333yTffv28cILLxAcHEynTp04efIkb7755l3blsg9JNjFHfP19WXBggXO1xcuXKB9+/ZUq1aNSpUq3fH6X3zxxZsuc+3275YPPviA6tWrO18vXbqU119/nT///POub+tmlFIMHDiQsmXLMnv2bHx8fIiNjeXZZ58lJSWFl1566Z7Ws2TJErp168bAgQPvaD07duzAarXi5eXFunXr7sqXpmHDhvHwww8DkJCQQNu2bWncuDF169a943Vf6/Dhw1y4cMH5evTo0cTHxzNt2jSCgoJISUnh1Vdf5Y033mDixIl3ddtXtWrVilatWgGOkG/YsCFjx451ybZE7iHBLu66woULU7p0aY4fP87evXuZO3cuqampBAYGMmPGDH766SdmzpyJYRiEhIQwcuRIwsPDSU5O5t1332Xr1q2YzWYeeOABXn75ZUaMGOE80pk0aRJ//PEHXl5e5M+fn/fe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7+68dBAeHk7JkiU5cOAAQUFBGT7Lixcv3jRAsmrza7d97XavUkoxa9Ys4uPjuf/++wFITU3ln3/+4eWXX860L9fu88SJE9m5cyddu3alYcOG2O3267ZjaGgo7du3588//6RFixaZbs5TSmG327MM5avzevToQcuWLVm/fj3r1q1j8uTJLF26NMOyNWrU4OjRoyQlJTm/xILjfpORI0cyadIk57Tz588TFRVF9+7dqVu3Lg8//DCrVq1yrufqDXF///033bp146uvvrru9OwwDIOPP/6Y8PBwwPEF9Np2yOrzEbmbPO4m7qlmzZqxZMkSoqOjAcc11r59+wLQuHFj5s+fj2EYWK1WBg8ezKZNm5zv3b9/P+3btyc8PJxnn32WJ554gl27dmVYf2RkJPPmzXMeAc2YMYP69evj7e193Zp69uzJggULWLBgwXVvPKpTpw6dOnVi9OjRGIZxW/vx559/MmjQINq2bQs4bhzTdT1b7Va7dm3KlSvHe++9R3p6OuAI3XfffZcSJUoAjhDbvXs34Lix68CBA9dd39Uj8E8//ZRu3boBULZs2Qxf0s6dO0f79u2d67yeyMhIZs6cic1mwzAMfvjhB5o2bXrD96xfv55Lly6xfPlyVq5cycqVK1m3bh1hYWHMnj2bpk2bsn79es6fPw/8e9YGHHfk9+3bl06dOlGgQAH++uuv67ajzWZj/fr11KhRg3LlymGxWPj9998BR+guW7aMJk2aEBkZya+//srly5cBmDdvHiEhIZQuXZoePXqwb98+unTpwjvvvENCQgIxMTGYzWbnl8bChQvToUMHXn/9dZKSkgBISkpi9OjRhISEZPhCuXv3bkJDQxk4cCDNmjVzhrqu63zwwQdMmTKFBx54gDfeeIPy5ctz6NCh607PjmbNmjF16lSUUlitVp577jnnWSThmeSIXdxTzZo145lnnuGpp55C0zQCAwOZPHkymqbx/PPPM3bsWB555BF0Xadt27Y8+OCDzkecKlWqRJs2bejatSv+/v74+vpmepzn0Ucf5dy5c3Tr1g3DMChdujQffPDBXan9lVdeoU2bNsyZM4cePXrc8n7ExMQwaNAg/P39CQwMpH79+pw8eTLb2580aRIffvghXbp0wWw2YxgGnTp1cj4+9dxzzzF8+HDWrFlDuXLlbnqKtVu3bs6wAPD29mbKlCmMHTuW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\n",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plot_model(best_model, plot=\"pr\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The PR curve got an average precision around 0.7, which is good."
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAeoAAAFkCAYAAADv13iSAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy86wFpkAAAACXBIWXMAAAsTAAALEwEAmpwYAAAr5klEQVR4nO3dd3xOd//H8Xd2EDWClCBUEUSQu0ntNtFy125pUYJqqdv6VVE71KiatVpK3RQ1a+9ZNapG1ayWao1YISEiiazr/P7wcN1S0lQryRev5191znXO+ZxLbq/7nGvEwbIsSwAAwEiOWT0AAABIG6EGAMBghBoAAIMRagAADEaoAQAwGKEGAMBghBpGSkpKUvXq1fXOO++k+Zj169crNDQ03X2FhISoTp06atSokRo0aKB69epp4cKFD3Ncu23btmnChAn2PyckJGj8+PFq3Lix/fjTpk3TnU9FhoaGav369Q91hvnz52vatGmSpJ07dyo4OFhNmzbVvHnz7Mv/iVOnTqlr165q0KCBGjZsqFatWmn//v3/aJ93z3nr1q0H3r5///767rvv/tEMdyxdulSlS5fWxIkTUy23LEu1atVS/fr1093H4sWL9dVXX9133d1/P8Bf4ZzVAwD3s2nTJvn6+uro0aM6deqUSpQo8Y/2N2bMGJUvX16SdPHiRdWpU0c1a9ZUwYIFH8a4dkeOHFF0dLSk2/+wd+rUScWLF9fChQvl5uama9eu6d1331VcXJzee++9h3rsO1q0aGH/7zVr1uj1119Xp06dHsq+f/vtN7Vp00YjRoxQjRo1JEm7d+9Wx44dNX/+fJUsWfJv7fefzjl8+PC/tV1aChUqpJUrV6pbt272Zfv379etW7eULVu2dLf/4Ycf0nwu7v77Af4KQg0jzZ8/X3Xr1lXRokX15ZdfasiQIZKkCRMmaNWqVcqdO7d8fHzsj//99981ZMgQxcbG6sqVK/L19dX48ePl5uZ2z76jo6OVLVs2Zc+eXdLtf4BHjRql+Ph4ubi46L333lPNmjUlSZ9++qnWrFkjJycnFS9eXAMHDlT+/Pm1ceNGTZkyRQ4ODnJyctIHH3wgV1dXLViwQCkpKcqZM6eqVaum3377TdOmTZOTk5MkKU+ePBo1apTOnz9/z1xTp07Vli1bdOvWLcXHx6t37956+eWXderUKfXv31+JiYmyLEtNmzZVy5Yt01w+adIkXbt2TYUKFdKWLVvk5uammJgYZc+eXdeuXVNYWJguX76sIUOG6OLFi0pKSlK9evXUsWNHhYeHq2XLlipRooTOnz+vOXPmqECBAvYZp0+friZNmtgjLUlVqlTR2LFj5e7uLknavHmzJk+eLJvNphw5cqhv377y9/fXpEmTdP78eV25ckXnz5+Xl5eXRo8erZUrV6Y5pyT7+YSFhd33eQ8MDFRoaKhatmypf//73w98/LvP745SpUrp4sWLOnDggAICAiRJy5YtU8OGDbVjxw5J0tWrVxUWFqbIyEhduXJF3t7eGj9+vA4cOKCtW7dq165dcnd3V1RUlA4ePKiIiAiVLl1aPj4+unbtmjp16qTGjRtr+PDheuGFFzR+/HgdOnRIM2bMkKMjNztxFwswzMmTJ61y5cpZUVFR1qFDhyx/f38rKirK2rRpk1W3bl0rJibGSkpKsjp06GC1atXKsizL+vjjj63ly5dblmVZiYmJVv369a3169dblmVZwcHBVu3ata2GDRtaderUsXx9fa1x48ZZlmVZUVFRVpUqVayDBw9almVZJ06csIKCgqyzZ89aX3/9tdWsWTMrNjbWsizLmjhxotWuXTvLsiyrVq1a1o8//mhZlmXt2LHDmjRpkv0xH374oWVZljVjxgyrW7duf3qurVq1statW2eFh4dboaGhVnx8vGVZlrV69Wqrfv36lmVZVt++fa3PP//csizLioiIsN577z0rJSUlzeV3z9C7d2/riy++uGe20NBQa8uWLZZlWdatW7es0NBQa82aNda5c+esUqVKWfv27bvvvPXr17e2bduW5vn8+uuvVtWqVa2zZ89almVZ3333nVWtWjUrJibGmjhxolWrVi0rJibGsizLevfdd60JEyb86Zx//HNaz/ud5/HvHv9uS5YssTp06GDNmDHDCgsLsyzLsuLi4qzatWtbu3btsurVq2dZlmXNmjXL/vzbbDbrnXfesWbMmHHf86lTp46VlJR0z/ns2LHDqlGjhrVx40brhRdesCIjI9N8bvHk4ooaxpk/f76Cg4OVJ08e5cmTR4ULF9aiRYsUERGhl19+WR4eHpKkJk2aaM6cOZKkXr16adeuXZo+fbpOnz6tiIgIxcXF2fd5963vc+fOqW3btipZsqRy5sypokWLqkKFCpKkkiVLKiAgQHv37tX27dv12muv2a+8W7duralTpyoxMVH16tVTly5d9MILL6hatWpq3779Pefh6Ohofy06Pd7e3ho1apRWrVqlM2fO6NChQ4qNjZUkvfzyy+rdu7cOHz6sKlWqaMCAAXJ0dExzeXri4uK0b98+RUdH219Pj4uL088//yx/f385OzurYsWK993WwcFBNpstzX1///33qly5sooUKSLp9tV23rx5dfToUUlSUFCQ/e+vbNmy9pcJ/qr0nveHefwGDRqoUaNG6t+/vzZt2qSQkBD7nRFJatOmjfbv36+ZM2fq9OnTOnnypP3n6I8qVqwoZ+d7/7mtXr266tatq65du2ru3LnKmzfvAz0feDJwfwVGiYuL04oVK/TDDz8oJCREISEhunLliubOnavk5ORU4bv7H833339fixYtkre3t9q2baty5cqlGckiRYooJCRE+/btU0pKihwcHFKttyxLycnJstlsqdbZbDYlJydLkrp376558+bJz89PS5cuVcuWLe85ToUKFXTkyBGlpKSkWn748GH16tUr1bJjx46pWbNmunnzpqpVq5bqTXTBwcHasGGDXnnlFR0/flwNGjTQpUuX0lyeHpvNJsuytGDBAq1YsUIrVqzQwoUL9e6770qSXF1d7xsV6XZwDh48eM/yyZMna+XKlfc8Z9L/nk9J9tvj0u3o3+/v6I/Lk5KS7P+d3vP+MI5/R/78+VW2bFlt375dy5cv16uvvppq/ejRozVhwgTlyZNHzZo1U7Vq1dLc353/s/dHlmXp1KlTypcv332fV0Ai1DDMndefd+zYoa1bt2rr1q3avHmz4uLi9Nxzz2n9+vW6ceOGbDabVqxYYd9u586d6ty5s+rWrStJOnTo0D2BvOPOFaW/v78qVqyo3377TYcPH5YknTx5Uvv27VNQUJBq1KihJUuW2K/M58yZo8DAQDk6OiokJETx8fFq0aKFBg0apF9++UWJiYlycnKyR6FSpUp65plnNGLECCUkJEi6/brmsGHDVLhw4VQz7du3T35+fnrrrbcUFBSkLVu22Ofv0aOH1q5dq3r16mnQoEHy8PDQ2bNn01yeHg8PD1WsWFEzZ86UJN24cUMtWrTQli1b0t327bff1uLFi7Vz5077su3bt2vOnDny9fVVlSpVtHPnTp07d07S7TeaXbx4Mc0rzfvJkyePjh07JsuydPPmTX3zzTeSpOTk5DSf9zsexvHv1rhxY82cOVMxMTEqVapUqnU7d+5UmzZt1LhxY3l6euq7776z/53d/XPwZ2bNmqW4uDgtWbJEs2bNsv8cAnfj1jeMMn/+fL311luprpafeuophYaGatasWWrSpImaNGmip556Sr6+vrp27Zqk21danTt3Vvbs2eXh4aHAwMBU0erZs6fc3d3l4OCg+Ph4vfLKK2rSpImk229QGzp0qG7duiUHBweNGDFCxYsXl4+Pjy5evKjXX39dNptNPj4+GjNmjJydndWvXz/17NlTzs7OcnBw0EcffSRXV1dVrlxZPXv21NChQzVw4EBNnDhRn3zyiV577TU5OTnJZrOpcePGevvtt1Odd/369bVx40a98sorstlsCg4OVnR0tG7evKlOnTqpf//+WrhwoZycnPTSSy8pMDBQnp6e912+Z8+edJ/nMWPGaOjQoWrQoIESExNVv359NWzYUOHh4X+6nY+Pj6ZOnarx48dr5MiRstlsyps3r6ZMmWIP2aBBg9SlSxelpKTI3d1dU6dOVc6cOf/aD4Bkf8NW7dq15eXlpaCgIFmW9afP+x3PPvvsPz7+3V566SUNGjRI3bt3v2dd586dNWrUKE2YMEEuLi4KCAiw/8zVrFlTH3/88Z/u+6efftLUqVP19ddfy8vLS/369VOPHj20bNky++15QJIcrL/6IhoAAMh03PoGAMBghBoAAIMRagAADGbcm8lsNptiY2Pl4uJyz8csAAB43FiWpaSkJOXIkeO+34VgXKhjY2N14sSJrB4DAIBMVapUqft+QsG4ULu4uEiS3p7SRxE3IrN4GuDJ8fuc3foxMv2PdgF4uMrlrKQTJ07Y+/dHxoX6zu3uiBuRungtIounAZ4cbm5ukjOf1gQy253vAkjr5V7eTAYAgMEINQAABiPUAAAYjFADAGAwQg0AgMEINQAABiPUAAAYjFADAGAwQg0AgMEINQAABiPUAAAYjFADAGAwQg0AgMEINQAABiPUAAAYjFADAGAwQg0AgMEINQAABiPUAAAYjFADAGAwQg0AgMEINQAABiPUAAAYjFADAGAwQg0AgMEINQAABiPUAAAYjFADAGAwQg0AgMEINQAABiPUAAAYjFADAGAwQg0AgMEINQAABiPUAAAYjFADAGAwQg0AgMEINQAABiPUAAAYjFADAGAwQg0AgMEINQAABiPUAAAYjFADAGAwQg0AgMEINQAABiPUAAAYjFADAGAwQg0AgMEINQAABiPUAAAYjFADAGAwQg0AgMEINQAABiPUAAAYjFADAGAwQg0AgMEINQAABiPUAAAYjFADAGAwQg0AgMEINQAABiPUAAAYjFADAGAwQg0AgMEINQAABiPUSFfO7B6a8n8jdH7BfkUuOao5vScqf25P+/qmNevp8LTNurnyhI59sVVt67xx3/24urjq4NSNalnrtcwaHXikRVyIUL93Bql26QZ6uWQ9Dezwoa5cumpfv3jGUjWrFqrgYv9WixpttHLu6lTbJyUmaeKgz1TP71XVKlFXPVr20YUzFzP7NPAPZWioU1JSNHbsWFWvXl2VKlVSt27ddPXq1fQ3hFEWD5yqVwKD9daYHqrx/mvyyJZd34xeJFcXV1X3C9JXfSZp8oqZKt/hJU1YNkPTu49S3aCQVPvwyJZDywZ/oQolymbRWQCPFsuy1KNlX8Vcj9GnSz/RZ8sn6GpElHqF9pMkLZ21QlOGTdNb3UM1Z9sMtXj3dY3uM17rFm+072Nkr7HasvIbfThloKatnqyE+AT1at1PlmVl1Wnhb8jQUE+aNEnLli3TyJEjNXfuXF26dEldu3bNyEPiIatQoqzqPPei3h7bUxv3f6ufzpxQq4+7qZCnl5q/2FCNqtbWkd9/1rQ1X+n3S2c1bc1XOnDyqOo896J9H7UqVdfBqRvklTtf1p0I8IiJuhKlYiWLqt+4XipZ7lmVLPesWrz7un45fEI3rsdo2Zcr1aTdq/p309oqXMxbDVvV17+b1taa+eskSedPX9CaBes1cGJfPVcjQCXKPKNeo7or7macwk+fz+Kzw4PIsFAnJiZq9uzZev/991WtWjWVK1dO48aN04EDB3TgwIGMOiwespLexSVJO4/usy+LvRWnk+dP6wX/yroSHaVyxUrpxQpVJUk1yj8vv2Kltf/EIfvj6waF6L8bFqrqe40zdXbgUeZZwFNDpw1SwaIFJd2+Db58ziqVqeirp3LnVPfhXfVq64aptnF0dNCN6BhJ0p5v9ymPZ249VyPAvt7n2aJa9sNCFSleOPNOBP+Yc0bt+Oeff1ZsbKyCgoLsywoXLixvb2/t379fAQEBf7I1THEh8rIkqXD+gjp14bQkydHRUYXzP62I61fV7dMwVSv3nL4Zs0jJKclydnLW6EVTNWfzEvs+enw+JCtGBx4bvdv01/b1u5Qzd059tnS8JCmgasVUj7kUflmblm1R07dvvwfk3KlwFfIpqA1LNmvu5Pm6Hnld5YP89N6QzipQqEAmnwH+iQy7or506ZIkycvLK9XyAgUK2NfBfPt+OaTjZ09q6v+N0NN5C8jd1V0j2vVV/lyecnVxUYHc+eSVO796TRum5zrXVdfJA9W5YRu9VadZVo8OPDbaf9BOX6ybogpB5dXt9R6KuHgl1fprV6+rR8s+ylsgr1p3e1OSFBsTqzO/ntX8qYv0f0M6a9gXg3XtyjV1bdpDCbcSsuI08DdlWKjj4+Pl6OgoFxeXVMtdXV2VkMAPyaMiKTlJrw5+R7k9ntLFhQd0fdkx5cuVR2v3blV0bIymvz9KP546qjGLp+rQqZ80ecVMjfn6c41q3z+rRwceG8+WK6FyAWU09PMwpdhsWrtwg33d+dMX1LFhV928cVMTFo6Rx1MekiRnF2fdvBGrj774UM/VCFCFoPIa/sWHCv/9vHZv2ZNVp4K/IcNC7e7uLpvNpuTk5FTLExMTlS1btow6LDLAL+dOKbBzPXm+5qd8Tf319tieKpK/kE5dOKPKvgHaf+JwqsfvOX5A+XLlVW6PXFk0MfDoi4qI0qZlW1Itc8/uLm+fQvaPaP1y5KQ61O8sB0cHTVv9qbyLFbI/Nv/T+ZQtu7sK+RS0L8ubP49y5XlKF87yEa1HSYaFumDB2z8cV66kvkUTERFxz+1wmMsjWw5tG/u1yhUrraiY67oZHysfr8Kq8ExZbfzhW4VfvSj/4mVSbeNX3FdXo6N0/WZ0Fk0NPPouhl9WWMehOn7wZ/uymzdu6uypcypeykenT55Rt9d76OnCT+vzlZPk5Z36decKlf0VH3dLp0+csS+LjIjU9ahoefsUEh4dGRZqX19f5ciRQ3v37rUvCw8P1/nz5xUYGJhRh8VDdjM+Vk6Ojhr/n8EqU7SkAktX1Oqhs7Tl4E59c/A7TVg2Q+/Wa6l367dSsaeLqEVwY/Vr0UUjFkzO6tGBR1qZiqVVsbK/Rrw/WscOHNcvR05qQPsPldszl+o2q6MhXUbI1c1Vgz7tp+TkZEVGRN4OceR1SVKlKhVUsbK/wv4zVEf2HdOvx05pUMdhKvpsEVV9qXLWnhweSIa969vV1VVvvvmmRo0apTx58sjT01MffvihgoKCVLFixYw6LDJA8+GdNbnLUO2euELxCbe0ZOda9Z7+kSRpyqrZSkxO0nuvvq2xHcJ0+vI59fvvSH228sssnhp4tDk6OmrEf4do0odT1KtVXyUkJOr54MDbX3xyKdJ+pd2samiq7byLFdLXe+bJwcFBo2YP16TBU9SjVR+lJCXruZr/UtjkvnJxdbnfIWEoBysDv6ImOTlZY8aM0bJly5ScnKwaNWooLCxMefPmTXObhIQEHT16VA1GttfFaxEZNRqAP7A2hev7iG+zegzgiVMpV2UdPXpUfn5+cnNzu2d9hl1RS5Kzs7P69OmjPn36ZORhAAB4bPFLOQAAMBihBgDAYIQaAACDEWoAAAxGqAEAMBihBgDAYIQaAACDEWoAAAxGqAEAMBihBgDAYIQaAACDEWoAAAxGqAEAMBihBgDAYIQaAACDEWoAAAxGqAEAMBihBgDAYIQaAACDEWoAAAxGqAEAMBihBgDAYIQaAACDEWoAAAxGqAEAMBihBgDAYIQaAACDEWoAAAxGqAEAMBihBgDAYIQaAACDEWoAAAxGqAEAMBihBgDAYIQaAACDEWoAAAxGqAEAMBihBgDAYIQaAACDEWoAAAxGqAEAMBihBgDAYIQaAACD/aVQJyYmSpLOnDmjbdu2yWazZehQAADgtnRDPXnyZPXp00cXLlxQy5YtNWvWLH300UeZMRsAAE+8dEO9detWffTRR1q9erUaNmyoWbNm6cCBA5kxGwAAT7x0Q22z2eTu7q5vvvlGL7zwgmw2m+Lj4zNjNgAAnnjphrpKlSqqX7++kpKSFBgYqFatWikkJCQzZgMA4InnnN4DevfurdDQUHl5ecnR0VFhYWHy9fXNjNkAAHjipXtFffjwYW3YsEEpKSlq166d2rZtq+3bt2fGbAAAPPHSDfWwYcNUsmRJbdiwQe7u7lq2bJkmTJiQGbMBAPDE+0tvJqtevbq2bdum2rVrq2DBgkpJScmM2QAAeOKlG+ps2bLpv//9r77//nsFBwdr9uzZypEjR2bMBgDAEy/dUI8ZM0ZxcXGaNGmScuXKpcuXL2vcuHGZMRsAAE+8dEPt5eWlkJAQ2Ww27du3TzVq1NCOHTsyYzYAAJ546X48a8CAAdq7d6+io6P1zDPP6Oeff1ZAQICaNm2aGfMBAPBES/eK+rvvvtOaNWtUp04dDR06VLNnz9atW7cyYzYAAJ546Ya6QIECcnFxUYkSJfTLL7+ofPnyiomJyYzZAAB44qV769vLy0uff/65qlSpotGjR0v636+9BAAAGSvdK+rhw4ercOHC8vf3V+3atbV69WoNHjw4E0YDAABpXlFfuHDB/t+VKlXShQsXVKtWLdWqVStTBgMAAH8S6latWqW5kYODg7Zs2ZIhAwEAgP9JM9Rbt27NzDkAAMB9/Olr1EuWLNHhw4ftfx43bpyWLFmS4UMBAIDb0gz1nDlztGDBAnl4eNiXVa9eXfPmzdO8efMyZTgAAJ50aYb666+/1syZM/XMM8/YlwUFBWn69OlasGBBpgwHAMCTLs1QOzo6prqaviNv3rxydEz3U10AAOAhSPPNZE5OToqMjJSnp2eq5VevXs2U30ed60i8bl2Oy/DjAPifygVeyOoRgCdOQkLCn67/049ntW/fXh988IHKli0rNzc3HTlyRCNHjlTz5s0f+qB/tGH3Gjm7OmX4cQDcljdvXo3/flRWjwE8cUY0Gqu5c+emuT7NUDdu3FgJCQnq27evLl26JEkqUqSI2rVrlymhBgAA6XzXd7NmzdSsWTNdu3ZNjo6OypUrV2bNBQAA9Bd+KYck5cmTJ6PnAAAA98HbtwEAMBihBgDAYOmGOjo6WgMGDFDr1q11/fp19e3bV9HR0ZkxGwAAT7x0Qz1w4ECVL19e169fV/bs2VWgQAH16tUrM2YDAOCJl26ow8PD1axZMzk6OsrV1VXdu3e3f1wLAABkrHRD7eTkpJiYGDk4OEiSTp8+zVeIAgCQSdL9eFbXrl0VGhqqixcvqlOnTjp48KA++uijzJgNAIAnXrqhrlmzpvz8/HT48GGlpKRoyJAhypcvX2bMBgDAEy/dUE+ePDnVn48fPy5J6tKlS8ZMBAAA7B7oxeakpCRt3bpVkZGRGTUPAAC4S7pX1H+8cu7cubPatWuXYQMBAID/eeC3b8fGxurChQsZMQsAAPiDdK+oQ0JC7B/NsixL0dHReueddzJ8MAAA8BdCPX78eHl6ekqSHBwc9NRTT8nDwyPDBwMAAH8h1L1799a6desyYxYAAPAH6Yba19dXy5cvl7+/v9zd3e3LCxUqlKGDAQCAvxDqQ4cO6dChQ6mWOTg4aMuWLRk2FAAAuC3NUC9btkyvvvqqtm7dmpnzAACAu6T58azZs2dn5hwAAOA++DVYAAAYLM1b3ydPnlStWrXuWW5ZFq9RAwCQSdIMtY+Pj6ZNm5aZswAAgD9IM9QuLi7y9vbOzFkAAMAfpPkadUBAQGbOAQAA7iPNUIeFhWXmHAAA4D541zcAAAYj1AAAGIxQAwBgMEINAIDBCDUAAAYj1AAAGIxQAwBgMEINAIDBCDUAAAYj1AAAGIxQAwBgMEINAIDBCDUAAAYj1AAAGIxQAwBgMEINAIDBCDUAAAYj1AAAGIxQAwBgMEINAIDBCDUAAAYj1AAAGIxQAwBgMEINAIDBCDUAAAYj1AAAGIxQAwBgMEINAIDBCDUAAAYj1AAAGIxQAwBgMEINAIDBCDUAAAYj1AAAGIxQAwBgMEINAIDBCDUAAAYj1AAAGIxQAwBgMOesHgCPng+69pUtxaYxn41MtXz5ohUaPXScdh35Ns1t+3UfqC3rt2rP8V0ZPSbwyIu6FKV5Hy3ST98fl2WzVL6Gn1r0eUN5vHJLkvau268Vn61WxLkrylfIU6+8XUc1m1Szb5+cmKzF45Zq96o9SohPVOnnSip0YAvlL5I/i84IfwdX1PjLLMvS6KHj9NV/59+zbtO6LerRqfefbr9t07f6ctqcjBoPeKxYlqVxHSYp9kac+szuqb5ze+n6lWh98p9JkqRf9p/Q1F5f6KWWwRq+arBqt66lmQNn6+C2w/Z9zBw0R3vX7VfHMe9o4II+SryVqPGdPpVlWVl1WvgbMi3UYWFh6t+/f2YdDg/Zmd/P6vW6LTT7i7nyLuJtXx4ff0sfdOmr9i06qniJYmlufy3qunp06q0qNZ7PhGmBR1/01RsqVKKg2g1rraK+RVTUt4j+3fZlnTl2VrHRsTqw5ZAKl/JWcPMXVKBIfgU3f0E+ZYvq6M5jkqSIc1e0c+l3av/xWypbpYwKl/JWm8GtFH8zXhFnr2Tx2eFBZHioLcvShAkTtHDhwow+FDLQD3sOyKdYUW3Zs15FixW2L4+8clWnfzujld8s1SsN66S5fZ//66/a9V5S9eDqmTEu8MjLnT+XOn3SQfkL55N0+zb4Nwu/VfHyxZQjVw49lcdDF05e0PHvf5ZlWfp53wmdP3lBxfx8JElHdx5Tzrw5VbZKGfs+Cz7ztMZ9M1JePgWy5Jzw92Toa9Tnzp1Tv379dPLkSRUqVCgjD4UM9lrzxnqteeN7lhcuWliL1s6TJG1au/m+2y6Zv0xHDx7Vpu/XadrkGRk5JvBYmtDpUx3YclA5cmVXn9m9JEm1WgbrxIFT+rjNWDk6OcqWYtMr7WqreuOqkqRLpy+rQJF82r1qj9ZMX6+YqBiVDHhWb/Z7Q3mfzpuVp4MHlKFX1D/++KOKFCmiVatWqXDhwulvgMfO+fALCvvgQ33y+Rhlz5E9q8cBHkmvdmuksMX9VDKgpEa9NU5Rl6/pRlSMbkTeULNeTTV4SX+1GtBcW+Zt0/avd0qS4m/e0sXfLmndzI16s+8b6jyho6Ijb2hkm3FKTEjK4jPCg8jQK+qGDRuqYcOGGXkIGMyyLHXv0FPNQ99QUNXArB4HeGQV9b19odPpk/bq/mJv7Vr2nX7a/bN8yhRR3Xduv+TkU6aoYqJuauHoJarRpJqcnJ0UFxOvrhM62t/l3XViR3Wr3lOHvz2i52oHZNn54MHwrm9kmPPnzmvXt99p1rTZKlmgrEoWKKsJH0/S+XMXVLJAWe3ZtTerRwSMFX31hr5fk/p/I27Z3FSgSH5du3xdvx76TcXKF0u1/pkKxXXz+k3F3YhTHq/ccsvuluqjWE95PiWP3B66En41M04BDwmhRoZ5utDT2nl4mzbvWa+Nu9dq4+61atMhVF4FvbRx91r5B/hn9YiAsa5eiNSU96fr9yOn7cviYuJ06ffLKvRsIeX1yqPwX8JTbXP+xHl55PZQjlw5VPq5kkqIS9CFUxft669fidbNazdVoCifo36U8IUnyDDOzs73fGQrd97ccnZ2+tOPcgGQivv5qNRzJfXfAV+q7dDWcnZ20qKxS5Qzr4eqN64iB0nzRixSoRIFVb56Of168Det+nydGnWuL0kqHVhKpZ4rqSk9pqvNoJZyzeameR8t0NPFvVShZvmsPTk8EEINAAZydHRUt0n/0YJRi/XJu5OUlJCk8tXLqe/cXnLP4a5aLYPl5OqsjV9u1vyRi5XP21NN339Vtd58UZLk4OCg96Z00YKRizXu3YlKSUpR2apl1GFUOzm78k//o8TByqSvqAkNDVXRokU1fPjwP31cQkKCjh49qvwl8sjZ1SkzRgMgya9wJY3/flRWjwE8cUY0Gqu5c+fKz89Pbm5u96znNWoAAAyWafc/5szhO54BAHhQXFEDAGAwQg0AgMEINQAABiPUAAAYjFADAGAwQg0AgMEINQAABiPUAAAYjFADAGAwQg0AgMEINQAABiPUAAAYjFADAGAwQg0AgMEINQAABiPUAAAYjFADAGAwQg0AgMEINQAABiPUAAAYjFADAGAwQg0AgMEINQAABiPUAAAYjFADAGAwQg0AgMEINQAABiPUAAAYjFADAGAwQg0AgMEINQAABiPUAAAYjFADAGAwQg0AgMEINQAABiPUAAAYjFADAGAwQg0AgMEINQAABiPUAAAYjFADAGAwQg0AgMEINQAABiPUAAAYjFADAGAwQg0AgMEINQAABiPUAAAYjFADAGAwQg0AgMEINQAABiPUAAAYjFADAGAwQg0AgMEINQAABiPUAAAYjFADAGAwQg0AgMEINQAABiPUAAAYjFADAGAwQg0AgMEINQAABiPUAAAYjFADAGAwQg0AgMGcs3qAP7IsS5KUkpSSxZMATxYvLy+52FyzegzgiZMvXz5J/+vfHzlYaa3JIjExMTpx4kRWjwEAQKYqVaqUcubMec9y40Jts9kUGxsrFxcXOTg4ZPU4AABkKMuylJSUpBw5csjR8d5XpI0LNQAA+B/eTAYAgMEINQAABiPUAAAYjFADAGAwQg0AgMEINQAABiPUAAAYzLivEMWj4+DBg9q/f78uXbqkhIQEZcuWTV5eXgoMDJS/v39WjwcAjwW+8AQPLDIyUt26ddMPP/wgb29vFShQQK6urkpMTFRERITOnz+v559/XhMmTFDu3LmzelwAeKQRajywbt266fLlyxo3bpy8vb3vWR8eHq4ePXqocOHCGjt2bBZMCACPD0KNB1apUiXNmzdPZcqUSfMxx44dU9u2bbVv375MnAx4/A0cOPAvP3bo0KEZOAkyC69R44HlyJFD169f/9PHREVFydmZHy/gYXNwcNCiRYtUqFCh+97RuvtxeDzwLyke2KuvvqrevXvr/fffV1BQkLy8vOTk5CSbzaYrV65o7969GjlypBo3bpzVowKPnSFDhsjT01MLFy7U+PHj5enpmdUjIYNx6xsPzGazaeLEiZozZ47i4uIkSY6OjrLZbJKk7Nmz680339R7770nJyenrBwVeGy1bt1aRYsW1bBhw7J6FGQwQo2/LSkpScePH9fly5cVHx8vd3d3Pf300/L19ZWrq2tWjwc81s6dO6eDBw+qQYMGWT0KMhihBgDAYHwzGQAABiPUAAAYjFADmSw8PFx+fn5q1KiRGjdurHr16umtt97SpUuX/vY+ly5dqj59+kiS2rdvr8uXL6f52IkTJ2r//v0PtP/SpUvfd/lvv/2mjh07qkGDBmrQoIF69OihqKgoSdKkSZM0adKkBzoOgHsRaiALFChQQCtWrNDy5cu1Zs0alS5dWqNGjXoo+54+fbq8vLzSXL9v3z6lpKT84+NcvnxZrVu31htvvKFVq1Zp5cqVKlmypLp06fKP9w3gf/gcNWCA559/XuPGjZMkhYSEyN/fX8ePH9e8efO0Y8cOffnll7LZbCpXrpwGDRokNzc3LV++XFOmTJGHh4e8vb2VPXt2+/azZ89W/vz59eGHH+qHH36Qi4uLOnXqpMTERB09elQDBgzQ5MmT5e7ursGDB+v69etyd3fXwIEDVbZsWYWHh6tXr16Ki4tThQoV7jvz/PnzVblyZYWEhEi6/QUb7du3V+HChZWcnJzqsXPnztWKFSsUHx8vFxcXjR07Vs8884xGjhypXbt2ydHRUS+99JK6dOmi3bt3a/To0ZKkXLlyaezYscqbN29GPfWA8biiBrJYUlKSNmzYoIoVK9qX1axZUxs2bFBUVJQWLVqkBQsWaMWKFfL09NSMGTN0+fJljRkzRl999ZUWLlyo2NjYe/Z753Pu69at08yZM/Xpp5+qbt268vPz07Bhw1S6dGn17t1bvXr10rJlyzR06FB1795d0u2vnnzttde0YsUKBQQE3Hfu48ePq1y5cqmWOTk5qX79+qm+le7mzZvavHmz5syZo9WrV+vFF1/UV199pfPnz2v79u1auXKl5s+fr19//VUJCQn67LPPNHjwYC1dulRVq1bVTz/99BCeZeDRxRU1kAUiIiLUqFEjSVJiYqL8/f3Vo0cP+/o7V7F79uzRmTNn9MYbb0i6HfWyZcvqxx9/VKVKlZQvXz5JUoMGDfT999+nOsa+ffv0xhtvyNHRUfnz59eaNWtSrY+NjdXRo0fVt29f+7K4uDhdu3ZNe/futf9ClYYNG2rAgAH3nIODg8Nf+ry8h4eHxo4dqzVr1uj06dPasWOHypQpIy8vL7m5ual58+YKDg5Wz5495ebmplq1aqlLly566aWXVKtWLVWrVi3dYwCPM0INZIE7r1Gnxc3NTZKUkpKiV155xR7K2NhYpaSkaPfu3br7KxDu973qzs7Oqb7v+cyZMypYsKD9zzabTa6urqnmuHTpkv1Xk97Zv4ODgxwd77355ufnp6NHj6ZaZrPZ1K1bNw0ePNi+7OLFiwoNDVWrVq1Us2ZN5cuXT8ePH5ezs7MWL16svXv3avv27WrevLnmzJmjtm3bKjg4WN98841Gjx6tw4cP6z//+U+azxXwuOPWN2Cw559/Xps2bVJkZKQsy9LgwYP15Zdf6l//+pcOHjyoy5cvy2azae3atfdsGxgYqLVr18qyLEVGRqpVq1ZKTEyUk5OTUlJSlDNnThUrVswe6l27dqlly5aSpKpVq2rlypWSpI0bNyohIeGe/Tdr1kzffvutvv32W0m3w/7ZZ58pMjLSfqUvSUeOHJGPj4/atm2r8uXLa/PmzUpJSdFPP/2kVq1aKTAwUL1791aJEiX0+++/6/XXX1dsbKzatm2rtm3bcusbTzyuqAGD+fr6qkuXLmrTpo1sNpvKlCmjDh06yM3NTQMGDFDbtm2VLVs2Pfvss/ds++abb2rYsGFq2LChpNu/HtHDw0M1atTQoEGDNHLkSI0ePVqDBw/WF198IRcXF33yySdycHBQWFiYevXqpYULF8rPz085cuS4Z//58+fX9OnTNWrUKI0ZM0YpKSkqW7asPv3001SPq1atmubPn6+6devKsiwFBgbq5MmTKlu2rCpWrKj69esrW7ZsCggIUM2aNZUtWzb16dNHzs7Oyp49O99ljSceXyEKAIDBuPUNAIDBCDUAAAYj1AAAGIxQAwBgMEINAIDBCDUAAAYj1AAAGOz/AZY/PXRbPzTIAAAAAElFTkSuQmCC\n",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plot_model(best_model, plot=\"confusion_matrix\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The Confusion Matrix shows that the churned clients have been classified as not churn in 50% of the predictions"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAggAAAGACAYAAADI95pLAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy86wFpkAAAACXBIWXMAAAsTAAALEwEAmpwYAAA/GklEQVR4nO3dd3RU1d7G8e+UFEICSSD0XgJK6KAiRqRJDUSDBhQURRAFEQmKFRQQIiBIERD0AqK0i7w0r4iAXBBB6UXpPXRIApn0zJz3D2QgHprXhEjyfNZiLU7b8zuZnMwze+85YzEMw0BERETkGtacLkBERET+eRQQRERExEQBQUREREwUEERERMREAUFERERMFBBERETERAFB3NLT03nooYd44YUXbrjPsmXL6NKlyy3batKkCS1atKB9+/aEhYXRpk0b5s6dm5Xluq1evZqxY8e6l1NTU/nkk08IDw93P/6UKVO48oneLl26sGzZsiytYfbs2UyZMgWAn376icaNG9OhQwdmzZrlXv93HDx4kFdeeYWwsDDatWtH586d2bRpEwAxMTHUrl37bz/Gn3Xv3p0DBw4AMGjQIJo0acKYMWMyrf+rduzYwcCBAwHYuXMnffr0ybJ6u3TpQpMmTWjfvr37eW/RogULFy7Msse4leeff57Y2Ng79ngi2cme0wXIP8cPP/xA1apV2bVrFwcPHqRixYp/q71Ro0ZRvXp1AE6dOkWLFi14+OGHKV68eFaU67Zz504uXrwIgGEYvPzyy5QvX565c+fi5eVFXFwcL774IklJSfTt2zdLH/uKTp06uf//7bff8sQTT/Dyyy9nSduHDh3i2WefZfjw4YSGhgKwfv16evbsyezZs8mXL1+WPM6fTZ061f3/uXPnsnr1aooVK/a32jxw4ABnzpwBoHr16owbN+5vtfdnb7zxBi1btnQv79y5k06dOtGsWTN8fX2z9LGuZ926ddn+GCJ3igKCuM2ePZvWrVtTpkwZZsyYweDBgwEYO3YsS5Yswd/fn7Jly7r3P3z4MIMHDyYxMZFz585RtWpVPvnkE7y8vExtX7x4kXz58uHj4wPApk2bGDFiBMnJyXh4eNC3b18efvhhAD799FO+/fZbbDYb5cuX57333iMoKIjly5czadIkLBYLNpuNN954A09PT+bMmYPT6cTPz4+GDRty6NAhpkyZgs1m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nIwaNYrJkydTpkwZpkyZQr9+/W66/lZsNlum5yolJYWDBw+yevVq93k1bdo00/yMG7nZ8w64w8CVfW4VAgMDA/nkk0+YNWsWy5cvd7fZoEED989/0aJFzJs3j8qVK7vP59rHt1qtN/1dBdxBViQ3UkAQ9/yCtWvXsmrVKlatWsWKFStISkqiXr16LFu2jEuXLuFyuVi0aJH7uJ9++olevXrRunVrALZv3256Yb7iyjvoGjVqUKtWLQ4dOsSOHTsA2L9/Pxs3buS+++4jNDSUb775xt0TMXPmTOrXr4/VaqVJkyYkJyfTqVMnBg0axN69e0lLS8Nms7n/YNeuXZsKFSowfPhwUlNTgcvj8kOHDqVUqVKZatq4cSMhISE899xz3HfffaxcudJdf1RUFP/5z39o06YNgwYNwtfXl2PHjt1w/a34+vpSq1Ytpk2bBsClS5fo1KkTK1euvOWx3bp149///jc//fSTe92aNWuYOXMmVatWzbTvTz/9xLPPPkt4eDiFChXi559/xul0EhsbS6NGjfD396dr16707duXnTt33nD97bj//vtZv349Z8+eBWDOnDmMHDmSdevW0bhxY5566ilCQkJYsWKF++d67XN1rYceeoivvvoKwzBIS0tj3rx5PPjgg7dVx42ULl2anj178uGHH5KUlESDBg1Yt24dBw8eBOC///0v7dq1IyUlBYCVK1eSkJCAy+Vi3rx5NG7cmAoVKmC3290h48yZM3z//fc3rO1G5ydyN9IQgzB79myee+65TO+gChQoQJcuXZg+fToRERFERERQoEABqlatSlxcHHD5HX2vXr3w8fHB19eX+vXrZ3qx7N+/P97e3lgsFpKTk2nVqhURERHA5YmPQ4YMISUlBYvFwvDhwylfvjxly5bl1KlTPPHEE7hcLsqWLcuoUaOw2+28/fbb9O/fH7vdjsViYdiwYXh6evLAAw/Qv39/hgwZwnvvvce4ceMYM2YMjz/+ODabDZfLRXh4ON26dct03m3btmX58uW0atUKl8tF48aNuXjxIg6Hg5dffpl33nmHuXPnYrPZaNasGfXr16dQoULXXf/LL7/c8uc8atQohgwZQlhYGGlpabRt25Z27doRExNz0+PKli3L5MmT+eSTT/joo49wuVwEBgYyadIkgoODMx3fq1cvRowYwdixY/Hw8KBOnTocO3aMwMBAXnrpJbp27Yq3tzc2m42hQ4fecP3tqFKlCq+//rq75yUoKIhhw4bhcDiIiooiLCyMjIwMGjZsyPLly3G5XNSqVYtPP/2U3r17Z/q47LvvvsvQoUMJCwsjPT2d0NBQevbseVt13Ey3bt1YuHAhkyZNIioqisGDB9OvXz8Mw8ButzNp0iT38EfhwoXp3r07cXFx1K9fn549e+Lh4cHEiRMZOnQo48ePx+l00qtXLx544IHrPuctW7akS5cujB8/nuDg4L9dv0hOshi3O2ArIpJLXfkUypV7NIiIhhhERETkOtSDICIiIibqQRAREckltm/fft3b4a9atYqIiAgiIyOZN2/ebbWlSYoiIiK5wNSpU1m8eLHp9uvp6ekMHz6c+fPnky9fPjp16kTjxo0JCgq6aXtZGhBcLheJiYl4eHiYPjssIiLyT2MYBunp6eTPn/+2bnr2d2VkZNzw4+C3YrPZbni/FIAyZcowfvx43njjjUzrDx48SJkyZShYsCAAdevWZdOmTbRq1eqmj5elASExMZF9+/ZlZZMiIiLZLjg4GD8/v2x9jIyMDDauWYdnwf/ti8NsNhshISE3DAktWrS47semHQ5HpnPLnz8/Dofjlo+XpQHBw8MDgEpbx+KZejErm5ZsYH1hHqcf+Hs3o5E7o9iGn3F2fzSny5DbZJu6HONwdE6XIbchvWQ/9u3b5379yk5OpxPPgr6s6/YBKWcv/KVjvYsUouEXg3A6nTftRbgeX19f923k4fKb+dsJQ1kaEK4MK3imXsQrVd+J/k9n9fLC9sdd8OSfzcvLC+fF8zldhtwmm5cXhjXp1jtKjrP88U2fd3JYPOXsBZJP3bnruWLFihw9epT4+Hh8fHzYtGmT6cZx16NJiiIiIrnQkiVLSEpKIjIykjfffJNu3bphGAYREREULVr0lscrIIiIiOQSV76JFyAsLMy9/soX8f0Vug+CiIiImCggiIiIiIkCgoiIiJgoIIiIiIiJAoKIiIiYKCCIiIiIiQKCiIiImCggiIiIiIkCgoiIiJgoIIiIiIiJAoKIiIiYKCCIiIiIiQKCiIiImCggiIiIiIkCgoiIiJgoIIiIiIiJAoKIiIiYKCCIiIiIiQKCiIiImCggiIiIiIkCgoiIiJgoIIiIiIiJAoKIiIiYKCCIiIiIiQKCiIiImCggiIiIiIkCgoiIiJgoIIiIiIiJAoKIiIiYKCCIiIiIiT2nCxAREclL6gPGXzzGkh2F3IJ6EERERMREAUFERERMFBBERETERAFBRERETBQQRERExEQBQUREREwUEERERMREAUFERERMFBBERETERAFBRERETBQQRERExEQBQUREREwUEERERMREAUFERERMFBBERETERAFBRERETBQQRERExEQBQUREREwUEERERMREAUFERERMFBBERETERAFBRERETBQQRERExEQBQUREREwUEERERHIBl8vFwIEDiYyMpEuXLhw9ejTT9sWLF/PYY48RERHBrFmzbtmePbsKFRERkTtnxYoVpKWlMXfuXLZt20Z0dDSTJk1ybx8xYgRLly7Fx8eHNm3a0KZNGwoWLHjD9hQQREREcoHNmzcTGhoKQK1atdi1a1em7VWqVCEhIQG73Y5hGFgslpu2p4AgIiKSCzgcDnx9fd3LNpuNjIwM7PbLL/WVK1cmIiKCfPny0bx5cwoUKHDT9jQHQUREJBfw9fUlMTHRvexyudzhYM+ePaxevZqVK1eyatUqYmNj+e67727angKCiIhILlCnTh3WrFkDwLZt2wgODnZv8/Pzw9vbGy8vL2w2G4GBgVy6dOmm7WmIQUREJBdo3rw569ato2PHjhiGwbBhw1iyZAlJSUlERkYSGRnJU089hYeHB2XKlOGxxx67aXsKCCIiIrmA1Wpl8ODBmdZVrFjR/f9OnTrRqVOn228vyyoTERGRXEMBQUREREw0xCAiInIHVSiags2S9JeOcRZJ4Xw21XMj6kEQEREREwUEERERMVFAEBEREZM8Nwfh299jeec/R0jNMKhe3IfPIytTwDvzj6H/4kPM336BQJ/L64OD8jHnmaqZ9omYvpsSBTwZ//jlj5BsPJZAv0WHSExz4XQZvN6kFJ3rFrkzJ5WLeTdtQoE338Ti5Un67t3ERb2O4XC4t/t0iMC3R3f3stXPD1vx4pyqdx/+w4ZiL1fOvc1eujSpG37hwnPP41GzJv4fDMLi44PFaiNh4kSSFvzfnTy1XOfbMwm8+/tZUl0G1Qt4MbVWCQp42DLts/NSCq/uPM2ldBc2C0ysWZy6/vm4mO6k+7aT7HWk4TIMupT2543Khfk9IZUum2PcxzsN2JWQyr/rleKxEje/Taz8dVHRq5i/bC+BBfMBUKV8AF9/HEZU9I98v/YwGU4X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Bf7+/pQtW5ZKlSrh4eFBaGhoph6G61FAEBERyQXq1KnDmjVrANi2bRvBwcHubaVLlyYxMZGjR48CsGnTJipXrnzT9jQHQUREJBdo3rw569ato2PHjhiGwbBhw1iyZAlJSUlERkby4YcfEhUVhWEY1K5dm0ceeeSm7SkgiIiI5AJWq5XBgwdnWlexYkX3/xs0aMD8+fNvv70sq0xERERyDQUEERERMVFAEBERERMFBBERETFRQBARERETBQQRERExUUAQEREREwUEERERMVFAEBERERMFBBERETHRrZZFRETuIMv9/lhSXX/tGC//7CnmJtSDICIiIiYKCCIiImKigCAiIiImCggiIiJiooAgIiIiJgoIIiIiYqKAICIiIiYKCCIiImKigCAiIiImCggiIiJiooAgIiIiJgoIIiIiYqKAICIiIiYKCCIiImKigCAiIiIm9uxo1PrCPKxeXtnRtGSxUieO53QJcptsi37L6RLkL7AEf5TTJcjtSE3N6Qr+sdSDICIiIibZ0oMwtnwTkk+dz46mJQsNMvYSU7J0Tpcht6HUieOsslTJ6TLkNjXRtXXXCDp0IKdL+MdSD4KIiIiYKCCIiIiIiQKCiIiImCggiIiIiIkCgoiIiJgoIIiIiIiJAoKIiIiYKCCIiIiIiQKCiIiImCggiIiIiIkCgoiIiJgoIIiIiIiJAoKIiIiYKCCIiIiIiQKCiIiImCggiIiIiIk9pwsQERHJSyzlC2Bxuv7aMbYC2VTNjakHQUREREwUEERERMREAUFERERMFBBERETERAFBRERETBQQRERExEQBQUREREwUEERERMREAUFERERMFBBERERyAZfLxcCBA4mMjKRLly4cPXr0uvu99957jBo16pbtKSCIiIjkAitWrCAtLY25c+cSFRVFdHS0aZ85c+awb9++22pPAUFERCQX2Lx5M6GhoQDUqlWLXbt2Zdq+detWtm/fTmRk5G21p4AgIiKSCzgcDnx9fd3LNpuNjIwMAM6ePcuECRMYOHDgbbenb3MUERHJBXx9fUlMTHQvu1wu7PbLL/PLli0jLi6OHj16cO7cOVJSUqhQoQKPP/74DdtTQBAREckF6tSpw48//kjr1q3Ztm0bwcHB7m3PPPMMzzzzDAALFizg0KFDNw0HoIAgIiKSKzRv3px169bRsWNHDMNg2LBhLFmyhKSk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\n",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plot_model(best_model, plot=\"class_report\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The model has done a good work on the metrics for the class 0 (Not Churned) but got a Precision close to 0.5 for class 1 (Churned)."
]
},
{
"cell_type": "markdown",
"metadata": {
"cell_id": "c1d1172b-74f5-445e-bfa7-d06b05834269",
"tags": []
},
"source": [
"# 6. Prediction on Test Data"
]
},
{
"cell_type": "markdown",
"metadata": {
"cell_id": "3c3a666c-a86e-4315-ba38-c659e60f9a18",
"tags": []
},
"source": [
"The test is made with the remaining 30% of data that PyCaret got on the setup, it's important to see that the model is not overfitting."
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {
"cell_id": "49f5255a-960e-4245-a7bd-6b86c5018e91",
"tags": []
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" \n",
" Model \n",
" Accuracy \n",
" AUC \n",
" Recall \n",
" Prec. \n",
" F1 \n",
" Kappa \n",
" MCC \n",
" \n",
" \n",
" \n",
" \n",
" 0 \n",
" Ada Boost Classifier \n",
" 0.7565 \n",
" 0.8537 \n",
" 0.772 \n",
" 0.5421 \n",
" 0.637 \n",
" 0.4621 \n",
" 0.4784 \n",
" \n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Model Accuracy AUC Recall Prec. F1 Kappa \\\n",
"0 Ada Boost Classifier 0.7565 0.8537 0.772 0.5421 0.637 0.4621 \n",
"\n",
" MCC \n",
"0 0.4784 "
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"predict_model(best_model);"
]
},
{
"cell_type": "markdown",
"metadata": {
"cell_id": "80c031f4-190f-4991-a95c-1a00055a80a6",
"tags": []
},
"source": [
"As everything is right with the model, it's time to finalize it fitting all the data."
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {
"cell_id": "d0909c9b-9391-4ad0-bd22-f9a5bbcd679f",
"tags": []
},
"outputs": [],
"source": [
"final_model = finalize_model(best_model)"
]
},
{
"cell_type": "markdown",
"metadata": {
"cell_id": "4d403f19-594d-40d7-92be-84094ccac0ba",
"tags": []
},
"source": [
"# 7. Prediction on Unseen Data"
]
},
{
"cell_type": "markdown",
"metadata": {
"cell_id": "949f3cc4-95ff-45c2-ba2c-e9fdaa356aa6",
"tags": []
},
"source": [
"The remaining 10% data is used to make predictions with unseen samples, what could include some outliers, it's how real world data works. \n",
"Just Kappa Score is not showed, as the focus is the F1 Score, as Precision and Recall are importants to get False Positives and False Negatives. \n",
"It's not necessary to make any transformation on the data, PyCaret do this."
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {
"cell_id": "f2774b74-956e-4869-a3fd-3b041c16f22e",
"tags": []
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" Accuracy AUC Recall Precision F1 Score\n",
" 0.767045 0.789801 0.833333 0.507246 0.630631\n"
]
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAc4AAAFoCAYAAADeoxtDAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy86wFpkAAAACXBIWXMAAAsTAAALEwEAmpwYAAAyn0lEQVR4nO3de1iUdf7/8ecwMGiAkqcyFVASTQ1FycOKJiqhlqamprjYauVqWWpaiHkgD5HVslvkgTW39osHwmDN3c1cJcxSs2JTPJGGZ02j0hUwAWF+f/RzVjYEBhlvB1+P65pL5565P/d7Ri5efg73fZusVqsVERERqRQXowsQERFxJgpOEREROyg4RURE7KDgFBERsYOCU0RExA4KThERETsoOGuQ3r1706pVK9ujbdu29OnThz//+c/VepxRo0YRHx8PwIwZM5g+fXqF+1itVtasWUNJSUmZr8fHxzNq1KgyX+vZsyepqalVL9hA69ev59FHHyUoKIiQkBCee+45jh8/Xm3tHzhwgD59+tC+fXs++eSTKreTmppKz549q62uq0VGRtKqVSvef//9X712+PBhWrVqdc1/+/9V0c8RQKtWrdi+fXuV6xWpiKvRBUj1mjFjBg899BAAly9f5vPPP+fFF1+kUaNGDB48uNqP9+KLL1bqfV9++SUxMTEMHz4cF5db4/9rixYtIjU1lalTp9K1a1dyc3NZvHgxERERrF27lsaNG1/3MeLj4/Hz8+Ovf/0rDRo0qHI7AwYMoFevXtddz7W4ubmRnp7OsGHDSm3fvHkzJpOp0u1U5ufos88+o27dutdVr0h5bo3fYLcQT09PGjZsSMOGDWncuDFDhgyhW7du/Otf/3LI8by8vPDy8qrwfbfadTa++uor3nnnHd566y1GjhyJn58f9957L2+++SYeHh4sW7asWo6Tm5tLu3btaNq0KbVq1apyO7Vq1aJevXrVUlNZgoOD2b59OwUFBaW2b968mQ4dOlS6ncr8HDVs2BCLxWJviSKVpuC8Bbi6utp+kURGRjJv3jzCwsLo0aMHP/30E2fOnOGpp56iQ4cO9OrVi9dff53CwkLb/ps2bSI8PJwOHTqwYMGCUr+8/neo9p///CcPPvgg7du3Z9iwYXz99decPHmSMWPGANC2bVt27txZ5c8yY8YMFixYwHPPPUeHDh0IDw8vNYy7c+dOhg4dSmBgIL169SIhIcH2WmFhIQsXLqRr16506dKFyZMn88MPP9heL+97SE1NZdSoUbz11lt07dqVkJAQFi5ceM0hw3Xr1hEYGMh9991XarvFYuGNN95gwoQJtm2pqakMGDCAwMBAhg4dWur76d27NytXrmTkyJG27zQzM9P22hdffMGyZcvo3bs3J0+epFWrVhw7dsy2/9VD4EVFRcydO5du3brRvn17xo4dy+HDh201XD1Um52dzeOPP07Hjh0JCQkhPj7e9lnj4+OZOnUq8+bNo1OnToSGhpb6nsvSvn17PDw8+Pzzz23bvv/+e44ePUqXLl1KvTc9PZ0hQ4Zw77330qlTJ6ZMmUJeXl6ZP0czZswgKiqKwYMH06VLF7755hvbUG12djbt2rVj7dq1ts8/aNAgoqOjy61VpCIKzhqsqKiIf/3rX2zbto3evXvbtqemphIbG8uSJUu4/fbbefrpp6lbty4pKSm8/vrrbNmyhbi4OAC+/fZbpkyZwqhRo0hJSaGwsJCvv/66zOPt2LGDF154gYiICNavX0+XLl34/e9/T926dW1zolu3biUoKOi6PldSUhL33HMPqamphISEEBMTw/nz5ykuLubZZ58lNDSUDz/8kDlz5rB48WI+/fRTAOLi4ti1axcJCQkkJiZitVr5/e9/j9VqxWq1lvs9AOzZs4fs7GxWrVrFlClTWLlypa3t/5WVlcW9995b5mutW7e2DdOmpqYyb948xo8fzwcffED37t0ZP348p0+ftr3/rbfe4oknnuC9997D3d2d+fPnA/D+++8TFBTEY489Vub84f9atWoV27ZtIyEhgfXr1+Ph4VFmiPz0009ERETQqFEj1q5dS0xMDKtWreIvf/mL7T2bNm3CbDazdu1aHn30UeLi4vj222/LPX5oaChpaWm25x9//DE9evTA1fW/M0YnTpzgmWeeYeTIkWzYsIE33niDzz//nDVr1tC4ceMyf47Wr1/P008/zfLly2nZsqWtLX9/fyZMmEBcXBwXLlxg+fLlnDt3TsEp101znDXMvHnzePnllwG4dOkStWrV4rHHHmPQoEG29/Ts2ZPg4GDgl7A7efIkycnJmM1mAObMmcO4ceOYPn06KSkpdOzYkd/97ncAzJ49m48//rjMY69Zs4b+/fszevRoAKZNm4bVaiU3N9c251S/fv1SvyirIiAggCeffBKAqVOnsnLlSg4dOkTLli05f/489evXp2nTpjRt2pR3332XZs2a8fPPP7Ny5UqSk5Np06YNAK+++ipdunQhIyODoqKicr8H+GXOeN68eXh5eeHv78+qVavYs2cP999//69qzM3NxdPTs8LPkpiYyOjRo23zz9OmTeOLL74gMTGRqKgoAAYPHkzfvn0BGDduHJMmTQKgXr16uLm5Ubt2berVq8fFixfLPdbJkyepVasWTZs2pV69esTExHD06NFfve8f//gH7u7uzJs3Dzc3N/z9/cnJyeGNN97giSeeAH4Zop8xYwZms5kJEybwzjvvsHfvXu6+++5rHr9Pnz7MmTPH9nzz5s0MGzaMQ4cO2bYVFxfz4osv8uijjwLQtGlTfvOb3/Dtt99iNpvL/Dm65557CAsLK/OY48ePZ8OGDcyaNYv09HTi4+OpU6dOud+TSEUUnDXMpEmT6NevHwDu7u40bNjQFgRXNGnSxPb37OxsLly4YAtS+GUeqaioiNOnT5OdnU2rVq1sr7m5uZV6frXs7GyGDx9ue+7i4sILL7wA/NKTKI+rq+s1569KSkpKhW2zZs1sf78STpcvX8bb25vx48fz0ksvsXTpUkJDQxk0aBANGzbk4MGDFBUV2UL9ioKCAo4cOUJBQUG53wPA7bffXmo+19PTk8uXL5dZ8+23386FCxfK/czwy3c2ceLEUts6dOhgG0It6/OWlJRQXFz8q3/Xivz2t79l8+bN9OjRg44dO9KnTx8eeeSRMmtq06YNbm5utm1BQUGcO3eOn376CfjlZ+jq43t4eFBUVFTu8bt160Zubi579+7Fz8+PXbt28cYbb5QKTj8/PywWC0uXLuXQoUMcOnSIb7/9lgcffPCa7TZt2vSar1ksFl566SVGjx5Nv379HLoASm4dCs4apl69evj6+pb7nqsXTly+fBlfX98y56juvPPOMve/+hdqZbZXRp06dcjLy/vV9is91qt7CWUd50roTps2jSFDhpCWlkZ6ejqRkZEsWLDA1stMTEz81WKmevXqkZKSUuH3UN5x/1e7du2uOaS9du1a9u/fz9y5c8tc0FNcXExxcbHteVkLXco6blmrU68Odj8/PzZu3MjWrVvZsmULy5YtIzk5+Ven+ri7u/+qnSvzm1f+rMq/tbu7OyEhIaSnp+Pv709wcDAeHh6l3pOVlcWoUaMIDQ2lU6dO/O53v+Ovf/1rue1WtBDom2++wWw2s2fPHi5evMhtt91md+0iV9Mc5y2uefPmnDlzBm9vb3x9ffH19SUnJ4c//OEPWK1WWrZsyZ49e2zvLy4u5ptvvimzLV9fX/bv3297brVaGTBgAFu3bq3wlINWrVpx9OhRzp07V2p7VlYWly5d4p577qnws+Tk5BATE0OTJk148sknWb16NUOHDmXDhg00a9YMs9nMuXPnbJ+zXr16xMbGcurUqQq/B3sNGjSIffv28cUXX5TafunSJVasWGHrnbVo0YLdu3eXes/u3btp3ry53ce8EmZX/wfk5MmTtr+vW7eOzZs3ExYWxsKFC1m3bh3Z2dm/+vf09/dn//79pXqQX3/9Nd7e3te98rZPnz6kp6eTlpZW5vDqBx98QMeOHYmLi2P06NEEBgZy7Ngx27+BPaeuAJw9e5a4uDgWLlyIxWLhT3/603XVLwIKzlteSEgIzZo1Y/r06WRlZfH1118za9YsXFxccHd3Z/jw4ezfv5+33nqLw4cPExsby5kzZ8psa8yYMXz44YesXbuWY8eO8frrr/Of//yHoKAg2//y9+/f/6tTEgA6duxIq1atePbZZ/n3v//NiRMn+OSTT3j++ecZOHAgd9xxR4WfpW7dumzevJmFCxdy7NgxMjMz+eqrr2jbti2enp4MHz6c+fPns2PHDrKzs4mKiuLgwYP4+flV+D3YKzAwkIiICCZNmsTatWs5fvw4X331FePHj+fixYs888wzAIwdO5bVq1ezbt06jhw5wh/+8AcOHDjAiBEj7D5mgwYNaNy4MQkJCZw4cYJ169axZcsW2+u5ubksXLiQzz77jJMnT5KSksJtt92Gn59fqXYeeughSkpKmDNnDtnZ2aSlpREfH8/IkSOv+xzcXr168c033/DJJ58QGhr6q9e9vb05ePAgu3fv5ujRo7zyyivs2bPHFuIV/Rz9r5deeok2bdowZMgQ5syZw8qVK22rkkWqSsF5izObzSxZsgSz2czIkSOZMGECwcHBLFiwAPhleG/ZsmV89NFHDB48mHPnztGjR48y2+rUqRPz588nISGBgQMHkpGRQUJCAl5eXgQEBBASEkJERARbt2791b4uLi68/fbb+Pj4MHnyZPr3789LL71E7969bYudKnL13NjgwYMZP3483bt35+mnnwYgOjqa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HgpOkSpYuXIlCxYswN/fnx07dvDyyy/Tt29fALy9vVm2bBlFRUX07duXhIQEWrduzYIFC2z7R0VFMWfOHNq0acO3337L008/zcaNGxk5ciSAQlPkJqbgFKmC1157jfT0dD766CN2795d6sL5gYGBABw8eJD69evTunVrAIYNG8bChQvJz89n7969REdH2/a5ePEi586du7EfQkSqRMEpUgURERF06dKFLl260K1bN6ZPn257rVatWsAvt2wrKSn51b4lJSVYLJZSc6VnzpzB29vb4XWLyPXT6Sgidjp//jxHjx5l8uTJ9OzZk7S0NIqLi3/1vhYtWnDhwgW++eYbAP7+978D4OXlhZ+fny04t23bxujRowHdH1XEGajHKWInb29vhg0bxoMPPoirqytdu3bl0qVLXLx4sdT7LBYLr776KlFRUbi4uNC8eXNbb/S1114jJiaGt99+Gzc3N/74xz9iMpm47777iIqKokGDBkRGRhrx8USkAro7ioiDlJSU8PrrrzNp0iRuu+023nnnHc6ePcuMGTOMLk1EroN6nCIO4uLiYuudurm50aRJExYuXGh0WSJyndTjFBERsYMWB4mIiNhBwSkiImIHBaeIiIgdFJwiIiJ2UHCKiIjYQcEpIiJih/8H/9dovj+s0X4AAAAASUVORK5CYII=\n",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"predict_unseen = predict_model(final_model, data=data_unseen);\n",
"score_unseen = test_score_report(data_unseen, predict_unseen)\n",
"print(score_unseen.to_string(index=False))\n",
"conf_mat(data_unseen, predict_unseen)"
]
},
{
"cell_type": "markdown",
"metadata": {
"cell_id": "44ccff9f-85ca-415a-8057-aec964fdf547",
"tags": []
},
"source": [
"And the Unseen Data predicts as the trained model! The model was sucessful built! "
]
},
{
"cell_type": "markdown",
"metadata": {
"cell_id": "ee75d6f1-e02e-410a-b705-27503849659e",
"tags": []
},
"source": [
"# 8. Save Experiment and Model"
]
},
{
"cell_type": "markdown",
"metadata": {
"cell_id": "52e2e634-b24b-4a3a-b75f-ed22f217d916",
"tags": []
},
"source": [
"PyCaret allows to save all the pipeline experiment and the model to deploy. \n",
"It's recommended to save with date of the experiments."
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {
"cell_id": "a774416a-ff50-44c6-b542-eb25a3d4daa6",
"tags": []
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Transformation Pipeline and Model Succesfully Saved\n"
]
}
],
"source": [
"save_model(final_model, PATH+\"models\"+os.sep+\"modelCCP_\"+date.today().strftime(\"%m-%d-%Y\"))"
]
},
{
"cell_type": "markdown",
"metadata": {
"cell_id": "b62c91e5-db7d-49f8-9747-7e9f0c71cf47",
"tags": []
},
"source": [
"# 9. Conclusion"
]
},
{
"cell_type": "markdown",
"metadata": {
"cell_id": "90128e4b-60f7-4c8d-8add-f76174294f61",
"tags": []
},
"source": [
"From the results and explanations presented here, some conclusion can be draw:\n",
"* The type of contract has a strict relationship with churned clients, Month-to-month contracts with high amount of charges could lead a client to leave the service.\n",
"* The Best Model is an AdaBoostClassifier with Logistic Regression as Base Estimator.\n",
"* For the predictions made by the model and based on the precision and recall scores, as F1 Score try to show a balance between these two metrics, the precision was near 50%, what means that the model predict correctly 50% of classified clients as churned, on other hand, the recall was good, where around 83% of the actually churned clients was predict correctly.\n",
"* The metrics must be used in favor of the business interests: Is needed a more correct prediction of the churned clients or get a more amount of these clients on the predictions?\n",
"\n",
"From the tools and enviroment used:\n",
"* PyCaret is incredible, it speed up the model build a lot and the pre-processing is very useful, beyond of the functions to save and deploy the model."
]
}
],
"metadata": {
"deepnote_execution_queue": [],
"deepnote_notebook_id": "497b2b00-2745-4e74-8e16-e5aa6c3bc967",
"deepnote_published_id": "d199ab1b-3789-4aa7-ab73-a81f9f5bf811",
"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.7"
}
},
"nbformat": 4,
"nbformat_minor": 2
}