diff --git "a/Customer churing.ipynb" "b/Customer churing.ipynb"
new file mode 100644--- /dev/null
+++ "b/Customer churing.ipynb"
@@ -0,0 +1,12986 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "id": "2781fb16-5654-4747-b8e7-53a0187f0f77",
+ "metadata": {},
+ "source": [
+ "### Problem Statement:\n",
+ "Using the provided customer churn dataset, the goal is to develop a predictive model to identify factors that influence customer churn and to predict which customers are likely to churn in the future. This involves exploring the data, identifying relevant features, and employing machine learning techniques to build a model that can accurately predict churn.\n",
+ "\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "a3d097ef-bf25-4b5d-9781-4ddf519421a8",
+ "metadata": {},
+ "source": [
+ "### Importing Dependencies"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 12,
+ "id": "66c52684",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Defaulting to user installation because normal site-packages is not writeable\n",
+ "Requirement already satisfied: numpy in c:\\programdata\\anaconda3\\lib\\site-packages (1.26.4)\n",
+ "Defaulting to user installation because normal site-packages is not writeable\n",
+ "Requirement already satisfied: pandas in c:\\programdata\\anaconda3\\lib\\site-packages (2.2.2)\n",
+ "Requirement already satisfied: numpy>=1.26.0 in c:\\programdata\\anaconda3\\lib\\site-packages (from pandas) (1.26.4)\n",
+ "Requirement already satisfied: python-dateutil>=2.8.2 in c:\\users\\india\\appdata\\roaming\\python\\python312\\site-packages (from pandas) (2.9.0.post0)\n",
+ "Requirement already satisfied: pytz>=2020.1 in c:\\programdata\\anaconda3\\lib\\site-packages (from pandas) (2024.1)\n",
+ "Requirement already satisfied: tzdata>=2022.7 in c:\\programdata\\anaconda3\\lib\\site-packages (from pandas) (2023.3)\n",
+ "Requirement already satisfied: six>=1.5 in c:\\users\\india\\appdata\\roaming\\python\\python312\\site-packages (from python-dateutil>=2.8.2->pandas) (1.16.0)\n",
+ "Defaulting to user installation because normal site-packages is not writeable\n",
+ "Requirement already satisfied: seaborn in c:\\programdata\\anaconda3\\lib\\site-packages (0.13.2)\n",
+ "Requirement already satisfied: numpy!=1.24.0,>=1.20 in c:\\programdata\\anaconda3\\lib\\site-packages (from seaborn) (1.26.4)\n",
+ "Requirement already satisfied: pandas>=1.2 in c:\\programdata\\anaconda3\\lib\\site-packages (from seaborn) (2.2.2)\n",
+ "Requirement already satisfied: matplotlib!=3.6.1,>=3.4 in c:\\programdata\\anaconda3\\lib\\site-packages (from seaborn) (3.8.4)\n",
+ "Requirement already satisfied: contourpy>=1.0.1 in c:\\programdata\\anaconda3\\lib\\site-packages (from matplotlib!=3.6.1,>=3.4->seaborn) (1.2.0)\n",
+ "Requirement already satisfied: cycler>=0.10 in c:\\programdata\\anaconda3\\lib\\site-packages (from matplotlib!=3.6.1,>=3.4->seaborn) (0.11.0)\n",
+ "Requirement already satisfied: fonttools>=4.22.0 in c:\\programdata\\anaconda3\\lib\\site-packages (from matplotlib!=3.6.1,>=3.4->seaborn) (4.51.0)\n",
+ "Requirement already satisfied: kiwisolver>=1.3.1 in c:\\programdata\\anaconda3\\lib\\site-packages (from matplotlib!=3.6.1,>=3.4->seaborn) (1.4.4)\n",
+ "Requirement already satisfied: packaging>=20.0 in c:\\users\\india\\appdata\\roaming\\python\\python312\\site-packages (from matplotlib!=3.6.1,>=3.4->seaborn) (24.1)\n",
+ "Requirement already satisfied: pillow>=8 in c:\\programdata\\anaconda3\\lib\\site-packages (from matplotlib!=3.6.1,>=3.4->seaborn) (10.3.0)\n",
+ "Requirement already satisfied: pyparsing>=2.3.1 in c:\\programdata\\anaconda3\\lib\\site-packages (from matplotlib!=3.6.1,>=3.4->seaborn) (3.0.9)\n",
+ "Requirement already satisfied: python-dateutil>=2.7 in c:\\users\\india\\appdata\\roaming\\python\\python312\\site-packages (from matplotlib!=3.6.1,>=3.4->seaborn) (2.9.0.post0)\n",
+ "Requirement already satisfied: pytz>=2020.1 in c:\\programdata\\anaconda3\\lib\\site-packages (from pandas>=1.2->seaborn) (2024.1)\n",
+ "Requirement already satisfied: tzdata>=2022.7 in c:\\programdata\\anaconda3\\lib\\site-packages (from pandas>=1.2->seaborn) (2023.3)\n",
+ "Requirement already satisfied: six>=1.5 in c:\\users\\india\\appdata\\roaming\\python\\python312\\site-packages (from python-dateutil>=2.7->matplotlib!=3.6.1,>=3.4->seaborn) (1.16.0)\n",
+ "Defaulting to user installation because normal site-packages is not writeable\n",
+ "Requirement already satisfied: matplotlib in c:\\programdata\\anaconda3\\lib\\site-packages (3.8.4)\n",
+ "Requirement already satisfied: contourpy>=1.0.1 in c:\\programdata\\anaconda3\\lib\\site-packages (from matplotlib) (1.2.0)\n",
+ "Requirement already satisfied: cycler>=0.10 in c:\\programdata\\anaconda3\\lib\\site-packages (from matplotlib) (0.11.0)\n",
+ "Requirement already satisfied: fonttools>=4.22.0 in c:\\programdata\\anaconda3\\lib\\site-packages (from matplotlib) (4.51.0)\n",
+ "Requirement already satisfied: kiwisolver>=1.3.1 in c:\\programdata\\anaconda3\\lib\\site-packages (from matplotlib) (1.4.4)\n",
+ "Requirement already satisfied: numpy>=1.21 in c:\\programdata\\anaconda3\\lib\\site-packages (from matplotlib) (1.26.4)\n",
+ "Requirement already satisfied: packaging>=20.0 in c:\\users\\india\\appdata\\roaming\\python\\python312\\site-packages (from matplotlib) (24.1)\n",
+ "Requirement already satisfied: pillow>=8 in c:\\programdata\\anaconda3\\lib\\site-packages (from matplotlib) (10.3.0)\n",
+ "Requirement already satisfied: pyparsing>=2.3.1 in c:\\programdata\\anaconda3\\lib\\site-packages (from matplotlib) (3.0.9)\n",
+ "Requirement already satisfied: python-dateutil>=2.7 in c:\\users\\india\\appdata\\roaming\\python\\python312\\site-packages (from matplotlib) (2.9.0.post0)\n",
+ "Requirement already satisfied: six>=1.5 in c:\\users\\india\\appdata\\roaming\\python\\python312\\site-packages (from python-dateutil>=2.7->matplotlib) (1.16.0)\n"
+ ]
+ }
+ ],
+ "source": [
+ "! pip install numpy\n",
+ "! pip install pandas\n",
+ "! pip install seaborn\n",
+ "! pip install matplotlib"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 13,
+ "id": "20dd8afa-1fae-4a2d-9bd2-f9cf7ebe2eea",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "import numpy as np\n",
+ "import pandas as pd\n",
+ "import seaborn as sns\n",
+ "import matplotlib.pyplot as plt"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 14,
+ "id": "2c01f71e-4588-45c7-8de8-e8e87f00d2f2",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "df = pd.read_csv('WA_Fn-UseC_-Telco-Customer-Churn.csv')"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 15,
+ "id": "01c37644-cdcf-4342-bec7-700d1192d63f",
+ "metadata": {},
+ "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",
+ " 3 | \n",
+ " 7795-CFOCW | \n",
+ " Male | \n",
+ " 0 | \n",
+ " No | \n",
+ " No | \n",
+ " 45 | \n",
+ " No | \n",
+ " No phone service | \n",
+ " DSL | \n",
+ " Yes | \n",
+ " ... | \n",
+ " Yes | \n",
+ " Yes | \n",
+ " No | \n",
+ " No | \n",
+ " One year | \n",
+ " No | \n",
+ " Bank transfer (automatic) | \n",
+ " 42.30 | \n",
+ " 1840.75 | \n",
+ " No | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 9237-HQITU | \n",
+ " Female | \n",
+ " 0 | \n",
+ " No | \n",
+ " No | \n",
+ " 2 | \n",
+ " Yes | \n",
+ " No | \n",
+ " Fiber optic | \n",
+ " No | \n",
+ " ... | \n",
+ " No | \n",
+ " No | \n",
+ " No | \n",
+ " No | \n",
+ " Month-to-month | \n",
+ " Yes | \n",
+ " Electronic check | \n",
+ " 70.70 | \n",
+ " 151.65 | \n",
+ " Yes | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
5 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",
+ "3 7795-CFOCW Male 0 No No 45 No \n",
+ "4 9237-HQITU Female 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",
+ "3 No phone service DSL Yes ... Yes \n",
+ "4 No Fiber optic No ... 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",
+ "3 Yes No No One year No \n",
+ "4 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",
+ "3 Bank transfer (automatic) 42.30 1840.75 No \n",
+ "4 Electronic check 70.70 151.65 Yes \n",
+ "\n",
+ "[5 rows x 21 columns]"
+ ]
+ },
+ "execution_count": 15,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "df.head()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "ffe72793-f77c-452b-9c4a-f9060b2f72c3",
+ "metadata": {},
+ "source": [
+ "### Exploratry Data Analysis"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 16,
+ "id": "6bf63d8c-e4d8-4609-a4e9-d66ac85022d4",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "RangeIndex: 7043 entries, 0 to 7042\n",
+ "Data columns (total 21 columns):\n",
+ " # Column Non-Null Count Dtype \n",
+ "--- ------ -------------- ----- \n",
+ " 0 customerID 7043 non-null object \n",
+ " 1 gender 7043 non-null object \n",
+ " 2 SeniorCitizen 7043 non-null int64 \n",
+ " 3 Partner 7043 non-null object \n",
+ " 4 Dependents 7043 non-null object \n",
+ " 5 tenure 7043 non-null int64 \n",
+ " 6 PhoneService 7043 non-null object \n",
+ " 7 MultipleLines 7043 non-null object \n",
+ " 8 InternetService 7043 non-null object \n",
+ " 9 OnlineSecurity 7043 non-null object \n",
+ " 10 OnlineBackup 7043 non-null object \n",
+ " 11 DeviceProtection 7043 non-null object \n",
+ " 12 TechSupport 7043 non-null object \n",
+ " 13 StreamingTV 7043 non-null object \n",
+ " 14 StreamingMovies 7043 non-null object \n",
+ " 15 Contract 7043 non-null object \n",
+ " 16 PaperlessBilling 7043 non-null object \n",
+ " 17 PaymentMethod 7043 non-null object \n",
+ " 18 MonthlyCharges 7043 non-null float64\n",
+ " 19 TotalCharges 7043 non-null object \n",
+ " 20 Churn 7043 non-null object \n",
+ "dtypes: float64(1), int64(2), object(18)\n",
+ "memory usage: 1.1+ MB\n"
+ ]
+ }
+ ],
+ "source": [
+ "df.info()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 17,
+ "id": "5609c0be-fc1b-4a18-ac36-ff95fcfb43cb",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " SeniorCitizen | \n",
+ " tenure | \n",
+ " MonthlyCharges | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " count | \n",
+ " 7043.000000 | \n",
+ " 7043.000000 | \n",
+ " 7043.000000 | \n",
+ "
\n",
+ " \n",
+ " mean | \n",
+ " 0.162147 | \n",
+ " 32.371149 | \n",
+ " 64.761692 | \n",
+ "
\n",
+ " \n",
+ " std | \n",
+ " 0.368612 | \n",
+ " 24.559481 | \n",
+ " 30.090047 | \n",
+ "
\n",
+ " \n",
+ " min | \n",
+ " 0.000000 | \n",
+ " 0.000000 | \n",
+ " 18.250000 | \n",
+ "
\n",
+ " \n",
+ " 25% | \n",
+ " 0.000000 | \n",
+ " 9.000000 | \n",
+ " 35.500000 | \n",
+ "
\n",
+ " \n",
+ " 50% | \n",
+ " 0.000000 | \n",
+ " 29.000000 | \n",
+ " 70.350000 | \n",
+ "
\n",
+ " \n",
+ " 75% | \n",
+ " 0.000000 | \n",
+ " 55.000000 | \n",
+ " 89.850000 | \n",
+ "
\n",
+ " \n",
+ " max | \n",
+ " 1.000000 | \n",
+ " 72.000000 | \n",
+ " 118.750000 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " SeniorCitizen tenure MonthlyCharges\n",
+ "count 7043.000000 7043.000000 7043.000000\n",
+ "mean 0.162147 32.371149 64.761692\n",
+ "std 0.368612 24.559481 30.090047\n",
+ "min 0.000000 0.000000 18.250000\n",
+ "25% 0.000000 9.000000 35.500000\n",
+ "50% 0.000000 29.000000 70.350000\n",
+ "75% 0.000000 55.000000 89.850000\n",
+ "max 1.000000 72.000000 118.750000"
+ ]
+ },
+ "execution_count": 17,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "df.describe()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 18,
+ "id": "e9805aed-f4e4-4c6c-b8bb-0081c8601df7",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "(7043, 21)"
+ ]
+ },
+ "execution_count": 18,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "df.shape"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 19,
+ "id": "b337d290-09c0-4abf-bfb8-894a87cf311c",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "Index(['customerID', 'gender', 'SeniorCitizen', 'Partner', 'Dependents',\n",
+ " 'tenure', 'PhoneService', 'MultipleLines', 'InternetService',\n",
+ " 'OnlineSecurity', 'OnlineBackup', 'DeviceProtection', 'TechSupport',\n",
+ " 'StreamingTV', 'StreamingMovies', 'Contract', 'PaperlessBilling',\n",
+ " 'PaymentMethod', 'MonthlyCharges', 'TotalCharges', 'Churn'],\n",
+ " dtype='object')"
+ ]
+ },
+ "execution_count": 19,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "df.columns"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 20,
+ "id": "3a91e639-04a6-4d9c-8b06-62b84161357b",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "customerID 0\n",
+ "gender 0\n",
+ "SeniorCitizen 0\n",
+ "Partner 0\n",
+ "Dependents 0\n",
+ "tenure 0\n",
+ "PhoneService 0\n",
+ "MultipleLines 0\n",
+ "InternetService 0\n",
+ "OnlineSecurity 0\n",
+ "OnlineBackup 0\n",
+ "DeviceProtection 0\n",
+ "TechSupport 0\n",
+ "StreamingTV 0\n",
+ "StreamingMovies 0\n",
+ "Contract 0\n",
+ "PaperlessBilling 0\n",
+ "PaymentMethod 0\n",
+ "MonthlyCharges 0\n",
+ "TotalCharges 0\n",
+ "Churn 0\n",
+ "dtype: int64"
+ ]
+ },
+ "execution_count": 20,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "df.isnull().sum()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 21,
+ "id": "ed6c8bbf-67ad-4c12-95c1-c98fb1ed69a5",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "df['TotalCharges'] = pd.to_numeric(df.TotalCharges, errors='coerce')"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 22,
+ "id": "eb77d4d0-4ba6-4929-83a2-60c8941d1b57",
+ "metadata": {
+ "scrolled": true
+ },
+ "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",
+ " 488 | \n",
+ " 4472-LVYGI | \n",
+ " Female | \n",
+ " 0 | \n",
+ " Yes | \n",
+ " Yes | \n",
+ " 0 | \n",
+ " No | \n",
+ " No phone service | \n",
+ " DSL | \n",
+ " Yes | \n",
+ " ... | \n",
+ " Yes | \n",
+ " Yes | \n",
+ " Yes | \n",
+ " No | \n",
+ " Two year | \n",
+ " Yes | \n",
+ " Bank transfer (automatic) | \n",
+ " 52.55 | \n",
+ " NaN | \n",
+ " No | \n",
+ "
\n",
+ " \n",
+ " 753 | \n",
+ " 3115-CZMZD | \n",
+ " Male | \n",
+ " 0 | \n",
+ " No | \n",
+ " Yes | \n",
+ " 0 | \n",
+ " Yes | \n",
+ " No | \n",
+ " No | \n",
+ " No internet service | \n",
+ " ... | \n",
+ " No internet service | \n",
+ " No internet service | \n",
+ " No internet service | \n",
+ " No internet service | \n",
+ " Two year | \n",
+ " No | \n",
+ " Mailed check | \n",
+ " 20.25 | \n",
+ " NaN | \n",
+ " No | \n",
+ "
\n",
+ " \n",
+ " 936 | \n",
+ " 5709-LVOEQ | \n",
+ " Female | \n",
+ " 0 | \n",
+ " Yes | \n",
+ " Yes | \n",
+ " 0 | \n",
+ " Yes | \n",
+ " No | \n",
+ " DSL | \n",
+ " Yes | \n",
+ " ... | \n",
+ " Yes | \n",
+ " No | \n",
+ " Yes | \n",
+ " Yes | \n",
+ " Two year | \n",
+ " No | \n",
+ " Mailed check | \n",
+ " 80.85 | \n",
+ " NaN | \n",
+ " No | \n",
+ "
\n",
+ " \n",
+ " 1082 | \n",
+ " 4367-NUYAO | \n",
+ " Male | \n",
+ " 0 | \n",
+ " Yes | \n",
+ " Yes | \n",
+ " 0 | \n",
+ " Yes | \n",
+ " Yes | \n",
+ " No | \n",
+ " No internet service | \n",
+ " ... | \n",
+ " No internet service | \n",
+ " No internet service | \n",
+ " No internet service | \n",
+ " No internet service | \n",
+ " Two year | \n",
+ " No | \n",
+ " Mailed check | \n",
+ " 25.75 | \n",
+ " NaN | \n",
+ " No | \n",
+ "
\n",
+ " \n",
+ " 1340 | \n",
+ " 1371-DWPAZ | \n",
+ " Female | \n",
+ " 0 | \n",
+ " Yes | \n",
+ " Yes | \n",
+ " 0 | \n",
+ " No | \n",
+ " No phone service | \n",
+ " DSL | \n",
+ " Yes | \n",
+ " ... | \n",
+ " Yes | \n",
+ " Yes | \n",
+ " Yes | \n",
+ " No | \n",
+ " Two year | \n",
+ " No | \n",
+ " Credit card (automatic) | \n",
+ " 56.05 | \n",
+ " NaN | \n",
+ " No | \n",
+ "
\n",
+ " \n",
+ " 3331 | \n",
+ " 7644-OMVMY | \n",
+ " Male | \n",
+ " 0 | \n",
+ " Yes | \n",
+ " Yes | \n",
+ " 0 | \n",
+ " Yes | \n",
+ " No | \n",
+ " No | \n",
+ " No internet service | \n",
+ " ... | \n",
+ " No internet service | \n",
+ " No internet service | \n",
+ " No internet service | \n",
+ " No internet service | \n",
+ " Two year | \n",
+ " No | \n",
+ " Mailed check | \n",
+ " 19.85 | \n",
+ " NaN | \n",
+ " No | \n",
+ "
\n",
+ " \n",
+ " 3826 | \n",
+ " 3213-VVOLG | \n",
+ " Male | \n",
+ " 0 | \n",
+ " Yes | \n",
+ " Yes | \n",
+ " 0 | \n",
+ " Yes | \n",
+ " Yes | \n",
+ " No | \n",
+ " No internet service | \n",
+ " ... | \n",
+ " No internet service | \n",
+ " No internet service | \n",
+ " No internet service | \n",
+ " No internet service | \n",
+ " Two year | \n",
+ " No | \n",
+ " Mailed check | \n",
+ " 25.35 | \n",
+ " NaN | \n",
+ " No | \n",
+ "
\n",
+ " \n",
+ " 4380 | \n",
+ " 2520-SGTTA | \n",
+ " Female | \n",
+ " 0 | \n",
+ " Yes | \n",
+ " Yes | \n",
+ " 0 | \n",
+ " Yes | \n",
+ " No | \n",
+ " No | \n",
+ " No internet service | \n",
+ " ... | \n",
+ " No internet service | \n",
+ " No internet service | \n",
+ " No internet service | \n",
+ " No internet service | \n",
+ " Two year | \n",
+ " No | \n",
+ " Mailed check | \n",
+ " 20.00 | \n",
+ " NaN | \n",
+ " No | \n",
+ "
\n",
+ " \n",
+ " 5218 | \n",
+ " 2923-ARZLG | \n",
+ " Male | \n",
+ " 0 | \n",
+ " Yes | \n",
+ " Yes | \n",
+ " 0 | \n",
+ " Yes | \n",
+ " No | \n",
+ " No | \n",
+ " No internet service | \n",
+ " ... | \n",
+ " No internet service | \n",
+ " No internet service | \n",
+ " No internet service | \n",
+ " No internet service | \n",
+ " One year | \n",
+ " Yes | \n",
+ " Mailed check | \n",
+ " 19.70 | \n",
+ " NaN | \n",
+ " No | \n",
+ "
\n",
+ " \n",
+ " 6670 | \n",
+ " 4075-WKNIU | \n",
+ " Female | \n",
+ " 0 | \n",
+ " Yes | \n",
+ " Yes | \n",
+ " 0 | \n",
+ " Yes | \n",
+ " Yes | \n",
+ " DSL | \n",
+ " No | \n",
+ " ... | \n",
+ " Yes | \n",
+ " Yes | \n",
+ " Yes | \n",
+ " No | \n",
+ " Two year | \n",
+ " No | \n",
+ " Mailed check | \n",
+ " 73.35 | \n",
+ " NaN | \n",
+ " No | \n",
+ "
\n",
+ " \n",
+ " 6754 | \n",
+ " 2775-SEFEE | \n",
+ " Male | \n",
+ " 0 | \n",
+ " No | \n",
+ " Yes | \n",
+ " 0 | \n",
+ " Yes | \n",
+ " Yes | \n",
+ " DSL | \n",
+ " Yes | \n",
+ " ... | \n",
+ " No | \n",
+ " Yes | \n",
+ " No | \n",
+ " No | \n",
+ " Two year | \n",
+ " Yes | \n",
+ " Bank transfer (automatic) | \n",
+ " 61.90 | \n",
+ " NaN | \n",
+ " No | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
11 rows × 21 columns
\n",
+ "
"
+ ],
+ "text/plain": [
+ " customerID gender SeniorCitizen Partner Dependents tenure \\\n",
+ "488 4472-LVYGI Female 0 Yes Yes 0 \n",
+ "753 3115-CZMZD Male 0 No Yes 0 \n",
+ "936 5709-LVOEQ Female 0 Yes Yes 0 \n",
+ "1082 4367-NUYAO Male 0 Yes Yes 0 \n",
+ "1340 1371-DWPAZ Female 0 Yes Yes 0 \n",
+ "3331 7644-OMVMY Male 0 Yes Yes 0 \n",
+ "3826 3213-VVOLG Male 0 Yes Yes 0 \n",
+ "4380 2520-SGTTA Female 0 Yes Yes 0 \n",
+ "5218 2923-ARZLG Male 0 Yes Yes 0 \n",
+ "6670 4075-WKNIU Female 0 Yes Yes 0 \n",
+ "6754 2775-SEFEE Male 0 No Yes 0 \n",
+ "\n",
+ " PhoneService MultipleLines InternetService OnlineSecurity ... \\\n",
+ "488 No No phone service DSL Yes ... \n",
+ "753 Yes No No No internet service ... \n",
+ "936 Yes No DSL Yes ... \n",
+ "1082 Yes Yes No No internet service ... \n",
+ "1340 No No phone service DSL Yes ... \n",
+ "3331 Yes No No No internet service ... \n",
+ "3826 Yes Yes No No internet service ... \n",
+ "4380 Yes No No No internet service ... \n",
+ "5218 Yes No No No internet service ... \n",
+ "6670 Yes Yes DSL No ... \n",
+ "6754 Yes Yes DSL Yes ... \n",
+ "\n",
+ " DeviceProtection TechSupport StreamingTV \\\n",
+ "488 Yes Yes Yes \n",
+ "753 No internet service No internet service No internet service \n",
+ "936 Yes No Yes \n",
+ "1082 No internet service No internet service No internet service \n",
+ "1340 Yes Yes Yes \n",
+ "3331 No internet service No internet service No internet service \n",
+ "3826 No internet service No internet service No internet service \n",
+ "4380 No internet service No internet service No internet service \n",
+ "5218 No internet service No internet service No internet service \n",
+ "6670 Yes Yes Yes \n",
+ "6754 No Yes No \n",
+ "\n",
+ " StreamingMovies Contract PaperlessBilling \\\n",
+ "488 No Two year Yes \n",
+ "753 No internet service Two year No \n",
+ "936 Yes Two year No \n",
+ "1082 No internet service Two year No \n",
+ "1340 No Two year No \n",
+ "3331 No internet service Two year No \n",
+ "3826 No internet service Two year No \n",
+ "4380 No internet service Two year No \n",
+ "5218 No internet service One year Yes \n",
+ "6670 No Two year No \n",
+ "6754 No Two year Yes \n",
+ "\n",
+ " PaymentMethod MonthlyCharges TotalCharges Churn \n",
+ "488 Bank transfer (automatic) 52.55 NaN No \n",
+ "753 Mailed check 20.25 NaN No \n",
+ "936 Mailed check 80.85 NaN No \n",
+ "1082 Mailed check 25.75 NaN No \n",
+ "1340 Credit card (automatic) 56.05 NaN No \n",
+ "3331 Mailed check 19.85 NaN No \n",
+ "3826 Mailed check 25.35 NaN No \n",
+ "4380 Mailed check 20.00 NaN No \n",
+ "5218 Mailed check 19.70 NaN No \n",
+ "6670 Mailed check 73.35 NaN No \n",
+ "6754 Bank transfer (automatic) 61.90 NaN No \n",
+ "\n",
+ "[11 rows x 21 columns]"
+ ]
+ },
+ "execution_count": 22,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "df[np.isnan(df['TotalCharges'])]"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "6031b81c-883d-46fe-804b-a44d1b823497",
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 23,
+ "id": "84869696-9d91-482b-b021-483e6804f389",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "df = df.fillna(df['TotalCharges'].mean())#replace with mean"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 24,
+ "id": "f36d5e6c-7cb2-418a-b372-04508702c688",
+ "metadata": {},
+ "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.50 | \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",
+ " 3 | \n",
+ " 7795-CFOCW | \n",
+ " Male | \n",
+ " 0 | \n",
+ " No | \n",
+ " No | \n",
+ " 45 | \n",
+ " No | \n",
+ " No phone service | \n",
+ " DSL | \n",
+ " Yes | \n",
+ " ... | \n",
+ " Yes | \n",
+ " Yes | \n",
+ " No | \n",
+ " No | \n",
+ " One year | \n",
+ " No | \n",
+ " Bank transfer (automatic) | \n",
+ " 42.30 | \n",
+ " 1840.75 | \n",
+ " No | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 9237-HQITU | \n",
+ " Female | \n",
+ " 0 | \n",
+ " No | \n",
+ " No | \n",
+ " 2 | \n",
+ " Yes | \n",
+ " No | \n",
+ " Fiber optic | \n",
+ " No | \n",
+ " ... | \n",
+ " No | \n",
+ " No | \n",
+ " No | \n",
+ " No | \n",
+ " Month-to-month | \n",
+ " Yes | \n",
+ " Electronic check | \n",
+ " 70.70 | \n",
+ " 151.65 | \n",
+ " Yes | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
5 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",
+ "3 7795-CFOCW Male 0 No No 45 No \n",
+ "4 9237-HQITU Female 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",
+ "3 No phone service DSL Yes ... Yes \n",
+ "4 No Fiber optic No ... 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",
+ "3 Yes No No One year No \n",
+ "4 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.50 No \n",
+ "2 Mailed check 53.85 108.15 Yes \n",
+ "3 Bank transfer (automatic) 42.30 1840.75 No \n",
+ "4 Electronic check 70.70 151.65 Yes \n",
+ "\n",
+ "[5 rows x 21 columns]"
+ ]
+ },
+ "execution_count": 24,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "df.head()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 25,
+ "id": "9ef59db6-2fd5-4d76-95ee-4bbed304e715",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "customerID 0\n",
+ "gender 0\n",
+ "SeniorCitizen 0\n",
+ "Partner 0\n",
+ "Dependents 0\n",
+ "tenure 0\n",
+ "PhoneService 0\n",
+ "MultipleLines 0\n",
+ "InternetService 0\n",
+ "OnlineSecurity 0\n",
+ "OnlineBackup 0\n",
+ "DeviceProtection 0\n",
+ "TechSupport 0\n",
+ "StreamingTV 0\n",
+ "StreamingMovies 0\n",
+ "Contract 0\n",
+ "PaperlessBilling 0\n",
+ "PaymentMethod 0\n",
+ "MonthlyCharges 0\n",
+ "TotalCharges 0\n",
+ "Churn 0\n",
+ "dtype: int64"
+ ]
+ },
+ "execution_count": 25,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "df.isnull().sum()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 26,
+ "id": "7c2bd4a3-f1c8-4d6f-968d-4d21590f35c5",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "df.drop(columns='customerID',inplace=True)#Drop useless feature"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 27,
+ "id": "a80c9faa-0b8e-41aa-9453-8c3d992c81c9",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "Index([488, 753, 936, 1082, 1340, 3331, 3826, 4380, 5218, 6670, 6754], dtype='int64')"
+ ]
+ },
+ "execution_count": 27,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "df[df['tenure'] == 0 ].index"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 28,
+ "id": "b1a95d4f-81f2-4830-9624-022c6e5d63c1",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "df.drop(labels=df[df['tenure'] == 0 ].index,axis=0,inplace=True)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 29,
+ "id": "5f3d9557-408b-4659-b8d7-ea0bf9464974",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "Index([], dtype='int64')"
+ ]
+ },
+ "execution_count": 29,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "df[df['tenure'] == 0 ].index"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 30,
+ "id": "899da648-cf50-4c07-9681-c79616ad0892",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " gender | \n",
+ " SeniorCitizen | \n",
+ " Partner | \n",
+ " Dependents | \n",
+ " tenure | \n",
+ " PhoneService | \n",
+ " MultipleLines | \n",
+ " InternetService | \n",
+ " OnlineSecurity | \n",
+ " OnlineBackup | \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",
+ " Female | \n",
+ " 0 | \n",
+ " Yes | \n",
+ " No | \n",
+ " 1 | \n",
+ " No | \n",
+ " No phone service | \n",
+ " DSL | \n",
+ " No | \n",
+ " Yes | \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",
+ " Male | \n",
+ " 0 | \n",
+ " No | \n",
+ " No | \n",
+ " 34 | \n",
+ " Yes | \n",
+ " No | \n",
+ " DSL | \n",
+ " Yes | \n",
+ " No | \n",
+ " Yes | \n",
+ " No | \n",
+ " No | \n",
+ " No | \n",
+ " One year | \n",
+ " No | \n",
+ " Mailed check | \n",
+ " 56.95 | \n",
+ " 1889.50 | \n",
+ " No | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " Male | \n",
+ " 0 | \n",
+ " No | \n",
+ " No | \n",
+ " 2 | \n",
+ " Yes | \n",
+ " No | \n",
+ " DSL | \n",
+ " Yes | \n",
+ " Yes | \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",
+ " 3 | \n",
+ " Male | \n",
+ " 0 | \n",
+ " No | \n",
+ " No | \n",
+ " 45 | \n",
+ " No | \n",
+ " No phone service | \n",
+ " DSL | \n",
+ " Yes | \n",
+ " No | \n",
+ " Yes | \n",
+ " Yes | \n",
+ " No | \n",
+ " No | \n",
+ " One year | \n",
+ " No | \n",
+ " Bank transfer (automatic) | \n",
+ " 42.30 | \n",
+ " 1840.75 | \n",
+ " No | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " Female | \n",
+ " 0 | \n",
+ " No | \n",
+ " No | \n",
+ " 2 | \n",
+ " Yes | \n",
+ " No | \n",
+ " Fiber optic | \n",
+ " No | \n",
+ " No | \n",
+ " No | \n",
+ " No | \n",
+ " No | \n",
+ " No | \n",
+ " Month-to-month | \n",
+ " Yes | \n",
+ " Electronic check | \n",
+ " 70.70 | \n",
+ " 151.65 | \n",
+ " Yes | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " gender SeniorCitizen Partner Dependents tenure PhoneService \\\n",
+ "0 Female 0 Yes No 1 No \n",
+ "1 Male 0 No No 34 Yes \n",
+ "2 Male 0 No No 2 Yes \n",
+ "3 Male 0 No No 45 No \n",
+ "4 Female 0 No No 2 Yes \n",
+ "\n",
+ " MultipleLines InternetService OnlineSecurity OnlineBackup \\\n",
+ "0 No phone service DSL No Yes \n",
+ "1 No DSL Yes No \n",
+ "2 No DSL Yes Yes \n",
+ "3 No phone service DSL Yes No \n",
+ "4 No Fiber optic No No \n",
+ "\n",
+ " DeviceProtection TechSupport StreamingTV StreamingMovies Contract \\\n",
+ "0 No No No No Month-to-month \n",
+ "1 Yes No No No One year \n",
+ "2 No No No No Month-to-month \n",
+ "3 Yes Yes No No One year \n",
+ "4 No No No No Month-to-month \n",
+ "\n",
+ " PaperlessBilling PaymentMethod MonthlyCharges TotalCharges \\\n",
+ "0 Yes Electronic check 29.85 29.85 \n",
+ "1 No Mailed check 56.95 1889.50 \n",
+ "2 Yes Mailed check 53.85 108.15 \n",
+ "3 No Bank transfer (automatic) 42.30 1840.75 \n",
+ "4 Yes Electronic check 70.70 151.65 \n",
+ "\n",
+ " Churn \n",
+ "0 No \n",
+ "1 No \n",
+ "2 Yes \n",
+ "3 No \n",
+ "4 Yes "
+ ]
+ },
+ "execution_count": 30,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "df.head()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 31,
+ "id": "740c969c-d3fc-4c03-8705-01b3d6d5c7c3",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "df['SeniorCitizen']=df['SeniorCitizen'].map({0: \"NO\",1: 'Yes'})#mapping values"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 32,
+ "id": "c936cd8c-86b3-4787-acf4-ebbc2ae19eeb",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " gender | \n",
+ " SeniorCitizen | \n",
+ " Partner | \n",
+ " Dependents | \n",
+ " tenure | \n",
+ " PhoneService | \n",
+ " MultipleLines | \n",
+ " InternetService | \n",
+ " OnlineSecurity | \n",
+ " OnlineBackup | \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",
+ " Female | \n",
+ " NO | \n",
+ " Yes | \n",
+ " No | \n",
+ " 1 | \n",
+ " No | \n",
+ " No phone service | \n",
+ " DSL | \n",
+ " No | \n",
+ " Yes | \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",
+ " Male | \n",
+ " NO | \n",
+ " No | \n",
+ " No | \n",
+ " 34 | \n",
+ " Yes | \n",
+ " No | \n",
+ " DSL | \n",
+ " Yes | \n",
+ " No | \n",
+ " Yes | \n",
+ " No | \n",
+ " No | \n",
+ " No | \n",
+ " One year | \n",
+ " No | \n",
+ " Mailed check | \n",
+ " 56.95 | \n",
+ " 1889.50 | \n",
+ " No | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " Male | \n",
+ " NO | \n",
+ " No | \n",
+ " No | \n",
+ " 2 | \n",
+ " Yes | \n",
+ " No | \n",
+ " DSL | \n",
+ " Yes | \n",
+ " Yes | \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",
+ " 3 | \n",
+ " Male | \n",
+ " NO | \n",
+ " No | \n",
+ " No | \n",
+ " 45 | \n",
+ " No | \n",
+ " No phone service | \n",
+ " DSL | \n",
+ " Yes | \n",
+ " No | \n",
+ " Yes | \n",
+ " Yes | \n",
+ " No | \n",
+ " No | \n",
+ " One year | \n",
+ " No | \n",
+ " Bank transfer (automatic) | \n",
+ " 42.30 | \n",
+ " 1840.75 | \n",
+ " No | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " Female | \n",
+ " NO | \n",
+ " No | \n",
+ " No | \n",
+ " 2 | \n",
+ " Yes | \n",
+ " No | \n",
+ " Fiber optic | \n",
+ " No | \n",
+ " No | \n",
+ " No | \n",
+ " No | \n",
+ " No | \n",
+ " No | \n",
+ " Month-to-month | \n",
+ " Yes | \n",
+ " Electronic check | \n",
+ " 70.70 | \n",
+ " 151.65 | \n",
+ " Yes | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " gender SeniorCitizen Partner Dependents tenure PhoneService \\\n",
+ "0 Female NO Yes No 1 No \n",
+ "1 Male NO No No 34 Yes \n",
+ "2 Male NO No No 2 Yes \n",
+ "3 Male NO No No 45 No \n",
+ "4 Female NO No No 2 Yes \n",
+ "\n",
+ " MultipleLines InternetService OnlineSecurity OnlineBackup \\\n",
+ "0 No phone service DSL No Yes \n",
+ "1 No DSL Yes No \n",
+ "2 No DSL Yes Yes \n",
+ "3 No phone service DSL Yes No \n",
+ "4 No Fiber optic No No \n",
+ "\n",
+ " DeviceProtection TechSupport StreamingTV StreamingMovies Contract \\\n",
+ "0 No No No No Month-to-month \n",
+ "1 Yes No No No One year \n",
+ "2 No No No No Month-to-month \n",
+ "3 Yes Yes No No One year \n",
+ "4 No No No No Month-to-month \n",
+ "\n",
+ " PaperlessBilling PaymentMethod MonthlyCharges TotalCharges \\\n",
+ "0 Yes Electronic check 29.85 29.85 \n",
+ "1 No Mailed check 56.95 1889.50 \n",
+ "2 Yes Mailed check 53.85 108.15 \n",
+ "3 No Bank transfer (automatic) 42.30 1840.75 \n",
+ "4 Yes Electronic check 70.70 151.65 \n",
+ "\n",
+ " Churn \n",
+ "0 No \n",
+ "1 No \n",
+ "2 Yes \n",
+ "3 No \n",
+ "4 Yes "
+ ]
+ },
+ "execution_count": 32,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "df.head()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 33,
+ "id": "ab20b945-9c29-4af9-a100-3a459d628500",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "Churn\n",
+ "No 5163\n",
+ "Yes 1869\n",
+ "Name: count, dtype: int64"
+ ]
+ },
+ "execution_count": 33,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "df['Churn'].value_counts()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 34,
+ "id": "03472054-3840-408e-aa02-a652617b9f94",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "gender\n",
+ "Female 3483\n",
+ "Male 3549\n",
+ "Name: Churn, dtype: int64"
+ ]
+ },
+ "execution_count": 34,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "df['Churn'].groupby(by=df['gender']).count()#Checking Count using Groupby"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "37e9db54-bd2b-4e32-8eec-b78acb9f78da",
+ "metadata": {},
+ "source": [
+ "### Visualizations "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 35,
+ "id": "f1b02154-787a-4649-a2dc-8177fffa12c3",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "application/vnd.plotly.v1+json": {
+ "config": {
+ "plotlyServerURL": "https://plot.ly"
+ },
+ "data": [
+ {
+ "domain": {
+ "x": [
+ 0,
+ 0.45
+ ],
+ "y": [
+ 0,
+ 1
+ ]
+ },
+ "hole": 0.4,
+ "hoverinfo": "label+percent+name",
+ "labels": [
+ "Male",
+ "Female"
+ ],
+ "name": "Gender",
+ "textfont": {
+ "size": 16
+ },
+ "type": "pie",
+ "values": [
+ 3549,
+ 3483
+ ]
+ },
+ {
+ "domain": {
+ "x": [
+ 0.55,
+ 1
+ ],
+ "y": [
+ 0,
+ 1
+ ]
+ },
+ "hole": 0.4,
+ "hoverinfo": "label+percent+name",
+ "labels": [
+ "No",
+ "Yes"
+ ],
+ "name": "Churn",
+ "textfont": {
+ "size": 16
+ },
+ "type": "pie",
+ "values": [
+ 5163,
+ 1869
+ ]
+ }
+ ],
+ "layout": {
+ "annotations": [
+ {
+ "font": {
+ "size": 20
+ },
+ "showarrow": false,
+ "text": "Gender",
+ "x": 0.16,
+ "y": 0.5
+ },
+ {
+ "font": {
+ "size": 20
+ },
+ "showarrow": false,
+ "text": "Churn",
+ "x": 0.84,
+ "y": 0.5
+ }
+ ],
+ "template": {
+ "data": {
+ "bar": [
+ {
+ "error_x": {
+ "color": "#2a3f5f"
+ },
+ "error_y": {
+ "color": "#2a3f5f"
+ },
+ "marker": {
+ "line": {
+ "color": "#E5ECF6",
+ "width": 0.5
+ },
+ "pattern": {
+ "fillmode": "overlay",
+ "size": 10,
+ "solidity": 0.2
+ }
+ },
+ "type": "bar"
+ }
+ ],
+ "barpolar": [
+ {
+ "marker": {
+ "line": {
+ "color": "#E5ECF6",
+ "width": 0.5
+ },
+ "pattern": {
+ "fillmode": "overlay",
+ "size": 10,
+ "solidity": 0.2
+ }
+ },
+ "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": {
+ "pattern": {
+ "fillmode": "overlay",
+ "size": 10,
+ "solidity": 0.2
+ }
+ },
+ "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": [
+ {
+ "fillpattern": {
+ "fillmode": "overlay",
+ "size": 10,
+ "solidity": 0.2
+ },
+ "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
+ },
+ "autotypenumbers": "strict",
+ "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": "Gender and Churn Distributions"
+ }
+ }
+ }
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "from plotly.subplots import make_subplots\n",
+ "import plotly.graph_objects as go\n",
+ "g_labels = ['Male', 'Female']\n",
+ "c_labels = ['No', 'Yes']\n",
+ "# Create subplots: use 'domain' type for Pie subplot\n",
+ "fig = make_subplots(rows=1, cols=2, specs=[[{'type':'domain'}, {'type':'domain'}]])\n",
+ "fig.add_trace(go.Pie(labels=g_labels, values=df['gender'].value_counts(), name=\"Gender\"),\n",
+ " 1, 1)\n",
+ "fig.add_trace(go.Pie(labels=c_labels, values=df['Churn'].value_counts(), name=\"Churn\"),\n",
+ " 1, 2)\n",
+ "\n",
+ "# Use `hole` to create a donut-like pie chart\n",
+ "fig.update_traces(hole=.4, hoverinfo=\"label+percent+name\", textfont_size=16)\n",
+ "\n",
+ "fig.update_layout(\n",
+ " title_text=\"Gender and Churn Distributions\",\n",
+ " # Add annotations in the center of the donut pies.\n",
+ " annotations=[dict(text='Gender', x=0.16, y=0.5, font_size=20, showarrow=False),\n",
+ " dict(text='Churn', x=0.84, y=0.5, font_size=20, showarrow=False)])\n",
+ "fig.show()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 36,
+ "id": "171091b7-106c-4689-a5f0-6754a98913c4",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "application/vnd.plotly.v1+json": {
+ "config": {
+ "plotlyServerURL": "https://plot.ly"
+ },
+ "data": [
+ {
+ "hole": 0.3,
+ "labels": [
+ "Electronic check",
+ "Mailed check",
+ "Bank transfer (automatic)",
+ "Credit card (automatic)"
+ ],
+ "type": "pie",
+ "values": [
+ 2365,
+ 1604,
+ 1542,
+ 1521
+ ]
+ }
+ ],
+ "layout": {
+ "template": {
+ "data": {
+ "bar": [
+ {
+ "error_x": {
+ "color": "#2a3f5f"
+ },
+ "error_y": {
+ "color": "#2a3f5f"
+ },
+ "marker": {
+ "line": {
+ "color": "#E5ECF6",
+ "width": 0.5
+ },
+ "pattern": {
+ "fillmode": "overlay",
+ "size": 10,
+ "solidity": 0.2
+ }
+ },
+ "type": "bar"
+ }
+ ],
+ "barpolar": [
+ {
+ "marker": {
+ "line": {
+ "color": "#E5ECF6",
+ "width": 0.5
+ },
+ "pattern": {
+ "fillmode": "overlay",
+ "size": 10,
+ "solidity": 0.2
+ }
+ },
+ "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": {
+ "pattern": {
+ "fillmode": "overlay",
+ "size": 10,
+ "solidity": 0.2
+ }
+ },
+ "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": [
+ {
+ "fillpattern": {
+ "fillmode": "overlay",
+ "size": 10,
+ "solidity": 0.2
+ },
+ "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
+ },
+ "autotypenumbers": "strict",
+ "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": "Payment Method Distribution"
+ }
+ }
+ }
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "labels = df['PaymentMethod'].unique()\n",
+ "values = df['PaymentMethod'].value_counts()\n",
+ "\n",
+ "fig = go.Figure(data=[go.Pie(labels=labels, values=values, hole=.3)])\n",
+ "fig.update_layout(title_text=\"Payment Method Distribution\")\n",
+ "fig.show()\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 37,
+ "id": "9cff3b20-9ff4-4278-94f1-e84788b76492",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "application/vnd.plotly.v1+json": {
+ "config": {
+ "plotlyServerURL": "https://plot.ly"
+ },
+ "data": [
+ {
+ "alignmentgroup": "True",
+ "bingroup": "x",
+ "hovertemplate": "SeniorCitizen=NO
Churn=%{x}
count=%{y}",
+ "legendgroup": "NO",
+ "marker": {
+ "color": "#00cc96",
+ "pattern": {
+ "shape": ""
+ }
+ },
+ "name": "NO",
+ "offsetgroup": "NO",
+ "orientation": "v",
+ "showlegend": true,
+ "type": "histogram",
+ "x": [
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "Yes",
+ "Yes",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "Yes",
+ "Yes",
+ "Yes",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "Yes",
+ "Yes",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "Yes",
+ "Yes",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "Yes",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "Yes",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "Yes",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No"
+ ],
+ "xaxis": "x",
+ "yaxis": "y"
+ },
+ {
+ "alignmentgroup": "True",
+ "bingroup": "x",
+ "hovertemplate": "SeniorCitizen=Yes
Churn=%{x}
count=%{y}",
+ "legendgroup": "Yes",
+ "marker": {
+ "color": "#00CC96",
+ "pattern": {
+ "shape": ""
+ }
+ },
+ "name": "Yes",
+ "offsetgroup": "Yes",
+ "orientation": "v",
+ "showlegend": true,
+ "type": "histogram",
+ "x": [
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "Yes",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "Yes",
+ "Yes",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "Yes",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "Yes",
+ "Yes",
+ "Yes",
+ "No",
+ "Yes",
+ "Yes",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "Yes",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "Yes",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "Yes",
+ "Yes",
+ "Yes",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "Yes",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "Yes",
+ "Yes",
+ "Yes",
+ "Yes",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "Yes",
+ "No",
+ "Yes",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "Yes",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "Yes",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "Yes",
+ "Yes",
+ "No",
+ "Yes",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "Yes",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "Yes",
+ "Yes",
+ "Yes",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "Yes",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "Yes",
+ "Yes",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "Yes",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "Yes",
+ "Yes",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "No",
+ "Yes",
+ "Yes",
+ "No",
+ "No",
+ "No",
+ "No",
+ "Yes",
+ "Yes"
+ ],
+ "xaxis": "x",
+ "yaxis": "y"
+ }
+ ],
+ "layout": {
+ "bargap": 0.1,
+ "barmode": "relative",
+ "height": 500,
+ "legend": {
+ "title": {
+ "text": "SeniorCitizen"
+ },
+ "tracegroupgap": 0
+ },
+ "template": {
+ "data": {
+ "bar": [
+ {
+ "error_x": {
+ "color": "#2a3f5f"
+ },
+ "error_y": {
+ "color": "#2a3f5f"
+ },
+ "marker": {
+ "line": {
+ "color": "#E5ECF6",
+ "width": 0.5
+ },
+ "pattern": {
+ "fillmode": "overlay",
+ "size": 10,
+ "solidity": 0.2
+ }
+ },
+ "type": "bar"
+ }
+ ],
+ "barpolar": [
+ {
+ "marker": {
+ "line": {
+ "color": "#E5ECF6",
+ "width": 0.5
+ },
+ "pattern": {
+ "fillmode": "overlay",
+ "size": 10,
+ "solidity": 0.2
+ }
+ },
+ "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": {
+ "pattern": {
+ "fillmode": "overlay",
+ "size": 10,
+ "solidity": 0.2
+ }
+ },
+ "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": [
+ {
+ "fillpattern": {
+ "fillmode": "overlay",
+ "size": 10,
+ "solidity": 0.2
+ },
+ "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
+ },
+ "autotypenumbers": "strict",
+ "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": "Chrun distribution w.r.t. Senior Citizen"
+ },
+ "width": 700,
+ "xaxis": {
+ "anchor": "y",
+ "domain": [
+ 0,
+ 1
+ ],
+ "title": {
+ "text": "Churn"
+ }
+ },
+ "yaxis": {
+ "anchor": "x",
+ "domain": [
+ 0,
+ 1
+ ],
+ "title": {
+ "text": "count"
+ }
+ }
+ }
+ }
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "import plotly.express as px\n",
+ "color_map = {\"Yes\": '#00CC96', \"No\": '#B6E880'}\n",
+ "fig = px.histogram(df, x=\"Churn\", color=\"SeniorCitizen\", title=\"Chrun distribution w.r.t. Senior Citizen\", color_discrete_map=color_map)\n",
+ "fig.update_layout(width=700, height=500, bargap=0.1)\n",
+ "fig.show()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "774c012e-6bd3-4bb7-8837-dc86b045556d",
+ "metadata": {},
+ "source": [
+ "### Data preprocessing"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 38,
+ "id": "f740a0ea-3928-48c7-ba95-3a0b487d642b",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "from sklearn.preprocessing import LabelEncoder"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 39,
+ "id": "e144a9fc-b0c5-48b8-a466-97075f33635b",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "Le = LabelEncoder()#using this code for more point-to-point so that understand how encoder work\n",
+ "df['gender'] = Le.fit_transform(df['gender'])\n",
+ "df['SeniorCitizen'] = Le.fit_transform(df['SeniorCitizen'])\n",
+ "df['Partner'] = Le.fit_transform(df['Partner'])\n",
+ "df['Dependents'] = Le.fit_transform(df['Dependents'])\n",
+ "df['PhoneService'] = Le.fit_transform(df['PhoneService'])\n",
+ "df['MultipleLines'] = Le.fit_transform(df['MultipleLines'])\n",
+ "df['InternetService'] = Le.fit_transform(df['InternetService'])\n",
+ "df['OnlineSecurity'] = Le.fit_transform(df['OnlineSecurity'])\n",
+ "df['OnlineBackup'] = Le.fit_transform(df['OnlineBackup'])\n",
+ "df['TechSupport'] = Le.fit_transform(df['TechSupport'])\n",
+ "df['StreamingTV'] = Le.fit_transform(df['StreamingTV'])\n",
+ "df['StreamingMovies'] = Le.fit_transform(df['StreamingMovies'])\n",
+ "df['Contract'] = Le.fit_transform(df['Contract'])\n",
+ "df['PaymentMethod'] = Le.fit_transform(df['PaymentMethod'])\n",
+ "df['PaperlessBilling'] = Le.fit_transform(df['PaperlessBilling'])\n",
+ "df['Churn'] = Le.fit_transform(df['Churn'])\n",
+ "df['DeviceProtection'] = Le.fit_transform(df['DeviceProtection'])"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 40,
+ "id": "07c8b78f-ac8f-456f-b984-079eeef115c1",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " gender | \n",
+ " SeniorCitizen | \n",
+ " Partner | \n",
+ " Dependents | \n",
+ " tenure | \n",
+ " PhoneService | \n",
+ " MultipleLines | \n",
+ " InternetService | \n",
+ " OnlineSecurity | \n",
+ " OnlineBackup | \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",
+ " 0 | \n",
+ " 0 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 2 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 1 | \n",
+ " 2 | \n",
+ " 29.85 | \n",
+ " 29.85 | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 34 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 2 | \n",
+ " 0 | \n",
+ " 2 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 3 | \n",
+ " 56.95 | \n",
+ " 1889.50 | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 2 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 1 | \n",
+ " 3 | \n",
+ " 53.85 | \n",
+ " 108.15 | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 45 | \n",
+ " 0 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 2 | \n",
+ " 0 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 42.30 | \n",
+ " 1840.75 | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 2 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 1 | \n",
+ " 2 | \n",
+ " 70.70 | \n",
+ " 151.65 | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " gender SeniorCitizen Partner Dependents tenure PhoneService \\\n",
+ "0 0 0 1 0 1 0 \n",
+ "1 1 0 0 0 34 1 \n",
+ "2 1 0 0 0 2 1 \n",
+ "3 1 0 0 0 45 0 \n",
+ "4 0 0 0 0 2 1 \n",
+ "\n",
+ " MultipleLines InternetService OnlineSecurity OnlineBackup \\\n",
+ "0 1 0 0 2 \n",
+ "1 0 0 2 0 \n",
+ "2 0 0 2 2 \n",
+ "3 1 0 2 0 \n",
+ "4 0 1 0 0 \n",
+ "\n",
+ " DeviceProtection TechSupport StreamingTV StreamingMovies Contract \\\n",
+ "0 0 0 0 0 0 \n",
+ "1 2 0 0 0 1 \n",
+ "2 0 0 0 0 0 \n",
+ "3 2 2 0 0 1 \n",
+ "4 0 0 0 0 0 \n",
+ "\n",
+ " PaperlessBilling PaymentMethod MonthlyCharges TotalCharges Churn \n",
+ "0 1 2 29.85 29.85 0 \n",
+ "1 0 3 56.95 1889.50 0 \n",
+ "2 1 3 53.85 108.15 1 \n",
+ "3 0 0 42.30 1840.75 0 \n",
+ "4 1 2 70.70 151.65 1 "
+ ]
+ },
+ "execution_count": 40,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "df.head()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 41,
+ "id": "91b7fd32-9c8f-4295-a98c-5c6c9067d4fa",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "from sklearn.model_selection import train_test_split"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 42,
+ "id": "0e056aeb-3db9-4f8b-bfac-e5914acc5c53",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "X = df.drop(columns=['Churn'])\n",
+ "y = df['Churn']"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 43,
+ "id": "8c4632ed-5c48-4e14-a4ca-bd0f0bb67b89",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " gender | \n",
+ " SeniorCitizen | \n",
+ " Partner | \n",
+ " Dependents | \n",
+ " tenure | \n",
+ " PhoneService | \n",
+ " MultipleLines | \n",
+ " InternetService | \n",
+ " OnlineSecurity | \n",
+ " OnlineBackup | \n",
+ " DeviceProtection | \n",
+ " TechSupport | \n",
+ " StreamingTV | \n",
+ " StreamingMovies | \n",
+ " Contract | \n",
+ " PaperlessBilling | \n",
+ " PaymentMethod | \n",
+ " MonthlyCharges | \n",
+ " TotalCharges | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 2 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 1 | \n",
+ " 2 | \n",
+ " 29.85 | \n",
+ " 29.85 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 34 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 2 | \n",
+ " 0 | \n",
+ " 2 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 3 | \n",
+ " 56.95 | \n",
+ " 1889.50 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 2 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 1 | \n",
+ " 3 | \n",
+ " 53.85 | \n",
+ " 108.15 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 45 | \n",
+ " 0 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 2 | \n",
+ " 0 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 42.30 | \n",
+ " 1840.75 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 2 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 1 | \n",
+ " 2 | \n",
+ " 70.70 | \n",
+ " 151.65 | \n",
+ "
\n",
+ " \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ "
\n",
+ " \n",
+ " 7038 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 24 | \n",
+ " 1 | \n",
+ " 2 | \n",
+ " 0 | \n",
+ " 2 | \n",
+ " 0 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 3 | \n",
+ " 84.80 | \n",
+ " 1990.50 | \n",
+ "
\n",
+ " \n",
+ " 7039 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 72 | \n",
+ " 1 | \n",
+ " 2 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 0 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 103.20 | \n",
+ " 7362.90 | \n",
+ "
\n",
+ " \n",
+ " 7040 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 11 | \n",
+ " 0 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 2 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 1 | \n",
+ " 2 | \n",
+ " 29.60 | \n",
+ " 346.45 | \n",
+ "
\n",
+ " \n",
+ " 7041 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 4 | \n",
+ " 1 | \n",
+ " 2 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 1 | \n",
+ " 3 | \n",
+ " 74.40 | \n",
+ " 306.60 | \n",
+ "
\n",
+ " \n",
+ " 7042 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 66 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 1 | \n",
+ " 2 | \n",
+ " 0 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 105.65 | \n",
+ " 6844.50 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
7032 rows × 19 columns
\n",
+ "
"
+ ],
+ "text/plain": [
+ " gender SeniorCitizen Partner Dependents tenure PhoneService \\\n",
+ "0 0 0 1 0 1 0 \n",
+ "1 1 0 0 0 34 1 \n",
+ "2 1 0 0 0 2 1 \n",
+ "3 1 0 0 0 45 0 \n",
+ "4 0 0 0 0 2 1 \n",
+ "... ... ... ... ... ... ... \n",
+ "7038 1 0 1 1 24 1 \n",
+ "7039 0 0 1 1 72 1 \n",
+ "7040 0 0 1 1 11 0 \n",
+ "7041 1 1 1 0 4 1 \n",
+ "7042 1 0 0 0 66 1 \n",
+ "\n",
+ " MultipleLines InternetService OnlineSecurity OnlineBackup \\\n",
+ "0 1 0 0 2 \n",
+ "1 0 0 2 0 \n",
+ "2 0 0 2 2 \n",
+ "3 1 0 2 0 \n",
+ "4 0 1 0 0 \n",
+ "... ... ... ... ... \n",
+ "7038 2 0 2 0 \n",
+ "7039 2 1 0 2 \n",
+ "7040 1 0 2 0 \n",
+ "7041 2 1 0 0 \n",
+ "7042 0 1 2 0 \n",
+ "\n",
+ " DeviceProtection TechSupport StreamingTV StreamingMovies Contract \\\n",
+ "0 0 0 0 0 0 \n",
+ "1 2 0 0 0 1 \n",
+ "2 0 0 0 0 0 \n",
+ "3 2 2 0 0 1 \n",
+ "4 0 0 0 0 0 \n",
+ "... ... ... ... ... ... \n",
+ "7038 2 2 2 2 1 \n",
+ "7039 2 0 2 2 1 \n",
+ "7040 0 0 0 0 0 \n",
+ "7041 0 0 0 0 0 \n",
+ "7042 2 2 2 2 2 \n",
+ "\n",
+ " PaperlessBilling PaymentMethod MonthlyCharges TotalCharges \n",
+ "0 1 2 29.85 29.85 \n",
+ "1 0 3 56.95 1889.50 \n",
+ "2 1 3 53.85 108.15 \n",
+ "3 0 0 42.30 1840.75 \n",
+ "4 1 2 70.70 151.65 \n",
+ "... ... ... ... ... \n",
+ "7038 1 3 84.80 1990.50 \n",
+ "7039 1 1 103.20 7362.90 \n",
+ "7040 1 2 29.60 346.45 \n",
+ "7041 1 3 74.40 306.60 \n",
+ "7042 1 0 105.65 6844.50 \n",
+ "\n",
+ "[7032 rows x 19 columns]"
+ ]
+ },
+ "execution_count": 43,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "X"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 44,
+ "id": "faf59880-2e21-45f9-8467-4a1cb980b3fb",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "0 0\n",
+ "1 0\n",
+ "2 1\n",
+ "3 0\n",
+ "4 1\n",
+ " ..\n",
+ "7038 0\n",
+ "7039 0\n",
+ "7040 0\n",
+ "7041 1\n",
+ "7042 0\n",
+ "Name: Churn, Length: 7032, dtype: int32"
+ ]
+ },
+ "execution_count": 44,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "y"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "1cf2caab-ab4f-42f2-bc88-43230d0b4d6b",
+ "metadata": {},
+ "source": [
+ "### Splitting the data into train and test"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 45,
+ "id": "631e96ec-877d-41f8-bc7a-3513e0e13963",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "X_train,X_test,y_train,y_test = train_test_split(X,y,test_size=0.3,random_state=42)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 46,
+ "id": "650b1223-1892-4aa9-8bb8-d0470468f6e1",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "from sklearn.preprocessing import StandardScaler"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 47,
+ "id": "8c1e151c-5c77-4211-a72f-2b56c3367745",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "StandardScaler()
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org. "
+ ],
+ "text/plain": [
+ "StandardScaler()"
+ ]
+ },
+ "execution_count": 47,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "SD = StandardScaler()\n",
+ "SD.fit_transform(X_train,y_train)\n",
+ "SD.fit(X_test)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 48,
+ "id": "2fec5e40-df16-4b47-9ea2-f0ff198185d1",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "from sklearn.linear_model import LogisticRegression"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 49,
+ "id": "7a176fbc-2049-4121-abf2-d99b19ce45bf",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "c:\\ProgramData\\anaconda3\\Lib\\site-packages\\sklearn\\linear_model\\_logistic.py:469: ConvergenceWarning:\n",
+ "\n",
+ "lbfgs failed to converge (status=1):\n",
+ "STOP: TOTAL NO. of ITERATIONS REACHED LIMIT.\n",
+ "\n",
+ "Increase the number of iterations (max_iter) or scale the data as shown in:\n",
+ " https://scikit-learn.org/stable/modules/preprocessing.html\n",
+ "Please also refer to the documentation for alternative solver options:\n",
+ " https://scikit-learn.org/stable/modules/linear_model.html#logistic-regression\n",
+ "\n"
+ ]
+ },
+ {
+ "data": {
+ "text/plain": [
+ "0.7933649289099526"
+ ]
+ },
+ "execution_count": 49,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "LR = LogisticRegression()#Model 1\n",
+ "LR.fit(X_train,y_train)\n",
+ "pred = LR.predict(X_test)\n",
+ "from sklearn.metrics import accuracy_score,classification_report,confusion_matrix\n",
+ "accuracy_score(y_test,pred)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 50,
+ "id": "42812670-a89d-4818-87db-32cc59d63f0a",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "from sklearn.neighbors import KNeighborsClassifier"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 51,
+ "id": "5f3ccdc0-d1ff-4573-93b3-46581da45a5a",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "0.7819905213270142"
+ ]
+ },
+ "execution_count": 51,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "kn = KNeighborsClassifier(n_neighbors = 11) #model 2\n",
+ "kn.fit(X_train,y_train)\n",
+ "pred1 = kn.predict(X_test)\n",
+ "accuracy_score(y_test,pred1)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 52,
+ "id": "69bb29a4-84b2-4569-90c9-0b90e666a88f",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " precision recall f1-score support\n",
+ "\n",
+ " 0 0.84 0.88 0.86 1549\n",
+ " 1 0.63 0.55 0.59 561\n",
+ "\n",
+ " accuracy 0.79 2110\n",
+ " macro avg 0.74 0.72 0.72 2110\n",
+ "weighted avg 0.79 0.79 0.79 2110\n",
+ "\n"
+ ]
+ }
+ ],
+ "source": [
+ "print(classification_report(y_test, pred))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 53,
+ "id": "4ec1d6b2-fe61-457d-839a-098569f72098",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " precision recall f1-score support\n",
+ "\n",
+ " 0 0.81 0.92 0.86 1549\n",
+ " 1 0.64 0.41 0.50 561\n",
+ "\n",
+ " accuracy 0.78 2110\n",
+ " macro avg 0.73 0.66 0.68 2110\n",
+ "weighted avg 0.77 0.78 0.76 2110\n",
+ "\n"
+ ]
+ }
+ ],
+ "source": [
+ "print(classification_report(y_test, pred1))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 54,
+ "id": "53bc3c1a-7d0a-423f-b95d-44dbc9ab4d32",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "from sklearn.ensemble import RandomForestClassifier"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 55,
+ "id": "dc1a1fa3-eddb-4628-89ed-c6b7f2b5e7e3",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "0.7838862559241706"
+ ]
+ },
+ "execution_count": 55,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "Rand = RandomForestClassifier(criterion='entropy') #model 3\n",
+ "Rand.fit(X_train,y_train)\n",
+ "pred2 = Rand.predict(X_test)\n",
+ "accuracy_score(y_test,pred2)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 56,
+ "id": "1f968396-2b73-4604-999a-67dde83678e0",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " precision recall f1-score support\n",
+ "\n",
+ " 0 0.83 0.89 0.86 1549\n",
+ " 1 0.62 0.48 0.54 561\n",
+ "\n",
+ " accuracy 0.78 2110\n",
+ " macro avg 0.72 0.69 0.70 2110\n",
+ "weighted avg 0.77 0.78 0.77 2110\n",
+ "\n"
+ ]
+ }
+ ],
+ "source": [
+ "print(classification_report(y_test, pred2))"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "e70659d1-d7f4-43e8-b46b-1f20dbaf1716",
+ "metadata": {},
+ "source": [
+ "In conclusion, the customer churn project highlights actionable insights leveraging data analytics to reduce attrition rates and enhance customer retention strategies."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 58,
+ "id": "14079885",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Random Forest model saved as 'random_forest_model.pkl'\n"
+ ]
+ }
+ ],
+ "source": [
+ "import joblib\n",
+ "import numpy as np\n",
+ "from sklearn.ensemble import RandomForestClassifier\n",
+ "from sklearn.metrics import accuracy_score\n",
+ "\n",
+ "# # Assuming the RandomForestClassifier (Rand) is already trained on X_train, y_train\n",
+ "# Rand = RandomForestClassifier(criterion='entropy')\n",
+ "# Rand.fit(X_train, y_train)\n",
+ "# pred2 = Rand.predict(X_test)\n",
+ "\n",
+ "# Saving the Random Forest model\n",
+ "joblib.dump(Rand, 'random_forest_model.pkl')\n",
+ "print(\"Random Forest model saved as 'random_forest_model.pkl'\")\n",
+ "\n",
+ "# To test the saved model\n",
+ "def test_model(model_path, test_features, true_labels):\n",
+ " # Load the model\n",
+ " loaded_model = joblib.load(model_path)\n",
+ " print(\"Model loaded successfully.\")\n",
+ "\n",
+ " # Perform predictions\n",
+ " predictions = loaded_model.predict(test_features)\n",
+ " accuracy = accuracy_score(true_labels, predictions)\n",
+ " print(\"Accuracy:\", accuracy)\n",
+ " return predictions, accuracy\n",
+ "\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 59,
+ "id": "d130d7e8",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Model loaded successfully.\n",
+ "Accuracy: 0.7739336492890996\n",
+ "Predictions: [0 0 1 ... 0 0 0]\n"
+ ]
+ }
+ ],
+ "source": [
+ "# Example: Load and test on X_test\n",
+ "model_path = 'random_forest_model.pkl'\n",
+ "predictions, accuracy = test_model(model_path, X_test, y_test)\n",
+ "print(\"Predictions:\", predictions)\n"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "base",
+ "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.12.4"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}