From 66afb8746fee2155da58b6c8b6ecc1049d70166c Mon Sep 17 00:00:00 2001 From: hitesh1292 <60049443+hitesh1292@users.noreply.github.com> Date: Fri, 15 May 2020 18:54:31 -0400 Subject: [PATCH] Add files via upload --- Data_Cleaning_EDA.ipynb | 952 +++++++++ IST718_USAccidents_Project_Report.pdf | Bin 0 -> 1407234 bytes LR_Binary.ipynb | 725 +++++++ LR_Multiclass.ipynb | 583 ++++++ LR_Multiclass_Bal .ipynb | 1059 ++++++++++ RFDT_Multiclass.ipynb | 2168 +++++++++++++++++++ RFDT_Multiclass_Bal.ipynb | 2770 +++++++++++++++++++++++++ RF_DT_GBT_Binary.ipynb | 1596 ++++++++++++++ RF_DT_GBT_LR_Binary_Bal.ipynb | 2548 +++++++++++++++++++++++ StringIndexing_OHE_Conversion.ipynb | 504 +++++ Undersampling_Oversampling.ipynb | 461 ++++ 11 files changed, 13366 insertions(+) create mode 100644 Data_Cleaning_EDA.ipynb create mode 100644 IST718_USAccidents_Project_Report.pdf create mode 100644 LR_Binary.ipynb create mode 100644 LR_Multiclass.ipynb create mode 100644 LR_Multiclass_Bal .ipynb create mode 100644 RFDT_Multiclass.ipynb create mode 100644 RFDT_Multiclass_Bal.ipynb create mode 100644 RF_DT_GBT_Binary.ipynb create mode 100644 RF_DT_GBT_LR_Binary_Bal.ipynb create mode 100644 StringIndexing_OHE_Conversion.ipynb create mode 100644 Undersampling_Oversampling.ipynb diff --git a/Data_Cleaning_EDA.ipynb b/Data_Cleaning_EDA.ipynb new file mode 100644 index 0000000..4f8aa6f --- /dev/null +++ b/Data_Cleaning_EDA.ipynb @@ -0,0 +1,952 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "from pyspark.sql import SparkSession\n", + "spark = SparkSession.builder.getOrCreate()\n", + "sc = spark.sparkContext\n", + "from pyspark.sql import Row\n", + "import numpy as np\n", + "import pandas as pd\n", + "from pyspark.sql.types import *\n", + "from pyspark.sql.functions import *\n", + "import matplotlib.pyplot as plt\n", + "from pyspark.sql import functions as fn\n", + "from pyspark.ml import feature, regression, evaluation, Pipeline\n", + "import seaborn as sns\n", + "from pyspark.ml.feature import VectorAssembler\n", + "from pyspark.ml import Pipeline\n", + "from pyspark.ml.regression import LinearRegression\n", + "from pyspark.ml.stat import Correlation\n", + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "# Do not delete or change this cell\n", + "\n", + "import os\n", + "\n", + "# Define a function to determine if we are running on data bricks\n", + "# Return true if running in the data bricks environment, false otherwise\n", + "def is_databricks():\n", + " # get the databricks runtime version\n", + " db_env = os.getenv(\"DATABRICKS_RUNTIME_VERSION\")\n", + " \n", + " # if running on data bricks\n", + " if db_env != None:\n", + " return True\n", + " else:\n", + " return False\n", + "\n", + "# Define a function to read the data file. The full path data file name is constructed\n", + "# by checking runtime environment variables to determine if the runtime environment is \n", + "# databricks, or a student's personal computer. The full path file name is then\n", + "# constructed based on the runtime env.\n", + "# \n", + "# Params\n", + "# data_file_name: The base name of the data file to load\n", + "# \n", + "# Returns the full path file name based on the runtime env\n", + "#\n", + "def get_training_filename(data_file_name): \n", + " # if running on data bricks\n", + " if is_databricks():\n", + " # build the full path file name assuming data brick env\n", + " full_path_name = \"/FileStore/tables/%s\" % data_file_name\n", + " # else the data is assumed to be in the same dir as this notebook\n", + " else:\n", + " # Assume the student is running on their own computer and load the data\n", + " # file from the same dir as this notebook\n", + " full_path_name = data_file_name\n", + " \n", + " # return the full path file name to the caller\n", + " return full_path_name" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "# Reading the csv file in us_acci dataframe\n", + "us_acci = spark.read.csv(get_training_filename('US_Accidents.csv'), header = True, inferSchema = True)" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Shape is (981531, 49)\n" + ] + } + ], + "source": [ + "# Shape of the spark dataframe\n", + "\n", + "print('Shape is ',(us_acci.count(),len(us_acci.columns)))" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "# Renaming the columns names which contain brackets for ease of usage\n", + "\n", + "us_acci = us_acci.select('*').withColumnRenamed('Distance(mi)','Distance')\\\n", + " .withColumnRenamed('Temperature(F)', 'Temperature').withColumnRenamed('Wind_Chill(F)', 'Wind_Chill')\\\n", + " .withColumnRenamed('Humidity(%)', 'Humidity').withColumnRenamed('Pressure(in)', 'Pressure')\\\n", + " .withColumnRenamed('Visibility(mi)', 'Visibility').withColumnRenamed('Wind_Speed(mph)', 'Wind_Speed')\\\n", + " .withColumnRenamed('Precipitation(in)', 'Precipitation')" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "root\n", + " |-- ID: string (nullable = true)\n", + " |-- Source: string (nullable = true)\n", + " |-- TMC: double (nullable = true)\n", + " |-- Severity: integer (nullable = true)\n", + " |-- Start_Time: timestamp (nullable = true)\n", + " |-- End_Time: timestamp (nullable = true)\n", + " |-- Start_Lat: double (nullable = true)\n", + " |-- Start_Lng: double (nullable = true)\n", + " |-- End_Lat: double (nullable = true)\n", + " |-- End_Lng: double (nullable = true)\n", + " |-- Distance: double (nullable = true)\n", + " |-- Description: string (nullable = true)\n", + " |-- Number: double (nullable = true)\n", + " |-- Street: string (nullable = true)\n", + " |-- Side: string (nullable = true)\n", + " |-- City: string (nullable = true)\n", + " |-- County: string (nullable = true)\n", + " |-- State: string (nullable = true)\n", + " |-- Zipcode: string (nullable = true)\n", + " |-- Country: string (nullable = true)\n", + " |-- Timezone: string (nullable = true)\n", + " |-- Airport_Code: string (nullable = true)\n", + " |-- Weather_Timestamp: timestamp (nullable = true)\n", + " |-- Temperature: double (nullable = true)\n", + " |-- Wind_Chill: double (nullable = true)\n", + " |-- Humidity: double (nullable = true)\n", + " |-- Pressure: double (nullable = true)\n", + " |-- Visibility: double (nullable = true)\n", + " |-- Wind_Direction: string (nullable = true)\n", + " |-- Wind_Speed: double (nullable = true)\n", + " |-- Precipitation: double (nullable = true)\n", + " |-- Weather_Condition: string (nullable = true)\n", + " |-- Amenity: boolean (nullable = true)\n", + " |-- Bump: boolean (nullable = true)\n", + " |-- Crossing: boolean (nullable = true)\n", + " |-- Give_Way: boolean (nullable = true)\n", + " |-- Junction: boolean (nullable = true)\n", + " |-- No_Exit: boolean (nullable = true)\n", + " |-- Railway: boolean (nullable = true)\n", + " |-- Roundabout: boolean (nullable = true)\n", + " |-- Station: boolean (nullable = true)\n", + " |-- Stop: boolean (nullable = true)\n", + " |-- Traffic_Calming: boolean (nullable = true)\n", + " |-- Traffic_Signal: boolean (nullable = true)\n", + " |-- Turning_Loop: boolean (nullable = true)\n", + " |-- Sunrise_Sunset: string (nullable = true)\n", + " |-- Civil_Twilight: string (nullable = true)\n", + " |-- Nautical_Twilight: string (nullable = true)\n", + " |-- Astronomical_Twilight: string (nullable = true)\n", + "\n" + ] + } + ], + "source": [ + "# Schema of dataframe with datatypes of all columns\n", + "\n", + "us_acci.printSchema()" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "# Summary of all numerical variables in the dataset to find the skewness, outliers, mean, median\n", + "\n", + "us_acci.describe().toPandas()" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "# Columns to be dropped initially as a list\n", + "drop_col = ['ID','End_Lat','End_Lng','Description','Number','Street','Zipcode','Airport_Code','Country','Weather_Timestamp','Wind_Chill','Turning_Loop']" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "# Dropping columns from the original dataset\n", + "\n", + "us_acci = us_acci.drop(*(drop_col))" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "+------+------+--------+----------+--------+---------+---------+--------+----+----+------+-----+--------+-----------+--------+--------+----------+--------------+----------+-------------+-----------------+-------+----+--------+--------+--------+-------+-------+----------+-------+----+---------------+--------------+--------------+--------------+-----------------+---------------------+\n", + "|Source| TMC|Severity|Start_Time|End_Time|Start_Lat|Start_Lng|Distance|Side|City|County|State|Timezone|Temperature|Humidity|Pressure|Visibility|Wind_Direction|Wind_Speed|Precipitation|Weather_Condition|Amenity|Bump|Crossing|Give_Way|Junction|No_Exit|Railway|Roundabout|Station|Stop|Traffic_Calming|Traffic_Signal|Sunrise_Sunset|Civil_Twilight|Nautical_Twilight|Astronomical_Twilight|\n", + "+------+------+--------+----------+--------+---------+---------+--------+----+----+------+-----+--------+-----------+--------+--------+----------+--------------+----------+-------------+-----------------+-------+----+--------+--------+--------+-------+-------+----------+-------+----+---------------+--------------+--------------+--------------+-----------------+---------------------+\n", + "| 0|240595| 0| 0| 0| 0| 0| 0| 0| 30| 0| 0| 1069| 18494| 19485| 15870| 21643| 14882| 145268| 658958| 21750| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 37| 37| 37| 37|\n", + "+------+------+--------+----------+--------+---------+---------+--------+----+----+------+-----+--------+-----------+--------+--------+----------+--------------+----------+-------------+-----------------+-------+----+--------+--------+--------+-------+-------+----------+-------+----+---------------+--------------+--------------+--------------+-----------------+---------------------+\n", + "\n" + ] + } + ], + "source": [ + "# Checking null values in all the columns\n", + "\n", + "from pyspark.sql.functions import isnan, isnull, when, count, col\n", + "\n", + "us_acci.select([count(when(isnull(c), c)).alias(c) for c in us_acci.columns]).show()" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "# Replacing same Wind_Direction named with different string N and North same\n", + "\n", + "us_acci = us_acci.withColumn('Wind_Direction', when(us_acci.Wind_Direction == 'E', 'East')\\\n", + " .when(us_acci.Wind_Direction == 'W', 'West')\\\n", + " .when(us_acci.Wind_Direction == 'N', 'North')\\\n", + " .when(us_acci.Wind_Direction == 'S', 'South')\\\n", + " .when(us_acci.Wind_Direction == 'VAR', 'Variable')\\\n", + " .when(us_acci.Wind_Direction == 'CALM', 'Calm')\\\n", + " .otherwise(us_acci.Wind_Direction))" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [], + "source": [ + "# Replacing same Weather_Condition named with different string Light Rain Shower and Light Rain Showers same\n", + "\n", + "us_acci = us_acci.withColumn('Weather_Condition', when(us_acci.Weather_Condition == 'Light Rain Shower', 'Light Rain Showers')\\\n", + " .when(us_acci.Weather_Condition == 'Light Snow Shower', 'Light Snow Showers')\\\n", + " .when(us_acci.Weather_Condition == 'Rain Shower', 'Rain Showers')\\\n", + " .otherwise(us_acci.Weather_Condition))" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [], + "source": [ + "# Dropping Null rows from City Column as there are only 30 rows with City = Null\n", + "\n", + "us_acci = us_acci.where(col(\"city\").isNotNull())" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [], + "source": [ + "# Dropping Null rows from Timezone Column \n", + "\n", + "us_acci = us_acci.where(col(\"Timezone\").isNotNull())" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [], + "source": [ + "# Clipping Temperature extreme values to suppress outliers\n", + "\n", + "lower = -30\n", + "upper = 115\n", + "us_acci = us_acci.withColumn('Temperature', when(us_acci.Temperature > upper, upper)\\\n", + " .when(us_acci.Temperature < lower, lower).otherwise(us_acci.Temperature).alias('Temperature'))" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [], + "source": [ + "# Distance > 100 rows dropped\n", + "us_acci = us_acci.where(us_acci.Distance <100)" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [], + "source": [ + "# Clipping Visibility extreme values to suppress outliers \n", + "\n", + "upper = 20\n", + "us_acci = us_acci.withColumn('Visibility', when(us_acci.Visibility > upper, upper)\\\n", + " .otherwise(us_acci.Visibility).alias('Visibility'))" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [], + "source": [ + "# Clipping Wind_Speed extreme values to suppress outliers \n", + "upper = 40\n", + "us_acci = us_acci.withColumn('Wind_Speed', when(us_acci.Wind_Speed > upper, upper)\\\n", + " .otherwise(us_acci.Wind_Speed).alias('Wind_Speed'))" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [], + "source": [ + "# Replacing Null values in Precipitation with 0\n", + "\n", + "us_acci = us_acci.withColumn('Precipitation', when(us_acci.Precipitation.isNull(), 0).otherwise(us_acci.Precipitation))" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [], + "source": [ + "#replacing missing values in categorical attributes with the mode of the corresponding variables\n", + "\n", + "for col_name in ['Wind_Direction', 'Weather_Condition']:\n", + " common = us_acci.dropna().groupBy(col_name).agg(fn.count('*')).orderBy('count(1)', ascending = False).first()[col_name]\n", + " us_acci = us_acci.withColumn(col_name, when(isnull(col_name), common).otherwise(us_acci[col_name]))" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [], + "source": [ + "#replacing missing values in numerical attributes with the median of the corresponding variables\n", + "\n", + "for col_name in ['Temperature', 'Humidity', 'Pressure', 'Visibility', 'Wind_Speed']:\n", + " median = us_acci.dropna().approxQuantile(col_name, [0.5], 0.00)[0]\n", + " us_acci = us_acci.withColumn(col_name, when(isnull(col_name), median).otherwise(us_acci[col_name]))" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [], + "source": [ + "\n", + "# Removing Null values in last 4 columns \n", + "\n", + "us_acci = us_acci.filter(us_acci.Sunrise_Sunset.isNotNull())\n", + "\n", + "us_acci = us_acci.filter(us_acci.Civil_Twilight.isNotNull())\n", + "\n", + "us_acci = us_acci.filter(us_acci.Nautical_Twilight.isNotNull())\n", + "\n", + "us_acci = us_acci.filter(us_acci.Astronomical_Twilight.isNotNull())" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [], + "source": [ + "# Adding Month of Year, Day of Week , Week of Year and Hour of the Day Column from Start Time\n", + "\n", + "us_acci = us_acci.withColumn(\"Start_Time\",to_timestamp(col(\"Start_Time\"))).withColumn(\"month_of_year\", date_format(col(\"Start_Time\"), \"MMMM\")).withColumn(\"day_of_week\", date_format(col(\"Start_Time\"), \"EEEE\")).withColumn(\"hour_day\", date_format(col(\"Start_Time\"), \"H\")).withColumn(\"week_of_year\", date_format(col(\"Start_Time\"), \"w\"))" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "+------+------+--------+----------+--------+---------+---------+--------+----+----+------+-----+--------+-----------+--------+--------+----------+--------------+----------+-------------+-----------------+-------+----+--------+--------+--------+-------+-------+----------+-------+----+---------------+--------------+--------------+--------------+-----------------+---------------------+-------------+-----------+--------+------------+\n", + "|Source| TMC|Severity|Start_Time|End_Time|Start_Lat|Start_Lng|Distance|Side|City|County|State|Timezone|Temperature|Humidity|Pressure|Visibility|Wind_Direction|Wind_Speed|Precipitation|Weather_Condition|Amenity|Bump|Crossing|Give_Way|Junction|No_Exit|Railway|Roundabout|Station|Stop|Traffic_Calming|Traffic_Signal|Sunrise_Sunset|Civil_Twilight|Nautical_Twilight|Astronomical_Twilight|month_of_year|day_of_week|hour_day|week_of_year|\n", + "+------+------+--------+----------+--------+---------+---------+--------+----+----+------+-----+--------+-----------+--------+--------+----------+--------------+----------+-------------+-----------------+-------+----+--------+--------+--------+-------+-------+----------+-------+----+---------------+--------------+--------------+--------------+-----------------+---------------------+-------------+-----------+--------+------------+\n", + "| 0|240120| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0|\n", + "+------+------+--------+----------+--------+---------+---------+--------+----+----+------+-----+--------+-----------+--------+--------+----------+--------------+----------+-------------+-----------------+-------+----+--------+--------+--------+-------+-------+----------+-------+----+---------------+--------------+--------------+--------------+-----------------+---------------------+-------------+-----------+--------+------------+\n", + "\n" + ] + } + ], + "source": [ + "# Checking null values in all the columns\n", + "\n", + "from pyspark.sql.functions import isnan, isnull, when, count, col\n", + "\n", + "us_acci.select([count(when(isnull(c), c)).alias(c) for c in us_acci.columns]).show()" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Shape is (980416, 41)\n" + ] + } + ], + "source": [ + "# Shape of the spark dataframe\n", + "\n", + "print('Shape is ',(us_acci.count(),len(us_acci.columns)))" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "us_acci.toPandas().to_csv(\"Us_clean.csv\",header=True,index=False)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# EDA" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Converting spark dataframe to Pandas DF for EDA\n", + "\n", + "Us_acci_pd = us_acci.toPandas()" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": {}, + "outputs": [], + "source": [ + "# Monthly Accident count showing how distribution of accidents on 12 months of the year\n", + "\n", + "month_lst = ['January','February','March','April','May','June','July','August','September','October','November','December']\n", + "Us_acci_pd.groupby(['Severity', 'month_of_year']).size().reset_index().pivot(columns='Severity', index='month_of_year', values=0).reindex(month_lst).plot(kind='bar', stacked=True, title='Monthly Accident count for the year for each severity',)\n", + "display()" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": {}, + "outputs": [], + "source": [ + "# Daily Accident count showing how distribution of accidents on 7 days of the week\n", + "\n", + "weekday_lst = ['Monday','Tuesday','Wednesday','Thursday','Friday','Saturday','Sunday']\n", + "Us_acci_pd.groupby(['Severity', 'day_of_week']).size().reset_index().pivot(columns='Severity', index='day_of_week',values=0).reindex(weekday_lst).plot(kind='bar', stacked=True,title='Daily Accident count for the week for each severity')\n", + "display()" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Day light savings in USA bi-annually for the weeks 11 and 45 rise is seen as compared to previous weeks 10 & 44 for March & November respectively\n", + "\n", + "col = ['10','11','12','44','45','46']\n", + "newcol = Us_acci_pd[Us_acci_pd.week_of_year.isin(col)]" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": {}, + "outputs": [], + "source": [ + "# For Day light Savings checking\n", + "day_acci = newcol.groupby(['Severity', 'week_of_year']).size().reset_index().pivot(columns='Severity', index='week_of_year', values=0).plot(kind='bar', stacked=True,title='Day Light Savings Week Comparison of Accidents')\n", + "display(day_acci)" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "subset=['Amenity', 'Bump', 'Crossing',\n", + " 'Give_Way', 'Junction', 'No_Exit', 'Railway', 'Roundabout', 'Station',\n", + " 'Stop', 'Traffic_Calming', 'Traffic_Signal', 'Turning_Loop',\n", + " 'Sunrise_Sunset', 'Civil_Twilight', 'Nautical_Twilight',\n", + " 'Astronomical_Twilight']" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "subset.remove(\"Turning_Loop\")" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "metadata": {}, + "outputs": [], + "source": [ + "# Severity as a percentage on y axis showing how severe the accidents can be considering the various variables \n", + "\n", + "fig,ax=plt.subplots(4,4,figsize=(20,30))\n", + "for i in range(len(subset)):\n", + " df_plot = Us_acci_pd.groupby([subset[i], \"Severity\"]).size().reset_index().pivot(columns=subset[i], index=\"Severity\", values=0)\n", + " df_plot.div(df_plot.sum(axis=1), axis=0).plot(kind='bar', stacked=True,ax=ax[int(i/4),i-int(i/4)*4])\n", + "display()" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "metadata": {}, + "outputs": [], + "source": [ + "# Sunrise Sunset for Day & Night comparison of Severity \n", + "\n", + "df_plot = Us_acci_pd.groupby([\"Sunrise_Sunset\",\"Civil_Twilight\"]).size().reset_index().pivot(columns=\"Sunrise_Sunset\", index= \"Civil_Twilight\", values=0)\n", + "display(df_plot.div(df_plot.sum(axis=1), axis=0).plot(kind='bar', stacked=True,title='Sunrise Sunset for Day & Night comparison of Severity'))" + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "metadata": {}, + "outputs": [], + "source": [ + "fig,ax=plt.subplots(1,figsize=(20,10))\n", + "sns.scatterplot(x='Start_Lng', y='Start_Lat', data=Us_acci_pd, hue='Severity',palette='RdYlGn_r',ax=ax)\n", + "ax.xlabel('Longitude')\n", + "ax.ylabel('Latitude)')\n", + "ax.set_title('US Map showing severity of accidents by their categories')\n", + "plt.show()\n", + "display()" + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "metadata": {}, + "outputs": [], + "source": [ + "# Accident count showing how distribution of accidents on each hour days of the day for the whole 24 hours\n", + "\n", + "hour_lst = ['1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23']\n", + "\n", + "\n", + "display(Us_acci_pd.groupby(['Severity', 'hour_day']).size().reset_index().pivot(columns='Severity', index='hour_day', values=0).reindex(hour_lst).plot(kind='bar', stacked=True,figsize=(10,7),title='Hourly accident count for each severity throughout 24 hours of a day'))" + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "metadata": {}, + "outputs": [], + "source": [ + "# Accidents count by each state and for each state count by severity of accidents\n", + "\n", + "display(pd.crosstab(columns=Us_acci_pd['Severity'],\n", + " index=Us_acci_pd['State']).plot(kind='bar',stacked=True,figsize=(16,8),color=['purple','orange','blue','red','green'],title='State Wise Accident count for each severity along with total count'))" + ] + }, + { + "cell_type": "code", + "execution_count": 41, + "metadata": {}, + "outputs": [], + "source": [ + "# Percent of severity\n", + "f,ax=plt.subplots(1,2,figsize=(12,8))\n", + "Us_acci_pd['Severity'].value_counts().plot.pie(explode=[0,0,0,0.2],autopct='%1.1f%%',ax=ax[0],shadow=False)\n", + "ax[0].set_title('Percentage Severity Distribution')\n", + "ax[0].set_ylabel('Count')\n", + "display(sns.countplot('Severity',data=Us_acci_pd,ax=ax[1],order=Us_acci_pd['Severity'].value_counts().index))\n", + "ax[1].set_title('Count of Severity')\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 42, + "metadata": {}, + "outputs": [], + "source": [ + "# plot a bar plot to visualize to see which states have the highest number of accidents\n", + "top_ten_cities = Us_acci_pd['State'].value_counts().head(10)\n", + "display(top_ten_cities.plot.bar(width=0.5,edgecolor='k',align='center',linewidth=2,title='10 US States with the Highest Number of Accidents',figsize=(16,7)))\n", + "plt.xlabel('States',fontsize=20)\n", + "plt.ylabel('Number of Accidents',fontsize=20)\n", + "ax.tick_params(labelsize=20)\n", + "plt.grid()" + ] + }, + { + "cell_type": "code", + "execution_count": 43, + "metadata": {}, + "outputs": [], + "source": [ + "# plot a bar plot to visualize to see which cities have the highest number of accidents\n", + "top_ten_cities = Us_acci_pd['City'].value_counts().head(10)\n", + "display(top_ten_cities.plot.bar(width=0.5,edgecolor='k',align='center',linewidth=2,title='10 US Cities with the Highest Number of Accidents',figsize=(16,7)))\n", + "plt.xlabel('Cities',fontsize=20)\n", + "plt.ylabel('Number of Accidents',fontsize=20)\n", + "ax.tick_params(labelsize=20)\n", + "plt.grid()" + ] + }, + { + "cell_type": "code", + "execution_count": 44, + "metadata": {}, + "outputs": [], + "source": [ + "# Accidents based on the side of the driving Left & Right USA Right side driving \n", + "\n", + "Side_lst = ['R','L']\n", + "display(Us_acci_pd.groupby(['Severity', 'Side']).size().reset_index().pivot(columns='Severity', index='Side',values=0).reindex(Side_lst).plot(kind='bar', stacked=True,title='Accidents Severity based on Right or Left Side of Driving'))" + ] + }, + { + "cell_type": "code", + "execution_count": 45, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "display(Us_acci_pd.boxplot(column=['Distance']))" + ] + }, + { + "cell_type": "code", + "execution_count": 46, + "metadata": {}, + "outputs": [], + "source": [ + "display(Us_acci_pd.boxplot(column=['Temperature']))" + ] + }, + { + "cell_type": "code", + "execution_count": 47, + "metadata": {}, + "outputs": [], + "source": [ + "display(Us_acci_pd.boxplot(column=['Wind_Speed']))" + ] + }, + { + "cell_type": "code", + "execution_count": 48, + "metadata": {}, + "outputs": [], + "source": [ + "display(Us_acci_pd.boxplot(column=['Humidity']))" + ] + }, + { + "cell_type": "code", + "execution_count": 49, + "metadata": {}, + "outputs": [], + "source": [ + "display(Us_acci_pd.boxplot(column=['Pressure']))" + ] + }, + { + "cell_type": "code", + "execution_count": 50, + "metadata": {}, + "outputs": [], + "source": [ + "display(Us_acci_pd.boxplot(column=['Visibility']))" + ] + }, + { + "cell_type": "code", + "execution_count": 51, + "metadata": {}, + "outputs": [], + "source": [ + "# Univariate histogram of Temp \n", + "\n", + "var = 'Temperature'\n", + "x = Us_acci_pd[var]\n", + "\n", + "bins = np.arange(-30, 120,10.0)\n", + "\n", + "plt.hist(x, bins, alpha=0.8, histtype='bar', color='gold',\n", + " ec='black')\n", + "\n", + "plt.xlabel(var)\n", + "plt.ylabel('count')\n", + "plt.xticks(bins)\n", + "display(plt.show())\n" + ] + }, + { + "cell_type": "code", + "execution_count": 52, + "metadata": {}, + "outputs": [], + "source": [ + "# Univariate Analysis of Wind_Speed\n", + "\n", + "var = 'Wind_Speed'\n", + "x = Us_acci_pd[var]\n", + "\n", + "bins = np.arange(0, 100,5.0)\n", + "\n", + "plt.hist(x, bins, alpha=0.8, histtype='bar', color='gold',\n", + " ec='black')\n", + "\n", + "plt.xlabel(var)\n", + "plt.ylabel('count')\n", + "plt.xticks(bins)\n", + "display(plt.show())" + ] + }, + { + "cell_type": "code", + "execution_count": 53, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.5.4" + }, + "latex_envs": { + "LaTeX_envs_menu_present": true, + "autoclose": false, + "autocomplete": true, + "bibliofile": "biblio.bib", + "cite_by": "apalike", + "current_citInitial": 1, + "eqLabelWithNumbers": true, + "eqNumInitial": 1, + "hotkeys": { + "equation": "Ctrl-E", + "itemize": "Ctrl-I" + }, + "labels_anchors": false, + "latex_user_defs": false, + "report_style_numbering": false, + "user_envs_cfg": false + }, + "name": "Data_Cleaning_Project_IST718 (5) (1)", + "notebookId": 1278832175434352 + }, + "nbformat": 4, + "nbformat_minor": 1 +} diff --git a/IST718_USAccidents_Project_Report.pdf b/IST718_USAccidents_Project_Report.pdf new file mode 100644 index 0000000000000000000000000000000000000000..236e1788e6943c223faca9d225554b8405351de9 GIT binary patch literal 1407234 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�=oV9+nCkX=wqXZ`RfhfR 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

TiI5rusXPsLraj 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�`v0#W?l51?%@QiC5#j- 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�^ErM$?yhOXe zTA)I10#yDir4_4(ro}89@c7VuBZ?zGy5G{l($W$T73lJ&kKVj`1*ySaXol=3`IE8o z>od%N5i;;9YzM;@0*5lq8GWeL#ApmderNZ*s{oom9m*NQc?7KKIQg>t4t6R4WJLf7oYvoN!F7Dm zW~^MV_3q5>iP)P5p$gpbNLu6*Sie=1oEf<*?7?b;uvuNnM4KxYZb>pMp3E3K3wZ)z zA)zm48{9#q9?zH?24r1JMMVW*2^MXdxe3a`7us5{C@U&*?74IZ0+4t+6a(DHn>$DL zjQzrwN(gTVK5!G2rj1wxzjNEolN{a~RfkugS(S$%BR;6g9RVo`XZ>!F9e8I9a}W$n zW!AE8gMjDWl40yLoUrA2sHo1ItV3zcKNsidG|(6jXuG<*8#EyPdIOqI>DFz^^xu15 zKEml6pKD!`nsnVe)CWw*ZZJBpxCQ5It>zUr(S9&&>#8MD6#9~RdJ&PG)KCAD`tJqz zzpqdBjDMu3r`PSaB;H|y?`lXePK7)xdR*B*4tZklr-vF*+S>tzJNN`kJ`WCYGVs1c zb{;eV07bRzLfxvk4PNVY6U5?~p zZP$9Oz{)f0we2LRi@Ng<-Q0F)ro??0n|HC!08irY*HfSC(|0E3F`wtq%Y6;HAhET= znu*4ZU*k3{8a@TE25RufA`r_x>O+dyL`^nr+&I0-$wW}%9an@-jX6fv&u1*Gu1HW2kw^c}H z{(dB7SJIN^et!JWa^SFh6Nj#F{ngT_{&D12M`Zh_Up_4(D*Au7NnR>Ig@3>C|9R{m zNA@p<_|IzpcUbt3k^EyMf8K8Yc#6)p7DDQz!wUE1ZCLA*Nz=b0l$`2#V@+(8&W@J?%9r@cLqHEN*u{O`rL(n*kgr-s;_Kjb7Ne|iR z*65gzfTm$4)wPzirMYX}Jw5*K zmK-JL&c2+1>d4g?@Y$#rEE63jONxIs%zG~U?zL$U)>$h#VM zq8;8r3fCY?PsbFr1f)s|wd8vaRmjQxG1X$@M%~A>=>~JHsJ_?p-~?#JTs_`vO*TYk zGF1Jx3aQc&Urlg`z$}1V?lrV-0gDO_4Aguw!uzY>b@E8TIXg7J!8Xr^tF$dlw~B6o zASIISaKNfab}&<c zy_mX?3Sm4Riy3oOD&{ZA9D*YQkkdO8rKO3SsCo#<{(nJpeXeRsN~IvThy!^8Ut+!2 zgDRXDFnmtq9HM2&_yvu&JwPg06rm-JgaQ&*`|61d9pEB__||G)sfAACR~GGPog8o| zS^6H7pw>@*4_p(vlXs&CWi_PBNZ6pF?ljeZx?>Ev%iwu(JDQs1W@6&v;=ob$Pl2?+ zwk3sE>0;)KXn9QP9Dr~nSPG7L99Az(=zfuk+yfHu5E?bl_n$<%CIZ1!PAJYoN99qF z)8co0M%|~2GqaC_F$ZBURJJ@kJOEbz?81ND1gK=<2LuoN%LMpxch7IX(>lL5Su#9B zr)>kNO1r?+;gq85*Qfp4>Xmd71ERkJ_@dUf?62ODl^mGYa;7aWt3HZt(2bB*EOD8w zFLSg67V{)9ZmW@P0;Btane zI4rM+!9Tql746R_C}@ft^7Sy$BQI`QT&)RjGdl9vHHv`ZFp=R)zml?Y;+4AHiSW8# zQWBg1sKljf+G(gY=Z+K7e&mFf#e-S)5NiO_$Sp+@X%>;!{UzMrIC0pCsj}SY`2#n% zXVOlNKu3F{Xo^cqwPN)iNS=e?f$_w|`%WwwNbc)ls8;a{3s>D}0cZvb5(Ua@*I# zp2W{~hWq7KbImBtaW|28hN#8XAsV zi}yvyA<9ZhCRMLXexs8BX<$((KQCYMFa zKuZIJ1PW0@yDdN>%B6aRBCRHMd$cS*PapD$<;%^>!(qRSWAEbhNOJ%F{Q?4|jvLDX zlsJvWn^95av|euiJIe63PH#JrVgsvW+jp%Ts3Iin*}c{|ojx(wL*PwPIkuq5;3A=t zbOg{1+6+sMwso5e+|+YD_~K`eA7Aoi{g#zfQd*ioB~?eohI;5-)EIav(U5nL7(#3!?l1~Rke0gU^3W6d@JB!{2^Te7ypR1NAolH|H8_*yEl zuTKae1n&uAya}Ay9TN~89R`ljNnQLd4YqFZo`4N@Q2<)L^~&_wlYa>0Ceb=HefK>xcqDgO=Q*hYty|A{Gf%v=lHt z%lF?kH=hE6ggeAYkUa$huL^^7I-!1?**DEqYs&YMfcFPudLs3G_Zv4Ac+e)8J@IR-C?^(Fyu9385fvCo>HKwO=SXS? z<7t>Z0;f++Xhf=b>FU`iKzaUPHDW>3&>jqc=_#*!#|nrxuW}Hfjcj_ZR?8TL33wiy z;|J-_Z5;7hmR4O|T^loYL4F+A8aR{@ntGkX zZwGmTf`heL!pUXikg}4Jg~qAF!HdRpjvb-_L)t@bE`q|7DZx}5W>bdr22C$^XEcZk z#5!3D&ei_%wEQmy{{O&ZKWd17!65%x?f)(j|6?To7|EaI_J4r(A0_<1l+gaE5BzuH z_kZ3<k(<02vfPTr{QK*EVp>P(8BCWIBzpOaPy+#U;aSRRB3x)hq z=;7bFWQ)2w@;;c#oU`~r@b<5;Hr3TJ?54nV2%G{@9x+lf%d&S2-6EjrL+0=W z=m=nkSO$}j$QQX_pkGW8IuwO5N)IhwVB-|Y8RQiCE?FDNCfro>q#Ye0bw>Ff^>wc< zFb>Yx_|`kKmH&2LP|b`PIr&&%(}kwpYJ9B+MQ`V|#14*sY~-0SQ9jRtpK27jou_o2 z>+KZ{?XHW9<_fY87f!q_vRm5l*?VcEp58wAQQF-2t<&^k}c1QI;otLr`;(t8e12ygegfSnXG=akl8QSU-$K>({bD6 zGqMkxGh{10q~%6CO{qP;&82m49FLVh+F4h`#5d)%?=~OT;zikq9Q_N~VHtGzYt0jU z3*Vu>_&@$I~5|KYKqi(SCBuPpx<-3^N>hJ3F?6g(U4RI4d}W z<{qGLJ2Vmo!6-^XdNW6HX~usrXb>toKzxa|!3X-7l|zhK#-Z3gMd}{fu zotInvNOL?vO?2tN?Ga161KPIfNpc(icq~Hbb{r__=4?;2@%=5<6v0Ecgy()dou{Cdpp=Bb>-4`DOst@^&!p&rjK|U2bSD1R$wi8c223NUP zh}+NCx<+Xv4r9_aXmZLUu8GX{=tqOo`cBO-TQ*sPK2YErU?D04ECNQTdTx1+wa%3* zn11mVy_@zO=Yde8v_RxQ5h_sq0a6aW!%U$S`Q#n&3LDmP+4hFOs{wGebz-33DJ*Ob zB#*q#aPDRYJe$*8V{66;gM;hfD0Gohh7uYFU3talv4o*aDRjsgO%jKJr~`z=Pi>3` z28UN)=;V`*4yG6k&K&8mPaOONTwIt`=C}7H3rCB|BjABRla2!ZHohWSHti4^s<(6; z!*|9o6bfK)+>$!+Yp#Q?GU91#6Oi-*&f0<14z>lvb{ZHasvUL8$H@#;_+4(@kx^uk zG#m%x6rKrzt?4-b?IZO+p zU|HaHP&sK4bB%!vBW168buvfWOXb_-bmmg?K9i*Z$EqcL%VTq6C60j_@ZCTX>!OaQ zXSz{7_4U=4E`$LTelwJwte@+dld7=FH@ORd%omihrH@uYmrrXN%q{KnerBW3>sH{G z?c=6XUANg#=j>s|jgNIg>NbA9`vy%R7E4(8VcpT5JEfw@)~rWWlo0fEg-&d zWY0H3;tl(3W+tS0eE43=irYu6udrgP!)j`moR;P?-_B@yHc^?b^CDatmM`w(M@mY{ zPt!H_fQOjSZ>XW6LH+vuUMb)EYa&unTte~3r0|s8>NZ?==$rKF_X)e#M4!HLH5UiR zgZ`E{1Mh0qu7}~r%cWleStj zBP*LXK6q`xOWZP>Y6t|3hHbP*@Q$zgG~n7Nq|H<#D}Kyz#WbHMFJE54az3S!3IIY1 zgrAr;85p?R)cJnD4}}~lQdhW!xS?Ruc1+8pyDd^ph~G^JJQe!t_~_K3ONFT+hJC_*+rzyS7& z#_sNJI5W9O4~VRz-@Boq0j-T-m&Xh+b#oZ!z!$W%EW#ZOTAle}cUC zF(sw1FTNdr1VgHd zP#Eh!efs0;@w?tV5TfUPlHGbbF+XHQpAcp?JXaeCddGO_{CUs8z_KwhYO%M^s$5%Pc#K4vLU$l4w~J}kdwF?zg@t3|;?#Fqd?DYYa9KJW=DHp_&onzA^U&YZ zgLw%qr@FIHU+P)@!|5|;3OQaMgkEkYbSyBl=LULVzkE47zv{&4Q%#b(k1J3sA(XEB z^NJHaY@oG(1`XY{QL5o>U`ApXC|X=I)|~(C?sJKomX?HkAn@t^12X+(r^l{*4Kt2> zDiZPH#pnqM2?@9`Y8o1paXbS8E{& z4SmdTao42H&CLyqP{&D6ON0B`yACd5y^WXJ5qS@m&wucoA9!aHHUn1!(aJ0PK3t?1 zp}vBZUqto$INg+wc!201(K&;~f#R5o@X}8)Im_m^V;-=m$D;_G^2D!w-L^&^B;8jy zPg^ItXphRYakwUUL2eoT4Pgc@{YmH$KxQ;9HnuTF_oThOMCk&)4pJ$M_FZee{J-s} zy|_b(dYMrzb8`rntqW5$vEiHu&1Mt7< zMM&F%nE_Xb9u52B$JZ9#AM+KjWPZHnfKX^*K>;hIwukR-M%sB&>&r)GCZ=)sq?8my z9b~Yf&0Oa%96oYHwHaeRR`0UfWx66AB+&iXDEW-nVPPs8Fk;^1D}^Gzo=wQv{=PnX zi7QH{eZ>QKWt_rJ>NKLr`-dWvWyO=*U&MbCei-SR_394F)fL>x6O{X|;eLjxBjAh& z6E`ky-{+B}>3#e6zp?;<^aM}jq-y9D9UV$Pd0`NBX|qF^5E*%= z{}F{_neYGcS_SvbFm;DLe#dyJd9&C#Ih8bg9h})Wi-`CXB!MQuxU1U=a=iN^G%nOC zCctH%AKs(Al4b#_9NS89Y}WG$v{Y3w>?rzH)jl;f<-6Q-z6|2E9XNR8-IJ#qIhK7snW# zf+!N=FCfO-FMjUe!f=-jG#=rp~7f4Gqzll$e;9p1uH}0&~#6hIk5QX(*`@{WYkqvEXbo@a|F!{u~t%;U#$tvlq5<$#+9=`sFPBP6qShlYSuz z$E6Ud(8`VDB#f_VT2XzZsSAXWV=TE6d-m+%=H`wNz$tqou0R^btW%93(MGKntu3D?A(vNFAzMRLiSq19vR-h^DuX#XwR6OK3 zlpAo81GkrTh) z5yPxdV`JmER=7V^9!tT`n~O155Y@VKC)a2{rncDzvPakn6uJnVYlvA#h;EcO-gXZ1 z8cmlYj?jfpc{oa1b8+hnvMhzO={c&-l7QRLzq~USDN}AbeP@uK_6-6 zI%a_|RZxB&C4E~*3L)Y8!x_&3F>RJ763(sH*l z3hwp`dEcDj!2Vs9|4l5ahwnj-Q9s;JPUO~9RIASq20nj&LfwLlu`jt?udFgTF&Btw zYlGF@=TGUV1q%+@LVy1Dq)BZghruI7b1N&t@(}sRvU~@#{2Nz=-GNodNiSc78Hw&Y z8pddvo}S)CJ5jSa*$GWwI8?^@t9C!WdVzblAkBVw!Rb^;9s`2GtA)S9zKQ195cNF8kRTKN%ES^2z)(XuNd2jbY zn^z1*$e*D^ase$LI6HCi@q{irvS04AVf&-uvd}uXu}z`|t|>k)jtP_EyuEqGdA6X} z!i7q%`?4YIdwWGH+g1z!>dbokV6vBWund8D0gWRq+cp}?A_IN>o{o+?IS+-PK zz~N$r1NIqg5bSN3lwGBP+!sP81w&|h^E@UbKXby*4L;CQAc-N_#f8F&gM-5}rmd|F zbivA4$H!6N%!MRSgAf4m9J8Yft71g?`Q3%o>@rQXFi2bIwA;l`RZk5OzKNz$dr%#> z@f9z=`=UX`yu409&67rnCTRwVNPUft$?h=a-V>_?6z)HK_*x7q(QK@&5IXU)ENFBi zZP7!{@AdW&qBNq-VM+a4Dc>EYaZWlO+4O>)?ixw7elp57T-tNsC zzWyis4n6p$&6c#9T1!idTkwe2=5#J;$BSB84_`_+&L7ab)wwjBI$~jAq4I~r>E6D+ zv4PF>y4PoW)fk~%%ueHJQitpU^u;PJw+9EF#p0S~y76fLcztcHZ@sHaMNLhhkSdY@jl!cdmH5^$Q_ zixblcRU;TAls$?@#jRueuj=Z$rMVUWY#gP>ptq~;IFup?W-cQf3<(LrQ6*%A;>K4F zanRF;L`9WJKVCSodZqfAGu+zfZDnF+&YO7?7WU$07)9=QF8RcfMlU+YFf#_O6Rz^}9KvZ|n=MvhQ7-Qfy%jor z({Sq^IX&<=Hc{?>tOmZPW5$LXxAscj3-}zx%EGdz6rn!uRXw&Aq@wC?B!qCM8Rw+= ztA$2H>=YDyB=qp;V~|7=1lqDtuK`T!zC(Lk<`F08JMD{?#1y!lGYVR}q?5Of+ianr zcyP$j5@V%7DtX0r?dxJ_eA}V*mAI&1vteG^J9)0JOTLxo_sgEVabwT^`5{-T`6wgu zdOsDXu?Ci`w zTg{!ErS3}o#t)X%es4!LB0SI=DRlgw-Q&$BjTfM4IOpQfr>zb%qgzS?uX}zqb_9p1 z?kes5IJXB6XsD<{t*MeYJq+?G(X=_#oLXB_@*om3_l^ZvCwh5ppuMHed_yed_HEww zwzd#-tD=FDsxqmSv2Uw{!(-aR=1=aM|7Q3&YJGI|p=3rLit|Iygn$f1)axG_dIt&~ zf}ne`VXiVSS0UPP1Q?fZN^`my^`RgMn{kA{eL{%*Lsc_Ox_%Q9Qgj(SdZLp18FEIM z5qW3XYPrXG@q7H%njThD^YU}w=XVpy47fee30ors{@X@D2^cS=-n{vcGQo`*112|@ z89t`HPH1ggp6V{GG{5nCWcj=k5$qfrH*C1=Hab4;g;+BG_pPEY6^qk=+nYb=mtVO- zI`<9o%YD1B+!SgN->R_Zqf=o25ae_tpS(TFz@`rnjc}pd$vmfj7Yq&vxPIwUISdpo zo2UmN&xgVkpu$A@zx+m(Qk`y(n7ccJmX4d}tF>Juk?^pt6gY8cnzh(NWq`gJY+VBz;T6)33 zzk21$9W^1<%NN(RjGO1PT&D56?PV@yRPyy ziMtr9rwGwCP->DG+lzP)KcotZ|Fp_Ilo>(pID$r-TnOs z^@>@t;Y+RHzx&=)D!#{63y?uK0g|alek>0XyhEbeY1TI{UflG>pXroS?X@vx3)K<} z5^0A~`z{(|s!DFIl;aBwA1a3&H$RV&iwRx8Sc8Y1*7Gybe(v}EDJ3Z!T*$n})n-}& zsWR)Rs2(>#HE;k+fv#rs?TRm?j6U7Ww|h)zp>_2`7cqXT>ZldzM~};pgg+h|#*NDz zjPk3Sp>9Ozb9izxDi>`+oewADG2R>k5(0bns9bnrbm@}H%ar5R#if8F5zOF1#MDuE z&iME#e1xBW{OM_UL`p(n0C9QzAf3AHHtPLfHWod8{P@sufW&XbY853hB;CT?ysDxC zWMMCHH4=Ha8Igl4^(Cnde4JIEKg*~!<1DnVpOLL|U4tPqop&0IqC_0~W%2}s9_8rk-uUCwqX*f;b zwtf37(5DKGSO^jF9!ut#%{-;5Dr2q;ko3d}wIZ9F33*!+5OzNVbr(jzPxeCF2U|)V z5&CysrmK>-zJ7W1x~#0M0;Vk?M89@+H94`>(Y@q}W%!H35W@i6pz`I<;q-t0!V&gw(AN)e>reR$=`pABP}TXHm$#s7UIl$Y;WJkoKnO^3LsP z>oAFP2m{d#zP@M8`2aTL?Ck8_yLSzlZv*Sth2(TSGjmUWzoDrq&@lOmL(ZF51bvkw zv$yvjIp2r|{RK%(W*G|G>%w+~anq(^(_5C zjqscOc9Ufk&{;!$J;1VOh&$QYYp%^v5YdzZn)Co^ zSyq#*sc<)(A7&H-`dNaw0xEulfnMZGU(4?tvfjMskkHk-kC$=mvx}r{#={c&U$1Pd z*u=q+V=uDpN+bHrZD}|^EG7>FVL}d#Kt=7x84SO^z{Z0CNW**BZ%Orbb~lIi{*c&Jt zyVV{fJrlQz^y}HP4f=_2ksf*3re>5x!RKRu-#s)8RJIfKbFEEcX0pIw)-y0v0V<2R z5IdZ9=mnsVY56-Z)Yji3RtDIvHKYoPm9(@tZ=Og9%uJIj^pfKqnR7M{fVu&NGnEti z0}vQKU={Ahwp~N2o(X1aT|)!aOq`4YO$1%~iBFV+gxm>ol*);a^>Mg0@>XJ=vfDEe zM&tK1N?W#WU45rxXh_lK@?#s#ix<<7+#4AgAu3y$D7jUHP15Q3%bpT*+GH_Y;io=(H-@t})!rQky za!!3>m_iK8iLP}|sKW03;?@7UdgA}F_1@uJ_igxi_DD9F*-;{+j7s)O!zxNbBo$ea zmAw+7Awn{eB&m>9_Q)tiR`!gtqOACy@B8`vzJGn6<9MFqx$nE1&*%Mqy{>Vd=XGA{ z`Vw$QmBEg=h5er5Vq#?n0q{(e)yy8`cScZ62HlI2fN1O2GBZn@4;hzZF8u4w;B$v1 zDB`;KZ@9)%e1amF^K>s?s$d?_s8DCIeft1(+k*5!0S|<`riYQ^cgRK_+9OxjJJHcw zSoyTyyySt=PLgq!!fU8_)29QcD^%%t6!g8~KH%ypd`ZvQQF6DqxLh?$k+ktSm(=!l z2@a%S;pp64$?EI&_K~E|IWEfWxA?ekg44R916$1HB_t$v?+#6^ivp)mk);eA12eAEHO7XZ}YgiJ#|%LY8_k} z-Xi-kw=RAq=8z>ZBLStCnl^9D$s8zFofk$lDdi+3XEB}CQ{+5~NEJ_w&JI}l=Jd_jguJ9(e#%Kc1QsPmyIg`GhLl!tk|*5ZMb>i zh~H`r=US}sg{fohvJY#HG?|kP4+lbu9$2bcBtxv38$d+}%PLui+U7r#*%wce2&+}q z?YjX>2E-J=*B#%!$w^7g&(DiVO0usmJ_`)ARlSw2K(JpZo8c7?;qm^1^W z;F+?ti?p<)WDTf4w!7gYeQs$HaXDUt5=wbxCm+is$K{k~~7d{W@ ztbzB6(7ZT*mKcBgKs<2bQSI1W{o;#99zMC`j^%Iwzjen$a*5}FhZHe4!|8OTf48rw zqT(u?iFl~9Pxo%<&rV&4$~SNTF13djt6>451ABdC`bLnSf7^3@&jYb6TB@o+Pmd-k z`wgH}`1Z{mCa>*($~k@`9?q`Ml~0DecyR?JI*JOmjDzEAC~57g65W{QBmd#-5ROdX zRBUXZ7b}4gSNdLHDCf=1*Oz_-$*8u_x?L8G8pRVrJp_ED{cV8sUJr~t*)T9f10`x5 z(Ufe{IjX1E1it2;DA?oOUvzyV8IqZ9UvqRE%sj#E%q~4bFDF+AqYnO?@h3DFS9F+q z5BVBZn0GvRdH%>np-jmP@+)(bliG{?RS3+4xi1b}C67(v$hB5q9M80S`c~LDb#;(u zFINT?7efGHfCkLGhNQ}t9-Kn*f3g}k%G9mZ^~P%Uob>z?K@8Yj%kYj z!S*GZ56qp%Tzi1T>YJ07xt5ibJYEa+xwNsow1lN!j+ZaXV}u4+-1PMH;+>VXHN(Hb z)6qJ!Ab6MV-M#x60HW}l9qqTwP%RNdfzS}?OTVnlLe-P<$NbEhx)p0D1zJiz)sT%k z5>75IT92I-hshR$a$x7Aj)035%9sDl)oY1=}zQf+S*wgRxxBWyk$B}WraRV!F zxm@Esk9iW=9Ij!jA#Z;(2M06NwP7^(p;y)M2aR_SvXiq=U48rZ&Dewf1RAIvoQt>x zXaI%9ZAFi18X6jckEcC9_LZrde9geqQ!(==A~AR;p1>RT=|7wv^U8ht^el+i`sQY2 zFlV?Pshnt|ViLA9X*`%*+uiK}ph=9SxY|CLNP*9v1ES)7){7bzg^bS`hP$XgI%DN@ z8$Nxap{9;0{8aT5_E%qOYJw}D+kNHKH1pk~l;{GyIo~DXH{O}!%csxbcoP#$SX05m zJ+I3!VCimnxQg3X{p{@Qsr`1$M3XYVE z>4*zZt3iq|Vn2N$1vn@eJOkZ~gC*!9s?RMJ0x!eFEwh@P-X_I$U*U(5(z zo-W3|L?j>Z(1-`XaO|zD-Z+nH?F;fZiC|+rzzVKp_ajgSw-{A5RWmQ@M;Qpw(9ocN zepgU19zvA=piS&Xrk+7HU?_HUV_u!Uv96ACk6!UQVmvYERD1t$^C5k2&M|C2*4j1P z!jC)*Q<;$9V9Y=nl^|e>KXt#v0cuVPNS4<{H#fHyMaJ(WRfIsL{l^}w_uAVi2}8iV zym_SI;Fi}h4<6*hZ3ttFYbz@nT3YQRwLO=gq9sn12BwNaXgX#W6v?TMM-Lwwe9?_>+dGxm;q>@Leqq>2E;criO`&W&SyEIrxWQj{yto3|3s2#2 z3M(t?Q!O~>L96I%EN*xVm9Q0hR+w+a-_R{6yz;f~)2BTmBICFatV-hI;v`?XiJb`4 zo)NBRK;w7Rq%N7=5lq)Q#zC+@Q})FuA4bdf(Ce6) zC7wmAH~lnrYSetX9qo?b^P%IYY@bKI-r1V0WFiq!SLXfg;tSfVqaeljmN;a|GZ8lQ2fH}++<9f!LUB^FJ5c3&&l zBQDMjjdw_hrj1QTzWt^NTiH+%`~)&smPxPQsHIq0bM!9Jdh?Wb5S2HMcpwqCtbo<1PY4sDYAQYZOP@MRZLQuK5BykTO=!{bYX%(PCQf!P#(Q59b zCtt-l`)E^Z=hdA}c=Dmz>2k!f03K}%G8zBOAJ})Yb>xV$s=hws!}~`?^z6ZuaRA$W zppbdm*Y_wbt+L)JA}J&$_CeyZw7mS|;K-aF@TgU)M;;OnM;hV>Uplc)d0gz}#N zP(!XXLiYLe`STMf;VbzRoVInT&v#6xObhnXce7e8Jy{A?#ljz+6Zy1gEIDOuZ%nlY zWU4P?3H6ab%&NPF3HFj`$nl*q@rXXXs0k~gTd8(_jDUW%k=IcuhGQxQR}eu#K}N=K z*6D&uuAx@0T!0T-ZEfv__YV>=m-@|e{;fi26iOv+w%=oDy6udeC>r9l2c@6=JAHMU zk{#T3KI|cmtNb7*s(&JLK!pZ74xICZDzTd#TO@DJ8Hr;9GqBc^GpgkG`pV)Ow`&db z_a`S@yL$ClH`?$Aho?;{6aW@8%LzpqW$7|pSzqAu+lVz(#vne){#gBX%)^Iph>43E ztw*HZjfhBlc2D+gP3F`2y9OY0Ug;e>rnYR5kG>cutc8_WuK=|#_L7R(p8uC1##Li) zYwM0BP-@RI&zhP->jzBebbB2aawMwQbpJ`RJ$4ALiBeWoC}Dr>7wbeBJT^XVo=Z`F zhkr6cMCT!~C)sav(r*)6xqX(}wA%%#;7_qin7*N#jxG1;&Snoh;vC9Ur%8-a3kQK- zR>VG(s`&wLHqwFmY|2;XdmVXh2i8A0oV0Ue#$v1Y?WH?zEEUOCUz3uPv7-arbcolD zoTc!T!^^~(1Q-zenlzK@bf8V{3vNQr6;{EUPUc)0>Ez{gNKQgnxaRZcT(l|ZM%cyz zKf}Oe55M87p;}ZJi!i(^$Na4^^98-}kbCXeo`j}eQ!{UTDPi-QHP(t zpu>=d!+^PG|CE$LU?)KRLd?C-CSq$50|NusF)J$p!#J6{4?xTzsAi|84nqm`V~%vT zBC@WIpPv-CtCC$SKlB*KQt}&~6Lxpu?@}lsT*U4F?5osqnd=`u_|>CKW8W|&q1Mh0 z)y4636dTD>)a_widd%Z@-Egl;EG=(wM#&3dy%e z`NT^)Ta%`0Y+_<9d~Lc8nv;ciVp#{y3D8qrW=g_L7At{a+#x&g4x%eo&*Jn=hWJ6s zY290x4vDyPXZ-FO1*TEFF9g0$fxZheiTs~_I7NNNPtSqE&6+2WC^t7Yt7vqI{?C@&0Jq4}VpqeIVgR9l0LZR_6qz`!aqb+06)ORBxUcl`PQuF@+C z1vsV=)LoUa8`=LdN6c~Zo^(~QP&Fl{3%yywFWI~EK>(k-Ot7~4t;mcZCR3g~x$v8z zrf1J~i&YSk%*xK~7EU(djKZ`%&;&LbP_H!nK$ml-V?2&FNhT<=GUK5&A9NfPgeb7O zy84m)4uq1+lUwxz31QX=f3~(#=3I}Qsz0J6drH>zz}IZ0v=@vbSH7wlHyWxv2xh0* z^T4Ks`K(^g&3jq)J%%=4xZZ~R)HFad4MeZHPAf{n^mx>R%Jv!d9uqiJ+?NO ztmsDJ%S{WM2ikIS4s(~d=(|x-{nD&8oV#{C0eFWG%j#Tc5!xAb>D5(WuK+t>ABi) zv5MrR1o2d!GW@e3HMs8t(f+eTtd}m0SDt;pmu#qZ=rFKmVY+pYQedDce8W&)`FhuF zLxDC9#Y9hCxrdVL#PMM2vQWLtrB`V$?W>3vX<`x>qY2ngdhG5un#&ZI^?HMAR9nRo z_M8;jc1q87L5%K~5Ugw91yNCS7tFi!{L}D2a?RHG;Xj$(em20Qh@A$YWJVZ zr+yx`u?>wKVp<3r6FYn8?Ta7jyZ73>pO~<9zh;~HGiu*%o*4IR22v{xPvA#L9(3IN zAdtnyw|kxJ$T8Emut=E~!GM%gPIvlIe^~} zARGM)UR9p?gy_`IpFCD%tdz|8*A?PLr-v(sRi5k^hfl*;(RG^yVBDxCfgWZ)e~!H} z=$d>$6XOZ*WMxHIssHid-o5tjZk^99V)XhPb*msp6@ve#&$6~21puvc?AY~zGERZO z{4&CE+TpyEErS(R?DMp=!2I>!7Ub`g#Ci`kv-K5hP}Z@0V*2O>-bSiV;gdO~iexuZ zCyY3Ts~L9qcgTAGvG-xJnKhzWkJ!%s<1GUC!|kT~3%8GvpQ94VdG#tPI{N+Fx9y#s zr@2*#3iKt_<-=7J2FfW0Vyumm)!%0(Ji6OkTlIByi8WO|K0Y9|r`GKsth7SH$p$$BtN$mY+L+{^$7kGtk_Ef`MPj{+!a%vPDOYwi(t5YR4;?5k!gXG* z-ceatxiGZtQ$o4Fw6-sNm!ICg{Rx>*`g3!38*~>ASFbM4&nvi$QSbW;wEAg^hk&>^ zK$4adBkt3~_QuRW5#S)Qgk{d7rt`ZN#I7C0f$ zr67Le?m^>T*fd5iLFpikk*V+BeGu8jxOcnH%t_rmxWGhX6lN)hT|Ti5@xL12nQ|2_ zwbRpF@NcoU{{6*olVuAwM)BQd-?!PW<9+H-L6`?julZP)0=dUMNV4Ni)5@;hy7ggh zGGGo%=Ey5qHe)t4k7`p$xhW_?ZYmJOqsJv^Fflf!!i~v+hsnwPt*wk)TqVB$yj*r2 zyKH#|Q!amgqChQVAPX?#;P>?O_I~;DrL|6~9M&8)d-W?+BMR|HLpQ8Z5zvum{zKa` z?)ZLO9tMV+&dzW0^MkA6>1!)11D3;Lj~?^$^FvU^N5p*s439Vx_L;G$m?1=_&Yvvo zMg?tMO--J8lc-9Fmb$c*6qEp}mvLz?K&5_HP*E}AmyBY-_(#MYcp4dG#Kg3M2Pt2j z;I{Q@LSp~8xpoaguzX+US&}MCT#z&=RFbHK4pc5Ky4cQ6gUQz4yPDhA)5E#vCxHo$ zj^2-rRXtUICFqRdva~6mtMDLi3Ki)DN+0JZ{7*GCG%7sqmv@K`mw7CZl5Gz%Ie)%+ zfujzX6G{V2`Jjn^jC+dGGbJTjFDU5}oKGI!zD<++4LKth;Q)A0kg6}En)|2K7;IWJ zz5ak!>BXy8yd5l4bfLXpzq%rtNR8QCzeq7k+w=?K1MIOyacp4FR!g>TZ5vdK8+?W0 z0w}`p4;vdBMI1f3<1Aw*n-B(_)J?`$_SwGWTL!|1nl-ce;HiY(t<$bwUg zd8dnvhhKw`E0!mD?!)BNub{-(f;v#a{Y-5wTIsvn3B(uM81uv#<6tj8%o`W+PXVOw zya)O&9I2?NC{Q)SzB;!nUP!)r^-8LNPmbX=5sb!7X?#BvbS>bQ%$^6*^i{8s0Wn#J zroTIPT$#L33UR5O>M}RvKkkZ26(1vR-&Re5^tzSA?ZyquYX(lYZYdq#>GKodko1c1 z_mZ5fEGZcowHIQBW@hWq10s&MUOljctnd#dxZt2$VnPCP6P*yKwZc=g!&PgAxAOQ> ziubA!`gn&W4W1z!u4fq;I!~&k_ExZk-MDQ>+3)1)YMp7aEomN$Clt08m_oTe$9Pte zZ?$~?p7bj_YzWe^^Fu>J`sdCa>qs{eBGWDbjOKA9QtthXmR_K6nn>)A5+(cK4>Iz;Tb&}XAhPCffXZB^aw%9TCCX%O&YXU5mB zMkt)r)Giut<#&Al&cnf>0H_HKd!G4rQING$k$_F}dI%`VYbh%u!v@?jPF87Y>F_5Q z54}!Jtz7#`Urzu1pZNa$^*YltGu1_Dvf#*}XQ!PrJ$KG`xzi-i$7!NjR@8pyx^wG^ zef#zubtT(L>PN9Dyb_2b0|z_mq$;VBiYs)_ql|71SA~Eig5H(d^$fp9RRaGW@jZKh z?WvmK;E|G&0%1W1-;?V_jnsg#7HqH({u#WoiaJ)sRH}@68T$bt`QGx}Hg(F#h($0u zE{^>ibHW#n^eSKyLJw4xw7PswiHeHi)aC0iyU(ZU*U5o+y!hwVN({7@G~2ghYLd)E z@H=b37h9jBpxGf*NI+A8(yJ#ogr(>@YDUB&f%P(6Gen~H_I79+s#2Qi6M@cRtX^O^ z%+hw5;Xoyx9iZ{7EHQ;0Nqh4|(3fwdY^`F(><{KgQjIU}lu{j?U9;CQQ=WHKF|0Pp z1Kan_u_M|&zTh=x6^6Bd-dS2)rr)NdF;Icd6&k3vH!lQwvw1&uakV=g*b2{wREDB0n!Cxi1M zDtg%|I96+rUZwZlX{T&7K&WhiV1maKTSuwLBX|}8+C3p@>F?jki3zpS0CqW+zjAHk zJ%$eI+&QjTQ6ZtA;1-o)RU7Pggz0xqax(9t+O=!qZ~JCahqmb+KJCjJpXdsIx(CS# z3AgVjbPtLnZfvWm^cKTRWateb!ZIzFjJuz=wzmE|Z)ay$L4{`S_1SlI023?tM3~t1 zh0|JqX;~#8?6q19S;n%WhGJp|!xSm0Uey>-4Vi0*=^Bv z=r{l1Pl@9W&3QOo7N0rN1`Wk?`iioK#zw(uNm_Nl-XKms(~j{PgBS`PFh0cU#hru@ zpt3eQO!{_PTb*{g$e)tZ(${>An8D0=_Kb~{m5z=MwFmSpG)dK@yaeyvEcZ@dS6!WK zk)Eps_@W*(k_4RASfGeWM>J%P2co8%B>BKo&B z|8Jf2A;FUo+C*MQYQ%-dk{v5DP%70eI6fokP`AkZoeTN~O(MtmL3w#7HFxbGiqrpU z5GGz0C8jv;sL%=v;bNWHA% zarf_68}M(Z0;aozg7$ViaV#qwp)jqm9~Jk%&3m5t54^foSY$4s82q>9Cd22Yk*>jQ z2!@k|<^H2bgQYiL7Zw(N)<^r-YSWYZfQ6joKr&9sb{d*js4Rd%;KG%LF>`W$BEGHZ zwh>ASL`aC8AXf{q^Ke!j8ujBNEe~4*8i0WebvwyB+~|*<=bJGhgU5_c1beHi(AWg)H@iQp9+{ar4D}okG18PA?f{eq0C9>- zO8)%$<8tJC!*S=R@Nj)2qoBXGFRPe57RPRbRV#amko)+Gt?ll2{jS4QF~w!NkTBq$ zVxTYJO~L#3f5C%H2r4V55Xt$C3Y5Y4e(1oOo0<+|X#*c+{L10xl;GE0JB(2J?iLav zJIg;Gt9U*8bK)FFA_QIcT% z6>xp)FJDPtFj}N@X$p#pmD`Xr`GxpbZrr@-s(f<|f%v~tj1+4r;H*u;eM@R>uZMW`5_EO^NL2RQ#2RNj4|)6UZKLqxyI@xUX*SbN z+^D4s@*!%}I6sOP<(n5uRWV{|2*a|;U&ZfI&+Ut5cN_%K$HDngA@HXhochzPaTn6C+^FBc1JacSHM z;KyXxC@g64VuMeO2fY=T0MX+C&lVUQw6(Vfeizu!zkI_ffJb9<#YoJL>1mig2c|jE zPu!D#s(bPz?z4KXcEzKZ7=7%Y$)7Yedzkd^!0=Y;0K{!U!gqlIZ>%gdNAP`B-sZOn z{WA0qYGVRUY9p`7ULHi0!N4G~D5A5IO*a)YZ=RFGRA>e0( zKUEB+AH6EHt=757cybkJ7UTVP(9xmb=|U!Nqk!hW<@1xKXizi7oTCB-PW z40atE%_&G{W`8liUpkNNrC!`($m^*Fhy}YVzn`ZDhlaj2pI`)&)%EQgj@Cu=>igsh zz(N8bEiEpFx#>}_rSR?+ez6B{cI2Ko?@w_a74T3XOq2%-9TIbL>>;S@dq}Sbr_jp-MJ_QemcC1dV%8)F=!-sLk|_yRtCEtrd3lT@f1Jde zMhPGUrXgsPdHm|H`2SWHaBw75xO(7bFc+O8oD%>}VDWOpPa}RoK^M&H{rTg*_?tdN z<`44f*KglK7fe@3A|+5YB^p)y0~(f2DoHkvC#ZL@*1j{}4ajPKc^Olrzi^kC>VT`DY)Ig% z>geqJOXt56*aY!$k=`1QQhe$mad-yN1Z0zXdfSt40pCWrQV?77;SE`w44P?!nit)? zgBYXw`Bb!yI6?@XkUUtIwx8M--P_;4gJt_WOcx7vtCf-Yt#7Ql+Rj)JxDs2MF-I9% z^1J%mq-z8);!@SaYZCyOur%Xggj98yiK474o%}uXfPj-RNk*?TEOb8p6oxQ!6i`1bPq`$84&6 z`~~h9=6II!UcQ{Ej($4Ev5E?2$O*$(-P!Z^%eTC+QF-}#ZU~fCt zx}*R5cZ|>y16*3*$h9*YRlnkew4O&HK&>DZx zsvk8~VT(g@|I*ZS4V@Z<6p5HD0=YvRe+vr>aL~EAxqwZG;th7$P-<1^4;S(8M;YC) zjG$rv=o1YkXSFvZC_r?aj_+33HR zX(hT=NtyR9)@w{MkMTu6e%!Rwx@KobPYGxjek>?plRF4g2&i$2jIqhB0A0q89Xo`C(gCWzH6O}Dg{h#RAhu^us9lq>?f9Ru?NzWzsFp0)X}!%_hKm)9z5a~FbT*p zMS#G$l2TDLotXGqONY;k*&)PFt$*RGD5C@a*`AkAa=3U=Z~!mes`U8Dp(SAv5re(5 zsf*Ro10Qc~-+@ty4pf2--%5+PPBl@hVcV(AC*^kU*C3hH5VRw zYU+4!ZtvgACtWo$0kPllbY}L)k55faL9#Gz5bL|-66n9pf_C)L9`E1QB zEc^g(+sx8NG(64Cy=z3^sj+AuY*CZJA|`C6t|u_weQ`_|Z-Z3+8$3v=^I*_V$4L?t zDF~q)M_1H4r6WhqqeN|Mi~XY$mHzRNalsCqokMDgH7q{z1ztk{ldZ&J;vqTt3 z`hzCFEtH<`DBX|QsVU1p+9(V|&mP1S0iZ}x(Rp`iyQ^0NGaw&V2Fi|sx}F}-R=3d( zwT*z83wf3(5=iX$N|8%kJTP#q;u;8d}wdohIxb>83_fIPD<@#xMdZFE0;2Gfbc1Q95N8 zjqrDQM0tSdu0$s+bt;-}_I%xuU{CB*!E>G%px1Z}xHl)~Cv3nl6j=NG2CW>r6cU|? zu&{c-{lg_FZvhSen4P6xr+vOdnoxa|J+4G5jo=yWfPJXA}~qyNccUx%M!HE*egeF|jD{%i|NOOa7gY)nibto5#6 zmuzPH^jnM*b1xJm^3u|k0y(f*2d%uFeV-}(B!Cx@^PRzpDwpQ9YL={?b6%Oh50nBaD>w}(qc_^u^l z;Z0RAjYq)sOExwSl9D2~RC@Ea4$a%2hU3*aWf#u1-G_dZZ~dD?p@5T093txNs5dh% z9iYAR;37~)5fL_S?)9-xEOw8}%E|zB+RNou1_zVN%F1FU%4I@;9)e_{@a};90w}J2 zW$$5aoEicaI6nYDpa^6qxVM0SO3W?cB9`OUV^HtEo!9)cXNAY+5j*iScdMdo#X#|X z5fKVSL6})0kk99eJ@KAZG?O|UJ%~=Krp5+cE0+1>`8oB1Bf)-GFc_Kxv8WAk#F0HB zL|cpK3C`Ell!KXh~Pkg9+eOi6WhBtJ1a|P=pt*7v9a;W>S||Km+Pq`K7VI< zk0`cl02~r8a1M&B&iPr>)Fh5^8BC3p!ALLUCOT1okl)`sri6!w`}XXL)(I-kSGLws&=Pb#w&V#UT#H#*&!$uk}a*Q82>64G9agz%@dy zXrb^E9DsJ+uW_6BnVcez1;K!8@lMT|8$9s^)M6-h?^wFO3^sDOb}fh@;2f$M=GhW5 zQqq-`6-ei5mHx6c(%dOUdjc9D&yZVQti8To8*MOF@tox5eU4X*h;2>Z71kvNuqmNO zhje#R1u)V#C!_ohv`eL#tz5d>dT)pE>B-Den_@GhP>d6{N*%TFg z*Pi~idV?DrL%jd&d#6-`ZkZl=zUyqvLlL4T zz+R_;E(o;+cyQj`NxvdOYnz&8kb)s33S}Exp=RHCPfS3-8S=L?S4SxwbWWXe1e5?Z z!<2%QH_sNynY@C6&X$%FI0~N6b8;dd9@5TCPbX8=I(>Q>f-NA1XuqHX@VLM3q?3-O z$x0NmVw6;)={UV($w&vJ?>jQ|wU|)a9;`MxeL6%hr>txPV-C%Ws&)tR#%n$csO{Bu zqNb&lf#uQt`z)-iOG`_^-%~YhFJG>PP(Ezbv|I8%SozI6NBlOE+UB86_rC1-VmB1BkSc@KCBt3;v=XrTfrlzL2 zg7w-QuH;l`fJ*e}Ll(ExArbrh#TxIsc{{E$*fSd|(yr^Y3=G;@-5|j}jvF9y>YK&P9eRI`$hE%OMQ1I%N1A>xM zKcFda_I&@8K|tc5D!NT$P+$%)$<`RHathIZ<>y1whx#jh8PjDWMGqc6l>VusgbH`m zy)cJNyQRK9EU$H7;PV30JE1bvln{2EeG#R`$&Dr_!EYDJywK}eFJ26n+<*A6cD$#* zzr}quslwXvdyzCh|I@-k6a%G@a^}B%d+|J`L1hQP)X4?(@fktz!l#3>G`$aHbd2g$ zA;cw5zAP>!+20Dk|gRvYt=y<-oR{f0OLqlT#1@E~Pwc8+EK zSMH7hjs!}E#0#jMv{@pc7It8gSo8xU4e!T$Wz;k@Y9PgSnn08Yk&%PCOSAqmAfYn` z1|+HYA5}|HCweBAfZ*U7u2=z z?m)4T>y7NIqh;S!dm9bZTRKv%6482XAU}YBkQ&OIhDpT>0B)SP@X?26S;1}kL1yOe zztQ?R)%I11NSeJ0=Wm`q{jjw3aQ@xd6S}ygf^hvoQOZZT4jvNnqxk`pO6cWnPDW^( z7GXRLHy<8la6V$PJGfYd>I)r=Rh7UG*n2=Q6#N&tf}p29CGNMZU}Cg9qpq%wUKKwC zcL&fwNTahqhP%jTAKribIQ#kY_gB8|Hs;{vO@8<=#Li#6LZ6$9fJjHgVn&Im0WM@6 zuAMvC*v6r!9(ucq-~ci=;3*EKD&f3}2G0Nm6I3MNL!tLYC}%3_VhB-7-H^9*4-Tsg z60X`$K}qT5?QK!)A|fXzCn`$yCoyaJfIiI#w5=(ai$XhWzw2iTdUm8hFbqJ_BO{w} zhk&l5o~OPLwSp} zG&RSGx!|XG5jwOGYoEpLY@i2!(*lu`%4zdQKscd)7I7-&%xA{e2i}hDLL}`<4!s8; zDuW8N44#qnBGLyBwlph%Zu+ml|`lV7f z*OekfnNxsCiVb(1TVw-Zcc;E=U7PzD zlwGo@;4fM_BmC}@jr+Hn6W=c639)Nbk}~O6GH2}Ft08=b(ca%ORb10RgQ=F3R+69p zbObLe1%+ltuNbXi#%)8l^6C>Dft4Ix^A-PmH!XKf_IuCH@eCaKIO$ycUhv>SHX3)V zb@E_;bFAaiW+6~bP<`Wo>z+MB(aT@to*g~jhm_35$jHdanSl8Nk$djkRh}8~4mCef zHV-?}uI#uo_+;hwjjD2I76Yp4!?M1K{II<`Ikb{|@6n?$3vv9!9ox49Y{#4o`?om{ z*`G;%T|$CuvMAGurJJ~K&;#h4@bI?38hRi;A>qgP_(AZ2fCVB-ng>Jk!Xm>mO#0|* zZ++19@qpqJo+5xuDUh|;v)c3^kfmb^|sd}!vEmSAdckof!w0whN7ahyMX z&775d1;GT+uz1gXp8Fp6^!9@8wkWwl({s9`^PimXRgG&qckU!3BLja>CI=oa zT#s6=UpPt0^MPR+9hJD7m@0>MBsq>n2V{R3e0rPzTzAsaSZV`GgM?PQE?{Uh^Ceu}IzpDLFZIL-}uZ4Sl$epj_D95;TM_ zI%duy8^CcB5^5PYmbR@|7@^=lhw|xys;U+6UW8RpRd^^6`5Bx(&8z5=@%V8sKtyvt zXAI44Z1@uyL+1C{cw%Q7m49hCvae(Lg1CYsDXHb5F{=j5HKW+ zNicYx!&DKnl;Pyx>+s<<#=ojz?$(7_WdL<(Ll})vNqk#-fu4X64!PirF2D>REjv#M zhzZ83kXmpI9Sm=x4F%$Y$wH_MHOzN2-Hvy79h5v^t^kM^lxr-&7TyT_PQN@ zh;+p0JD)S&2COoO$2~qdiIaoEc|{_{?G(IJSbV?19xAF4auyf#!;sVBo8>gcyoZti z^LJRD`6?}K1aRhmzY({9l8(ba;}v+~0ejd~f}u!)LDhgrhu@C5;I!OF;aQ`EZguYA zg9kA1AXn5cnj;h`bKZ-W(Id)0uhG%*9piRT+ZkT7dIwe$XESY~E&BOi0X_6r543V=9B6L9HlZ-0yN^}<5nJQ#zY0s0GS zfypg_@8Q~-*YLh6Omhm@3R!<~%xtp%uCun9t11JHA7ZG{pSpM$}pwNVQ;MllcxGG2*C=d`7go0Nd zW1JSfIO5?i+lD@5KtvpEcQ!Y-@*S^fJ3=p^b$#?k5C%2%s4u`|o=QH{N%JL40G=7s zM=$_{+PM724?~R^;7~*`gQin$`tz4B4D|F*FtqcU;_qcUd;1z;fcS(1;cL!a{9nIy zbU^+PUQ#kRk2t-wbR(D`0}-~MM>qjo1`1S<%AbSfeEXloaVIk4TN!ZU-1ER=I4DRR z(E-pK?kmw!c0@Ts%?%|4(VR`oC{yD9;>Kf1!Tr_4PA)Ff#y5qsb8_ftXizkrhJn|^ zhniz?j-ga5XYfO6YR15{IY@p&C9k0o2>Kj<2|RcbC&Ix{-f#pFF7^d5JWcb7dYFW( zoIdTQzm64xeSk-Z0Wn7mSi!vk=!k~-;+Of0(1c+4iC6x5Qc=+gyae(t*3!PS^&rNR z5rdwyOP(hhOF0vMQ9M6Ecv5#`LVNxo=J`%cW5KdB!X8dq)x)f&4GtJ@p+-gW;e8|8dfV3uARs?H=mS_q0_`8@k2vSt*`H?+`b{|Qu}dYB;v_+stP=DisYCdLji&Fmm=g%2K!?y(mAHX1a_gS){AVJBfh}l8yZ(4Yh9U^cY z15L)Q%i!q^pNXv%jO@V&M^9H50)XS^&->trISv#g9SujMhjSlD<;^3I8;clXpvA55G=?IQA z8em4!1vlIU+=}Jjzu_`7bnDbn{+b`ipyzk+c|MJ8dnAlC|- zrY0QkiwTqYzZ`-Z-`Ef%?{D7xXy^q(7Jf)pqZF489;JonozqZ*N=vul$f96HaPI7c z2P9YQI-X+kq0dSr`wx4PcTbOih*@zs9{*qqLNO*f(vho(LHq8U=72kh~$Xp`3@@_@P38h zf)DIEBo4R(GBV;c>I2%pFOYRWg-+tXQ0i)!{i;tbD(Z$b4aW+E==1Sv1pL$#gJBfd=s z8@{BF$IQ$Ogsde9D|laz@tIIwL4kK}Rs$J`^Web(bn}?r3oktP-|xxIN=+rHaQA6MB$8J7W|NZ^{_y6!=4A2w&11eJY+@Ox6M_05}ZcKUAS8 zO|KX45X50-YSaFK?~T$Kg+Hnp+^t{!LJ;0Tg>}6Dm|n-O;1M$l5-LZ zsh~B_Mp5QG5f|-(#k%5NxKJ>dt z9jJxu>SwEnG74Lq*2eCiLNg6`gHVJ!pzuCtNNiw$TVSv-bTPrt;REn%ax$!u>ENJq zycpy>SP1Q(RSES2w1cPd42fZ+YA~I(Qk@+gAF%@(_9&RS_dty6-lpxT_g-uWbp~E2 zNM=G7E%>*m}N*WZ}4KWSAI=8}KqnRZpsxe)UNC+Vs z(`|T4M|SU7A_y)N62a4$x!4E08D#2i(+d}TQMc-3!>LRozwqr_=AApWr)P12(Th1R z>E7Qh;7a>~+dK6VLIsFtg*c=z!v#oLVCaO?GT?I~)5gY9H1XoB{=CxW05Pf@S`dAuhvNd)x#Ol1s;gGWjR+I4h^?vsQ7$J)z{3>+%sp}BO!INO^H`^Ib zz*(lOPbr0m-!FZKVB%-Dw2kFHs&iX|<48}K@Mu-O%HA$R8NykSP44OqzL9PWsEMhU z<>H&ikPlbb>P+An;%LVQL)0@hW!HSGqrMq~kh3{bC)H_yAZ~ zvTtp5{qJ!m;BmsjLF2>`U+63mP!}vQ<&E@!G^0+fEeC;TDL@TC2*eosT;KcsIHm9? z1zLj=7QRajjg4L#E7Ef6S5G6s>FZb2Rq5{5=|?33OnRW$RrIacnkv6`rY5~SX2jzC z`h9FefRP)*$6T5|if#i6$OE)5%=GkTu=(peW`&Sb5J}GI>-!Hy*+=&RWcpo7rZJ+K zrZvvN)P6J@Yc4dE6&RUUK#jjgVS}#BO7=lOup_(@!AQ#JSNENYtGj>+zV0$l*-)XR z8MsK6JIg1%yw={?#^*CE-h((*Fpc4)PCqCb1VQGLmMX_; z$i_-wK*^uETSSD$4B`re1o9pZGx+zvvMArB=#EbI)z%=Rl{fqWbtZJ0Aa{J7Xe7U; zOI(}btwGe zQ{dl%2?Km*>*9cC^~n}PXLERgX`oPg(_Q&7i*|u~hLqf~W)4%<8D2Su89yWZzuE2e zPj7mcvhR_PX_Gf!+$W-)hMrD;Rl(x9$w}xlPA16I_V#l1oU&8pXMOty9R?sF)X&lA z9eO+00^JB`F~x7S$pY()K+*guQFId`oTTzaK2)RVjZN4oaqh-Y1xf0-#0%~o7uX76 zko=0GK86^Bf`X8{P;Ji91FmCUWq;#`6B7PbVv9CnfN>Llj?fGS+oUc;XI{5DN6Z^- zy}i_=FEJsdsMu3gH3FMP2q!gn!+b_8z|^iHg%nH*tW z33Ul{8gCL>7ypP;-Q_yCS5B_*8L!AM7}h|Y-M=}z4M>KwT_lAz3Ik0W2PJoaHNk#4 zOu=z~b^2c?Dtp&UwLL^PHYC^))vq@{yM-5&-Py!v(e#puRU8*qYA zo5A)3Fc%7v*mHe8-=co*jWoCODes7?;9+5rg(u^_3%ibZ_$TFLX4*o?6Ks<)i~bGb z@T0fZJUl(Eg1%dLFOJc~QQ`)H1Tk$uBog#UmkVA+ZY6N}H`aOKQ&oe!!5y!#3`gWk z-+p@?;yWbQtUn|6>kZE&PP$nXIaRi{&SRIUN(8%P=D)iyxSikQ*-*zpzv$TWGbm#g zoi+w{c<8I4BUpm$Cd7TX>^k~+jq~~MA1v&8!5siK4M(*qbDfJiyz*$2VWwHsAV(jp zn)(IXJ!$VphF|!5t=qiF1%6p8$X5h!2jF4&?Oy8chB2_62$skD|9iY$_-I2zmcpH9 zTYy?K1)(-ZBoB^^I&k;8S+3Qhk94bb{X7=+pwx?%LN)krV}mi3sVer!0zcN@b&vBJ{Y9^ZA@S_Y%tAm=1cH4> z@Ud@9$G;Lq520o(Jg`TvrqhcN8qg$ULHdg(gBuEwbJ4#L(AX-ebz&%olx zpxpo0KzBV%OvH`>9LOsfBj2`m68IgCrl_zmbWVi_V4xvnTVGQ{eOVjC3--1NN2g|SFdZ`)hWi?1L)p$xyWs{S>6 zAx-VZIu@J>c|*4GyoIvL+(YUD9glU*jbCUH0GFcr=FmedK%0Y{78;tZp9q=g#8-?m z0ipr`1;HyQ#i~nIc>@^4s5FY-01%*TEQ%AsWMCrvy*CrME|zE`ts;@oQB!Au_i{5Q zE|UgdG_*4|Kf!uHi-p1xU|Vo-@VCinBJ44_T|wZ$NBF(GTyO;hw1uW-h?Do4GWjP( zz&qfCK0LwH0dC>w$Owq#D2O0i9zT2e(i`UyLN#UUy#IcQAQ+!J0H~1nj^#6WuAne| zb!xy@8{-ZChrKrer?PF|M;ldWQkh$kqD07;7D6haQi{whQf8to6lE$yi>Oqh(nK;B zGLtEalqoV~%siB#4Eua|-}ig#efNLw|8eYN@83R-?>l_IeEn8yJ?nYy`?{~|yw3By z@Z}(+Ivr>Bx)($m_>+_&?P%f$fW334%=sVa@Q;?W3J}*4w4aNW$EgYV%H#9MnU z$q;aKL-YZ&@9mq@ZtDlTc`w|{HoZxA)!t3yV;lG1UB1NN0#CcGt@wr&g&PzWFpLzn zxO=SP3ELunYpHVJVO=ecvZ51vjxX=x*(Um>Y`NTuB?dBI+;~RhygfJ$kDZp1x@zI| zfa{*J>ZQwtB0-l66!}e^xW;E5N?%Q=Pm}XbXsi>^k;q=S#U$ihbMpC-lF4g#(k&DU z$5@-wd+N6u@$C(WqzX(HtO8++>w>EMJe|j?Qx)mA^nM17v1EMy5t)CepA|Y~r#WjrczP96P>#|@DK`Bq7FqZH^0lk^rI+Yurff=+@>{y4-aDeRHph8e)+#eY^Cis3 ze=2?dykYapD0y?f#sxm9NAk5!_;#F(N$}CW&l`8oU>?hILF0!D4s6@k#dIrXMeRoQ z%@zG}ObV^?Tn%xoy>SVQuVclHHO1&-8nx=)h1E$g&~9tDS_iqmbZqeyDf{I4P4#=f zV9(q8+nwb1UpL?BaCbWAi$+YsNy{4dca;9?_1`x>Q`6W7>-pEYKR!C;rxm0=6wwKF z96#9_t&v!NBIMws?+i5A#mlP;?csqPJBc)I@fu3N27145~%B?_9nxwea1#@@PFCZhGqv({8+oWCw~ zGugMt%=P4ob*GbRObW9f-!2vVs`fI}&^xt$?^qZ&r}Ls@-xPip-KS47uPZAD$1@1j zzh7&>dEKQnCse(TT1Ls-(jT?XK9zSvw#3Wk;IX{)`kgc>E0zzDO(|xRe9cx)tHZvZ zKVJy$(YW%`1UZ@U$>yKV4uru^iMyFR+jZ)y1M^v~cZBJ#J`s6n+gWUNWsR5OGg;5 zkPz9yCAo8l9=*^J(=#@X_7u}IT(i;C#@b=-7cnkzBFr8^gcacumHOk?9b96>2M~WN z&LtxJ=U+>3iHJzd{yn0tkdl+bzM~EZ$FuLW@2EJJ=pS#j@2H3{m#FApuhcqZY;H=K z`$T0cT&I`>*N#6vfq19G_BNEGrVd;>LWlS4E!7dnb}vp2FnV{2q@YE7ZyU*d1}n4UdNF+H+R zVfMW=jEv842_4029qb(`4u^?X;+-XMS+l=#&3yts_RoV!oVXu<9!zr|_s2KHn>ZRf z%s!6U%cmF8JZ*v#YNyyvdZGQMr_D||z>5pNE81Av*dMhuqTs>(=W>J;PCJ}AY-+D) zV`Xb&jmzMYq8C!eSGBjbAC6^vNP`6Z%R1Y-HU2r6(Hh$BC=F=LC2}b+WbLq6y4?m>jzc~@e zzN+N?8fVe@)|w$rot>iny}1h$e{%MFxaubbbC-@y$d=2ND~@K~5ex|U-#GUF$G!9w zkzRou1)C=_(ZIbXxt8J8;_nZ7+#jSczuWGmK(we%oS4`~WKkJF8t>_Z9N5fo>yt8& zX+Sj?*g4SAF?xt-Cr}j=EE_X+LI$`zvd8~H%27~|(Ay6WZ-m1rG13V*$QS|YT-%^Q zuiXyPanVY!dI7mb#fthi9z=Ey^mwAaX}Y7g*A;GO1hP%g&r4SFFMj?7IJHJ$`6*UC zv$dIb(awb$;VM}_`@(r8rN!@(XNaT|FMO1d(eUvsyo$(=B|WIB$QffRT%O9} z_GxPRymC1psOWo7RomC(&$oLp>QM&r>j~T;AeLv(jvo3L?KbnX2~Ck&y#tRDC*GO- z`4Q%Fz%9^KR^R}|uhqxksp%=o+8v`z^l1}oipwa@qM=1tReg&t`goQCyL`#PZ~B&-1v91_#s*9YP6zUAZ~mQgTBIeK`l_x@kmd$hv)9d?h!0H9Z@R z7m)Q@`T~Xyk*^DgyYTcb{MZMNNdJykhRU+xki=kB)%U z=XVwz4=dW8d@}D&LlPeQi{KO?8k~rpsNH#KT;MxC?&Q!r<9eY(q-6fwWhHN>T|Z!| zq*MU43Mx;+I}CLIZXq#kt*L1SfY8%DUJ64UDH)ql1J!1L;eaB(x~gibv;B$m25E;a zWHM)VUf*>oxslK|_u1!m@YA&-;5q`CzsLb;cI$tObg2dCyfS}&p66KSTS)VIlCs;Fdv3hFW`ye+=<8Q3feJr?y7dPAiWL`t;B*uv7ZW06>^@2K z9bdjY{(?S63^SCv`q1Ag)I2l;^6I>rUi33SGr&rj< z6c4kf>Y*1!G-Wj&xcF05rHjZn?whr@(@&1=xpC91pdf&(eEIUH$KT0?*2Nw@L$L`K=DeZ`ND|{mn1&tD;_zLoZFiAX@m)J!na1&B}RiEy|8Ia z)Zt+PN7IYtn?wX3#wP=L1-0Zvrn4h}190pKkQ3xU`?mc8`tZGpL8E4s0?R@mMp4?U zf`Hm6v~{7Z4|+@QwNX?QZYHY>{DSa3mo8f-PpQX$YHPu8;RixGbc__4@1?1BFAUDP z;6126R~wds`3FbEBNY~hT^;i4fMx80m`f%b{d1x(gNF<_Yn23@?{p_qlxtiNJt$6n7Bo9GXu5_S!R!Hq)&SFJ zkovE!3%YWoATbnd0M@9}=H{S1i~4db~>P zSTG+DYUxuSg{qHWLRfGxnnP?4dx1cM$QVzrdesD4zoJmISP4J`OZ|EgxSZh10pc+g zy1(Xjn@H>)CUnWcbTJZ*H)7?<*uOAkK}zYncPnIsELYN@WBh%fX+ypLPK$zYOCwS+ zr!dX*G9tsbv!_aRMm$YkK)EI+){DUvK%F5Che8>fO!>YFI9nJ|@ao*a1-OVH-bU!B z0e(YA(v!4(>sI+?1UdxtFIADH8pkL&tB*ZhM0wZ& zSONW7@JxIRnTMS~E)C_h&}jO^OKo_gGXiEh`eB~YO_-6p>Q$`*ltls%lSetD^xqo`{><490I}{_IZ&Wk6x-c2*@0 zRvhbYgdxM(-keF$&u}aw4BDMN`>wcncND@!PJaHv%;)qUp_>ZnGmAJ6Ca7c;IrL19 z`+STI_zL%K*ow$Mj0!BmN@=?A(<)eVX^IRjK?ZNbie9quS}AADM*EnXJHI4g*d|Ic zv}n_kG76h90)OWEPvg(2mvaCvecO~cipC6j8)L)6KR~!g&(=?28t8ps$SF9)KwLZWaS-5B1Z+{Qqj0vAP_ z(cb4^ZsSq6NP|dTs()XuIN;8wQy|)+<&Jitd99rwk{aDHm z99Wx{Hk{ekDHj)4^WD1JA$j`9R}fMigy`#FXIcenN##-;qdKNQj?Ce(S*IbNIdPT8GPAm#7dU$5;{y9o*DSr^qWOgWYOT9{LrlOvG zV(i$_Cy|aMo?YNDNnl9W!i66Aay+tN`;DNB4vO`3XZHP*#|$bjrpjQ%U1Ve{7B|uP ziiDTdF1Kk{*s2Qm;le?x7Djg%2QHi)9?bvv1agNw4Xbj>!(QZf6@=#Ppo)scwW8W^ z2#Qs`lrX2${UGpM6TI6tgW$KbhkNO&5iNQpYip2~OqZ-I85xd<5zrgpHfJffuo&rl z`(eW1)V7;t^9?4ehiBeDK0Ewr<=On}AW{PD1#c=}_@j-f>E>=RS=kFv_oH!?l$`8; z_3G%iZ(=)kXs6km!Xj@wm{$5%gYquv8eH|b{$@6&#Fn#|N zw;0S*!lfOf#QVKKo!!X8^ZqFo7yxpmLl_=O42>kiIY-%9Y$a@@nUxdE{tl^w>sR_1&F? zk%_FCzAokstxc(R`Dnnrd1DUIS}~)>lKv@}LAahj|Gqr>@N51G(a>&;>6k>+67lH1 zzAhl{(j+ocG?^2VlQCgQ__)vYs~CR{i=(c3thj*T)S-4h4e%&;J2`?IDRSJm?=?AE z$#x;+Ul;pw-@g9xHe#J6vDIH)I?u6T1I_g=`V|M|INzeR+gqPPXs)A0q=JX`ADB|R zOLPk_eOX5KGB1MRn3G5E5m8E*$d&v_wRFqtGp{tytG;S?3i)=~axP z5pk@YmOU$MhK_t$fuHA!Wy=WRX6)(VFb-qZdcqgwSl5>ba6!6 z<;6pMhb|5X>0u{9^HJNsU&;YfOVW0dLRuP*%3OvlNr4GTEoRFt;P4P#L))NUEM)`{ zM6C0g9t#m70TEa{66%1(`5^g%MWfE{r_K%LABVAR-)k3#)@&~zS92SUffI)=^?en% zYFCkIc6)67L(GXJy%O0-bv1KTO!uL-1PC#ZR;y=3=V~!qsINcXa>p3{%{34QxvFit zDogrc1Z&bB9G@)A%*L$UEGxgPDnln-YteN-6R@=Qs;}gb=tYxXei=jkOWb&FMQ;Hl zF&j57P!A~b2ImVw8omDA5)20PbvN{K$v3z=64s&=T-G6SrMrwOkkQnQ;s67C3A!r( zmbB#&ck{?MXn6EE;&^RCKs-m!T|EheR`9IVr|9=JKr8|}W>u9VZYdg8sGiWoS*lTG zgeH()qRAC33d~4~e)hf-NA6xm8mkE6-NGl3=szB0zXI|zns(90FB&HF60q4f1=^r28$`O7!(H~*CF zCRe%it|(ZqsH%XW{>025`k$DKgfJMG)f?*7bd!Jl-5qT3){I6|O`%0)6myj052VkKFd}+&-3Jhpk!N7`*wbvq_;qEJiBl>h zOzr>)H2|SM-!O!4MMSqIP6#l;V7$|e0stzai()XPVgnl%+scQ+=RX7`BP^=4eV%>Z zi5i>xerMS&kBUtD_5(PrN#^kR;kFZDeBxu?h7b-BjujXp0efEa@)5LiZh}z!eEK#u z>>wgn4mA}t`0t%5$KVDC1EW=gg>hV8p|}0)$c2!*?k-`BzvaBM1#fkN~3b58~l;0_4T;NF2B`>E{=HzXx?{SoBc;oejKjCQwflicmd{!3RFH6Cy$;si8mVSj`jl#4w~Y}r--Q)@G9s1k>!JEnE>2}*Z-95Y{X}9Ls=K(m z!dtf@V^<>*Z5Zc*-ypnDx(=m0cy${$Du^>?=dlw34`B{egH}6cW=I_NkSJQgW;DAU zhM_nmH!|mQu3t~gBkHO0X>oumk9(MPzQFCGJeU0<`EhZeBHyo__(VBjMEWz3Z|O*Q z99lH|-kHSE#GPoEy8!qf2-Dx=R-9JG%q-ABg<&IM0bt`u6vVFngW>7CaWWviT?C&~ zVT{OdEogwdz!(dSEkupkSKAowd_EVJduvk~dr{rd<~If<}!YU?DO z(?u#7T6B%E|;(49hZHEzC7 zyi1T5k^`Cn3~%3~-n(=p0KDioZ}N7=IQz1u-3bgN3Iz-cg_pL(M6s;ur2^m#iV6zX zf`eCAYUzGgxC|BPT`&=yEcAiSVZ;TFChR)+zD@wv0iuM!?1X|6YA^)-yp#@%wBb4D zmGaq$m7nDU-J(T?eJE&U;1FzW9UI?`dZW#mIGW@1&x8D%oD9E%$Vi@pp-2;qcTGH} zu4h5j(UGvJjAB)_&0KPkV8w)4X|jF7XRF&GYvOvQK7JLZi4!O39wBK_VPV^^D*Nj& ze#!=H8JJvyMfwyXFAXD1h@1al?LH$^`2Z(ko;^Dn0ic0-qPw*fLqhXFus5s&OI7eh zB1T(T1A~IDK~+U%&E7Azt#K5DRILKAZ{v?J5~2VIIG{m`mu~SZO)wf~AP$z>Y@&vr zKo7ou1BY3Eceihy#)gOfbrp@QDEX7Il-*Fmgi--WZ5hG&D?VWvaC{b{5Kub)#W9Y0 zUh-}4*78!?jIYy_RRs>;m*x>w+fy@kce>qwu1goe&N;&{GOk9MU8IT%)f=VKB|c!4 zV2-A4n!OV1t!vj3fusULX^nW>v)XC`)a{e%SCH1vw#cEI>9dV1~l z6&t5_qf9q5HLb!m3=-m%7HL+4U7+TW6{-Dd&&hpR(-K{%8g)?K;1T_?055^)vGNYw zr}O01Gvk(X2Q2j5UnqAcqAJf%Y>*J)30$r~;;yQu_7>h?7`(=Rz1!#5d0}rO@&(Md z){x*)i0Vn2x`+i1K33kWDIqm<0(7^V+q9rz|f+#D_^uQ90aWI9*NS}vKGY%l0kS?`uh75a*FF{?x-oGT%UzdEokKFLmk1cofCDzR&CU% zE0+T=aMZ8+{msN|agKs+3_uG}6S^XBy@2cxt`R7}flv1OO7s(em99&ho!*fn)i-$@ zrk5`e)Z<^U;89cI*#e@>B^Ip(cGIKNB+Z(ww5F1}wYTmEmtIVb@HOv#k^Ts!5Aa_2 z5$I;Q!rI`20fq*mfIoCw>@*ZxsJt>AzB17z+x@!6{`02ibb+S;fJ24*y6FzsuJwtg z45PbsI{v~`i7P-nuEx{Al1Wgw4^qcV*AIrX`Bl3a2%J7S3ladHuTvp+Y- zpG%a;lF*3yb2I<1Umj9Oot!+;8dnf-Y~ocKdFoMu{LtRBs>FVo180ep=Z`&6DMfo< z$igh~@fyBVqeSJ7xj*;oQzDD0if!*;gz^k5tp zMiEIMBg3)LyC`6k74`Pj-&fLIZW^pCz>x=dfsv1>9fDo}Lj+iXBnA5#5f2qOd*6T1 zVuZ85)~zB*vIZ1uef=y@er04}MSQg#R;A}p{Oc+=BW=5mW0y!M&@5;Nk9+ComqMlg z@{~0?%UYoj1Fsn=;nAZXpj+fRSDz&?+td7QFWeQTfkq2&aKJfc*4A0bSl~(>z-;#S z!|cypxu#Vi}I>1WsbB34#o?Q3f2&8_|VC(e*0hNGK{&k^t zbQT65@9~ z`7u6Ni~A&KxIkMGS*;=v3jgs9p1un#nn8~Ae|yKzl~Mnnyu6zG(GiT!A;!<4#kgM9 z6;8?Z<>f-~<$LfzL7Z-1Cz?vwS-Ym|Av=rHO}i8s$$mxg#PQ?a#bivnc>D=TE6|ex zXf|MKQBiRZXTQf{%uRrNrJ7P~TFdW7wcemB zW7ja&!?@BLwj+iTYi;V!;dq$KL;l>jv$PoPx85oEh=>ZBPoD7c=Dsi5Z<&wLN3b!0 zqvSES6H=SwUtqsumLu8Q=%+~8`}ZP%;I* zA@%|{;<}GCJ1{GB&1qkwE)&az)w^t)cYhm&=Pv24wQOu{`F zV{iCCEjr3SST)VDvKXcbNbB{vkA_I9ORBODzEG%DPb$gQ1-#NjZ&aEwWCg3Azi6-yXd zxdaG>uysQ!@GO9xho{b8(&D@>YyR;mCbYJk_d;`0X&G=+X=H}19%={F)L@dCGYVJJ zr$Vunn7wdjS^Y@;HdgOD?$^vnrAz*vDg1#Dt$It@^c1>w45CN(E$r@H9DJQ!T~bDQ zp4fnNOO`}h+7)}&C}3szlVsTWvdvFS@z&X+;)-95={uD9&jjtoYbv9E#sxq6Xz@edBFw7ijsDPYA;{s zpw8;XO?ctu4w3F}SdN$LfyYK_gLnW9Bgj*@p~Aogpl?KEg<-nB(irwNG>lKnL6?!n ze*0z%A_?4q5KvK<%R%D&G0I#O;|4D=_gNVlu3EodPhbD)(`uL%Ys|uN(hDqD^ffau zlcZ&&0njE+_<)`&IpY;>?qD*ZQ4X_L&CE*0&rmA|)@cq}9Y_j;b zI%8(Cr~GBh%U9CMWtZMomVOY=49H^;N0SxP%-$!bKFaG+UoH3c=SxAHsRC;rQ2iHb zoH%jCq+s zlPwF&7hi_U58NL-U|OgCu_wGnPxsO`-tAoXHhx*)yOjO?WtKf5$L81VsT=#LK)1=+ zP3h(nr}nPha%XNA-E2yEwMB~D`BnC_)x<^fA8<`MzVpWbGcCavrWWpSgl?XJ&?Ncv z2XFEXzG1CRvpmc$hHc9w zYu0zSz=I1-1Mma7BP%lt%M)@BA#D_jO{I=J#zz9)4$(1kPj$M17UI2U=~eZmKm4`< zd0tF{OPBmW!8)lpkQ3~rr$+fJWW>ZmYDg;Ur~*vHPmJ_%=-21sgRHlguUJ7xBX&w# zn;3va_*-D;8et6v_gZ+3y=B@#6*#2UCUSMPC*xj)B%E%TX$}6=;&Zv`P&S`BF-D?7 z5rj3Kn~;C#P@rHf8}#8LCV(g)kE&E#I#01+{4~R+!b4h8Z@|sL-11yy(1S!&V>#HE zn0B~LPvWq}$;uhrYEXA+F$1g{E}b4qvmVJg$;El7Danl1DEHQa)25f#s4Zdt>`!+w z<#9@N4yB8w19KD?IyG;}s0H@Mi7`a!16e&7#e{5uBYW3i{p^!aYfBi8tw4n7tGMrh zNh<=rM=?X^;Ka6_?cGaF+lT;<9>-4PvS``Q(+(3w%e)7pD8rX3ZS&bBC)Wh_7v@^S zdqQfBZ3S#!)xxA!%h|T1zdEK^dQZH;1=gvI`4jOc-?EnhrK`$>?$#${+4*db_^z6xDm2>CD5cf{@ zi43PcI%2)vf672B0`UgP#7oOMR8l8EF^Pn~KX&j19B!~65MH+rSue=zP+KwF2JKA~ z&YYy8O|02Q`E=w&IQpV{)zRMG;tpcjS)80swm9A1=rs=>Y6Sv|dIpU@R8>wtzHMFl zT(`u3*^uty{BbN#dBD$x<492u2tx&Vc~62x43^LH;cXV}n++xWF*b-v_F_%~RqBu} z(-+T+`3ZGuWV2$*G9H@JM&jq#K9XqW3p!FZ^JOp1+hAdIbkLDDNZE41H0J9eKAMhj z`{#aiWfXeQFW1I@K|Ha=twz9uLDUA(oJ=bg2xrAybVlD5Bzgid)n{wXBB}vl9^d2VTOxQh!ExL zy>hU#wLNS-Jvv-fRqW&pgo_Z9f-?Xk9plinG%Bb7xu-vGUK2>Zu-zktpbJ8K`_`i} zfeN0P(>knq*P~x01=|ve6-W%*XaDdMXtVSC=8h4vrlszZQBj9 zbTu?S#>ng?rD&iEiWhO3ICh?xK;br7FM^_OFwfHQr-QG?U%B6zc1e)%USMq(vf9R|kd+7A|a^ExT4 z7gQ~NoY(lrgCvnqkRhCXs;^(kE>>Jt76TC|gw5m7CK_#8uXj7OsJQh86sf$scGVXZ znb}36fliEJ!2aC*5=jo4z4_`|=#0rCJF2R$-z6b2D!%tiYAY997W#p2QO|=eol8@Z z{?_f?@+2B%^gI{1IcvQ~mXFqremYM>=?}>}FifaLBM#n4!u0?Ha%?7BD>Ju6FnJP_ z&T$irS;LSZp0u>Z#U@Sf2_fGQ{w0X_w1}u8b4kIbMJ)}RdxAfLJP&mjqEyD2#V(!y z*tE`0x^VH()0;w01I!yfVg2AEPv|@+=35|sTF`=uVhVVE-|Nm!j79wCs!_P}3kmrI z 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�>Dqe|X(#}V_e*S6~ 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%0Dq)9Q-giddyGE=C|! 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

uY$ZK3Rb=dFia_>UjE=S~mWDLx^AJ0D=jrhU;s| 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

=kL5)MUj>evO@zX?P7IL>-~o{7>@4_-Nswc` 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 E0M" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Training set areaUnderROC: 0.7621682343009717\n" + ] + } + ], + "source": [ + "trainingSummary = lr_fit_w.stages[-1].summary\n", + "roc = trainingSummary.roc.toPandas()\n", + "plt.plot(roc['FPR'],roc['TPR'])\n", + "plt.ylabel('False Positive Rate')\n", + "plt.xlabel('True Positive Rate')\n", + "plt.title('ROC Curve')\n", + "plt.grid(True)\n", + "plt.show()\n", + "print('Training set areaUnderROC: ' + str(trainingSummary.areaUnderROC))" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.0" + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "lr_fit_w.stages[-1].getRegParam()" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.0" + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "lr_fit_w.stages[-1].getElasticNetParam()" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [], + "source": [ + "prediction_lrb=(pred_lrb).toPandas()[\"prediction\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [], + "source": [ + "true_labels=us_test.toPandas()[\"Severity\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " precision recall f1-score support\n", + "\n", + " 0 0.74 0.91 0.81 131790\n", + " 1 0.65 0.34 0.44 64610\n", + "\n", + " micro avg 0.72 0.72 0.72 196400\n", + " macro avg 0.69 0.62 0.63 196400\n", + "weighted avg 0.71 0.72 0.69 196400\n", + "\n" + ] + } + ], + "source": [ + "# Classification report for calculating the metrics\n", + "print(classification_report(y_pred=prediction_lrb,y_true=true_labels))" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [], + "source": [ + "# stores all the co-efficients of the logistic regression\n", + "coef_L1_m=lr_fit_w.stages[-1].coefficients.toArray()" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [], + "source": [ + "# makes a datafram of the coefficients\n", + "feat_imp_tuned_lrt = pd.DataFrame(list(zip([i for i in us_train.columns if i!='Severity'], coef_L1_m)),\n", + " columns = ['column', 'weight']).sort_values('weight')" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Total number of features are 120\n", + "Eliminated features out of 120 are 0\n" + ] + } + ], + "source": [ + "# Printing the number of feature eliminated\n", + "coef_L1_m = np.absolute(coef_L1_m)\n", + "print('Total number of features are',len(coef_L1_m))\n", + "sorted_abs = np.sort(coef_L1_m)\n", + "weights_notzero = sorted_abs[sorted_abs == 0]\n", + "nonzero_weights = len(sorted_abs[sorted_abs == 0])\n", + "print('Eliminated features out of ' + str(len(coef_L1_m)) + ' are', len(weights_notzero))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# LR Binary Grid Search Model" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [], + "source": [ + "lr_new = LogisticRegression(labelCol=\"label\", featuresCol=\"centered_features\")" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [], + "source": [ + "# Define a grid for tuning the algorithm\n", + "#paramGrid_lr = ParamGridBuilder().addGrid(lr_new.regParam, [0.01, 0.8,0.03]).addGrid(lr_new.elasticNetParam, [0.1,0.4,0.7]).build()\n", + "paramGrid_lr = ParamGridBuilder().addGrid(lr_new.regParam, [0.01]).addGrid(lr_new.elasticNetParam, [0.1]).build()" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [], + "source": [ + "# Making the pipeline for prediction\n", + "cvModel_lrmu = Pipeline(stages=[label_stringIdx,va,center,lr_new])" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [], + "source": [ + "# Defining a evaluator for evaluating our prediction\n", + "evaluator_lrbt = BinaryClassificationEvaluator(labelCol='label',metricName='areaUnderROC')" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [], + "source": [ + "# Defining the cross validator for model\n", + "cv = CrossValidator(estimator=cvModel_lrmu, estimatorParamMaps=paramGrid_lr, evaluator=evaluator_lrbt, numFolds=5).fit(us_train)" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [], + "source": [ + "# Makes prediction on test set\n", + "pred_lrbt = cv.transform(us_test)" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Test Area Under ROC 0.7615211426502622\n" + ] + } + ], + "source": [ + "evaluator_lrb = BinaryClassificationEvaluator(labelCol='label',metricName='areaUnderROC')\n", + "print('Test Area Under ROC', evaluator_lrb.evaluate(pred_lrbt))" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Training set areaUnderROC: 0.7616980707233938\n" + ] + } + ], + "source": [ + "trainingSummary_t = cv.bestModel.stages[-1].summary\n", + "roc = trainingSummary_t.roc.toPandas()\n", + "plt.plot(roc['FPR'],roc['TPR'])\n", + "plt.ylabel('False Positive Rate')\n", + "plt.xlabel('True Positive Rate')\n", + "plt.title('ROC Curve')\n", + "plt.show()\n", + "print('Training set areaUnderROC: ' + str(trainingSummary_t.areaUnderROC))" + ] + }, + { + "cell_type": "code", + "execution_count": 42, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.01" + ] + }, + "execution_count": 42, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "cv.bestModel.stages[-1].getRegParam()" + ] + }, + { + "cell_type": "code", + "execution_count": 43, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.1" + ] + }, + "execution_count": 43, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "cv.bestModel.stages[-1].getElasticNetParam()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "cv.bestModel.stages[-1].extractParamMap()" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": {}, + "outputs": [], + "source": [ + "prediction_lrbt=(pred_lrbt).toPandas()[\"prediction\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": {}, + "outputs": [], + "source": [ + "true_labels=us_test.toPandas()[\"Severity\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": {}, + "outputs": [], + "source": [ + "from sklearn.metrics import classification_report" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " precision recall f1-score support\n", + "\n", + " 0 0.73 0.92 0.81 131790\n", + " 1 0.66 0.31 0.42 64610\n", + "\n", + " micro avg 0.72 0.72 0.72 196400\n", + " macro avg 0.69 0.62 0.62 196400\n", + "weighted avg 0.71 0.72 0.69 196400\n", + "\n" + ] + } + ], + "source": [ + "print(classification_report(y_pred=prediction_lrbt,y_true=true_labels))" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Accuracy: 0.7195977596741344\n" + ] + } + ], + "source": [ + "# calculates the accuracy\n", + "true_labels=us_test.toPandas()[\"Severity\"]\n", + "evaluator_lrbt.evaluate(pred_lrbt)\n", + "binary_prediction=pred_lrbt.select(\"prediction\").collect()\n", + "binary_true_labels=us_test.select(\"Severity\").collect()\n", + "print(\"Accuracy:\",np.sum(list([int(binary_true_labels[i][0]==binary_prediction[i][0]) for i in range(len(true_labels))]))/len(true_labels))" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": {}, + "outputs": [], + "source": [ + "# stores all coefficients of the LR model\n", + "coef_L1_m=cv.bestModel.stages[-1].coefficients.toArray()" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "metadata": {}, + "outputs": [], + "source": [ + "# Makes a dataframe of the variables and their respective coefficients\n", + "feat_imp_tuned_lrt = pd.DataFrame(list(zip([i for i in us_train.columns if i!='Severity'], coef_L1_m)),\n", + " columns = ['column', 'weight']).sort_values('weight')" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Total number of features are 120\n", + "Eliminated features out of 120 are 28\n" + ] + } + ], + "source": [ + "# Shows the number of features that our LR model eliminated\n", + "coef_L1_m = np.absolute(coef_L1_m)\n", + "print('Total number of features are',len(coef_L1_m))\n", + "sorted_abs = np.sort(coef_L1_m)\n", + "weights_notzero = sorted_abs[sorted_abs == 0]\n", + "nonzero_weights = len(sorted_abs[sorted_abs == 0])\n", + "print('Eliminated features out of ' + str(len(coef_L1_m)) + ' are', len(weights_notzero))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.5.4" + }, + "latex_envs": { + "LaTeX_envs_menu_present": true, + "autoclose": false, + "autocomplete": true, + "bibliofile": "biblio.bib", + "cite_by": "apalike", + "current_citInitial": 1, + "eqLabelWithNumbers": true, + "eqNumInitial": 1, + "hotkeys": { + "equation": "Ctrl-E", + "itemize": "Ctrl-I" + }, + "labels_anchors": false, + "latex_user_defs": false, + "report_style_numbering": false, + "user_envs_cfg": false + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/LR_Multiclass.ipynb b/LR_Multiclass.ipynb new file mode 100644 index 0000000..cac68a9 --- /dev/null +++ b/LR_Multiclass.ipynb @@ -0,0 +1,583 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "# import the requied libraries\n", + "from pyspark.sql import SparkSession\n", + "from pyspark.sql import Row\n", + "import numpy as np\n", + "import pandas as pd\n", + "from pyspark.sql.types import *\n", + "from pyspark.sql.functions import *\n", + "import matplotlib.pyplot as plt\n", + "from pyspark.sql import functions as fn\n", + "from pyspark.ml import feature, regression, evaluation, Pipeline\n", + "import seaborn as sns\n", + "from pyspark.ml.feature import VectorAssembler\n", + "from pyspark.ml import Pipeline\n", + "from pyspark.ml.regression import LinearRegression\n", + "from pyspark.ml import Pipeline\n", + "from pyspark.ml.feature import StringIndexer\n", + "from sklearn.metrics import classification_report\n", + "from pyspark.ml.stat import Correlation\n", + "from pyspark.ml.feature import VectorAssembler\n", + "from pyspark.ml.classification import LogisticRegression,RandomForestClassifier\n", + "from pyspark.ml.evaluation import BinaryClassificationEvaluator\n", + "from pyspark.ml.tuning import CrossValidator, ParamGridBuilder\n", + "from pyspark.ml.classification import LogisticRegression\n", + "from pyspark.ml.evaluation import MulticlassClassificationEvaluator\n", + "from pyspark.mllib.evaluation import MulticlassMetrics\n", + "spark = SparkSession.builder.getOrCreate()\n", + "sc = spark.sparkContext" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "# Do not delete or change this cell\n", + "\n", + "import os\n", + "\n", + "# Define a function to determine if we are running on data bricks\n", + "# Return true if running in the data bricks environment, false otherwise\n", + "def is_databricks():\n", + " # get the databricks runtime version\n", + " db_env = os.getenv(\"DATABRICKS_RUNTIME_VERSION\")\n", + " \n", + " # if running on data bricks\n", + " if db_env != None:\n", + " return True\n", + " else:\n", + " return False\n", + "\n", + "# Define a function to read the data file. The full path data file name is constructed\n", + "# by checking runtime environment variables to determine if the runtime environment is \n", + "# databricks, or a student's personal computer. The full path file name is then\n", + "# constructed based on the runtime env.\n", + "# \n", + "# Params\n", + "# data_file_name: The base name of the data file to load\n", + "# \n", + "# Returns the full path file name based on the runtime env\n", + "#\n", + "def get_training_filename(data_file_name): \n", + " # if running on data bricks\n", + " if is_databricks():\n", + " # build the full path file name assuming data brick env\n", + " full_path_name = \"/FileStore/tables/%s\" % data_file_name\n", + " # else the data is assumed to be in the same dir as this notebook\n", + " else:\n", + " # Assume the student is running on their own computer and load the data\n", + " # file from the same dir as this notebook\n", + " full_path_name = data_file_name\n", + " \n", + " # return the full path file name to the caller\n", + " return full_path_name" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "# importing the train data\n", + "us_train = spark.read.csv(get_training_filename('USAccident_train_OHE.csv'), header = True, inferSchema = True)" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "# importing the test data\n", + "us_test = spark.read.csv(get_training_filename('USAccident_validation_OHE.csv'), header = True, inferSchema = True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Below we have converted class 2,3,4 to 0,1,2 for avoiding error while calculating the evaluation metrics" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "us_test=us_test.withColumn(\"Severity\",when(us_test[\"Severity\"]==2,0).otherwise(us_test[\"Severity\"]))" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "us_train=us_train.withColumn(\"Severity\",when(us_train[\"Severity\"]==2,0).otherwise(us_train[\"Severity\"]))" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "us_test=us_test.withColumn(\"Severity\",when(us_test[\"Severity\"]==3,1).otherwise(us_test[\"Severity\"]))" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "us_train=us_train.withColumn(\"Severity\",when(us_train[\"Severity\"]==3,1).otherwise(us_train[\"Severity\"]))" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "us_test=us_test.withColumn(\"Severity\",when(us_test[\"Severity\"]==4,2).otherwise(us_test[\"Severity\"]))" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "us_train=us_train.withColumn(\"Severity\",when(us_train[\"Severity\"]==4,2).otherwise(us_train[\"Severity\"]))" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "# Declaring the vector assembler\n", + "va = VectorAssembler().setInputCols([i for i in us_train.columns if i!='Severity']).setOutputCol('features')" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [], + "source": [ + "# Centering our data for logistic regression model\n", + "center = feature.StandardScaler(withMean=True, withStd=False, inputCol='features', outputCol='centered_features',)" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [], + "source": [ + "# Converting the labels from string to integers\n", + "label_stringIdx = StringIndexer(inputCol=\"Severity\", outputCol=\"label\")" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [], + "source": [ + "# Create initial LogisticRegression model\n", + "lr = LogisticRegression(labelCol=\"label\", featuresCol=\"centered_features\")\n", + "\n", + "# Train model with Training Data\n", + "lrModel = Pipeline(stages=[label_stringIdx,va, center, lr])\n", + "\n", + "lr_fit = lrModel.fit(us_train)" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [], + "source": [ + "# Creating a multiclass evaluator\n", + "evaluator_mul = MulticlassClassificationEvaluator(labelCol=\"label\", predictionCol=\"prediction\", metricName=\"accuracy\")" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Accuracy: 0.7213798370672098\n" + ] + } + ], + "source": [ + "print(\"Accuracy:\",evaluator_mul.evaluate(lr_fit.transform(us_test)))" + ] + }, + { + "cell_type": "code", + "execution_count": 52, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.0" + ] + }, + "execution_count": 52, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "lr_fit.stages[-1].getElasticNetParam()" + ] + }, + { + "cell_type": "code", + "execution_count": 53, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.0" + ] + }, + "execution_count": 53, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "lr_fit.stages[-1].getRegParam()" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [], + "source": [ + "prediction_lrm=(lr_fit.transform(us_test)).toPandas()[\"prediction\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [], + "source": [ + "true_labels=us_test.toPandas()[\"Severity\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " precision recall f1-score support\n", + "\n", + " 0 0.74 0.91 0.82 131790\n", + " 1 0.64 0.36 0.46 58617\n", + " 2 0.54 0.11 0.18 5993\n", + "\n", + " micro avg 0.72 0.72 0.72 196400\n", + " macro avg 0.64 0.46 0.49 196400\n", + "weighted avg 0.70 0.72 0.69 196400\n", + "\n" + ] + } + ], + "source": [ + "# prints the classification report for the evaluating our model\n", + "print(classification_report(y_pred=prediction_lrm,y_true=true_labels))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# LR Multiclass Grid Search Model " + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [], + "source": [ + "lr_new = LogisticRegression(labelCol=\"label\", featuresCol=\"centered_features\")" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [], + "source": [ + "# Creating a grid for tuning our model\n", + "#paramGrid_lr = ParamGridBuilder().addGrid(lr_new.regParam, [0.01, 0.04,0.07]).addGrid(lr_new.elasticNetParam, [0.2,0.5,0.8]).build()\n", + "paramGrid_lr = ParamGridBuilder().addGrid(lr_new.regParam, [0.01]).addGrid(lr_new.elasticNetParam, [0.2]).build()" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [], + "source": [ + "# Creates the pipeline for the model\n", + "cvModel_lrmu = Pipeline(stages=[label_stringIdx,va,center,lr_new])" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [], + "source": [ + "# define the evaluator for checking the accuracy of our model\n", + "evaluator_mul = MulticlassClassificationEvaluator(labelCol=\"label\", predictionCol=\"prediction\", metricName=\"accuracy\")" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [], + "source": [ + "# Create a cross validator of 6 folds\n", + "cv = CrossValidator(estimator=cvModel_lrmu, estimatorParamMaps=paramGrid_lr, evaluator=evaluator_mul, numFolds=5,seed=42).fit(us_train)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "cv.bestModel.stages[-1].extractParamMap()" + ] + }, + { + "cell_type": "code", + "execution_count": 42, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.2" + ] + }, + "execution_count": 42, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "cv.bestModel.stages[-1].getElasticNetParam()" + ] + }, + { + "cell_type": "code", + "execution_count": 43, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.01" + ] + }, + "execution_count": 43, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "cv.bestModel.stages[-1].getRegParam()" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Accuracy: 0.7184317718940937\n" + ] + } + ], + "source": [ + "print(\"Accuracy:\",evaluator_mul.evaluate(cv.bestModel.transform(us_test)))" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [], + "source": [ + "# stores the LR co-efficients of all the variable\n", + "coeft_L1_m=cv.bestModel.stages[-1].coefficientMatrix.toArray()" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Total number of features are 120\n", + "Eliminated features out of 120 are 105\n" + ] + } + ], + "source": [ + "# prints the total no of features eliminated\n", + "coef_L1_mul=cv.bestModel.stages[-1].coefficientMatrix.toArray()\n", + "coeft_L1_mb = np.squeeze(coeft_L1_m)\n", + "coef_one_b = coeft_L1_m[:][0]\n", + "coef_two_b = coeft_L1_m[:][1]\n", + "coef_three_b = coeft_L1_m[:][2]\n", + "coef_one_b = np.absolute(coef_one_b)\n", + "coef_two_b = np.absolute(coef_two_b)\n", + "coef_three_b = np.absolute(coef_three_b)\n", + "\n", + "print('Total number of features are',len(coef_three_b))\n", + "\n", + "sorted_abs = np.sort(coef_three_b)\n", + "weights_notzero = sorted_abs[sorted_abs == 0]\n", + "nonzero_weights = len(sorted_abs[sorted_abs == 0])\n", + "\n", + "print('Eliminated features out of ' + str(len(coef_three_b)) +' are', nonzero_weights)" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": {}, + "outputs": [], + "source": [ + "# gets the prediction by running on our test set\n", + "prediction_lrt=(cv.bestModel.transform(us_test)).toPandas()[\"prediction\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": {}, + "outputs": [], + "source": [ + "# stores the true label for using it to print the classification report below\n", + "true_labels=us_test.toPandas()[\"Severity\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " precision recall f1-score support\n", + "\n", + " 0 0.74 0.91 0.82 131790\n", + " 1 0.64 0.36 0.46 58617\n", + " 2 0.54 0.11 0.18 5993\n", + "\n", + " micro avg 0.72 0.72 0.72 196400\n", + " macro avg 0.64 0.46 0.49 196400\n", + "weighted avg 0.70 0.72 0.69 196400\n", + "\n" + ] + } + ], + "source": [ + "print(classification_report(y_pred=prediction_lrm,y_true=true_labels))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.5.4" + }, + "latex_envs": { + "LaTeX_envs_menu_present": true, + "autoclose": false, + "autocomplete": true, + "bibliofile": "biblio.bib", + "cite_by": "apalike", + "current_citInitial": 1, + "eqLabelWithNumbers": true, + "eqNumInitial": 1, + "hotkeys": { + "equation": "Ctrl-E", + "itemize": "Ctrl-I" + }, + "labels_anchors": false, + "latex_user_defs": false, + "report_style_numbering": false, + "user_envs_cfg": false + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/LR_Multiclass_Bal .ipynb b/LR_Multiclass_Bal .ipynb new file mode 100644 index 0000000..de405bb --- /dev/null +++ b/LR_Multiclass_Bal .ipynb @@ -0,0 +1,1059 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "from pyspark.sql import SparkSession\n", + "from pyspark.sql import Row\n", + "import numpy as np\n", + "import pandas as pd\n", + "from pyspark.sql.types import *\n", + "from pyspark.sql.functions import *\n", + "import matplotlib.pyplot as plt\n", + "from pyspark.sql import functions as fn\n", + "from pyspark.ml import feature, regression, evaluation, Pipeline\n", + "import seaborn as sns\n", + "from pyspark.ml.feature import VectorAssembler\n", + "from pyspark.ml import Pipeline\n", + "from pyspark.ml.regression import LinearRegression\n", + "from pyspark.ml.stat import Correlation\n", + "from pyspark.ml.feature import VectorAssembler\n", + "from pyspark.ml.classification import LogisticRegression,RandomForestClassifier\n", + "from pyspark.ml.evaluation import BinaryClassificationEvaluator\n", + "from pyspark.ml.tuning import CrossValidator, ParamGridBuilder\n", + "from pyspark.ml.classification import LogisticRegression\n", + "from pyspark.ml.evaluation import MulticlassClassificationEvaluator\n", + "from pyspark.ml import Pipeline\n", + "from pyspark.ml.feature import StringIndexer, VectorAssembler\n", + "spark = SparkSession.builder.getOrCreate()\n", + "sc = spark.sparkContext" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "# Do not delete or change this cell\n", + "\n", + "import os\n", + "\n", + "# Define a function to determine if we are running on data bricks\n", + "# Return true if running in the data bricks environment, false otherwise\n", + "def is_databricks():\n", + " # get the databricks runtime version\n", + " db_env = os.getenv(\"DATABRICKS_RUNTIME_VERSION\")\n", + " \n", + " # if running on data bricks\n", + " if db_env != None:\n", + " return True\n", + " else:\n", + " return False\n", + "\n", + "# Define a function to read the data file. The full path data file name is constructed\n", + "# by checking runtime environment variables to determine if the runtime environment is \n", + "# databricks, or a student's personal computer. The full path file name is then\n", + "# constructed based on the runtime env.\n", + "# \n", + "# Params\n", + "# data_file_name: The base name of the data file to load\n", + "# \n", + "# Returns the full path file name based on the runtime env\n", + "#\n", + "def get_training_filename(data_file_name): \n", + " # if running on data bricks\n", + " if is_databricks():\n", + " # build the full path file name assuming data brick env\n", + " full_path_name = \"/FileStore/tables/%s\" % data_file_name\n", + " # else the data is assumed to be in the same dir as this notebook\n", + " else:\n", + " # Assume the student is running on their own computer and load the data\n", + " # file from the same dir as this notebook\n", + " full_path_name = data_file_name\n", + " \n", + " # return the full path file name to the caller\n", + " return full_path_name" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "#Loading Train Data\n", + "\n", + "us_train = spark.read.csv(get_training_filename('USAccident_train_bal_cat.csv'), header = True, inferSchema = True)" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "#Loading Test Data\n", + "\n", + "us_test = spark.read.csv(get_training_filename('USAccident_val_bal_cate.csv'), header = True, inferSchema = True)" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "+--------+------+\n", + "|Severity| count|\n", + "+--------+------+\n", + "| 3|234445|\n", + "| 4|219519|\n", + "| 2|263497|\n", + "+--------+------+\n", + "\n" + ] + } + ], + "source": [ + "# Checking the balance of data in training dataset\n", + "\n", + "us_train.groupBy('Severity').count().show()" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "+--------+------+\n", + "|Severity| count|\n", + "+--------+------+\n", + "| 3| 58339|\n", + "| 4| 6121|\n", + "| 2|131724|\n", + "+--------+------+\n", + "\n" + ] + } + ], + "source": [ + "# Checking the balance of data in testing dataset\n", + "\n", + "us_test.groupBy('Severity').count().show()" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "# Assigning label 0 to severity 2 label for test dataset\n", + "\n", + "us_test=us_test.withColumn(\"Severity\",when(us_test[\"Severity\"]==2,0).otherwise(us_test[\"Severity\"]))" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "# Assigning label 0 to severity 2 label for train dataset\n", + "\n", + "us_train=us_train.withColumn(\"Severity\",when(us_train[\"Severity\"]==2,0).otherwise(us_train[\"Severity\"]))" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "# Assigning label 1 to severity 3 label for test dataset\n", + "\n", + "us_test=us_test.withColumn(\"Severity\",when(us_test[\"Severity\"]==3,1).otherwise(us_test[\"Severity\"]))" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "# Assigning label 1 to severity 3 label for train dataset\n", + "\n", + "us_train=us_train.withColumn(\"Severity\",when(us_train[\"Severity\"]==3,1).otherwise(us_train[\"Severity\"]))" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "# Assigning label 2 to severity 4 label for test dataset\n", + "\n", + "us_test=us_test.withColumn(\"Severity\",when(us_test[\"Severity\"]==4,2).otherwise(us_test[\"Severity\"]))" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [], + "source": [ + "# Assigning label 2 to severity 4 label for train dataset\n", + "\n", + "us_train=us_train.withColumn(\"Severity\",when(us_train[\"Severity\"]==4,2).otherwise(us_train[\"Severity\"]))" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [], + "source": [ + "# Vector Assembler to convert all features except Severity to a single column features for feeding it to input of model\n", + "\n", + "va = VectorAssembler().setInputCols([i for i in us_train.columns if i!='Severity']).setOutputCol('features')" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [], + "source": [ + "# Standard Scaler to standardize data for the Logistic Regression\n", + "\n", + "center = feature.StandardScaler(withMean=True, withStd=False, inputCol='features', outputCol='centered_features')" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [], + "source": [ + "# String Indexer to assign target Variable Severity name Label needed for the model to predict\n", + "\n", + "label_stringIdx = StringIndexer(inputCol=\"Severity\", outputCol=\"label\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Logistic Regression Multiclass Base Model" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [], + "source": [ + "# Create initial LogisticRegression model\n", + "lr = LogisticRegression(labelCol=\"label\", featuresCol=\"centered_features\")\n", + "\n", + "# LR model pipeline \n", + "\n", + "lrModel = Pipeline(stages=[label_stringIdx,va, center, lr])\n", + "\n", + "# Fir the training data using the LR model \n", + "\n", + "lr_fit = lrModel.fit(us_train)" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [], + "source": [ + "# Evaluator for Evaluating the model performance\n", + "\n", + "evaluator_mul = MulticlassClassificationEvaluator(labelCol=\"label\", predictionCol=\"prediction\", metricName=\"accuracy\")" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Accuracy is 0.5680891408065898\n" + ] + } + ], + "source": [ + "# Accuracy calculation for the model on test data\n", + "\n", + "print(\"Accuracy is\",evaluator_mul.evaluate(lr_fit.transform(us_test)))" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [], + "source": [ + "# Prediction output from the model to pandas\n", + "\n", + "prediction_lrm=(lr_fit.transform(us_test)).toPandas()[\"prediction\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [], + "source": [ + "# True Labels from test data for Target Variable\n", + "\n", + "true_labels=us_test.toPandas()[\"Severity\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [], + "source": [ + "# Initializing Classification Report from sklearn\n", + "\n", + "from sklearn.metrics import classification_report" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " precision recall f1-score support\n", + "\n", + " 0 0.89 0.48 0.62 131724\n", + " 1 0.51 0.74 0.61 58339\n", + " 2 0.14 0.93 0.24 6121\n", + "\n", + " accuracy 0.57 196184\n", + " macro avg 0.51 0.71 0.49 196184\n", + "weighted avg 0.75 0.57 0.60 196184\n", + "\n" + ] + } + ], + "source": [ + "# Classification Report Generation for all metrics display at once\n", + "\n", + "print(classification_report(y_pred=prediction_lrm,y_true=true_labels))" + ] + }, + { + "cell_type": "code", + "execution_count": 102, + "metadata": {}, + "outputs": [], + "source": [ + "# Weights/coefficients for All variables assigned by LR Model \n", + "\n", + "coef_L1_mul=lr_fit.stages[-1].coefficientMatrix.toArray()" + ] + }, + { + "cell_type": "code", + "execution_count": 103, + "metadata": {}, + "outputs": [], + "source": [ + "# Combining the 3 arrays of coefficient matrix to 1 array\n", + "\n", + "coeft_L1_mb = np.squeeze(coeft_L1_m)" + ] + }, + { + "cell_type": "code", + "execution_count": 104, + "metadata": {}, + "outputs": [], + "source": [ + "# Extract 1st array of coefficients with features equal to number of columns\n", + "\n", + "coef_one_b = coeft_L1_m[:][0]" + ] + }, + { + "cell_type": "code", + "execution_count": 106, + "metadata": {}, + "outputs": [], + "source": [ + "# Extract 2nd array of coefficients with features equal to number of columns\n", + "\n", + "coef_two_b = coeft_L1_m[:][1]" + ] + }, + { + "cell_type": "code", + "execution_count": 107, + "metadata": {}, + "outputs": [], + "source": [ + "# Extract 3rd array of coefficients with features equal to number of columns\n", + "\n", + "coef_three_b = coeft_L1_m[:][2]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Number of Features Eliminated by L1 Regularization for Base Model" + ] + }, + { + "cell_type": "code", + "execution_count": 118, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Total number of features for 1st class are 119\n", + "Total number of features for 2nd class are 119\n", + "Total number of features for 3rd class are 119\n", + "Eliminated features for 1st class out of 119 are 60\n", + "Eliminated features for 2nd class out of 119 are 84\n", + "Eliminated features for 3rd class out of 119 are 64\n" + ] + } + ], + "source": [ + "# Taking the absolute value of the weights and calculating how many features were eliminated by the model for each class each array\n", + "\n", + "coef_one_b = np.absolute(coef_one_b)\n", + "coef_two_b = np.absolute(coef_two_b)\n", + "coef_three_b = np.absolute(coef_three_b)\n", + "\n", + "print('Total number of features for 1st class are',len(coef_one_b))\n", + "print('Total number of features for 2nd class are',len(coef_two_b))\n", + "print('Total number of features for 3rd class are',len(coef_three_b))\n", + "\n", + "sorted_abs_1 = np.sort(coef_one_b)\n", + "sorted_abs_2 = np.sort(coef_two_b)\n", + "sorted_abs_3 = np.sort(coef_three_b)\n", + "\n", + "weights_notzero_1 = sorted_abs_1[sorted_abs_1 == 0]\n", + "nonzero_weights_1 = len(sorted_abs_1[sorted_abs_1 == 0])\n", + "\n", + "weights_notzero_2 = sorted_abs_2[sorted_abs_2 == 0]\n", + "nonzero_weights_2 = len(sorted_abs_2[sorted_abs_2 == 0])\n", + "\n", + "weights_notzero_3 = sorted_abs_3[sorted_abs_3 == 0]\n", + "nonzero_weights_3 = len(sorted_abs_3[sorted_abs_3 == 0])\n", + "\n", + "print('Eliminated features for 1st class out of ' + str(len(coef_one_b)) +' are', nonzero_weights_1)\n", + "print('Eliminated features for 2nd class out of ' + str(len(coef_two_b)) +' are', nonzero_weights_2)\n", + "print('Eliminated features for 3rd class out of ' + str(len(coef_three_b)) +' are', nonzero_weights_3)" + ] + }, + { + "cell_type": "code", + "execution_count": 122, + "metadata": {}, + "outputs": [], + "source": [ + "# Pandas dataframe of weights of variables with variable names to find which variables are eliminated for 1st class\n", + "\n", + "feat_imp_tuned_lrb1 = pd.DataFrame(list(zip([i for i in us_train.columns if i!='Severity'], coef_one_b)),\n", + " columns = ['column', 'weight']).sort_values('weight')" + ] + }, + { + "cell_type": "code", + "execution_count": 123, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
columnweight
0Hour_Index_80.0
85clear0.0
49day_of_week_Index_30.0
48day_of_week_Index_40.0
47day_of_week_Index_10.0
86whirl0.0
88light0.0
84cloud0.0
89heavy0.0
90thunderstorm0.0
\n", + "
" + ], + "text/plain": [ + " column weight\n", + "0 Hour_Index_8 0.0\n", + "85 clear 0.0\n", + "49 day_of_week_Index_3 0.0\n", + "48 day_of_week_Index_4 0.0\n", + "47 day_of_week_Index_1 0.0\n", + "86 whirl 0.0\n", + "88 light 0.0\n", + "84 cloud 0.0\n", + "89 heavy 0.0\n", + "90 thunderstorm 0.0" + ] + }, + "execution_count": 123, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Sample of 10 features eliminated by the Logistic Regression Model after L1 Regularization for class 1\n", + "\n", + "feat_imp_tuned_lrb1[:10]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# LR Multiclass Grid Search Model " + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": {}, + "outputs": [], + "source": [ + "# Logistic Regression Pipeline initialization\n", + "\n", + "lr_new = LogisticRegression(labelCol=\"label\", featuresCol=\"centered_features\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Grid Search for tuning the hyper parameters of Logistic Regression Model\n", + "\n", + "paramGrid_lr = ParamGridBuilder().addGrid(lr_new.regParam, [0.01, 0.04,0.07]).addGrid(lr_new.elasticNetParam, [0.2,0.5,0.8]).build()" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": {}, + "outputs": [], + "source": [ + "# Creating pipeline to be used for fitting the training data\n", + "\n", + "cvModel_lrmu = Pipeline(stages=[label_stringIdx,va,center,lr_new])" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": {}, + "outputs": [], + "source": [ + "# Initializing Multiclass Evaluator for evaluating the model performance\n", + "\n", + "from pyspark.ml.evaluation import MulticlassClassificationEvaluator\n", + "\n", + "evaluator_mul = MulticlassClassificationEvaluator(labelCol=\"label\", predictionCol=\"prediction\", metricName=\"accuracy\")" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": {}, + "outputs": [], + "source": [ + "# Cross validator pipeline initialization for 5-fold cross validation and fitting the train data\n", + "\n", + "cv = CrossValidator(estimator=cvModel_lrmu, estimatorParamMaps=paramGrid_lr, evaluator=evaluator_mul, numFolds=5,seed=42).fit(us_train)" + ] + }, + { + "cell_type": "code", + "execution_count": 113, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{Param(parent='LogisticRegression_63e671446ece', name='aggregationDepth', doc='suggested depth for treeAggregate (>= 2).'): 2,\n", + " Param(parent='LogisticRegression_63e671446ece', name='elasticNetParam', doc='the ElasticNet mixing parameter, in range [0, 1]. For alpha = 0, the penalty is an L2 penalty. For alpha = 1, it is an L1 penalty.'): 0.2,\n", + " Param(parent='LogisticRegression_63e671446ece', name='featuresCol', doc='features column name.'): 'centered_features',\n", + " Param(parent='LogisticRegression_63e671446ece', name='fitIntercept', doc='whether to fit an intercept term.'): True,\n", + " Param(parent='LogisticRegression_63e671446ece', name='labelCol', doc='label column name.'): 'label',\n", + " Param(parent='LogisticRegression_63e671446ece', name='predictionCol', doc='prediction column name.'): 'prediction',\n", + " Param(parent='LogisticRegression_63e671446ece', name='probabilityCol', doc='Column name for predicted class conditional probabilities. Note: Not all models output well-calibrated probability estimates! These probabilities should be treated as confidences, not precise probabilities.'): 'probability',\n", + " Param(parent='LogisticRegression_63e671446ece', name='rawPredictionCol', doc='raw prediction (a.k.a. confidence) column name.'): 'rawPrediction',\n", + " Param(parent='LogisticRegression_63e671446ece', name='standardization', doc='whether to standardize the training features before fitting the model.'): True,\n", + " Param(parent='LogisticRegression_63e671446ece', name='threshold', doc='Threshold in binary classification prediction, in range [0, 1]. If threshold and thresholds are both set, they must match.e.g. if threshold is p, then thresholds must be equal to [1-p, p].'): 0.5,\n", + " Param(parent='LogisticRegression_63e671446ece', name='family', doc='The name of family which is a description of the label distribution to be used in the model. Supported options: auto, binomial, multinomial'): 'auto',\n", + " Param(parent='LogisticRegression_63e671446ece', name='maxIter', doc='max number of iterations (>= 0).'): 100,\n", + " Param(parent='LogisticRegression_63e671446ece', name='regParam', doc='regularization parameter (>= 0).'): 0.01,\n", + " Param(parent='LogisticRegression_63e671446ece', name='tol', doc='the convergence tolerance for iterative algorithms (>= 0).'): 1e-06}" + ] + }, + "execution_count": 113, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Best Model Hyper Parameters \n", + "\n", + "cv.bestModel.stages[-1].extractParamMap()" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Accuracy is 0.5427251967540676\n" + ] + } + ], + "source": [ + "# Accuracy of the model on the testing data\n", + "\n", + "print(\"Accuracy is\",evaluator_mul.evaluate(cv.bestModel.transform(us_test)))" + ] + }, + { + "cell_type": "code", + "execution_count": 95, + "metadata": {}, + "outputs": [], + "source": [ + "# Coefficient matrix from Logistic Regression for each variable weight\n", + "\n", + "coeft_L1_m=cv.bestModel.stages[-1].coefficientMatrix.toArray()" + ] + }, + { + "cell_type": "code", + "execution_count": 96, + "metadata": {}, + "outputs": [], + "source": [ + "# Combining the 3 arrays of coefficient matrix to 1 array\n", + "\n", + "coeft_L1_m = np.squeeze(coeft_L1_m)" + ] + }, + { + "cell_type": "code", + "execution_count": 97, + "metadata": {}, + "outputs": [], + "source": [ + "#Extract 1st array of coefficients with features equal to number of columns\n", + "\n", + "coef_one = coeft_L1_m[:][0]" + ] + }, + { + "cell_type": "code", + "execution_count": 99, + "metadata": {}, + "outputs": [], + "source": [ + "# Extract 2nd array of coefficients with features equal to number of columns\n", + "\n", + "coef_two = coeft_L1_m[:][1]" + ] + }, + { + "cell_type": "code", + "execution_count": 100, + "metadata": {}, + "outputs": [], + "source": [ + "# Extract 3rd array of coefficients with features equal to number of columns\n", + "\n", + "coef_three = coeft_L1_m[:][2]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Number of Features Eliminated by L1 Regularization for Grid Model" + ] + }, + { + "cell_type": "code", + "execution_count": 117, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Total number of features for 1st class are 119\n", + "Total number of features for 2nd class are 119\n", + "Total number of features for 3rd class are 119\n", + "Eliminated features for 1st class out of 119 are 60\n", + "Eliminated features for 2nd class out of 119 are 84\n", + "Eliminated features for 3rd class out of 119 are 64\n" + ] + } + ], + "source": [ + "# Taking the absolute value of the weights and calculating how many features were eliminated by the model for each class each array\n", + "\n", + "coef_one = np.absolute(coef_one)\n", + "coef_two = np.absolute(coef_two)\n", + "coef_three = np.absolute(coef_three)\n", + "\n", + "print('Total number of features for 1st class are',len(coef_one))\n", + "print('Total number of features for 2nd class are',len(coef_two))\n", + "print('Total number of features for 3rd class are',len(coef_three))\n", + "\n", + "sorted_abs_1 = np.sort(coef_one)\n", + "sorted_abs_2 = np.sort(coef_two)\n", + "sorted_abs_3 = np.sort(coef_three)\n", + "\n", + "weights_notzero_1 = sorted_abs_1[sorted_abs_1 == 0]\n", + "nonzero_weights_1 = len(sorted_abs_1[sorted_abs_1 == 0])\n", + "\n", + "weights_notzero_2 = sorted_abs_2[sorted_abs_2 == 0]\n", + "nonzero_weights_2 = len(sorted_abs_2[sorted_abs_2 == 0])\n", + "\n", + "weights_notzero_3 = sorted_abs_3[sorted_abs_3 == 0]\n", + "nonzero_weights_3 = len(sorted_abs_3[sorted_abs_3 == 0])\n", + "\n", + "print('Eliminated features for 1st class out of ' + str(len(coef_one)) +' are', len(weights_notzero_1))\n", + "print('Eliminated features for 2nd class out of ' + str(len(coef_two)) +' are', len(weights_notzero_2))\n", + "print('Eliminated features for 3rd class out of ' + str(len(coef_three)) +' are', len(weights_notzero_3))" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "metadata": {}, + "outputs": [], + "source": [ + "# Prediction output from the model to pandas\n", + "\n", + "prediction_lrmt=(cv.bestModel.transform(us_test)).toPandas()[\"prediction\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "metadata": {}, + "outputs": [], + "source": [ + "# True Labels from test data for Target Variable\n", + "\n", + "true_labels=us_test.toPandas()[\"Severity\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "metadata": {}, + "outputs": [], + "source": [ + "# Initializing Classification Report from sklearn\n", + "\n", + "from sklearn.metrics import classification_report" + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " precision recall f1-score support\n", + "\n", + " 0 0.90 0.43 0.58 131724\n", + " 1 0.51 0.76 0.61 58339\n", + " 2 0.13 0.95 0.22 6121\n", + "\n", + " accuracy 0.54 196184\n", + " macro avg 0.51 0.71 0.47 196184\n", + "weighted avg 0.76 0.54 0.58 196184\n", + "\n" + ] + } + ], + "source": [ + "# Classification Report Generation for all metrics display at once\n", + "\n", + "print(classification_report(y_pred=prediction_lrmt,y_true=true_labels))" + ] + }, + { + "cell_type": "code", + "execution_count": 128, + "metadata": {}, + "outputs": [], + "source": [ + "# Pandas dataframe of weights of variables with variable names to find which variables are eliminated for 3rd class for Grid\n", + "\n", + "feat_imp_tuned_lrt3 = pd.DataFrame(list(zip([i for i in us_train.columns if i!='Severity'], coef_three)),\n", + " columns = ['column', 'weight']).sort_values('weight')" + ] + }, + { + "cell_type": "code", + "execution_count": 129, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
columnweight
59month_of_year_Index_20.0
79Wind_Direction_Index_160.0
78Wind_Direction_Index_90.0
77Wind_Direction_Index_50.0
76Wind_Direction_Index_150.0
75Wind_Direction_Index_60.0
74Wind_Direction_Index_130.0
73Wind_Direction_Index_100.0
71Wind_Direction_Index_20.0
68Wind_Direction_Index_110.0
\n", + "
" + ], + "text/plain": [ + " column weight\n", + "59 month_of_year_Index_2 0.0\n", + "79 Wind_Direction_Index_16 0.0\n", + "78 Wind_Direction_Index_9 0.0\n", + "77 Wind_Direction_Index_5 0.0\n", + "76 Wind_Direction_Index_15 0.0\n", + "75 Wind_Direction_Index_6 0.0\n", + "74 Wind_Direction_Index_13 0.0\n", + "73 Wind_Direction_Index_10 0.0\n", + "71 Wind_Direction_Index_2 0.0\n", + "68 Wind_Direction_Index_11 0.0" + ] + }, + "execution_count": 129, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Sample of 10 features eliminated by the Logistic Regression Model after L1 Regularization for class 3\n", + "\n", + "feat_imp_tuned_lrt3[:10]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.4" + }, + "latex_envs": { + "LaTeX_envs_menu_present": true, + "autoclose": false, + "autocomplete": true, + "bibliofile": "biblio.bib", + "cite_by": "apalike", + "current_citInitial": 1, + "eqLabelWithNumbers": true, + "eqNumInitial": 1, + "hotkeys": { + "equation": "Ctrl-E", + "itemize": "Ctrl-I" + }, + "labels_anchors": false, + "latex_user_defs": false, + "report_style_numbering": false, + "user_envs_cfg": false + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/RFDT_Multiclass.ipynb b/RFDT_Multiclass.ipynb new file mode 100644 index 0000000..fd665cc --- /dev/null +++ b/RFDT_Multiclass.ipynb @@ -0,0 +1,2168 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "# imports the required library\n", + "from pyspark.sql import SparkSession\n", + "from pyspark.sql import Row\n", + "import numpy as np\n", + "import pandas as pd\n", + "from pyspark.sql.types import *\n", + "from pyspark.sql.functions import *\n", + "import matplotlib.pyplot as plt\n", + "from pyspark.sql import functions as fn\n", + "from pyspark.ml import feature, regression, evaluation, Pipeline\n", + "import seaborn as sns\n", + "from pyspark.ml.feature import VectorAssembler\n", + "from pyspark.ml import Pipeline\n", + "from pyspark.ml.regression import LinearRegression\n", + "from pyspark.ml.stat import Correlation\n", + "from pyspark.ml.feature import VectorAssembler\n", + "from pyspark.ml.classification import LogisticRegression,RandomForestClassifier\n", + "from pyspark.ml.evaluation import BinaryClassificationEvaluator\n", + "from pyspark.ml.tuning import CrossValidator, ParamGridBuilder\n", + "from pyspark.ml import Pipeline\n", + "from pyspark.ml.feature import OneHotEncoder, OneHotEncoderModel, StringIndexer, VectorAssembler\n", + "spark = SparkSession.builder.getOrCreate()\n", + "sc = spark.sparkContext" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "# Do not delete or change this cell\n", + "\n", + "import os\n", + "\n", + "# Define a function to determine if we are running on data bricks\n", + "# Return true if running in the data bricks environment, false otherwise\n", + "def is_databricks():\n", + " # get the databricks runtime version\n", + " db_env = os.getenv(\"DATABRICKS_RUNTIME_VERSION\")\n", + " \n", + " # if running on data bricks\n", + " if db_env != None:\n", + " return True\n", + " else:\n", + " return False\n", + "\n", + "# Define a function to read the data file. The full path data file name is constructed\n", + "# by checking runtime environment variables to determine if the runtime environment is \n", + "# databricks, or a student's personal computer. The full path file name is then\n", + "# constructed based on the runtime env.\n", + "# \n", + "# Params\n", + "# data_file_name: The base name of the data file to load\n", + "# \n", + "# Returns the full path file name based on the runtime env\n", + "#\n", + "def get_training_filename(data_file_name): \n", + " # if running on data bricks\n", + " if is_databricks():\n", + " # build the full path file name assuming data brick env\n", + " full_path_name = \"/FileStore/tables/%s\" % data_file_name\n", + " # else the data is assumed to be in the same dir as this notebook\n", + " else:\n", + " # Assume the student is running on their own computer and load the data\n", + " # file from the same dir as this notebook\n", + " full_path_name = data_file_name\n", + " \n", + " # return the full path file name to the caller\n", + " return full_path_name" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "# Loading the training data\n", + "us_train_cat = spark.read.csv(get_training_filename('USAccident_train_categorical.csv'), header = True, inferSchema = True)" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "# Loading the testing data\n", + "us_test_cat = spark.read.csv(get_training_filename('USAccident_validation_categorical.csv'), header = True, inferSchema = True)" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "# Assigning label 0 to severity 2 label for test dataset\n", + "us_test_cat=us_test_cat.withColumn(\"Severity\",when(us_test_cat[\"Severity\"]==2,0).otherwise(us_test_cat[\"Severity\"]))" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "# Assigning label 0 to severity 2 label for train dataset\n", + "\n", + "us_train_cat=us_train_cat.withColumn(\"Severity\",when(us_train_cat[\"Severity\"]==2,0).otherwise(us_train_cat[\"Severity\"]))" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "# Assigning label 1 to severity 3 label for test dataset\n", + "\n", + "us_test_cat=us_test_cat.withColumn(\"Severity\",when(us_test_cat[\"Severity\"]==3,1).otherwise(us_test_cat[\"Severity\"]))" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "# Assigning label 1 to severity 3 label for train dataset\n", + "\n", + "us_train_cat=us_train_cat.withColumn(\"Severity\",when(us_train_cat[\"Severity\"]==3,1).otherwise(us_train_cat[\"Severity\"]))" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "# Assigning label 2 to severity 4 label for test dataset\n", + "\n", + "us_test_cat=us_test_cat.withColumn(\"Severity\",when(us_test_cat[\"Severity\"]==4,2).otherwise(us_test_cat[\"Severity\"]))" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "# Assigning label 2 to severity 4 label for train dataset\n", + "\n", + "us_train_cat=us_train_cat.withColumn(\"Severity\",when(us_train_cat[\"Severity\"]==4,2).otherwise(us_train_cat[\"Severity\"]))" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "# Vector Assembler to convert all features except Severity to a single column features for feeding it to input of model\n", + "\n", + "va = VectorAssembler().setInputCols([i for i in us_train_cat.columns if i!='Severity']).setOutputCol('features')\n" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [], + "source": [ + "# String Indexer to assign target Variable Severity name Label needed for the model to predict\n", + "\n", + "label_stringIdx = StringIndexer(inputCol=\"Severity\", outputCol=\"label\")" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [], + "source": [ + "# Multiclass Evaluator to evaluate the performance of the model with 3 class prediction \n", + "\n", + "from pyspark.ml.evaluation import MulticlassClassificationEvaluator\n", + "\n", + "evaluator = MulticlassClassificationEvaluator(labelCol=\"label\", predictionCol=\"prediction\", metricName=\"accuracy\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Multiclass RF Base Model" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [], + "source": [ + "from pyspark.ml.classification import RandomForestClassifier\n", + "\n", + "# Create an initial RandomForest model.\n", + "rf = RandomForestClassifier(labelCol=\"label\", featuresCol=\"features\",seed=42)\n", + "\n", + "# Creating pipeline for RF Base Model \n", + "\n", + "rfModel = Pipeline(stages=[label_stringIdx,va, rf])" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [], + "source": [ + "# Train RF base model with Training Data\n", + "\n", + "rf_fit = rfModel.fit(us_train_cat)" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Accuracy: 0.6858234810872593\n" + ] + } + ], + "source": [ + "# Evaluation of model using Multiclass Evaluator on Test data\n", + "\n", + "print(\"Accuracy:\",evaluator.evaluate(rf_fit.transform(us_test_cat)))" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [], + "source": [ + "prediction_rfmu=(rf_fit.transform(us_test_cat)).toPandas()[\"prediction\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [], + "source": [ + "true_labels=us_test_cat.toPandas()[\"Severity\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [], + "source": [ + "from sklearn.metrics import classification_report" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " precision recall f1-score support\n", + "\n", + " 0 0.69 0.98 0.81 131571\n", + " 1 0.68 0.09 0.16 58293\n", + " 2 0.00 0.00 0.00 6115\n", + "\n", + " micro avg 0.69 0.69 0.69 195979\n", + " macro avg 0.45 0.36 0.32 195979\n", + "weighted avg 0.66 0.69 0.59 195979\n", + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "D:\\Anaconda\\envs\\tensorflow\\lib\\site-packages\\sklearn\\metrics\\classification.py:1143: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples.\n", + " 'precision', 'predicted', average, warn_for)\n", + "D:\\Anaconda\\envs\\tensorflow\\lib\\site-packages\\sklearn\\metrics\\classification.py:1143: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples.\n", + " 'precision', 'predicted', average, warn_for)\n", + "D:\\Anaconda\\envs\\tensorflow\\lib\\site-packages\\sklearn\\metrics\\classification.py:1143: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples.\n", + " 'precision', 'predicted', average, warn_for)\n" + ] + } + ], + "source": [ + "print(classification_report(y_pred=prediction_rfmu,y_true=true_labels))" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": { + "code_folding": [] + }, + "outputs": [], + "source": [ + "# Creating Pandas Dataframe for Features and their Importance of RF Base Model for Multiclass Classification\n", + "\n", + "pd.set_option('display.max_rows', None)\n", + "feat_imp_tuned_rfm = pd.DataFrame(list(zip([i for i in us_train_cat.columns if i!='Severity'], rf_fit.stages[-1].featureImportances)),\n", + " columns = ['column', 'weight']).sort_values('weight',ascending=False)" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Plotting top 10 Features from Feature Importance of RF Base Model for Multiclass Classification\n", + "\n", + "plt.figure(figsize=(10,10))\n", + "sns.barplot(x=feat_imp_tuned_rfm['column'][:10], y=feat_imp_tuned_rfm['weight'][:10],data=feat_imp_tuned_rfm)\n", + "plt.xticks(rotation=90)\n", + "plt.xlabel(\"Features\")\n", + "plt.ylabel(\"Weights\")\n", + "plt.title(\"Top 10 Features based on Importance from Random Forest\");" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Multiclass RF Grid Search Model" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [], + "source": [ + "# Create an initial RandomForest model.\n", + "\n", + "rf_new = RandomForestClassifier(labelCol=\"label\", featuresCol=\"features\",seed=42)\n", + "\n", + "# Creating pipeline for RF Grid Model \n", + "\n", + "rfModel_new = Pipeline(stages=[label_stringIdx,va, rf_new])" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [], + "source": [ + "# Creating Grid Search for Hyper Parameter Tuning\n", + "\n", + "#paramGrid_rf = ParamGridBuilder().addGrid(rf_new.numTrees, [10, 25, 60]).addGrid(rf_new.maxDepth, [3, 5, 10]).addGrid(rf_new.impurity,[\"entropy\", \"gini\"]).build()\n", + "\n", + "paramGrid_rf = ParamGridBuilder().addGrid(rf_new.numTrees, [60]).addGrid(rf_new.maxDepth, [10]).addGrid(rf_new.impurity,[\"entropy\"]).build()" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [], + "source": [ + "# Cross Validator with 5 fold and Grid Search to fit the training data\n", + "\n", + "cv_rf = CrossValidator(estimator=rfModel_new, estimatorParamMaps=paramGrid_rf, evaluator=evaluator, numFolds=5).fit(us_train_cat)" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": {}, + "outputs": [], + "source": [ + "# Transform Test data using Cross Validation Pipeline Built earlier for prediction of Test data\n", + "\n", + "pred_rft = cv_rf.transform(us_test_cat)" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Accuracy: 0.7203679986120962\n" + ] + } + ], + "source": [ + "# Evaluation of model using Multiclass Evaluator on Test data\n", + "\n", + "print(\"Accuracy:\",evaluator.evaluate(pred_rft))" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": {}, + "outputs": [], + "source": [ + "prediction_rf=cv_rf.transform(us_test_cat).toPandas()[\"prediction\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": {}, + "outputs": [], + "source": [ + "true_labels=us_test_cat.toPandas()[\"Severity\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": {}, + "outputs": [], + "source": [ + "from sklearn.metrics import classification_report" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " precision recall f1-score support\n", + "\n", + " 0 0.73 0.92 0.82 131571\n", + " 1 0.65 0.33 0.44 58293\n", + " 2 0.62 0.07 0.13 6115\n", + "\n", + " micro avg 0.72 0.72 0.72 195979\n", + " macro avg 0.67 0.44 0.46 195979\n", + "weighted avg 0.71 0.72 0.68 195979\n", + "\n" + ] + } + ], + "source": [ + "print(classification_report(y_pred=prediction_rf,y_true=true_labels))" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{Param(parent='RandomForestClassifier_d70a92d04e27', name='cacheNodeIds', doc='If false, the algorithm will pass trees to executors to match instances with nodes. If true, the algorithm will cache node IDs for each instance. Caching can speed up training of deeper trees.'): False,\n", + " Param(parent='RandomForestClassifier_d70a92d04e27', name='checkpointInterval', doc='set checkpoint interval (>= 1) or disable checkpoint (-1). E.g. 10 means that the cache will get checkpointed every 10 iterations. Note: this setting will be ignored if the checkpoint directory is not set in the SparkContext'): 10,\n", + " Param(parent='RandomForestClassifier_d70a92d04e27', name='featureSubsetStrategy', doc='The number of features to consider for splits at each tree node. Supported options: auto, all, onethird, sqrt, log2, (0.0-1.0], [1-n].'): 'auto',\n", + " Param(parent='RandomForestClassifier_d70a92d04e27', name='featuresCol', doc='features column name'): 'features',\n", + " Param(parent='RandomForestClassifier_d70a92d04e27', name='impurity', doc='Criterion used for information gain calculation (case-insensitive). Supported options: entropy, gini'): 'entropy',\n", + " Param(parent='RandomForestClassifier_d70a92d04e27', name='labelCol', doc='label column name'): 'label',\n", + " Param(parent='RandomForestClassifier_d70a92d04e27', name='maxBins', doc='Max number of bins for discretizing continuous features. Must be >=2 and >= number of categories for any categorical feature.'): 32,\n", + " Param(parent='RandomForestClassifier_d70a92d04e27', name='maxDepth', doc='Maximum depth of the tree. (>= 0) E.g., depth 0 means 1 leaf node; depth 1 means 1 internal node + 2 leaf nodes.'): 10,\n", + " Param(parent='RandomForestClassifier_d70a92d04e27', name='maxMemoryInMB', doc='Maximum memory in MB allocated to histogram aggregation.'): 256,\n", + " Param(parent='RandomForestClassifier_d70a92d04e27', name='minInfoGain', doc='Minimum information gain for a split to be considered at a tree node.'): 0.0,\n", + " Param(parent='RandomForestClassifier_d70a92d04e27', name='minInstancesPerNode', doc='Minimum number of instances each child must have after split. If a split causes the left or right child to have fewer than minInstancesPerNode, the split will be discarded as invalid. Should be >= 1.'): 1,\n", + " Param(parent='RandomForestClassifier_d70a92d04e27', name='numTrees', doc='Number of trees to train (>= 1)'): 60,\n", + " Param(parent='RandomForestClassifier_d70a92d04e27', name='predictionCol', doc='prediction column name'): 'prediction',\n", + " Param(parent='RandomForestClassifier_d70a92d04e27', name='probabilityCol', doc='Column name for predicted class conditional probabilities. Note: Not all models output well-calibrated probability estimates! These probabilities should be treated as confidences, not precise probabilities'): 'probability',\n", + " Param(parent='RandomForestClassifier_d70a92d04e27', name='rawPredictionCol', doc='raw prediction (a.k.a. confidence) column name'): 'rawPrediction',\n", + " Param(parent='RandomForestClassifier_d70a92d04e27', name='seed', doc='random seed'): 42,\n", + " Param(parent='RandomForestClassifier_d70a92d04e27', name='subsamplingRate', doc='Fraction of the training data used for learning each decision tree, in range (0, 1].'): 1.0}" + ] + }, + "execution_count": 33, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Best Model Hyper Parameters after tuning\n", + "\n", + "cv_rf.bestModel.stages[-1].extractParamMap()" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": {}, + "outputs": [], + "source": [ + "# Creating Pandas Dataframe for Features and their Importance of RF Grid Model for Multiclass Classification\n", + "\n", + "pd.set_option('display.max_rows', None)\n", + "feat_imp_tuned_rft = pd.DataFrame(list(zip([i for i in us_train_cat.columns if i!='Severity'], cv_rf.bestModel.stages[-1].featureImportances)),\n", + " columns = ['column', 'weight']).sort_values('weight',ascending=False)" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Text(0.5,1,'Top 10 Features based on Importance from Random Forest Grid Model')" + ] + }, + "execution_count": 35, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAnEAAAKzCAYAAABxrVuHAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvNQv5yAAAIABJREFUeJzs3XvcbvWc//HXu711IEm1kQ4KYRJC5RD5OY1thmpGUU7xi8aMGBNGxigTZjBj/IZp0FDOKmFmMyWMQ06lXdJxYsuhrWKTDko18fn9sdZdq9t92rv76rq/d6/n43E97mudP2vd17Wu97W+a60rVYUkSZLast64C5AkSdLaM8RJkiQ1yBAnSZLUIEOcJElSgwxxkiRJDTLESZIkNcgQJ41ZkgckuXHMNWyYpJJsPc461EnyiiQ/T/LrJHcadz2jlOQtSd437jpal+QDSf56mmG3+ft7bZaZZHmSVbdFXYuNIe52pP9AmHj8LslvBt3PmedlPSfJt/plfG6K4bsmOSvJtUm+nWSnGeZ1apLrJtX/0FtZ39iD0+3RQguLSS5L8phx1zHUh7a3Ao+tqo2r6prbePkP6P9HE++1i5IcclvWMAp9UPjdpP3IJ27jGuYUWJM8L8nKJNck+Vm/Lz1opmmq6gVV9bZ1rOvU/n9+/0n9P9f3f+S6zFejZ4i7Hek/EDauqo2BnwBPH/T76Dwv7pfA24F/njwgyUbAfwJHAXcFPgF8OsnSGeb3omH9VfWdea53rSRZL4nvn0bN8lobty2BJVV14VQDb6PafzvYVzwHeHOSx94Gyx21iybtR/Zd2xmMevsneR1diH8TcHe618PLgCfNMM2SeVj094DnD+Z5D+BBwJXzMG+NiB9CukmSjZIcmeTSJKuT/GOSO/TDlidZleTvklzefzufdgdYVZ+rqhOAS6cY/GTguqr6t6q6ni7s3RlY6yMiSXZK8qUkv0pyQZK9B8P+JMl3k1yV5MdJ/mYw6SnAkuGRvcnfkicfreu/rR6R5DTgWuCeSTZL8qH+iM7FSQ6fCHf99F9PcmWSNUk+NMu6vKTf9pckedmg/+5JTuvnc0mSd0x8kCRZkuRf+/lf2a/v/fthGyX5f31dlyV5V5INBvN9Xf8tfzXw3Flq2zbJif3//ntJDhgMe0uSjyb5eJKrk5ydZOeZ5jfFtMf1/4ezkmzfb8dfJPlRksdP+h+8MckZ/fp+MsldBsOfkeT8JFck+WKSHQbDLkvyqiTnAVelOwpzN+Dz/bJfnmRpP8+f9fP4cgZHJ5Ic22/Tk/t1/UaSew2GP2TwerwsySsH/6fX9++bX/TrvOkU2+NBwHe5+bV5Um4+evnnSX4AnNuP+7gkZ/bb4dQku07aTm9Id5T710k+lWTzJMenez+cmjkeDa2qbwHfB276nyY5LMkP+21wbpI/Hgx7SZL/TvLOfhv+IMmTBsPv22+3q5OcRPdFbrgNZvsfHpLkvH693p1kyyRf6Nfrc0k2mct6TVrmXPZ9r0/yM+Ddff8/6V/rVyT5WpIdB/N7fT+vq9Ltlx6bbt90CHBAX/u3p6hjC+D1wIur6j+q6tdV9buqWllVzxyMd2y/fT+f5BrgUX2/vx2MM+f3d+8jwHOSpO9+LnA8MNwHTrudZltmZtkfaR1VlY/b4QP4EfCkSf3eBnwN2ILuG+DpwOv6Ycvp3sz/AKxP963wWmD7WZZzMPC5Sf1eC3x6Ur8vAi+dZh6nAs+dov8mdCHxOcASYFfgcuC+/fAnAg+k+7LysH7Y8n7YA4AbJ83vLcD7Bt23GKev4yLg/sAdgKXAScC7gDvSfWP+DnBAP/6ngVcBATYCdp9m/R4AFPDBfryH9rU+ph++W79uS4D7AKuAl/TD9gK+1W+L9fr1vVs/7D3ACcCmwF2Ak4HD+2F7Az/tl70x8Mm+hq2nqfE04B3ABsAufX27D7bbtXThfEk/3lemmc+Gw+UMpn18vz2PA37Yb7eldEcgLpj0P/jxoO7PTPzPgJ2Aq4H/Q/cafT1wAbC0H34Z3Wv6nsBGg36PGcx/KXBAP+8N6T6wTx0MPxb4Od3r6Q799v1AP+yuwBq61/wG/f9k137YoXTvrXv28/0AcMwMr4cbp9hm/9X/LzeiC59XAc/sa35Bv+y7DLbTBcB2wGZ0Iex/gMcNtvO7Z1s+3Wv3scB1wFMH4zyL7vW+HvC8frtv0Q97CfC/dEd1lgB/BfxoMO2Z3LwfeWL//1+b/+HEPmpb4FfAt+mOGG0EfB14zTTrtRxYNc2wuez7juhr2gh4JN2+5+H9Oh5EdyRrKfAQuv3E3fvtd2/6/SST9jFT1LE38Bsgs+xXj6V7Dz6i/x9s0Pf723V8f59KF7pOAR7f9/su3b7oF8Aj57CdZlwmM++Ppv3f+Jj5MfYCfIzpHz91iPsp8IRB917A//TPl9PtyDccDF8BvHqW5UwV4t5M/8E36PdJ4NBp5nEqcA1wRf/4Zt//AOALk8b94Aw78fcA/9A/X9cQ9zeD7nv1dd1h0O+FwEn98+OBfwW2nGUbTYS47Qb93gkcOc34hwIf75//EXAeXdDLYJylwA3AVoN+j6cPRMDHgDcMhj14up08sEP/v99o0O8dwHsG2+2zg2EPA66YpvapQtxnBsP3pWuKT9+9rB9/InSdOqnuhwHXDF5XHxoMW0IXbCY+gC4Dnj2pnluEuCnqvQfwO/rXPd0H5b8Ohv8pcNbgf/+taebzQwYhHtieLrz83of1FK+7iW326EG/FwOnTJruO8B+g+30ysGwIxl8ceq386nT1DrxeryCLlAU8OZZXsP/Azylf/4S4NzBsM36eWwK3I/f3498iptD3Fz+h88YDP8v4B2D7lcDx05T43Lgt9y8H7kC2LMfNtu+b/L7/Bj68DLo92O6UPVAuoD3ePrwORhnthD3IgaBt+935uB/sdvgdXjUpPGGIW7O7+/B6+W5/fKPoTvqek4/bBjiZtpO0y6T2fdHhrh1fCzk80J0G+oPod+Dbkc04cfAVoPuNVV13aTh91yHxf2a7ijF0CZ038Cn82dV9ZFJ/e4F7JHkikG/pXTfzkmyO/D3wI5036A3AD68DvUOXTxp+RsCa25ugWA9uiNl0B2BeCPwnSQ/B942xTpMN+8f0zcv9800b6cLLBvRreM3+vFOovvQfS+wVZITgL+m++C8A3DeoLZwc9PIPYH/nrS86dyT7n//m0njP3HQfdng+bV038Tn6meD57/pl1WDboA7DZ5P3k53TNekek8G61FVv03yU275Gh5O+3vSNVO/hS6cbUEX4AJsTvcBBtOv6zbAD6aYZ/phJyapwaD1+vn+Yqaapqn9Fuvam/x+nbxdJ3fP9D/6bVVt2m+PvwaelmRpVd0IkORA4C/pjobRz2uLwfSTt9HEOBOvpcn7kTtPtV7T/A9vzXr9sKruO+wxx33fZVX1v4PuewHPTPLqQb/16ULKp5IcShdIH9A3GR9SVcM6p/NL4O5JMvEeqKqH9XX+glueAjXTa3lt3t9Dn+jrvh64xekfc9hOMy3znsy8P9I68pw4AdDvMC6j2zlN2JabP7gAtkiy4aThl6zD4s6ja3IAuosE6JpRzlvL+VwMfL6qNh08Nq6qV/TDj6drNtqmqu5C14Q1sQep358d19A1i064xxTjDKe7mC6Q3nWw/E0mdrpV9dOq+r90zU4vB45Osu3vz/Im2wyeD7ftv9N9G79PVW1C16yTfhlVVf9cVQ+l++b7ELoP10vpdpD3GdR2l6ravJ/npVMsbzqXAMvSXZAyHP+n04w/apPrvraqrqSr86bXb7qTvbfilnVO/r9P7n4h8Id0RwnuQheQ4ebXzUwupmvuvuUCuvfWxBGM4Wt1w6qaa4CbXOst1rU37/+TPrRNNH2+CCDJ/ehOITgI2KyqNqX74jKXbXQpU+9HJszlfziv5rjvm/w6uRg4bNL/845V9al+nh+sqkfTNaVuSHeRwlTzmezrdNvxj+ZS+gzD1ub9ffMMu/fRl4EDgY9OGjbbdpppmbPtj7SODHEa+jhweH8C9N2A19Gd7DrhDsDrk6yf5Al050B9cqoZpTuRe0O6o0brpTs5e+LI7xeAjfoToDegO2J1Dd0ObG38B/DQJM9Kcoe+rkcmuV//rXFj4JdVdV2SR9M1IU34Od3J48MdzVnA45NsleSuwGtmWnhV/ZCuGeJtSe6c7orVHdLfsqKv6579zm/iaOFM3zwP70/+fQjdeUbH9f3vDFxZVb9O8kC6pjT6ZTwyyS79tr2Grsnit/1Rg6OBf0myRTrbJHlyP+nxwIv6bbUxcNgMda0CzgbelGSDJA+ja8qe7yua5+oFg7rfwM3b6TjgT5Ls0Z9sfSjdkY2VM8zrZ3QftBPuTNfc90u6o39vmmqiafwHcN90FyCsn2ST3HyxwXuAtyTZBiDJ3ZI8fS3mPdkKutf+Pukuxng+3Yfm793O59bqX79vAV7bb9eN6Y5QrqF7b78EuO8Msxj6Hl3T68R+5PF0TWkT1uV/OB9m2/dNdhTwsv69lyQbJ9kzyR2T7JjuopMN6I4M/oauGRe619v2GRyOGqqqNXStB/+eZO9+vuv177kNp5pmGmvz/p7sVcDjqmqqL+gzbadplzmH/ZHWkSFOQ4cB59MdETuLrslueN+hH9GFkMvo3pAvrKqLppnXi+l2Xu+gC3u/oTs/jL5Zbi+6c2euAPYD9p5oqpmrqvoV8BS6oyeX0n2LfxPduSvVz/+fklxN1yT0iUnTvg04I93VZTvTnV/z2X4bnEr3oTyb/enO9fkfuhONj6M74RfgUf38f90v+6BpdozQ7eRPozt36nPAEVV1Sj/sr+h2jr+mO7fpuMF0m9IdYbyC7mTqH9OdTwfwin6brKS7TcDn6D9sq+rTdB9EX+trP3m6Fey35TPpmqUv65f/6qr62vSbZaQ+TPdh8lO6MPHKvs6z6Y4gvJcuYDwR2GuW19Wb6W6fcUWSg4H399NeBpzDWnyx6F9TT6Z7Pf8cuJCbr7h+G93FO1/qX4/fpGseXyd909yedB+iv6Q79/RpVXXFjBOuu0/RXazwgqo6ky6UrqR7323PHENW/1p6Ft2Rzsvp3pcfGQxfl//hfJht33cLVfUNuqPr76V7730PeDb9+Zt0pz/8gm77DAPNsXRH+y9P8s1p5n0E8Dd0F3X8nO61eGS/vLlu5zm/v6eYdnVVTVkbM2ynOSxz2v2R1t3EycPSjJIspzuh2zedxibJqXSvw5mOkkjS7YJH4iRJkhpkiJMkSWqQzamSJEkN8kicJElSg24XN/vdYostarvttht3GZIkSbM644wzflFVy2Yb73YR4rbbbjtWrhz1bYYkSZJuvSRz+pUNm1MlSZIaZIiTJElqkCFOkiSpQYY4SZKkBhniJEmSGmSIkyRJapAhTpIkqUGGOEmSpAYZ4iRJkhpkiJMkSWqQIU6SJKlBhjhJkqQGGeIkSZIaZIiTJElqkCFOkiSpQYY4SZKkBhniJEmSGmSIkyRJapAhTpIkqUGGOEmSpAaNNMQlWZ7kwiSrkhw6xfBDkpyf5Owk/53kXoNhByT5fv84YND/4UnO6ef5ziQZ5TpIkiQtRCMLcUmWAEcCTwV2BPZPsuOk0b4D7FJVDwZOAN7WT7sZcDjwCGA34PAkd+2neTdwELBD/1g+qnWQJElaqEZ5JG43YFVVXVRVNwDHAnsNR6iqL1fVtX3nqcDW/fOnAF+oqsur6lfAF4DlSbYENqmqb1VVAR8C9h7hOkiSJC1IowxxWwEXD7pX9/2mcyBw0izTbtU/n+s8JUmSFqWlI5z3VOeq1ZQjJs8FdgEeN8u0azPPg+iaXdl2221/b/jDX/2hqSZb0M74x+ePuwRJkrRAjPJI3Gpgm0H31sAlk0dK8iTgdcCeVXX9LNOu5uYm12nnCVBVR1XVLlW1y7Jly9Z5JSRJkhaiUYa404EdkmyfZH1gP2DFcIQkDwXeSxfgfj4YdDLwh0nu2l/Q8IfAyVV1KXB1kkf2V6U+H/jPEa6DJEnSgjSy5tSqujHJwXSBbAlwdFWdl+QIYGVVrQD+EdgY+ER/p5CfVNWeVXV5kjfSBUGAI6rq8v75nwMfADaiO4fuJCRJkm5nRnlOHFV1InDipH6HDZ4/aYZpjwaOnqL/SmCneSxTkiSpOf5igyRJUoMMcZIkSQ0yxEmSJDXIECdJktQgQ5wkSVKDDHGSJEkNMsRJkiQ1yBAnSZLUIEOcJElSgwxxkiRJDTLESZIkNcgQJ0mS1CBDnCRJUoMMcZIkSQ0yxEmSJDXIECdJktQgQ5wkSVKDDHGSJEkNMsRJkiQ1yBAnSZLUIEOcJElSgwxxkiRJDTLESZIkNcgQJ0mS1KCl4y5Ao/GTIx407hLW2raHnTPuEiRJaoZH4iRJkhpkiJMkSWqQIU6SJKlBhjhJkqQGGeIkSZIaZIiTJElqkCFOkiSpQYY4SZKkBhniJEmSGmSIkyRJapAhTpIkqUGGOEmSpAYZ4iRJkhpkiJMkSWqQIU6SJKlBhjhJkqQGGeIkSZIaZIiTJElqkCFOkiSpQUvHXYC0LnZ/1+7jLmGtfeNl3xh3CZKkRcQjcZIkSQ0yxEmSJDXIECdJktQgQ5wkSVKDDHGSJEkNMsRJkiQ1yBAnSZLUIEOcJElSgwxxkiRJDTLESZIkNcgQJ0mS1KCRhrgky5NcmGRVkkOnGL5HkjOT3Jhkn0H/xyc5a/C4Lsne/bAPJPnhYNjOo1wHSZKkhWjpqGacZAlwJPBkYDVwepIVVXX+YLSfAC8AXjWctqq+DOzcz2czYBXw+cEor66qE0ZVuyRJ0kI3shAH7AasqqqLAJIcC+wF3BTiqupH/bDfzTCffYCTqura0ZUqSZLUllE2p24FXDzoXt33W1v7AR+f1O/NSc5O8o4kG0w1UZKDkqxMsnLNmjXrsFhJkqSFa5QhLlP0q7WaQbIl8CDg5EHv1wIPAHYFNgNeM9W0VXVUVe1SVbssW7ZsbRYrSZK04I0yxK0Gthl0bw1cspbzeCbw6ar634keVXVpda4HjqFrtpUkSbpdGWWIOx3YIcn2SdanaxZdsZbz2J9JTan90TmSBNgbOHceapUkSWrKyEJcVd0IHEzXFHoBcHxVnZfkiCR7AiTZNclqYF/gvUnOm5g+yXZ0R/K+OmnWH01yDnAOsAXwplGtgyRJ0kI1yqtTqaoTgRMn9Tts8Px0umbWqab9EVNcCFFVT5jfKiVJktrjLzZIkiQ1yBAnSZLUIEOcJElSgwxxkiRJDTLESZIkNcgQJ0mS1CBDnCRJUoMMcZIkSQ0yxEmSJDXIECdJktQgQ5wkSVKDDHGSJEkNMsRJkiQ1yBAnSZLUIEOcJElSgwxxkiRJDTLESZIkNcgQJ0mS1CBDnCRJUoMMcZIkSQ0yxEmSJDXIECdJktQgQ5wkSVKDDHGSJEkNMsRJkiQ1yBAnSZLUIEOcJElSgwxxkiRJDTLESZIkNcgQJ0mS1CBDnCRJUoMMcZIkSQ0yxEmSJDXIECdJktQgQ5wkSVKDDHGSJEkNMsRJkiQ1yBAnSZLUIEOcJElSgwxxkiRJDTLESZIkNcgQJ0mS1CBDnCRJUoMMcZIkSQ0yxEmSJDXIECdJktQgQ5wkSVKDDHGSJEkNMsRJkiQ1yBAnSZLUIEOcJElSgwxxkiRJDTLESZIkNcgQJ0mS1CBDnCRJUoMMcZIkSQ0aaYhLsjzJhUlWJTl0iuF7JDkzyY1J9pk07LdJzuofKwb9t09yWpLvJzkuyfqjXAdJkqSFaGQhLskS4EjgqcCOwP5Jdpw02k+AFwAfm2IWv6mqnfvHnoP+bwXeUVU7AL8CDpz34iVJkha4UR6J2w1YVVUXVdUNwLHAXsMRqupHVXU28Lu5zDBJgCcAJ/S9PgjsPX8lS5IktWGUIW4r4OJB9+q+31xtmGRlklOTTAS1zYErqurG2eaZ5KB++pVr1qxZ29olSZIWtKUjnHem6FdrMf22VXVJknsDX0pyDnDVXOdZVUcBRwHssssua7NcSZKkBW+UR+JWA9sMurcGLpnrxFV1Sf/3IuArwEOBXwCbJpkIn2s1T0mSpMVilCHudGCH/mrS9YH9gBWzTANAkrsm2aB/vgWwO3B+VRXwZWDiStYDgP+c98olSZIWuJGFuP68tYOBk4ELgOOr6rwkRyTZEyDJrklWA/sC701yXj/5HwArk3yXLrS9parO74e9BjgkySq6c+TeP6p1kCRJWqhGeU4cVXUicOKkfocNnp9O1yQ6ebpvAg+aZp4X0V35Ki1aX93jceMuYa087pSvjrsESbrd8RcbJEmSGmSIkyRJapAhTpIkqUGGOEmSpAYZ4iRJkhpkiJMkSWqQIU6SJKlBhjhJkqQGGeIkSZIaZIiTJElqkCFOkiSpQYY4SZKkBhniJEmSGmSIkyRJapAhTpIkqUGGOEmSpAYZ4iRJkhpkiJMkSWqQIU6SJKlBhjhJkqQGGeIkSZIaZIiTJElqkCFOkiSpQYY4SZKkBhniJEmSGmSIkyRJapAhTpIkqUGGOEmSpAYZ4iRJkhpkiJMkSWqQIU6SJKlBhjhJkqQGGeIkSZIaZIiTJElqkCFOkiSpQYY4SZKkBhniJEmSGmSIkyRJapAhTpIkqUGGOEmSpAYZ4iRJkhpkiJMkSWqQIU6SJKlBhjhJkqQGGeIkSZIaZIiTJElqkCFOkiSpQYY4SZKkBhniJEmSGmSIkyRJapAhTpIkqUGGOEmSpAYZ4iRJkhpkiJMkSWqQIU6SJKlBhjhJkqQGjTTEJVme5MIkq5IcOsXwPZKcmeTGJPsM+u+c5FtJzktydpJnDYZ9IMkPk5zVP3Ye5TpIkiQtREtHNeMkS4AjgScDq4HTk6yoqvMHo/0EeAHwqkmTXws8v6q+n+SewBlJTq6qK/rhr66qE0ZVuyRJ0kI3shAH7AasqqqLAJIcC+wF3BTiqupH/bDfDSesqu8Nnl+S5OfAMuAKJEmSNNLm1K2Aiwfdq/t+ayXJbsD6wA8Gvd/cN7O+I8kG00x3UJKVSVauWbNmbRcrSZK0oI0yxGWKfrVWM0i2BD4MvLCqJo7WvRZ4ALArsBnwmqmmraqjqmqXqtpl2bJla7NYSZKkBW+UIW41sM2ge2vgkrlOnGQT4L+Av62qUyf6V9Wl1bkeOIau2VaSJOl2ZZQh7nRghyTbJ1kf2A9YMZcJ+/E/DXyoqj4xadiW/d8AewPnzmvVkiRJDRhZiKuqG4GDgZOBC4Djq+q8JEck2RMgya5JVgP7Au9Ncl4/+TOBPYAXTHErkY8mOQc4B9gCeNOo1kGSJGmhGuXVqVTVicCJk/odNnh+Ol0z6+TpPgJ8ZJp5PmGey5QkSWqOv9ggSZLUIEOcJElSgwxxkiRJDTLESZIkNcgQJ0mS1CBDnCRJUoMMcZIkSQ0yxEmSJDXIECdJktQgQ5wkSVKDDHGSJEkNMsRJkiQ1yBAnSZLUIEOcJElSgwxxkiRJDTLESZIkNcgQJ0mS1CBDnCRJUoMMcZIkSQ0yxEmSJDXIECdJktQgQ5wkSVKDDHGSJEkNMsRJkiQ1yBAnSZLUIEOcJElSgwxxkiRJDTLESZIkNWitQ1ySuyZ58CiKkSRJ0tzMKcQl+UqSTZJsBnwXOCbJP4+2NEmSJE1nrkfi7lJVVwF/ChxTVQ8HnjS6siRJkjSTuYa4pUm2BJ4JfHaE9UiSJGkO5hri/g44GVhVVacnuTfw/dGVJUmSpJksneN4l1bVTRczVNVFnhMnaV396ys/M+4S1srBb3/6uEuQpN8z1yNx75pjP0mSJN0GZjwSl+RRwKOBZUkOGQzaBFgyysIkSZI0vdmaU9cHNu7Hu/Og/1XAPqMqSpIkSTObMcRV1VeBryb5QFX9+DaqSZIkSbOY64UNGyQ5CthuOE1VPWEURUmSJGlmcw1xnwDeA7wP+O3oypEkSdJczDXE3VhV7x5pJZIkSZqz2a5O3ax/+pkkfwF8Grh+YnhVXT7C2iRJkjSN2Y7EnQEUkL771YNhBdx7FEVJkiRpZrNdnbr9bVWIJEmS5m5O58Ql+dMpel8JnFNVP5/fkiRJkjSbuV7YcCDwKODLfff/AU4F7pfkiKr68AhqkyRJ0jTmGuJ+B/xBVf0MIMndgXcDjwBOAQxxkiRJt6H15jjedhMBrvdz4H791an/O/9lSZIkaSZzPRL3tSSfpbvpL8AzgFOS3Am4YiSVSZIkaVpzDXEvpQtuu9PdbuRDwCerqoDHj6g2SZIkTWNOIa4Payf0D0mSJI3ZbL/Y8PWqekySq+lu7nvTILpst8lIq5MkSdKUZrvZ72P6v3e+bcqRJEnSXMz16lSSPCbJC/vnWyTx1xwkSZLGZE4hLsnhwGuA1/a91gc+MqqiJEmSNLO5Hon7E2BP4BqAqroEsIlVkiRpTOYa4m7or1AtgP7+cLNKsjzJhUlWJTl0iuF7JDkzyY1J9pk07IAk3+8fBwz6PzzJOf0835kkc1wHSZKkRWOuIe74JO8FNk3yYuCLwL/PNEGSJcCRwFOBHYH9k+w4abSfAC8APjZp2s2Aw+l+1ms34PAkd+0Hvxs4CNihfyyf4zpIkiQtGrPdYuQVwDeA/0d3U9+rgPsDh1XVF2aZ927Aqqq6qJ/XscBewPkTI1TVj/phv5s07VOAL/Q/60WSLwDLk3wF2KSqvtX3/xCwN3DSbCsqSZK0mMx2JG5r4F/ofiv1dXS/k/pl4Iw5zHsr4OJB9+q+31xMN+1W/fNZ55nkoCQrk6xcs2bNHBcrSZLUhhlDXFW9qqoeDdwD+BvgcuD/AucmOX+maeluCPx7s5xjXdNNO+d5VtVRVbVLVe2ybNmyOS5WkiSpDXM9J24jYBPgLv3jEuC0WaZZDWwz6N66n24uppt2df98XeYpSZK0aMx2TtxRwAOBq+lC2zeBf66qX81h3qcDO/Q3Bf4psB/w7DnWdTLw94OLGf4QeG1VXZ7k6iSP7Ot5PvCuOc5TkiRp0ZjtSNy2wAbAZXRBbDVwxVxmXFU3AgfTBbILgOOr6rwkRyTZEyDJrklWA/sC701yXj/t5cAb6YLg6cARExc5AH8OvA9YBfwAL2qQJEm3Q7P9dury/j6TmvKBAAAgAElEQVRsDwQeDbwS2CnJ5cC3qurwWaY/EThxUr/DBs9P55bNo8PxjgaOnqL/SmCnmZYrSZK02M0Y4gD6m/yem+QK4Mr+8TT6+7eNtjxJkiRNZbZz4l5OdwRud7rbi3wD+BbdEbJzRl6dJEmSpjTbkbjtgBOAv6qqS0dfjiRJkuZitnPiDrmtCpEkSdLczfU+cZIkSVpADHGSJEkNMsRJkiQ1yBAnSZLUIEOcJElSgwxxkiRJDTLESZIkNcgQJ0mS1CBDnCRJUoMMcZIkSQ0yxEmSJDXIECdJktQgQ5wkSVKDDHGSJEkNMsRJkiQ1yBAnSZLUIEOcJElSgwxxkiRJDTLESZIkNcgQJ0mS1CBDnCRJUoMMcZIkSQ0yxEmSJDXIECdJktQgQ5wkSVKDDHGSJEkNMsRJkiQ1yBAnSZLUIEOcJElSgwxxkiRJDTLESZIkNcgQJ0mS1CBDnCRJUoMMcZIkSQ0yxEmSJDXIECdJktQgQ5wkSVKDDHGSJEkNMsRJkiQ1yBAnSZLUIEOcJElSgwxxkiRJDTLESZIkNcgQJ0mS1CBDnCRJUoMMcZIkSQ0yxEmSJDXIECdJktQgQ5wkSVKDDHGSJEkNMsRJkiQ1aKQhLsnyJBcmWZXk0CmGb5DkuH74aUm26/s/J8lZg8fvkuzcD/tKP8+JYXcb5TpIkiQtRCMLcUmWAEcCTwV2BPZPsuOk0Q4EflVV9wXeAbwVoKo+WlU7V9XOwPOAH1XVWYPpnjMxvKp+Pqp1kCRJWqhGeSRuN2BVVV1UVTcAxwJ7TRpnL+CD/fMTgCcmyaRx9gc+PsI6JUmSmjPKELcVcPGge3Xfb8pxqupG4Epg80njPIvfD3HH9E2pr58i9EmSJC16owxxU4WrWptxkjwCuLaqzh0Mf05VPQh4bP943pQLTw5KsjLJyjVr1qxd5ZIkSQvcKEPcamCbQffWwCXTjZNkKXAX4PLB8P2YdBSuqn7a/70a+Bhds+3vqaqjqmqXqtpl2bJlt2I1JEmSFp5RhrjTgR2SbJ9kfbpAtmLSOCuAA/rn+wBfqqoCSLIesC/duXT0/ZYm2aJ/fgfgacC5SJIk3c4sHdWMq+rGJAcDJwNLgKOr6rwkRwArq2oF8H7gw0lW0R2B228wiz2A1VV10aDfBsDJfYBbAnwR+PdRrYMkSdJCNbIQB1BVJwInTup32OD5dXRH26aa9ivAIyf1uwZ4+LwXKkmS1Bh/sUGSJKlBhjhJkqQGGeIkSZIaZIiTJElqkCFOkiSpQYY4SZKkBhniJEmSGmSIkyRJapAhTpIkqUGGOEmSpAYZ4iRJkhpkiJMkSWqQIU6SJKlBhjhJkqQGGeIkSZIaZIiTJElqkCFOkiSpQYY4SZKkBhniJEmSGmSIkyRJapAhTpIkqUGGOEmSpAYZ4iRJkhpkiJMkSWqQIU6SJKlBhjhJkqQGGeIkSZIaZIiTJElqkCFOkiSpQYY4SZKkBhniJEmSGmSIkyRJapAhTpIkqUGGOEmSpAYZ4iRJkhpkiJMkSWqQIU6SJKlBhjhJkqQGGeIkSZIaZIiTJElqkCFOkiSpQYY4SZKkBhniJEmSGmSIkyRJapAhTpIkqUGGOEmSpAYZ4iRJkhpkiJMkSWqQIU6SJKlBhjhJkqQGGeIkSZIaZIiTJElqkCFOkiSpQYY4SZKkBhniJEmSGmSIkyRJatBIQ1yS5UkuTLIqyaFTDN8gyXH98NOSbNf33y7Jb5Kc1T/eM5jm4UnO6ad5Z5KMch0kSZIWopGFuCRLgCOBpwI7Avsn2XHSaAcCv6qq+wLvAN46GPaDqtq5f7xk0P/dwEHADv1j+ajWQZIkaaEa5ZG43YBVVXVRVd0AHAvsNWmcvYAP9s9PAJ4405G1JFsCm1TVt6qqgA8Be89/6ZIkSQvbKEPcVsDFg+7Vfb8px6mqG4Ergc37Ydsn+U6SryZ57GD81bPME4AkByVZmWTlmjVrbt2aSJIkLTCjDHFTHVGrOY5zKbBtVT0UOAT4WJJN5jjPrmfVUVW1S1XtsmzZsrUoW5IkaeEbZYhbDWwz6N4auGS6cZIsBe4CXF5V11fVLwGq6gzgB8D9+vG3nmWekiRJi94oQ9zpwA5Jtk+yPrAfsGLSOCuAA/rn+wBfqqpKsqy/MIIk96a7gOGiqroUuDrJI/tz554P/OcI10GSJGlBWjqqGVfVjUkOBk4GlgBHV9V5SY4AVlbVCuD9wIeTrAIupwt6AHsARyS5Efgt8JKqurwf9ufAB4CNgJP6hyRJ0u3KyEIcQFWdCJw4qd9hg+fXAftOMd0ngU9OM8+VwE7zW6kkSVJb/MUGSZKkBhniJEmSGmSIkyRJapAhTpIkqUGGOEmSpAYZ4iRJkhpkiJMkSWqQIU6SJKlBhjhJkqQGGeIkSZIaZIiTJElqkCFOkiSpQYY4SZKkBhniJEmSGmSIkyRJapAhTpIkqUGGOEmSpAYZ4iRJkhpkiJMkSWqQIU6SJKlBhjhJkqQGGeIkSZIaZIiTJElqkCFOkiSpQYY4SZKkBhniJEmSGmSIkyRJapAhTpIkqUGGOEmSpAYZ4iRJkhpkiJMkSWqQIU6SJKlBhjhJkqQGGeIkSZIatHTcBUjSYvLm5+4z7hLW2us+csK4S5C0DjwSJ0mS1CBDnCRJUoMMcZIkSQ0yxEmSJDXIECdJktQgQ5wkSVKDDHGSJEkNMsRJkiQ1yBAnSZLUIEOcJElSgwxxkiRJDfK3UyVJc3bBm7807hLW2h+87gnjLkEaCY/ESZIkNcgQJ0mS1CBDnCRJUoMMcZIkSQ0yxEmSJDXIECdJktQgQ5wkSVKDDHGSJEkNMsRJkiQ1aKQhLsnyJBcmWZXk0CmGb5DkuH74aUm26/s/OckZSc7p/z5hMM1X+nme1T/uNsp1kCRJWohG9rNbSZYARwJPBlYDpydZUVXnD0Y7EPhVVd03yX7AW4FnAb8Anl5VlyTZCTgZ2Gow3XOqauWoapckSVroRnkkbjdgVVVdVFU3AMcCe00aZy/gg/3zE4AnJklVfaeqLun7nwdsmGSDEdYqSZLUlFGGuK2Aiwfdq7nl0bRbjFNVNwJXAptPGucZwHeq6vpBv2P6ptTXJ8lUC09yUJKVSVauWbPm1qyHJEnSgjPKEDdVuKq1GSfJA+maWP9sMPw5VfUg4LH943lTLbyqjqqqXapql2XLlq1V4ZIkSQvdKEPcamCbQffWwCXTjZNkKXAX4PK+e2vg08Dzq+oHExNU1U/7v1cDH6NrtpUkSbpdGWWIOx3YIcn2SdYH9gNWTBpnBXBA/3wf4EtVVUk2Bf4LeG1VfWNi5CRLk2zRP78D8DTg3BGugyRJ0oI0shDXn+N2MN2VpRcAx1fVeUmOSLJnP9r7gc2TrAIOASZuQ3IwcF/g9ZNuJbIBcHKSs4GzgJ8C/z6qdZAkSVqoRnaLEYCqOhE4cVK/wwbPrwP2nWK6NwFvmma2D5/PGiVJklrkLzZIkiQ1yBAnSZLUIEOcJElSgwxxkiRJDTLESZIkNcgQJ0mS1CBDnCRJUoMMcZIkSQ0yxEmSJDXIECdJktQgQ5wkSVKDDHGSJEkNMsRJkiQ1yBAnSZLUIEOcJElSgwxxkiRJDTLESZIkNcgQJ0mS1CBDnCRJUoMMcZIkSQ1aOu4CJElaKN7whjeMu4S11mLNmh8eiZMkSWqQIU6SJKlBNqdKknQ7cfwndht3CWvlmft+e9wlLGgeiZMkSWqQIU6SJKlBhjhJkqQGGeIkSZIaZIiTJElqkCFOkiSpQYY4SZKkBhniJEmSGmSIkyRJapAhTpIkqUGGOEmSpAYZ4iRJkhq0dNwFSJIkzYeHnHDyuEtYK9/d5ym3anqPxEmSJDXIECdJktQgQ5wkSVKDDHGSJEkNMsRJkiQ1yBAnSZLUIEOcJElSgwxxkiRJDTLESZIkNcgQJ0mS1CBDnCRJUoMMcZIkSQ0yxEmSJDXIECdJktQgQ5wkSVKDDHGSJEkNMsRJkiQ1yBAnSZLUIEOcJElSg0Ya4pIsT3JhklVJDp1i+AZJjuuHn5Zku8Gw1/b9L0zylLnOU5Ik6fZgZCEuyRLgSOCpwI7A/kl2nDTagcCvquq+wDuAt/bT7gjsBzwQWA78W5Ilc5ynJEnSojfKI3G7Aauq6qKqugE4Fthr0jh7AR/sn58APDFJ+v7HVtX1VfVDYFU/v7nMU5IkadFLVY1mxsk+wPKqelHf/TzgEVV18GCcc/txVvfdPwAeAbwBOLWqPtL3fz9wUj/ZjPMczPsg4KC+8/7AhfO+ktPbAvjFbbi829piXr/FvG7g+rXO9WvXYl43cP3m272qatlsIy0dYQGZot/kxDjdONP1n+rI4ZQptKqOAo6aqcBRSbKyqnYZx7JvC4t5/RbzuoHr1zrXr12Led3A9RuXUTanrga2GXRvDVwy3ThJlgJ3AS6fYdq5zFOSJGnRG2WIOx3YIcn2Sdanu1BhxaRxVgAH9M/3Ab5UXfvuCmC//urV7YEdgG/PcZ6SJEmL3siaU6vqxiQHAycDS4Cjq+q8JEcAK6tqBfB+4MNJVtEdgduvn/a8JMcD5wM3Ai+tqt8CTDXPUa3DrTCWZtzb0GJev8W8buD6tc71a9diXjdw/cZiZBc2SJIkaXT8xQZJkqQGGeIkSZIaZIiTJElqkCFOWsSSHDipe0mSw8dVj3R7k2TDKfptMY5a5luSRyd5dpLnTzzGXdPtjSFuniR50hT9Dphq3BYleWN/L7+J7k2SHDPOmuZTkntN/A+TbJTkzuOuaZ48McmJSbZMshNwKtD8uiX5TpIzp3h8J8mZ465vviR52BSP+wzfiy1Lcrcp+t1/HLWM0OlJHjnRkeQZwDfHWM+8SPJh4J+AxwC79o8FdzPcWyPJyiQvTXLXcdcynUWxI1ggDuvfnK8CNgbeB1zPzb8N27qlwGlJXgjcA3hX/2hekhfT/UTbZsB96G4i/R7gieOsaz5U1bOTPAs4B7gW2L+qvjHmsubDPuMu4Dbyb8DDgLPpfslmp/755kleUlWfH2dx8+BrSV5fVccDJHklcCCw43jLmlfPBo5O8hXgnsDmwBPGWtH82AXYsRb3LS72A15IF8RXAscAn19I6+wtRuZJkgCvBP6s73VYVX18jCXNu/5I1WeAXwF7VNWqMZc0L5KcBewGnFZVD+37nVNVDxpvZbdekh3ovkicA/wB3b0XD6mqa8damOYkybHAGyfuh5lkR+DVwBuBT1XVzuOs79ZKsiXd/beuA+4OXAC8sqp+PdbC5lmSvYEPA1ezSPadST4BvLyqLh13LaOWZD3gacC7gd8BRwP/UlWXj7UwbE6dT3cFHgH8gO4I3L36YLcoJNkD+BfgCOArwL8muedYi5o/11fVDRMdfVPVYvl28xm6LxR/BjwO+D7dL58sCkl2TXJqkiuTXJfk+iRXjbuuefSA4Q3Nq+p84KFVddEYa5o3fQD4HPAoYDvgQ4swwL0feAXwYLqjOp9J8tLxVjUvtgDOT3JykhUTj3EXNd+SPBh4O/CPwCfpWgGuAr40zrom2Jw6f04F3lJVRyfZCHgr8A3g0eMta978E7Bv/yFCkj+lexE/YKxVzY+vJvkbYKMkTwb+gi78LAa7VdVVAH0TwNsX2Y7234DnAsfSHU19Abf8feXWXZjk3XTrB/As4HtJNgD+d3xlzY8kXwAupWsm3pqu2fGUqnrVeCubV+cCL+rffz/sz4/75zHXNB/eMO4CRi3JGcAVdL8udWhVXd8POi3J7uOr7GY2p86TJNtW1U8m9dujqk4ZV03zKcmSiZ8+G/TbvKp+Oa6a5kt/qPxA4A/pzjs6GXjfQjrvYV0luSNdM/+2VfXivnn1/lX12TGXNi+SnFFVDx82fyf5ZlUtii9P/RfCv6A7eTzA1+mC63XAHVs/apVk76r6j0H3UuC1VfXGMZY17/r/47ZVdeG4a5lPSe5Od0EDwLer6ufjrGe+Jbn3Qj/qbYibJ33T6XOAe1fVEUm2Be5RVd8ec2nzon+z/j2wVVUt78/NeVRVvX/Mpd1qSe4EXDf4fd4lwAaL4byxJMcBZwDPr6qd+g+Tb7V+LtWEJKcAT6I7R+UndEd1XlxVDx5rYZqzJPcCdqiqL/avz6VVdfW465ovSZ5O15KxflVtn2Rn4Iiq2nPMpd0qSZ5J18T4FbovGI8FXl1VJ4yzrvmW5I+BBwI33Sqmqo4YX0W35Dlx8+ff6M7r2L/vvho4cnzlzLsP0B2h2rLv/h7deR6LwX8DGw26NwK+OKZa5tt9qupt9E1vVfUbuh3uYvECuv3YwcBvgR1YRFeuJtk9yReSfC/JRROPcdc1X/orw08A3tv32hr4j+mnaNIb6Jr6rwCoqrOA7cdZ0Dx5HbBrVR1QVc+nW8fXj7mmeZXkPXSnMLyMbr+5L3CvsRY1iefEzZ9HVNXDknwHoKp+lWT9cRc1j7aoquOTvBagqm5M8tvZJmrEhsNmqar6dd8MuRjc0B/dKIAk96G78GZRGDR1XMci+wDpvR/4K7qjqYvl/Tb0UvorwwGq6vtT3TuucTdW1ZWTrnNbDE1g601qPv0li+/A0KOr6sFJzq6qv0vyduBT4y5qyBA3f/63b4ab+LBcRncp8mJxTZLNuXn9HglcOd6S5s01SR5WVWcCJHk48Jsx1zRfDqe7+m+bJB8Fdqc7erUo9K/Dw+m+Hd+0P6uq+42tqPl1ZVWdNO4iRuj6qrphIuAssivDJ5yb5NnAkv6c1JezCG72C3wuycnAxK20ngWcOMZ6RmHic+Da/m4Mv2SBHUU1xM2fdwKfBu6W5M10TTp/O96S5tUhwArgPkm+ASxj8TRbvQL4RJJL+u4t6XZIzauqL6T7BYNH0jUH/GVV/WLMZc2nY4C/ZvEeqfpykn+k+/Z/0xHUiS8ci8BivjJ8wsvomh6vpws8J9Pd569pVfXq/gb3u9PtW46qqk+Puaz59tkkm9Kd+3cm3ReM9423pFvywoZ5lOQBdHf5D/DfVXXBmEuaV/235PvTrd+FVdX8LQ4mJLkDN6/b/7S+bkkeNtPwxRICkpxWVY8Ydx2jkuTLU/SuqloMd/xf1FeGa3Hpb+uzYVUtqBYoQ9ytlGSzmYYvhDs63xr9/eCmVVUL6vyAdZXk0XQ3Gx02yX1obAXdSoMP/w3pfh7nu3Qfkg+m+2WKx4yrtvmU5B/6p5OPVJ09noqkTpLPMEPTcKtXpyb5elU9JsnV3HL9QvcFY5MxlTZvWvrcszn11juD7oUcYFu6n6QKsCndLQ8WVPv5Onh6//dudDcunrhL9ePpLi1fMC/mdZXuh5zvA5zFzU1yBTQb4qrq8XDTzzYdVFXn9N070f2+72LxmEl/ofvf7TGGWuZNkudW1UeSHDLV8Kpq+maxSc5h5oCzGG4R80/93z+l+73pj/Td+wM/GkdB82HiC2BV3XnctYxQM597hrhbqaq2h5suRV5RVSf23U+lu39V06rqhQBJPkv3Y8eX9t1bsnhuobKYf8j5ARMBDqCqzu3vU7UoVNVjx13DiNyp/7tYPyif1v+d+PmpD/d/nwM0f39GgKr6KkCSN1bV8EvFZ/r7GzYtyYer6nmz9WtRS597NqfOk4k7x0/qt7KqdhlXTfMpyblVtdOgez3g7GG/VmUR/5Bzko8D19AdBSi6n6jauKr2n3HCRiR5+RS9rwTOqKpzb+t6tHaSfKOqdp+tX8uSXAD88cTtcJJsD5xYVX8w3spunSRnVtXDBt1L6T4TdhxjWfOqhc89j8TNn18k+Vtu+WHZ/E9SDXxlcDl5AfsBU5103aKJH3L+Nrc8r6rJc1YmeSHw58Bf9t2nAO8eXznz7tF0P/sz8TNifwR8G/jLJB+tqrePrbJ5kORtwJvobnXwOeAhwCuq6iMzTtiOOyV5TFV9HW46N/VOs0zTmr+i239O3NNwO+DPxlfOrdPfK3TiiuKrJnoDNwBHja2w0Vjwn3seiZsn/QUOh3PzuTinAH/X+oUNQ/3JnhPNV6cslsvJkzxuqv4TzSFauPod7D4TP9OU5M7A8cAzgJWtHxVIclZV7ZzkT4C96QLBl/9/e/ceZWlV3nn8++vmKs3NhIhGEWlBVG6BRUS5iYyiyRAlSBwiRoGJGo03chmJCsrMaKKRqGQiGhaEOEgEjWuBhoYsVBAEDJduLgkREQlkUMElgi2K3fzmj70PfSiqq5uut2qf963fZ61aVe8+VV3PWdXnnH323s/z2N6zcWidqDUZzwS2rkP3A8cNJXt6pGY27lovb/WaRuq9JelDtk9sHcdcq4+9R1/XJ+11L5O4iAGTtD+l7c/UYrg7tYqpS3Wranfbq+r1JsAK28+VdIPtX2sb4exIusX28yX9LfAF28skrRjKJG5E0laU16OJKt/QlaFlv8Ojk5uvjP5mtZ7ai20PrW3aWkm6yvYLW8aQ7dSOSNqFkvW3I499oA6lntNvA39BydYRw0on3w84DXgusAmwGFg5hPvG8Ns2nQdcJWn0wvFbwHmStgD+vV1YnblQ0q2U7dS31E4wP2scU2fqCtWR1OfNUeeGSWowPltDzH6vTh5flbJ9v6STGV7v25ls1jqArMR1RNIK4HSmvFjavq5ZUB2S9G3g8KEVMIaSgEI563A+JVP194Cdbf9Z08A6MPRiuACSXkApMSLgCttXNw6pU5K2BR6wvVqlp+9Wtr/XOq4uSFpGTUThsc+bvT7LOK6uFg8u+12ln+geU8Zusr17q5jm29TkjhayEtedVbaHdGB8qu8PcQI3YvvbkhbbXg2cJWkIvQ1hoG2bJG1he2Xdhvu3+jG6bSvbD6z9p/tD0lHAsjqBey+wNyXRYRCTOODptl/eOog5djOlTtzQst+vlXQqpeSGKe3FBrFo0SeZxHXnQklvofRPHX+xHEpiw7WSPkdZKh+/fxNT9HAWflrPUi2v2YD3MJwMudEq3HipGwN93+b/PPAK4BamqRpPKbw9BO+zfb6kA4DDKAVkP8mav2vffUPS7uO1DAdoqNnvbwPeB3yO8ri7hDV1/xYKNQ9gYCu8zUi6Y5phD+gA+VnTDNv2cfMeTMckPRP4PuU83LsomXL/x/btTQOLBW+UnFHbi91k+7NDSNgYkfSvwLOBOygTnNFZ2yF0bACS/d5XkhYDF9tea9F+Sbu1rkeZSVwseJLeYfvj6xrrk7W1axoZQNumZwA/Hm2bSjoIeCWlndHptn/RMLzO1Irx/0np/rIPJcHhm0PJTq1voB7H9p3zHUs8MUNP5gOQdAHwuknOms4kbpb61Ch3Q0g6jZl7HE5XMb9Xpjuc2vfVjpoltla2PzBfscwFSVdT6sPdLWlPSm/DDwO7Az+1/camAXakJjK8nLIKd1tt+7O77UsahzYrta7mWg3hGIoe3yD+0ZsYQGb/0JP5ACSdB+wH/DOl8w0wWa97ORM3e4fPcJuZoEa5G+ja1gHMFUlHA78LPKu+4xrZip5321jfSZqkE21/aK7jmQNPsn13/foY4Ezbf1Hb4qxoGFenbP9U0u3AYZIOA77e9wlcdR3l+XG6M0UGen8MxevZIF7StrZ/NNfxzIGhJ/MBfLl+TKysxM0TSa+3fXbrOOaKpNNsv611HE9E3cp5FvAh4N1jNz1I6Y+3qklg82gSUuQ3xHgpA0nXAe+xvaxeP670QV9Jegfw+6x5M3gE8Gnbp7WLav5Ier7tW1rHMZd6/Bh8P/ADhpvM1wuZxM2Tvj5Q11ef718tDPuQ7UfqOY9dgYuGcq5qJn3dNpb018CTKZnERwK72H5Y0vbAl23v0zTAjki6EXih7ZX1egvgqqFMUtelz88r66vHj8FBJ/PBo/fxcZOkSbqP2U6dP81TkWOtLgcOrEVVL6VsIb8GeG3TqOZHX9/FvZ2yFf5U4EDbD9fxp1HKHgyFeGynjdUsrOeShXBfe/kYtP2s1jHMg/HSTJsBR1HePE6MTOLmTy8fqAuE6tmj44HTbH9Y0g2tg5onvXyRtP0I8H+nGX9MEWNJV9g+YN4C695ZwDWSRu2NXkVppbZQ5HlzQkn6venG+94TdpztqWejPybpCuCkFvFMJ5O4+dPLF8snoM/3T5JeSFl5O76OLZTHxvmtA5hjvS7abPtUSV9jTVuxY20vlDcYC0Vfnzv3Hft6M+BQ4Hr63xP2UZLGt/IXUVbm1ithZb4slBeqSXBl6wC6MGp3NM1Nva2pBrwTOBH4ou1bJO0EfLVxTLNSO098x/bpU8bfBWxv+38A2P5gi/jmUW9Xcmqm7Y22d6O8OC5ED6/7WybXlL/h2hw6X/F0aWoim6Stgc80CmeujPfwXUWpQ/k7bUKZXhIbOiLpKcAHgafZfoWk51EOJA9i60PSi4AzgCW2d6i1ud5k+y2NQ4tp1Er4u9Vtx/Hx9XlRGYy+H4yXdA5wou3/aB3LXJB0iu2Txq4XA39vezDnUYf+NxyRtDHlueW5rWNZSLIS152/o5xfeU+9/halp9wgJnHAX1F6N14AYHtFrZLfW5I+Zvudki5k+gykPvc29NQJXB18RFJft282RN/v61OBW2rfzfFio33+vzluh1GtQkmbUrb3h7bqOMi/4ZTnzcXA84Dz2kXUvbq6eDIweq27DDhlkjo4ZBLXnV+2fZ6kEwFsr5K0el0/1Ce275ry+t/3+zda+v/LplHMjZ9K2tn2beODknamtG4aBEk7AD+w/bN6vTnlsXhX/ZY3tIptNiQ9G3gKMLVo88GUNlxDcSxwTn3ePIRS2uevGsfUtV53R5nBX7JmErcKuNP2kP5vApwJ3MyaLdTXURZrZuzUNJ8yievOSkm/RP1PLWk/YGJm6x24q26pWtImlBIP/9Y4plkZtYexfZmk7erX97aNqjMnARdJ+l+U6vhQDuWeSDkDOBT/CLxo7PoR4AvAr0NZMW4RVAc+BvyZ7RvHByWtpKwM9HqFf8qB8Y8Dn6KcG6CIz9YAAA2LSURBVL5M0t5Ts4z7bGiN7sfaiU1d5baknwO3U4pvXzrvwXVvqe0jx64/IGl5s2imkUlcd06gbDUulXQlsB3w6rYhderNlCfbXwXuBi4B3to0olmq24onA39IeUJaJGkVpczIKU2DmyXbF0l6FfAnwOgA8i3AkbZvahdZ5zYaqxGH7Z/Xbbm+23HqBA7A9rWSdpz/cDr30SnXP6Jsx32UMkEYUhP18R6qmwAbAyv72jt1pnZi9UzjbsA59XPfPSTpANtXAEjanwnbycgkriO2r5d0MPAcyoTg34dU8d/2fQyv+O07gf2BfW3fAVAzUz8p6V1939axfTPw+tZxzLEfSvoN2/8EIOm/AkNo+7PZDLdtPm9RzBHbh7SOYb5MnfTUN1e/3iicOWV7NbBC0lDawv0BcHY9GwflzcZEPacmO7Ujkt4KnGP7/nq9LXC07b9pG9ns1AfjWv+T2H77PIbTqVrQ96V1gjo+vh1wSR9b4YxIumCm2/t+qHqktkn7LPBLdehe4Bjb32oX1exJOhf4iu2/nTJ+PPAy269pE1m3hp7VvzaSrra9X+s4YmZ1Vf/VwFJgG8oRKU/STk0mcR2RtNz2XlPGetkTb5yk0buO/SnbHZ+r10cB19l+V5PAOiDp5rWV2pjptj6QdC9wF3AucA1Tzq8M8JzONgCjN1F9Vyc3X6TUSRs/07gJcITt77WKrUuSLqJm9dveU9JGwA22d28cWmckjR+CHxWMPdj2CxuFFOtJ0jLgfkrG9KOJfLanHgdoJtup3VkkSa6z4no2YJPGMc2a7bMBJL0BOGS0RSzpdMq5uD6bqZBor4uMAtsDLwWOpvQY/TJwru1bmkbVEUlH2z5X0tunjANg+xNNAuuI7e8DL5J0CGvOFn3Z9lcahjUXBp/VDxw+9vWoYOwr24QST9DTbb+8dRAzySSuO5cA59XJjSmJAMvahtSpp1HajYzOGy2pY322p6QHphkXM59Jmnj1bMoyYFndEjga+FotrjqE8yrb1M/bNY1ijtn+Kj3vHrIOQ8/qx/axrWOIDfYNSbtPcjJYJnHd+VPgjZSDkKJM6s5oGlG3/hy4QdLoBeVg4P3twpk924tbxzCX6uTtNykTuB2BT1BKcgzBM+rnG2wP5T4tREPP6kfS04HTKEdSDFwBvMP23U0Di7WSdBPlb7URcKyk7wA/p7y22/YeLeMblzNxHahbp2fbPqZ1LHNJ0vbAC+rlNUM5lzNEks6mbMNdBPxDzVQdjPokuxfwL31uqxVQz8ENMqsfQNI/U5JvRsXFjwFea/ul7aKKmUh65ky3275zvmJZl0ziOiLpYuDw8ZpVQyBpV9u3TinO+aghFeUcEkmPsKbFz/iDfPROspc1qkYknQocD2wBjG+Jj+7fk5sEFk+IpCdRVuOeafv3a0eR59j+UuPQOrOWpLfHjUVsiGyndue7wJW1tMN4f7xTm0XUjRMo28SjbJyps/7BFOUcmBV9z4xehz8F/gj4EjCIcikL1FmU7NtRpubdlP6pg5nEAfdJOoaSKQ7leMMPG8YTA7KodQAD8v8oTzyLKAkAo4++O0PS9rYPqQU6zwZ+QuknN6izKwMz9CX2a2om+L22V0/9aB1crLeltj8M/ALA9kM8vp1T3x1H6b35PeAeyvPmcU0jisHISlxHbA+1yfHpwH8BkHQQ8CFKG6e9gE+Tidyk+hVJJ6ztxgGsEG8q6bXAgZIetxJne8ZixzExHpa0OWuyU5dSDpAPhu3/IKvFMUcyietIzdp83OqH7b5vNy62PSor8hrg07a/AHxh0hoBx2MsppSBGdqqxshbKQfEt6EUnh5nSsZjTL73U0rhPEPSOZQMzje0DKgrQ+52E5Mjk7ju/PHY15sBR1IKO/bdYkkb2V4FHEo5HzeS/z+T655Jag3Ttdpx4jJJ19r+VOt4YsPYvkTSdcB+lDcc75jaBq/Hrh37+gPAya0CieFKduocknSZ7YNbxzEbkt4D/AZwH7ADsLdtS3o2pazK/k0DjGkNoeXb+pK0K6Ul3KMFmm1/tl1Esb4kfQa4HPi67VtbxzNXFtLjMeZXJnEdkTRe0mARsA/wCdvPaRRSZ2oV9adSmsKvrGO7AEtSYmQySXry2Db4YEl6L/AyYFfgYuAw4Arbvz3jD8ZEkPQS4ADgQGAnYDlwue2PNw2sY5KuTz3DmAuZxHVE0h2U8w+ibKPeAZxi+4qmgUUM2FjR3+trA/WnAp+ynYPkPVGLpe8LHEJpV/iQ7V3bRtWtTOJiruRMU0dsP6t1DBEL0EO2V0taJWlLShmHnVoHFetH0qWUgs1XAV8H9rX9g7ZRdUPSg6xJbHjSWJ/mQRTcjsmQSVxHJG1M6Zt6UB36GmVFYFAtZCImzA2StgHOpBwkfwDIFn9/3Eg5erIbpfH9/ZKuqvXies32EOqExoTLdmpHJJ0BbEwphgvwOmC17f/eLqqI4ZIkYHvb99TrZwNb5Zxm/0haAhxLyfLf3vamjUOK6IVM4joiaYXtPdc1FhHdkXSd7X1axxEbRtIfUpIa9gHuZE2m6leaBhbRE9lO7c5qSUtt3w4gaScg7X8i5tY3Je2d1bfe2hw4Fbiu1qJ8DEnb2v7R/IcV0Q9ZieuIpEMpzZy/U4d2BI61/dVmQUUM1KgAdc1OfS5wO7CSNYfGkwk4AMnqjJhZVuJmSdK+wF22L5W0M/AmSq/RS4AVTYOLGK5vAnsDr2odSMypobaNi+hEJnGz9ylqg3jgBcC7SYP4iLkmgNHxhRisbBVFzCCTuNlLg/iI+bedpBPWdqPtU+czmIiIFha1DmAAFksaTYYPBcazqjJJjpgbi4ElwJZr+YgJJml9i6NnOzViBplkzN65wGWS7gMeolQdH9Ws+nHLwCIG7B7bp7QOIjbY54F9JF1q+9AZvm+m2yIWvEziZsn2/66tY0YN4kdnOBZRzsZFRPeyQtNviySdDOwy3bb4aDt87KhKREwjk7gO2L56mrFvtYglYoHICk2//TdKZvFGZPs7YoOlTlxERDQh6RW2L2odR0RfZRIXERFNSNoaOBk4qA5dBpxiO+eJI9ZDslMjIqKVM4EHgd+pHw9QOt9ExHrISlxERDQhabntvdY1FhHTy0pcRES08pCkA0YXkvanlGqKiPWQlbiIiGhC0p7A3wNb16EfAa+3fWO7qCL6I5O4iIhoStJWALYfmDL+ettnt4kqYvJlEhcRERNJ0vW2924dR8Skypm4iIiYVOnMETGDTOIiImJSZasoYgaZxEVExKTKSlzEDDKJi4iIJiQtXse3XDkvgUT0VBIbIiKiCUl3AJ8HzrL9r63jieibrMRFREQrewDfAs6QdLWkN47KjUTEumUlLiIimpN0EHAusA1lde5/2v5226giJltW4iIioglJiyX9lqQvAh8HPgrsBFwI/FPT4CJ6YKPWAURExIJ1G/BV4CO2vzE2/vm6MhcRM8h2akRENCFpie2ftI4joq8yiYuIiCYkbQYcDzwf2Gw0bvu4ZkFF9EjOxEVERCufAbYHDgMuA54OPNg0oogeyUpcREQ0IekG278m6Ubbe0jaGLjY9ktaxxbRB1mJi4iIVn5RP98vaTdga2DHduFE9EuyUyMiopVPS9oWeC9wAbAEeF/bkCL6I9upERExrySdMN1w/Wzbp85nPBF9lZW4iIiYb1vWz88B9qWswgEcDlzeJKKIHspKXERENCHpEuBI2w/W6y2B822/vG1kEf2QxIaIiGhlB+DhseuHSWJDxHrLdmpERLTyGeCbtXeqgSOAs9uGFNEf2U6NiIhmJO0NHFgvL7d9Q8t4Ivokk7iIiIiIHsqZuIiIiIgeyiQuIiIioocyiYuIBUHSaknLxz523IB/YxtJb+k+uoiIJy5n4iJiQZD0E9tLZvlv7Ah8yfZuT/DnFttePZvfHRExVVbiImLBkrRY0kck/YukGyW9qY4vkXSppOsl3STplfVH/hxYWlfyPiLpxZK+NPbv/bWkN9SvvyvpJElXAEdJWippmaTrJH1d0q71+46SdLOkFZLSrSAi1lvqxEXEQrG5pOX16ztsHwEcD/zY9r6SNgWurF0E7gKOsP2ApF8GrpZ0AfBuYDfbewFIevE6fufPbB9Qv/dS4M22b5P0AuBvgJcAJwGH2f5PSdt0e5cjYsgyiYuIheKh0eRrzMuAPSS9ul5vDewM3A18UNJBwCPArwJP2YDf+TkoK3vAi4DzpVGfdzatn68E/k7SecA/bsDviIgFKpO4iFjIBLzN9sWPGSxbotsB+9j+haTvAptN8/OreOyxlKnfs7J+XgTcP80kEttvritzvwksl7SX7R9uyJ2JiIUlZ+IiYiG7GPgDSRsDSNpF0haUFbkf1AncIcAz6/c/CGw59vN3As+TtKmkrYFDp/slth8A7pB0VP09krRn/Xqp7WtsnwTcBzyj+7sZEUOUlbiIWMjOoDRcv15ln/Ne4FXAOcCFkq4FlgO3Atj+oaQrJd0MXGT7T+o26I3AbcBMLaNeC3xS0nuBjYF/AFYAH5G0M2VV8NI6FhGxTikxEhEREdFD2U6NiIiI6KFM4iIiIiJ6KJO4iIiIiB7KJC4iIiKihzKJi4iIiOihTOIiIiIieiiTuIiIiIge+v9T3BXIx5ycFgAAAABJRU5ErkJggg==\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Plotting top 10 Features from Feature Importance of RF Grid Model for Multiclass Classification\n", + "\n", + "plt.figure(figsize=(10,10))\n", + "sns.barplot(x=feat_imp_tuned_rft['column'][:10], y=feat_imp_tuned_rft['weight'][:10],data=feat_imp_tuned_rft)\n", + "plt.xticks(rotation=90)\n", + "plt.xlabel(\"Features\")\n", + "plt.ylabel(\"Weights\")\n", + "plt.title(\"Top 10 Features based on Importance from Random Forest Grid Model\")" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "DecisionTreeClassificationModel (uid=dtc_eb02160664ee) of depth 10 with 729 nodes\n", + " If (feature 35 <= 3.5)\n", + " If (feature 36 <= 34.5)\n", + " If (feature 32 <= 0.5)\n", + " If (feature 39 <= 13.5)\n", + " If (feature 16 <= 0.0105)\n", + " If (feature 16 <= 0.009999999888240001)\n", + " If (feature 34 <= 0.5)\n", + " If (feature 37 <= 0.5)\n", + " Predict: 0.0\n", + " Else (feature 37 > 0.5)\n", + " If (feature 38 <= 0.5)\n", + " Predict: 0.0\n", + " Else (feature 38 > 0.5)\n", + " If (feature 18 <= 77.5)\n", + " Predict: 0.0\n", + " Else (feature 18 > 77.5)\n", + " Predict: 2.0\n", + " Else (feature 34 > 0.5)\n", + " Predict: 0.0\n", + " Else (feature 16 > 0.009999999888240001)\n", + " If (feature 38 <= 0.5)\n", + " If (feature 27 <= 0.5)\n", + " If (feature 19 <= 29.095)\n", + " If (feature 40 <= 9.5)\n", + " Predict: 0.0\n", + " Else (feature 40 > 9.5)\n", + " Predict: 1.0\n", + " Else (feature 19 > 29.095)\n", + " If (feature 40 <= 6.5)\n", + " Predict: 0.0\n", + " Else (feature 40 > 6.5)\n", + " Predict: 1.0\n", + " Else (feature 27 > 0.5)\n", + " If (feature 35 <= 2.5)\n", + " Predict: 1.0\n", + " Else (feature 35 > 2.5)\n", + " If (feature 36 <= 12.5)\n", + " Predict: 0.0\n", + " Else (feature 36 > 12.5)\n", + " Predict: 1.0\n", + " Else (feature 38 > 0.5)\n", + " If (feature 22 <= 0.045)\n", + " If (feature 40 <= 8.5)\n", + " Predict: 0.0\n", + " Else (feature 40 > 8.5)\n", + " If (feature 17 <= 59.1)\n", + " Predict: 0.0\n", + " Else (feature 17 > 59.1)\n", + " Predict: 1.0\n", + " Else (feature 22 > 0.045)\n", + " If (feature 14 <= 0.5)\n", + " Predict: 0.0\n", + " Else (feature 14 > 0.5)\n", + " Predict: 1.0\n", + " Else (feature 16 > 0.0105)\n", + " If (feature 42 <= 0.5)\n", + " If (feature 34 <= 0.5)\n", + " If (feature 22 <= 0.005)\n", + " If (feature 20 <= 8.5)\n", + " If (feature 17 <= 43.35)\n", + " Predict: 1.0\n", + " Else (feature 17 > 43.35)\n", + " Predict: 0.0\n", + " Else (feature 20 > 8.5)\n", + " If (feature 18 <= 99.5)\n", + " Predict: 1.0\n", + " Else (feature 18 > 99.5)\n", + " Predict: 0.0\n", + " Else (feature 22 > 0.005)\n", + " If (feature 4 <= 0.5)\n", + " If (feature 40 <= 4.5)\n", + " Predict: 2.0\n", + " Else (feature 40 > 4.5)\n", + " Predict: 0.0\n", + " Else (feature 4 > 0.5)\n", + " If (feature 40 <= 10.5)\n", + " Predict: 1.0\n", + " Else (feature 40 > 10.5)\n", + " Predict: 0.0\n", + " Else (feature 34 > 0.5)\n", + " If (feature 35 <= 2.5)\n", + " If (feature 0 <= 0.5)\n", + " Predict: 0.0\n", + " Else (feature 0 > 0.5)\n", + " If (feature 21 <= 4.05)\n", + " Predict: 1.0\n", + " Else (feature 21 > 4.05)\n", + " Predict: 0.0\n", + " Else (feature 35 > 2.5)\n", + " If (feature 25 <= 0.5)\n", + " If (feature 41 <= 0.5)\n", + " Predict: 1.0\n", + " Else (feature 41 > 0.5)\n", + " Predict: 0.0\n", + " Else (feature 25 > 0.5)\n", + " If (feature 16 <= 0.9285000035765)\n", + " Predict: 1.0\n", + " Else (feature 16 > 0.9285000035765)\n", + " Predict: 0.0\n", + " Else (feature 42 > 0.5)\n", + " If (feature 18 <= 44.5)\n", + " If (feature 42 <= 1.5)\n", + " If (feature 23 <= 0.5)\n", + " Predict: 0.0\n", + " Else (feature 23 > 0.5)\n", + " If (feature 16 <= 0.0165)\n", + " Predict: 0.0\n", + " Else (feature 16 > 0.0165)\n", + " Predict: 2.0\n", + " Else (feature 42 > 1.5)\n", + " If (feature 35 <= 1.5)\n", + " Predict: 2.0\n", + " Else (feature 35 > 1.5)\n", + " Predict: 1.0\n", + " Else (feature 18 > 44.5)\n", + " If (feature 39 <= 11.5)\n", + " If (feature 9 <= 0.5)\n", + " If (feature 23 <= 0.5)\n", + " Predict: 0.0\n", + " Else (feature 23 > 0.5)\n", + " Predict: 2.0\n", + " Else (feature 9 > 0.5)\n", + " If (feature 21 <= 3.25)\n", + " Predict: 2.0\n", + " Else (feature 21 > 3.25)\n", + " Predict: 0.0\n", + " Else (feature 39 > 11.5)\n", + " If (feature 21 <= 14.5)\n", + " If (feature 16 <= 0.9285000035765)\n", + " Predict: 0.0\n", + " Else (feature 16 > 0.9285000035765)\n", + " Predict: 2.0\n", + " Else (feature 21 > 14.5)\n", + " Predict: 1.0\n", + " Else (feature 39 > 13.5)\n", + " If (feature 28 <= 0.5)\n", + " If (feature 34 <= 0.5)\n", + " If (feature 14 <= 0.5)\n", + " If (feature 37 <= 0.5)\n", + " If (feature 39 <= 15.5)\n", + " Predict: 1.0\n", + " Else (feature 39 > 15.5)\n", + " If (feature 42 <= 2.5)\n", + " Predict: 0.0\n", + " Else (feature 42 > 2.5)\n", + " Predict: 1.0\n", + " Else (feature 37 > 0.5)\n", + " If (feature 36 <= 2.5)\n", + " If (feature 18 <= 83.5)\n", + " Predict: 1.0\n", + " Else (feature 18 > 83.5)\n", + " Predict: 0.0\n", + " Else (feature 36 > 2.5)\n", + " If (feature 16 <= 0.9285000035765)\n", + " Predict: 0.0\n", + " Else (feature 16 > 0.9285000035765)\n", + " Predict: 2.0\n", + " Else (feature 14 > 0.5)\n", + " If (feature 36 <= 14.5)\n", + " If (feature 36 <= 6.5)\n", + " If (feature 39 <= 16.5)\n", + " Predict: 2.0\n", + " Else (feature 39 > 16.5)\n", + " Predict: 1.0\n", + " Else (feature 36 > 6.5)\n", + " If (feature 16 <= 0.9285000035765)\n", + " Predict: 0.0\n", + " Else (feature 16 > 0.9285000035765)\n", + " Predict: 2.0\n", + " Else (feature 36 > 14.5)\n", + " If (feature 27 <= 0.5)\n", + " If (feature 18 <= 56.5)\n", + " Predict: 2.0\n", + " Else (feature 18 > 56.5)\n", + " Predict: 1.0\n", + " Else (feature 27 > 0.5)\n", + " If (feature 19 <= 29.795)\n", + " Predict: 2.0\n", + " Else (feature 19 > 29.795)\n", + " Predict: 1.0\n", + " Else (feature 34 > 0.5)\n", + " If (feature 41 <= 0.5)\n", + " If (feature 16 <= 5.0E-4)\n", + " Predict: 0.0\n", + " Else (feature 16 > 5.0E-4)\n", + " Predict: 2.0\n", + " Else (feature 41 > 0.5)\n", + " If (feature 41 <= 4.5)\n", + " If (feature 26 <= 0.5)\n", + " Predict: 0.0\n", + " Else (feature 26 > 0.5)\n", + " Predict: 2.0\n", + " Else (feature 41 > 4.5)\n", + " If (feature 25 <= 0.5)\n", + " Predict: 0.0\n", + " Else (feature 25 > 0.5)\n", + " If (feature 19 <= 29.795)\n", + " Predict: 2.0\n", + " Else (feature 19 > 29.795)\n", + " Predict: 0.0\n", + " Else (feature 28 > 0.5)\n", + " Predict: 0.0\n", + " Else (feature 32 > 0.5)\n", + " If (feature 38 <= 0.5)\n", + " If (feature 46 <= 0.5)\n", + " Predict: 1.0\n", + " Else (feature 46 > 0.5)\n", + " If (feature 40 <= 7.5)\n", + " If (feature 47 <= 21.5)\n", + " If (feature 47 <= 20.5)\n", + " If (feature 36 <= 17.5)\n", + " If (feature 27 <= 0.5)\n", + " Predict: 0.0\n", + " Else (feature 27 > 0.5)\n", + " Predict: 1.0\n", + " Else (feature 36 > 17.5)\n", + " Predict: 0.0\n", + " Else (feature 47 > 20.5)\n", + " If (feature 25 <= 0.5)\n", + " If (feature 40 <= 5.5)\n", + " Predict: 0.0\n", + " Else (feature 40 > 5.5)\n", + " Predict: 1.0\n", + " Else (feature 25 > 0.5)\n", + " Predict: 0.0\n", + " Else (feature 47 > 21.5)\n", + " If (feature 42 <= 0.5)\n", + " Predict: 0.0\n", + " Else (feature 42 > 0.5)\n", + " If (feature 21 <= 5.9)\n", + " If (feature 16 <= 5.0E-4)\n", + " Predict: 0.0\n", + " Else (feature 16 > 5.0E-4)\n", + " Predict: 1.0\n", + " Else (feature 21 > 5.9)\n", + " Predict: 0.0\n", + " Else (feature 40 > 7.5)\n", + " If (feature 25 <= 0.5)\n", + " If (feature 37 <= 0.5)\n", + " If (feature 36 <= 14.5)\n", + " If (feature 36 <= 12.5)\n", + " Predict: 0.0\n", + " Else (feature 36 > 12.5)\n", + " Predict: 1.0\n", + " Else (feature 36 > 14.5)\n", + " Predict: 0.0\n", + " Else (feature 37 > 0.5)\n", + " If (feature 1 <= 0.5)\n", + " Predict: 2.0\n", + " Else (feature 1 > 0.5)\n", + " Predict: 0.0\n", + " Else (feature 25 > 0.5)\n", + " Predict: 0.0\n", + " Else (feature 38 > 0.5)\n", + " If (feature 36 <= 14.5)\n", + " If (feature 0 <= 0.5)\n", + " If (feature 19 <= 30.205)\n", + " Predict: 0.0\n", + " Else (feature 19 > 30.205)\n", + " Predict: 1.0\n", + " Else (feature 0 > 0.5)\n", + " If (feature 16 <= 5.0E-4)\n", + " Predict: 0.0\n", + " Else (feature 16 > 5.0E-4)\n", + " If (feature 42 <= 0.5)\n", + " Predict: 0.0\n", + " Else (feature 42 > 0.5)\n", + " Predict: 2.0\n", + " Else (feature 36 > 14.5)\n", + " Predict: 0.0\n", + " Else (feature 36 > 34.5)\n", + " If (feature 37 <= 0.5)\n", + " If (feature 38 <= 0.5)\n", + " If (feature 26 <= 0.5)\n", + " If (feature 21 <= 0.6)\n", + " If (feature 18 <= 33.5)\n", + " Predict: 2.0\n", + " Else (feature 18 > 33.5)\n", + " If (feature 41 <= 4.5)\n", + " If (feature 16 <= 0.6205)\n", + " Predict: 0.0\n", + " Else (feature 16 > 0.6205)\n", + " If (feature 35 <= 0.5)\n", + " Predict: 0.0\n", + " Else (feature 35 > 0.5)\n", + " Predict: 1.0\n", + " Else (feature 41 > 4.5)\n", + " If (feature 36 <= 43.5)\n", + " Predict: 1.0\n", + " Else (feature 36 > 43.5)\n", + " If (feature 18 <= 99.5)\n", + " Predict: 0.0\n", + " Else (feature 18 > 99.5)\n", + " Predict: 1.0\n", + " Else (feature 21 > 0.6)\n", + " If (feature 39 <= 2.5)\n", + " If (feature 19 <= 29.985)\n", + " If (feature 16 <= 5.0E-4)\n", + " If (feature 18 <= 61.5)\n", + " Predict: 1.0\n", + " Else (feature 18 > 61.5)\n", + " Predict: 0.0\n", + " Else (feature 16 > 5.0E-4)\n", + " Predict: 1.0\n", + " Else (feature 19 > 29.985)\n", + " If (feature 41 <= 4.5)\n", + " If (feature 20 <= 2.25)\n", + " Predict: 0.0\n", + " Else (feature 20 > 2.25)\n", + " Predict: 1.0\n", + " Else (feature 41 > 4.5)\n", + " Predict: 1.0\n", + " Else (feature 39 > 2.5)\n", + " If (feature 35 <= 0.5)\n", + " Predict: 1.0\n", + " Else (feature 35 > 0.5)\n", + " If (feature 41 <= 4.5)\n", + " If (feature 16 <= 0.0105)\n", + " Predict: 0.0\n", + " Else (feature 16 > 0.0105)\n", + " Predict: 1.0\n", + " Else (feature 41 > 4.5)\n", + " Predict: 1.0\n", + " Else (feature 26 > 0.5)\n", + " Predict: 0.0\n", + " Else (feature 38 > 0.5)\n", + " If (feature 31 <= 0.5)\n", + " If (feature 42 <= 2.5)\n", + " If (feature 11 <= 0.5)\n", + " If (feature 17 <= 65.9)\n", + " If (feature 16 <= 0.9285000035765)\n", + " Predict: 0.0\n", + " Else (feature 16 > 0.9285000035765)\n", + " If (feature 41 <= 1.5)\n", + " Predict: 1.0\n", + " Else (feature 41 > 1.5)\n", + " Predict: 0.0\n", + " Else (feature 17 > 65.9)\n", + " If (feature 29 <= 0.5)\n", + " If (feature 16 <= 0.0105)\n", + " Predict: 0.0\n", + " Else (feature 16 > 0.0105)\n", + " Predict: 1.0\n", + " Else (feature 29 > 0.5)\n", + " Predict: 1.0\n", + " Else (feature 11 > 0.5)\n", + " Predict: 0.0\n", + " Else (feature 42 > 2.5)\n", + " If (feature 18 <= 86.5)\n", + " If (feature 39 <= 0.5)\n", + " Predict: 1.0\n", + " Else (feature 39 > 0.5)\n", + " If (feature 42 <= 8.5)\n", + " Predict: 1.0\n", + " Else (feature 42 > 8.5)\n", + " Predict: 0.0\n", + " Else (feature 18 > 86.5)\n", + " If (feature 18 <= 89.5)\n", + " Predict: 0.0\n", + " Else (feature 18 > 89.5)\n", + " Predict: 1.0\n", + " Else (feature 31 > 0.5)\n", + " Predict: 0.0\n", + " Else (feature 37 > 0.5)\n", + " If (feature 16 <= 0.0015)\n", + " If (feature 1 <= 0.5)\n", + " If (feature 14 <= 0.5)\n", + " If (feature 42 <= 0.5)\n", + " If (feature 19 <= 30.125)\n", + " If (feature 21 <= 0.6)\n", + " If (feature 27 <= 0.5)\n", + " Predict: 0.0\n", + " Else (feature 27 > 0.5)\n", + " Predict: 1.0\n", + " Else (feature 21 > 0.6)\n", + " If (feature 18 <= 67.5)\n", + " Predict: 0.0\n", + " Else (feature 18 > 67.5)\n", + " Predict: 1.0\n", + " Else (feature 19 > 30.125)\n", + " Predict: 1.0\n", + " Else (feature 42 > 0.5)\n", + " If (feature 19 <= 29.875)\n", + " If (feature 37 <= 1.5)\n", + " Predict: 0.0\n", + " Else (feature 37 > 1.5)\n", + " If (feature 36 <= 41.5)\n", + " Predict: 0.0\n", + " Else (feature 36 > 41.5)\n", + " Predict: 1.0\n", + " Else (feature 19 > 29.875)\n", + " If (feature 31 <= 0.5)\n", + " If (feature 20 <= 11.0)\n", + " Predict: 0.0\n", + " Else (feature 20 > 11.0)\n", + " Predict: 1.0\n", + " Else (feature 31 > 0.5)\n", + " If (feature 21 <= 0.6)\n", + " Predict: 1.0\n", + " Else (feature 21 > 0.6)\n", + " Predict: 0.0\n", + " Else (feature 14 > 0.5)\n", + " If (feature 40 <= 1.5)\n", + " If (feature 39 <= 11.5)\n", + " If (feature 19 <= 30.125)\n", + " If (feature 21 <= 7.5)\n", + " Predict: 1.0\n", + " Else (feature 21 > 7.5)\n", + " Predict: 0.0\n", + " Else (feature 19 > 30.125)\n", + " Predict: 0.0\n", + " Else (feature 39 > 11.5)\n", + " Predict: 2.0\n", + " Else (feature 40 > 1.5)\n", + " Predict: 1.0\n", + " Else (feature 1 > 0.5)\n", + " If (feature 16 <= 5.0E-4)\n", + " If (feature 31 <= 0.5)\n", + " If (feature 42 <= 1.5)\n", + " If (feature 20 <= 7.5)\n", + " If (feature 36 <= 38.5)\n", + " Predict: 2.0\n", + " Else (feature 36 > 38.5)\n", + " Predict: 1.0\n", + " Else (feature 20 > 7.5)\n", + " Predict: 0.0\n", + " Else (feature 42 > 1.5)\n", + " Predict: 1.0\n", + " Else (feature 31 > 0.5)\n", + " Predict: 1.0\n", + " Else (feature 16 > 5.0E-4)\n", + " Predict: 0.0\n", + " Else (feature 16 > 0.0015)\n", + " If (feature 14 <= 0.5)\n", + " If (feature 21 <= 3.25)\n", + " If (feature 22 <= 0.045)\n", + " If (feature 35 <= 2.5)\n", + " If (feature 36 <= 47.5)\n", + " If (feature 16 <= 0.9285000035765)\n", + " Predict: 0.0\n", + " Else (feature 16 > 0.9285000035765)\n", + " Predict: 2.0\n", + " Else (feature 36 > 47.5)\n", + " Predict: 2.0\n", + " Else (feature 35 > 2.5)\n", + " If (feature 11 <= 0.5)\n", + " Predict: 0.0\n", + " Else (feature 11 > 0.5)\n", + " Predict: 2.0\n", + " Else (feature 22 > 0.045)\n", + " Predict: 1.0\n", + " Else (feature 21 > 3.25)\n", + " If (feature 37 <= 1.5)\n", + " If (feature 19 <= 29.095)\n", + " If (feature 35 <= 2.5)\n", + " Predict: 0.0\n", + " Else (feature 35 > 2.5)\n", + " If (feature 41 <= 5.5)\n", + " Predict: 0.0\n", + " Else (feature 41 > 5.5)\n", + " Predict: 1.0\n", + " Else (feature 19 > 29.095)\n", + " If (feature 41 <= 5.5)\n", + " Predict: 0.0\n", + " Else (feature 41 > 5.5)\n", + " Predict: 2.0\n", + " Else (feature 37 > 1.5)\n", + " If (feature 0 <= 0.5)\n", + " Predict: 1.0\n", + " Else (feature 0 > 0.5)\n", + " Predict: 0.0\n", + " Else (feature 14 > 0.5)\n", + " If (feature 36 <= 36.5)\n", + " If (feature 38 <= 0.5)\n", + " If (feature 17 <= 62.25)\n", + " If (feature 47 <= 22.5)\n", + " Predict: 1.0\n", + " Else (feature 47 > 22.5)\n", + " Predict: 2.0\n", + " Else (feature 17 > 62.25)\n", + " If (feature 41 <= 0.5)\n", + " If (feature 16 <= 0.1915)\n", + " Predict: 0.0\n", + " Else (feature 16 > 0.1915)\n", + " Predict: 2.0\n", + " Else (feature 41 > 0.5)\n", + " If (feature 18 <= 83.5)\n", + " Predict: 1.0\n", + " Else (feature 18 > 83.5)\n", + " Predict: 2.0\n", + " Else (feature 38 > 0.5)\n", + " Predict: 0.0\n", + " Else (feature 36 > 36.5)\n", + " If (feature 16 <= 0.018500000000000003)\n", + " If (feature 21 <= 7.5)\n", + " Predict: 1.0\n", + " Else (feature 21 > 7.5)\n", + " If (feature 34 <= 0.5)\n", + " If (feature 19 <= 29.744999999999997)\n", + " Predict: 1.0\n", + " Else (feature 19 > 29.744999999999997)\n", + " Predict: 2.0\n", + " Else (feature 34 > 0.5)\n", + " Predict: 2.0\n", + " Else (feature 16 > 0.018500000000000003)\n", + " If (feature 34 <= 0.5)\n", + " If (feature 16 <= 1.825000047685)\n", + " If (feature 31 <= 0.5)\n", + " Predict: 0.0\n", + " Else (feature 31 > 0.5)\n", + " Predict: 2.0\n", + " Else (feature 16 > 1.825000047685)\n", + " Predict: 2.0\n", + " Else (feature 34 > 0.5)\n", + " If (feature 19 <= 30.015)\n", + " If (feature 19 <= 29.744999999999997)\n", + " Predict: 2.0\n", + " Else (feature 19 > 29.744999999999997)\n", + " Predict: 1.0\n", + " Else (feature 19 > 30.015)\n", + " Predict: 2.0\n", + " Else (feature 35 > 3.5)\n", + " If (feature 23 <= 0.5)\n", + " If (feature 37 <= 0.5)\n", + " If (feature 31 <= 0.5)\n", + " If (feature 16 <= 0.3325)\n", + " If (feature 46 <= 0.5)\n", + " If (feature 42 <= 0.5)\n", + " Predict: 0.0\n", + " Else (feature 42 > 0.5)\n", + " If (feature 42 <= 3.5)\n", + " If (feature 25 <= 0.5)\n", + " If (feature 34 <= 0.5)\n", + " Predict: 1.0\n", + " Else (feature 34 > 0.5)\n", + " Predict: 0.0\n", + " Else (feature 25 > 0.5)\n", + " Predict: 0.0\n", + " Else (feature 42 > 3.5)\n", + " If (feature 32 <= 0.5)\n", + " If (feature 25 <= 0.5)\n", + " Predict: 1.0\n", + " Else (feature 25 > 0.5)\n", + " Predict: 0.0\n", + " Else (feature 32 > 0.5)\n", + " Predict: 0.0\n", + " Else (feature 46 > 0.5)\n", + " If (feature 32 <= 0.5)\n", + " If (feature 35 <= 11.5)\n", + " If (feature 27 <= 0.5)\n", + " Predict: 0.0\n", + " Else (feature 27 > 0.5)\n", + " Predict: 1.0\n", + " Else (feature 35 > 11.5)\n", + " If (feature 41 <= 4.5)\n", + " Predict: 0.0\n", + " Else (feature 41 > 4.5)\n", + " If (feature 34 <= 0.5)\n", + " Predict: 1.0\n", + " Else (feature 34 > 0.5)\n", + " Predict: 0.0\n", + " Else (feature 32 > 0.5)\n", + " If (feature 41 <= 5.5)\n", + " Predict: 0.0\n", + " Else (feature 41 > 5.5)\n", + " If (feature 19 <= 30.305)\n", + " Predict: 0.0\n", + " Else (feature 19 > 30.305)\n", + " Predict: 1.0\n", + " Else (feature 16 > 0.3325)\n", + " If (feature 34 <= 0.5)\n", + " If (feature 16 <= 1.825000047685)\n", + " If (feature 45 <= 0.5)\n", + " Predict: 1.0\n", + " Else (feature 45 > 0.5)\n", + " If (feature 42 <= 5.5)\n", + " If (feature 26 <= 0.5)\n", + " Predict: 1.0\n", + " Else (feature 26 > 0.5)\n", + " Predict: 0.0\n", + " Else (feature 42 > 5.5)\n", + " If (feature 19 <= 30.645)\n", + " Predict: 1.0\n", + " Else (feature 19 > 30.645)\n", + " Predict: 0.0\n", + " Else (feature 16 > 1.825000047685)\n", + " If (feature 19 <= 29.744999999999997)\n", + " If (feature 36 <= 12.5)\n", + " Predict: 1.0\n", + " Else (feature 36 > 12.5)\n", + " If (feature 35 <= 8.5)\n", + " Predict: 0.0\n", + " Else (feature 35 > 8.5)\n", + " Predict: 1.0\n", + " Else (feature 19 > 29.744999999999997)\n", + " If (feature 38 <= 0.5)\n", + " Predict: 1.0\n", + " Else (feature 38 > 0.5)\n", + " Predict: 0.0\n", + " Else (feature 34 > 0.5)\n", + " If (feature 21 <= 3.25)\n", + " If (feature 20 <= 4.5)\n", + " If (feature 13 <= 0.5)\n", + " If (feature 41 <= 3.5)\n", + " Predict: 0.0\n", + " Else (feature 41 > 3.5)\n", + " Predict: 2.0\n", + " Else (feature 13 > 0.5)\n", + " Predict: 1.0\n", + " Else (feature 20 > 4.5)\n", + " If (feature 18 <= 83.5)\n", + " If (feature 16 <= 1.825000047685)\n", + " Predict: 0.0\n", + " Else (feature 16 > 1.825000047685)\n", + " Predict: 1.0\n", + " Else (feature 18 > 83.5)\n", + " Predict: 0.0\n", + " Else (feature 21 > 3.25)\n", + " If (feature 38 <= 0.5)\n", + " If (feature 47 <= 14.5)\n", + " If (feature 42 <= 0.5)\n", + " Predict: 0.0\n", + " Else (feature 42 > 0.5)\n", + " Predict: 1.0\n", + " Else (feature 47 > 14.5)\n", + " Predict: 1.0\n", + " Else (feature 38 > 0.5)\n", + " Predict: 0.0\n", + " Else (feature 31 > 0.5)\n", + " If (feature 29 <= 0.5)\n", + " If (feature 39 <= 1.5)\n", + " If (feature 34 <= 0.5)\n", + " Predict: 0.0\n", + " Else (feature 34 > 0.5)\n", + " If (feature 25 <= 0.5)\n", + " If (feature 13 <= 0.5)\n", + " If (feature 19 <= 30.645)\n", + " Predict: 0.0\n", + " Else (feature 19 > 30.645)\n", + " Predict: 1.0\n", + " Else (feature 13 > 0.5)\n", + " Predict: 0.0\n", + " Else (feature 25 > 0.5)\n", + " Predict: 0.0\n", + " Else (feature 39 > 1.5)\n", + " If (feature 16 <= 0.46349999999999997)\n", + " Predict: 0.0\n", + " Else (feature 16 > 0.46349999999999997)\n", + " If (feature 42 <= 5.5)\n", + " If (feature 17 <= 57.1)\n", + " If (feature 20 <= 4.5)\n", + " Predict: 1.0\n", + " Else (feature 20 > 4.5)\n", + " Predict: 0.0\n", + " Else (feature 17 > 57.1)\n", + " Predict: 0.0\n", + " Else (feature 42 > 5.5)\n", + " Predict: 1.0\n", + " Else (feature 29 > 0.5)\n", + " If (feature 19 <= 30.105)\n", + " If (feature 1 <= 0.5)\n", + " If (feature 42 <= 0.5)\n", + " If (feature 35 <= 17.5)\n", + " If (feature 34 <= 0.5)\n", + " Predict: 1.0\n", + " Else (feature 34 > 0.5)\n", + " Predict: 0.0\n", + " Else (feature 35 > 17.5)\n", + " Predict: 1.0\n", + " Else (feature 42 > 0.5)\n", + " Predict: 1.0\n", + " Else (feature 1 > 0.5)\n", + " If (feature 19 <= 29.795)\n", + " If (feature 18 <= 44.5)\n", + " Predict: 0.0\n", + " Else (feature 18 > 44.5)\n", + " If (feature 36 <= 25.5)\n", + " Predict: 1.0\n", + " Else (feature 36 > 25.5)\n", + " Predict: 0.0\n", + " Else (feature 19 > 29.795)\n", + " If (feature 34 <= 0.5)\n", + " Predict: 1.0\n", + " Else (feature 34 > 0.5)\n", + " If (feature 18 <= 83.5)\n", + " Predict: 0.0\n", + " Else (feature 18 > 83.5)\n", + " Predict: 1.0\n", + " Else (feature 19 > 30.105)\n", + " If (feature 41 <= 4.5)\n", + " If (feature 18 <= 66.5)\n", + " If (feature 17 <= 46.2)\n", + " Predict: 0.0\n", + " Else (feature 17 > 46.2)\n", + " If (feature 34 <= 0.5)\n", + " Predict: 1.0\n", + " Else (feature 34 > 0.5)\n", + " Predict: 0.0\n", + " Else (feature 18 > 66.5)\n", + " Predict: 0.0\n", + " Else (feature 41 > 4.5)\n", + " If (feature 44 <= 0.5)\n", + " If (feature 17 <= 48.8)\n", + " Predict: 0.0\n", + " Else (feature 17 > 48.8)\n", + " Predict: 1.0\n", + " Else (feature 44 > 0.5)\n", + " Predict: 0.0\n", + " Else (feature 37 > 0.5)\n", + " If (feature 42 <= 0.5)\n", + " If (feature 38 <= 0.5)\n", + " If (feature 32 <= 0.5)\n", + " If (feature 20 <= 17.5)\n", + " If (feature 34 <= 0.5)\n", + " If (feature 17 <= 57.1)\n", + " Predict: 0.0\n", + " Else (feature 17 > 57.1)\n", + " If (feature 36 <= 32.5)\n", + " Predict: 1.0\n", + " Else (feature 36 > 32.5)\n", + " Predict: 0.0\n", + " Else (feature 34 > 0.5)\n", + " If (feature 16 <= 0.0199999997765)\n", + " Predict: 0.0\n", + " Else (feature 16 > 0.0199999997765)\n", + " If (feature 39 <= 12.5)\n", + " Predict: 0.0\n", + " Else (feature 39 > 12.5)\n", + " Predict: 1.0\n", + " Else (feature 20 > 17.5)\n", + " If (feature 21 <= 6.95)\n", + " Predict: 1.0\n", + " Else (feature 21 > 6.95)\n", + " If (feature 18 <= 20.5)\n", + " Predict: 0.0\n", + " Else (feature 18 > 20.5)\n", + " If (feature 41 <= 3.5)\n", + " Predict: 1.0\n", + " Else (feature 41 > 3.5)\n", + " Predict: 0.0\n", + " Else (feature 32 > 0.5)\n", + " If (feature 19 <= 29.325)\n", + " If (feature 27 <= 0.5)\n", + " If (feature 35 <= 5.5)\n", + " Predict: 1.0\n", + " Else (feature 35 > 5.5)\n", + " Predict: 0.0\n", + " Else (feature 27 > 0.5)\n", + " Predict: 1.0\n", + " Else (feature 19 > 29.325)\n", + " Predict: 0.0\n", + " Else (feature 38 > 0.5)\n", + " If (feature 32 <= 0.5)\n", + " If (feature 22 <= 0.015)\n", + " If (feature 21 <= 3.25)\n", + " Predict: 0.0\n", + " Else (feature 21 > 3.25)\n", + " If (feature 16 <= 0.1915)\n", + " Predict: 0.0\n", + " Else (feature 16 > 0.1915)\n", + " Predict: 1.0\n", + " Else (feature 22 > 0.015)\n", + " Predict: 0.0\n", + " Else (feature 32 > 0.5)\n", + " Predict: 0.0\n", + " Else (feature 42 > 0.5)\n", + " If (feature 47 <= 13.5)\n", + " If (feature 20 <= 12.5)\n", + " If (feature 14 <= 0.5)\n", + " Predict: 0.0\n", + " Else (feature 14 > 0.5)\n", + " If (feature 16 <= 0.9285000035765)\n", + " If (feature 37 <= 1.5)\n", + " Predict: 0.0\n", + " Else (feature 37 > 1.5)\n", + " If (feature 39 <= 4.5)\n", + " Predict: 0.0\n", + " Else (feature 39 > 4.5)\n", + " Predict: 1.0\n", + " Else (feature 16 > 0.9285000035765)\n", + " If (feature 16 <= 1.825000047685)\n", + " If (feature 41 <= 4.5)\n", + " Predict: 0.0\n", + " Else (feature 41 > 4.5)\n", + " Predict: 2.0\n", + " Else (feature 16 > 1.825000047685)\n", + " If (feature 32 <= 0.5)\n", + " Predict: 0.0\n", + " Else (feature 32 > 0.5)\n", + " Predict: 2.0\n", + " Else (feature 20 > 12.5)\n", + " If (feature 19 <= 29.325)\n", + " Predict: 1.0\n", + " Else (feature 19 > 29.325)\n", + " If (feature 34 <= 0.5)\n", + " If (feature 16 <= 0.9285000035765)\n", + " If (feature 36 <= 10.5)\n", + " Predict: 1.0\n", + " Else (feature 36 > 10.5)\n", + " Predict: 0.0\n", + " Else (feature 16 > 0.9285000035765)\n", + " Predict: 0.0\n", + " Else (feature 34 > 0.5)\n", + " Predict: 0.0\n", + " Else (feature 47 > 13.5)\n", + " If (feature 11 <= 0.5)\n", + " If (feature 21 <= 3.25)\n", + " If (feature 46 <= 0.5)\n", + " If (feature 16 <= 0.053500000000000006)\n", + " Predict: 0.0\n", + " Else (feature 16 > 0.053500000000000006)\n", + " If (feature 25 <= 0.5)\n", + " Predict: 0.0\n", + " Else (feature 25 > 0.5)\n", + " Predict: 1.0\n", + " Else (feature 46 > 0.5)\n", + " If (feature 36 <= 40.5)\n", + " If (feature 18 <= 33.5)\n", + " Predict: 2.0\n", + " Else (feature 18 > 33.5)\n", + " Predict: 0.0\n", + " Else (feature 36 > 40.5)\n", + " Predict: 0.0\n", + " Else (feature 21 > 3.25)\n", + " If (feature 47 <= 15.5)\n", + " If (feature 42 <= 1.5)\n", + " Predict: 0.0\n", + " Else (feature 42 > 1.5)\n", + " Predict: 1.0\n", + " Else (feature 47 > 15.5)\n", + " Predict: 0.0\n", + " Else (feature 11 > 0.5)\n", + " If (feature 40 <= 3.5)\n", + " If (feature 16 <= 0.014499999999999999)\n", + " Predict: 0.0\n", + " Else (feature 16 > 0.014499999999999999)\n", + " If (feature 31 <= 0.5)\n", + " If (feature 36 <= 51.5)\n", + " Predict: 0.0\n", + " Else (feature 36 > 51.5)\n", + " Predict: 2.0\n", + " Else (feature 31 > 0.5)\n", + " Predict: 0.0\n", + " Else (feature 40 > 3.5)\n", + " If (feature 40 <= 4.5)\n", + " Predict: 0.0\n", + " Else (feature 40 > 4.5)\n", + " If (feature 27 <= 0.5)\n", + " Predict: 0.0\n", + " Else (feature 27 > 0.5)\n", + " Predict: 1.0\n", + " Else (feature 23 > 0.5)\n", + " If (feature 34 <= 0.5)\n", + " If (feature 16 <= 0.0199999997765)\n", + " If (feature 17 <= 76.4)\n", + " If (feature 38 <= 0.5)\n", + " If (feature 39 <= 2.5)\n", + " If (feature 41 <= 4.5)\n", + " Predict: 0.0\n", + " Else (feature 41 > 4.5)\n", + " If (feature 32 <= 0.5)\n", + " If (feature 16 <= 5.0E-4)\n", + " Predict: 1.0\n", + " Else (feature 16 > 5.0E-4)\n", + " Predict: 0.0\n", + " Else (feature 32 > 0.5)\n", + " Predict: 0.0\n", + " Else (feature 39 > 2.5)\n", + " If (feature 42 <= 6.5)\n", + " Predict: 0.0\n", + " Else (feature 42 > 6.5)\n", + " Predict: 1.0\n", + " Else (feature 38 > 0.5)\n", + " If (feature 17 <= 55.5)\n", + " Predict: 0.0\n", + " Else (feature 17 > 55.5)\n", + " If (feature 35 <= 8.5)\n", + " Predict: 0.0\n", + " Else (feature 35 > 8.5)\n", + " If (feature 39 <= 4.5)\n", + " If (feature 36 <= 2.5)\n", + " Predict: 1.0\n", + " Else (feature 36 > 2.5)\n", + " Predict: 0.0\n", + " Else (feature 39 > 4.5)\n", + " Predict: 0.0\n", + " Else (feature 17 > 76.4)\n", + " If (feature 42 <= 0.5)\n", + " If (feature 19 <= 29.875)\n", + " If (feature 17 <= 80.8)\n", + " If (feature 39 <= 4.5)\n", + " If (feature 37 <= 0.5)\n", + " Predict: 0.0\n", + " Else (feature 37 > 0.5)\n", + " Predict: 1.0\n", + " Else (feature 39 > 4.5)\n", + " Predict: 0.0\n", + " Else (feature 17 > 80.8)\n", + " Predict: 0.0\n", + " Else (feature 19 > 29.875)\n", + " If (feature 41 <= 5.5)\n", + " Predict: 0.0\n", + " Else (feature 41 > 5.5)\n", + " If (feature 40 <= 4.5)\n", + " If (feature 40 <= 0.5)\n", + " Predict: 0.0\n", + " Else (feature 40 > 0.5)\n", + " Predict: 1.0\n", + " Else (feature 40 > 4.5)\n", + " Predict: 0.0\n", + " Else (feature 42 > 0.5)\n", + " If (feature 39 <= 8.5)\n", + " If (feature 1 <= 0.5)\n", + " If (feature 40 <= 8.5)\n", + " Predict: 0.0\n", + " Else (feature 40 > 8.5)\n", + " If (feature 40 <= 9.5)\n", + " Predict: 1.0\n", + " Else (feature 40 > 9.5)\n", + " Predict: 0.0\n", + " Else (feature 1 > 0.5)\n", + " Predict: 0.0\n", + " Else (feature 39 > 8.5)\n", + " Predict: 0.0\n", + " Else (feature 16 > 0.0199999997765)\n", + " If (feature 18 <= 63.5)\n", + " If (feature 44 <= 0.5)\n", + " If (feature 47 <= 11.5)\n", + " If (feature 19 <= 28.735)\n", + " If (feature 39 <= 1.5)\n", + " Predict: 0.0\n", + " Else (feature 39 > 1.5)\n", + " Predict: 1.0\n", + " Else (feature 19 > 28.735)\n", + " If (feature 19 <= 29.795)\n", + " If (feature 39 <= 5.5)\n", + " Predict: 0.0\n", + " Else (feature 39 > 5.5)\n", + " Predict: 2.0\n", + " Else (feature 19 > 29.795)\n", + " Predict: 0.0\n", + " Else (feature 47 > 11.5)\n", + " If (feature 36 <= 31.5)\n", + " If (feature 18 <= 54.5)\n", + " If (feature 16 <= 0.46349999999999997)\n", + " Predict: 1.0\n", + " Else (feature 16 > 0.46349999999999997)\n", + " Predict: 0.0\n", + " Else (feature 18 > 54.5)\n", + " Predict: 2.0\n", + " Else (feature 36 > 31.5)\n", + " Predict: 0.0\n", + " Else (feature 44 > 0.5)\n", + " If (feature 32 <= 0.5)\n", + " If (feature 47 <= 16.5)\n", + " If (feature 18 <= 44.5)\n", + " If (feature 21 <= 5.4)\n", + " Predict: 0.0\n", + " Else (feature 21 > 5.4)\n", + " Predict: 2.0\n", + " Else (feature 18 > 44.5)\n", + " If (feature 41 <= 1.5)\n", + " Predict: 1.0\n", + " Else (feature 41 > 1.5)\n", + " Predict: 0.0\n", + " Else (feature 47 > 16.5)\n", + " Predict: 1.0\n", + " Else (feature 32 > 0.5)\n", + " Predict: 2.0\n", + " Else (feature 18 > 63.5)\n", + " If (feature 22 <= 0.11499999999999999)\n", + " If (feature 42 <= 0.5)\n", + " Predict: 0.0\n", + " Else (feature 42 > 0.5)\n", + " If (feature 35 <= 5.5)\n", + " If (feature 16 <= 0.9285000035765)\n", + " If (feature 32 <= 0.5)\n", + " Predict: 2.0\n", + " Else (feature 32 > 0.5)\n", + " Predict: 1.0\n", + " Else (feature 16 > 0.9285000035765)\n", + " If (feature 20 <= 9.5)\n", + " Predict: 0.0\n", + " Else (feature 20 > 9.5)\n", + " Predict: 2.0\n", + " Else (feature 35 > 5.5)\n", + " If (feature 41 <= 4.5)\n", + " Predict: 0.0\n", + " Else (feature 41 > 4.5)\n", + " If (feature 1 <= 0.5)\n", + " Predict: 2.0\n", + " Else (feature 1 > 0.5)\n", + " Predict: 0.0\n", + " Else (feature 22 > 0.11499999999999999)\n", + " Predict: 2.0\n", + " Else (feature 34 > 0.5)\n", + " If (feature 42 <= 0.5)\n", + " If (feature 47 <= 7.5)\n", + " If (feature 41 <= 4.5)\n", + " If (feature 35 <= 7.5)\n", + " If (feature 16 <= 0.6205)\n", + " Predict: 0.0\n", + " Else (feature 16 > 0.6205)\n", + " If (feature 21 <= 0.6)\n", + " Predict: 0.0\n", + " Else (feature 21 > 0.6)\n", + " Predict: 1.0\n", + " Else (feature 35 > 7.5)\n", + " Predict: 0.0\n", + " Else (feature 41 > 4.5)\n", + " If (feature 40 <= 8.5)\n", + " If (feature 35 <= 16.5)\n", + " Predict: 0.0\n", + " Else (feature 35 > 16.5)\n", + " If (feature 18 <= 49.5)\n", + " Predict: 0.0\n", + " Else (feature 18 > 49.5)\n", + " If (feature 4 <= 0.5)\n", + " Predict: 1.0\n", + " Else (feature 4 > 0.5)\n", + " Predict: 0.0\n", + " Else (feature 40 > 8.5)\n", + " If (feature 16 <= 5.0E-4)\n", + " Predict: 0.0\n", + " Else (feature 16 > 5.0E-4)\n", + " Predict: 1.0\n", + " Else (feature 47 > 7.5)\n", + " If (feature 17 <= 51.25)\n", + " Predict: 0.0\n", + " Else (feature 17 > 51.25)\n", + " If (feature 36 <= 19.5)\n", + " Predict: 0.0\n", + " Else (feature 36 > 19.5)\n", + " If (feature 19 <= 29.915)\n", + " Predict: 0.0\n", + " Else (feature 19 > 29.915)\n", + " If (feature 37 <= 0.5)\n", + " Predict: 0.0\n", + " Else (feature 37 > 0.5)\n", + " If (feature 14 <= 0.5)\n", + " Predict: 0.0\n", + " Else (feature 14 > 0.5)\n", + " Predict: 1.0\n", + " Else (feature 42 > 0.5)\n", + " If (feature 5 <= 0.5)\n", + " If (feature 37 <= 0.5)\n", + " If (feature 19 <= 29.975)\n", + " If (feature 18 <= 63.5)\n", + " If (feature 21 <= 6.95)\n", + " If (feature 39 <= 4.5)\n", + " Predict: 1.0\n", + " Else (feature 39 > 4.5)\n", + " Predict: 0.0\n", + " Else (feature 21 > 6.95)\n", + " Predict: 0.0\n", + " Else (feature 18 > 63.5)\n", + " If (feature 35 <= 7.5)\n", + " If (feature 39 <= 0.5)\n", + " Predict: 1.0\n", + " Else (feature 39 > 0.5)\n", + " Predict: 0.0\n", + " Else (feature 35 > 7.5)\n", + " Predict: 0.0\n", + " Else (feature 19 > 29.975)\n", + " Predict: 0.0\n", + " Else (feature 37 > 0.5)\n", + " If (feature 8 <= 0.5)\n", + " If (feature 25 <= 0.5)\n", + " If (feature 19 <= 29.665)\n", + " If (feature 40 <= 7.5)\n", + " Predict: 0.0\n", + " Else (feature 40 > 7.5)\n", + " Predict: 1.0\n", + " Else (feature 19 > 29.665)\n", + " Predict: 0.0\n", + " Else (feature 25 > 0.5)\n", + " If (feature 47 <= 7.5)\n", + " If (feature 36 <= 2.5)\n", + " Predict: 1.0\n", + " Else (feature 36 > 2.5)\n", + " Predict: 0.0\n", + " Else (feature 47 > 7.5)\n", + " If (feature 16 <= 0.0205)\n", + " Predict: 0.0\n", + " Else (feature 16 > 0.0205)\n", + " Predict: 2.0\n", + " Else (feature 8 > 0.5)\n", + " Predict: 1.0\n", + " Else (feature 5 > 0.5)\n", + " If (feature 17 <= 65.9)\n", + " Predict: 0.0\n", + " Else (feature 17 > 65.9)\n", + " Predict: 1.0\n", + "\n" + ] + } + ], + "source": [ + "# Tree from the best Model printing it \n", + "\n", + "print(cv_rf.bestModel.stages[-1].trees[3].toDebugString)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Decision Tree Base Model Multiclass Classification" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "metadata": {}, + "outputs": [], + "source": [ + "\n", + "from pyspark.ml.classification import DecisionTreeClassifier\n", + "\n", + "# Create initial Decision Tree Model\n", + "\n", + "dt = DecisionTreeClassifier(labelCol=\"label\", featuresCol=\"features\")\n", + "\n", + "# Creating pipeline for DT Base Model \n", + "\n", + "dt_pipe = Pipeline(stages=[label_stringIdx, va, dt])\n", + "\n", + "# Train DT Base model with Training Data\n", + "\n", + "dtModel = dt_pipe.fit(us_train_cat)" + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "metadata": {}, + "outputs": [], + "source": [ + "# Multiclass Evaluator to evaluate the performance of the model \n", + "\n", + "from pyspark.ml.evaluation import MulticlassClassificationEvaluator\n", + "\n", + "evaluator_dt = MulticlassClassificationEvaluator(labelCol=\"label\", predictionCol=\"prediction\", metricName=\"accuracy\")" + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "metadata": {}, + "outputs": [], + "source": [ + "# Transform Test data using Fitted Pipeline Built earlier for prediction of Test data\n", + "\n", + "pred_dt = dtModel.transform(us_test_cat)" + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Accuracy: 0.7120507809510203\n" + ] + } + ], + "source": [ + "# Evaluation of model using Multiclass Evaluator on Test data\n", + "\n", + "print(\"Accuracy:\",evaluator_dt.evaluate(pred_dt))" + ] + }, + { + "cell_type": "code", + "execution_count": 41, + "metadata": {}, + "outputs": [], + "source": [ + "prediction_dt=pred_dt.toPandas()[\"prediction\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 42, + "metadata": {}, + "outputs": [], + "source": [ + "true_labels=us_test_cat.toPandas()[\"Severity\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 43, + "metadata": {}, + "outputs": [], + "source": [ + "from sklearn.metrics import classification_report" + ] + }, + { + "cell_type": "code", + "execution_count": 44, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " precision recall f1-score support\n", + "\n", + " 0 0.74 0.89 0.81 131571\n", + " 1 0.60 0.36 0.45 58293\n", + " 2 0.50 0.22 0.31 6115\n", + "\n", + " micro avg 0.71 0.71 0.71 195979\n", + " macro avg 0.61 0.49 0.52 195979\n", + "weighted avg 0.69 0.71 0.69 195979\n", + "\n" + ] + } + ], + "source": [ + "print(classification_report(y_pred=prediction_dt,y_true=true_labels))" + ] + }, + { + "cell_type": "code", + "execution_count": 45, + "metadata": {}, + "outputs": [], + "source": [ + "# Creating Pandas Dataframe for Features and their Importance of DT Base Model for Multiclass Classification\n", + "\n", + "pd.set_option('display.max_rows', None)\n", + "feat_imp_tuned_dt = pd.DataFrame(list(zip([i for i in us_train_cat.columns if i!='Severity'], dtModel.stages[-1].featureImportances)),\n", + " columns = ['column', 'weight']).sort_values('weight',ascending=False)" + ] + }, + { + "cell_type": "code", + "execution_count": 46, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Plotting top 10 Features from Feature Importance of DT Base Model for Multiclass Classification\n", + "\n", + "plt.figure(figsize=(10,10))\n", + "sns.barplot(x=feat_imp_tuned_dt['column'][:10], y=feat_imp_tuned_dt['weight'][:10],data=feat_imp_tuned_dt)\n", + "plt.xticks(rotation=90)\n", + "plt.xlabel(\"Features\")\n", + "plt.ylabel(\"Weights\")\n", + "plt.title(\"Top 10 Features based on Importance from DT Multiclass Base Model\");" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Decision Tree Grid Search Multiclass Classification" + ] + }, + { + "cell_type": "code", + "execution_count": 47, + "metadata": {}, + "outputs": [], + "source": [ + "\n", + "# Initializing DT Grid Pipeline \n", + "\n", + "dt_new = DecisionTreeClassifier(labelCol=\"label\", featuresCol=\"features\")\n", + "\n", + "# Creating pipeline for DT Grid Model \n", + "\n", + "dt_new_pipe = Pipeline(stages=[label_stringIdx, va, dt_new])\n", + "\n", + "# Creating Grid Search for Hyper Parameter Tuning for DT Model\n", + "\n", + "#grid_dt = ParamGridBuilder().addGrid(dt_new.maxDepth, [10,15,30]).addGrid(dt_new.minInstancesPerNode, [500,1000,1500]).addGrid(dt_new.maxBins,[20,35,50]).build()\n", + "grid_dt = ParamGridBuilder().addGrid(dt_new.maxDepth,[30]).addGrid(dt_new.minInstancesPerNode, [500]).addGrid(dt_new.maxBins,[20]).build()\n", + "# Cross Validator Pipeline with 5 fold \n", + "\n", + "cv1_dt = CrossValidator(estimator=dt_new_pipe,estimatorParamMaps=grid_dt, numFolds=5, evaluator=evaluator_dt)" + ] + }, + { + "cell_type": "code", + "execution_count": 48, + "metadata": {}, + "outputs": [], + "source": [ + "# Fitting the training data using the Cross Validator Pipeline \n", + "\n", + "dtModel_t = cv1_dt.fit(us_train_cat)" + ] + }, + { + "cell_type": "code", + "execution_count": 49, + "metadata": {}, + "outputs": [], + "source": [ + "# Transform Test data using Cross Validation Pipeline Built earlier for prediction of Test data\n", + "\n", + "pred_dtt = dtModel_t.transform(us_test_cat)" + ] + }, + { + "cell_type": "code", + "execution_count": 50, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Accuracy: 0.7259502293613092\n" + ] + } + ], + "source": [ + "# Evaluation of Testing Data using Multiclass Evaluator \n", + "\n", + "print(\"Accuracy:\",evaluator_dt.evaluate(pred_dtt))" + ] + }, + { + "cell_type": "code", + "execution_count": 51, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{Param(parent='DecisionTreeClassifier_90ff862f7958', name='cacheNodeIds', doc='If false, the algorithm will pass trees to executors to match instances with nodes. If true, the algorithm will cache node IDs for each instance. Caching can speed up training of deeper trees.'): False,\n", + " Param(parent='DecisionTreeClassifier_90ff862f7958', name='checkpointInterval', doc='set checkpoint interval (>= 1) or disable checkpoint (-1). E.g. 10 means that the cache will get checkpointed every 10 iterations. Note: this setting will be ignored if the checkpoint directory is not set in the SparkContext'): 10,\n", + " Param(parent='DecisionTreeClassifier_90ff862f7958', name='featuresCol', doc='features column name'): 'features',\n", + " Param(parent='DecisionTreeClassifier_90ff862f7958', name='impurity', doc='Criterion used for information gain calculation (case-insensitive). Supported options: entropy, gini'): 'gini',\n", + " Param(parent='DecisionTreeClassifier_90ff862f7958', name='labelCol', doc='label column name'): 'label',\n", + " Param(parent='DecisionTreeClassifier_90ff862f7958', name='maxBins', doc='Max number of bins for discretizing continuous features. Must be >=2 and >= number of categories for any categorical feature.'): 20,\n", + " Param(parent='DecisionTreeClassifier_90ff862f7958', name='maxDepth', doc='Maximum depth of the tree. (>= 0) E.g., depth 0 means 1 leaf node; depth 1 means 1 internal node + 2 leaf nodes.'): 30,\n", + " Param(parent='DecisionTreeClassifier_90ff862f7958', name='maxMemoryInMB', doc='Maximum memory in MB allocated to histogram aggregation.'): 256,\n", + " Param(parent='DecisionTreeClassifier_90ff862f7958', name='minInfoGain', doc='Minimum information gain for a split to be considered at a tree node.'): 0.0,\n", + " Param(parent='DecisionTreeClassifier_90ff862f7958', name='minInstancesPerNode', doc='Minimum number of instances each child must have after split. If a split causes the left or right child to have fewer than minInstancesPerNode, the split will be discarded as invalid. Should be >= 1.'): 500,\n", + " Param(parent='DecisionTreeClassifier_90ff862f7958', name='predictionCol', doc='prediction column name'): 'prediction',\n", + " Param(parent='DecisionTreeClassifier_90ff862f7958', name='probabilityCol', doc='Column name for predicted class conditional probabilities. Note: Not all models output well-calibrated probability estimates! These probabilities should be treated as confidences, not precise probabilities'): 'probability',\n", + " Param(parent='DecisionTreeClassifier_90ff862f7958', name='rawPredictionCol', doc='raw prediction (a.k.a. confidence) column name'): 'rawPrediction',\n", + " Param(parent='DecisionTreeClassifier_90ff862f7958', name='seed', doc='random seed'): 3427287019239861576}" + ] + }, + "execution_count": 51, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "dtModel_t.bestModel.stages[-1].extractParamMap()" + ] + }, + { + "cell_type": "code", + "execution_count": 76, + "metadata": {}, + "outputs": [ + { + "ename": "AttributeError", + "evalue": "'DecisionTreeClassificationModel' object has no attribute 'getMaxBins'", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mAttributeError\u001b[0m Traceback (most recent call last)", + "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[1;31m# Decision Tree Hyper Parameter Value Max Bins from Best Model\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 2\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 3\u001b[1;33m \u001b[0mdtModel_t\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mbestModel\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mstages\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;33m-\u001b[0m\u001b[1;36m1\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mgetMaxBins\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[1;31mAttributeError\u001b[0m: 'DecisionTreeClassificationModel' object has no attribute 'getMaxBins'" + ] + } + ], + "source": [ + "# Decision Tree Hyper Parameter Value Max Bins from Best Model\n", + "\n", + "dtModel_t.bestModel.stages[-1].getMaxBins()" + ] + }, + { + "cell_type": "code", + "execution_count": 85, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "30" + ] + }, + "execution_count": 85, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Decision Tree Hyper Parameter Value Max Depth from Best Model\n", + "\n", + "dtModel_t.bestModel.stages[-1].getMaxDepth()" + ] + }, + { + "cell_type": "code", + "execution_count": 86, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "500" + ] + }, + "execution_count": 86, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Decision Tree Hyper Parameter Value Minimum Instances Per Node from Best Model\n", + "\n", + "dtModel_t.bestModel.stages[-1].getMinInstancesPerNode()" + ] + }, + { + "cell_type": "code", + "execution_count": 52, + "metadata": {}, + "outputs": [], + "source": [ + "prediction_dtt=pred_dtt.toPandas()[\"prediction\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 53, + "metadata": {}, + "outputs": [], + "source": [ + "true_labels=us_test_cat.toPandas()[\"Severity\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 54, + "metadata": {}, + "outputs": [], + "source": [ + "from sklearn.metrics import classification_report" + ] + }, + { + "cell_type": "code", + "execution_count": 55, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " precision recall f1-score support\n", + "\n", + " 0 0.77 0.86 0.81 131571\n", + " 1 0.61 0.47 0.53 58293\n", + " 2 0.51 0.22 0.31 6115\n", + "\n", + " micro avg 0.73 0.73 0.73 195979\n", + " macro avg 0.63 0.52 0.55 195979\n", + "weighted avg 0.71 0.73 0.71 195979\n", + "\n" + ] + } + ], + "source": [ + "print(classification_report(y_pred=prediction_dtt,y_true=true_labels))" + ] + }, + { + "cell_type": "code", + "execution_count": 56, + "metadata": {}, + "outputs": [], + "source": [ + "# Creating Pandas Dataframe for Features and their Importance of DT Grid Model for Multiclass Classification\n", + "\n", + "pd.set_option('display.max_rows', None)\n", + "feat_imp_tuned_dtt = pd.DataFrame(list(zip([i for i in us_train_cat.columns if i!='Severity'], dtModel_t.bestModel.stages[-1].featureImportances)),\n", + " columns = ['column', 'weight']).sort_values('weight',ascending=False)" + ] + }, + { + "cell_type": "code", + "execution_count": 57, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Plotting top 10 Features from Feature Importance of DT Grid Model for Multiclass Classification\n", + "\n", + "plt.figure(figsize=(10,10))\n", + "sns.barplot(x=feat_imp_tuned_dtt['column'][:10], y=feat_imp_tuned_dtt['weight'][:10],data=feat_imp_tuned_dtt)\n", + "plt.xticks(rotation=90)\n", + "plt.xlabel(\"Features\")\n", + "plt.ylabel(\"Weights\")\n", + "plt.title(\"Top 10 Features based on Importance from DT Multiclass tuned\");" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.5.4" + }, + "latex_envs": { + "LaTeX_envs_menu_present": true, + "autoclose": false, + "autocomplete": true, + "bibliofile": "biblio.bib", + "cite_by": "apalike", + "current_citInitial": 1, + "eqLabelWithNumbers": true, + "eqNumInitial": 1, + "hotkeys": { + "equation": "Ctrl-E", + "itemize": "Ctrl-I" + }, + "labels_anchors": false, + "latex_user_defs": false, + "report_style_numbering": false, + "user_envs_cfg": false + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/RFDT_Multiclass_Bal.ipynb b/RFDT_Multiclass_Bal.ipynb new file mode 100644 index 0000000..01918b8 --- /dev/null +++ b/RFDT_Multiclass_Bal.ipynb @@ -0,0 +1,2770 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 46, + "metadata": {}, + "outputs": [], + "source": [ + "from pyspark.sql import SparkSession\n", + "from pyspark.sql import Row\n", + "import numpy as np\n", + "import pandas as pd\n", + "from pyspark.sql.types import *\n", + "from pyspark.sql.functions import *\n", + "import matplotlib.pyplot as plt\n", + "from pyspark.sql import functions as fn\n", + "from pyspark.ml import feature, regression, evaluation, Pipeline\n", + "import seaborn as sns\n", + "from pyspark.ml.feature import VectorAssembler\n", + "from pyspark.ml import Pipeline\n", + "from pyspark.ml.regression import LinearRegression\n", + "from pyspark.ml.stat import Correlation\n", + "from pyspark.ml.feature import VectorAssembler\n", + "from pyspark.ml.classification import LogisticRegression,RandomForestClassifier\n", + "from pyspark.ml.classification import DecisionTreeClassifier\n", + "from pyspark.ml.evaluation import BinaryClassificationEvaluator\n", + "from pyspark.ml.tuning import CrossValidator, ParamGridBuilder\n", + "from pyspark.ml import Pipeline\n", + "from pyspark.ml.feature import OneHotEncoder, OneHotEncoderModel, StringIndexer, VectorAssembler\n", + "spark = SparkSession.builder.getOrCreate()\n", + "sc = spark.sparkContext\n" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "# Do not delete or change this cell\n", + "\n", + "import os\n", + "\n", + "# Define a function to determine if we are running on data bricks\n", + "# Return true if running in the data bricks environment, false otherwise\n", + "def is_databricks():\n", + " # get the databricks runtime version\n", + " db_env = os.getenv(\"DATABRICKS_RUNTIME_VERSION\")\n", + " \n", + " # if running on data bricks\n", + " if db_env != None:\n", + " return True\n", + " else:\n", + " return False\n", + "\n", + "# Define a function to read the data file. The full path data file name is constructed\n", + "# by checking runtime environment variables to determine if the runtime environment is \n", + "# databricks, or a student's personal computer. The full path file name is then\n", + "# constructed based on the runtime env.\n", + "# \n", + "# Params\n", + "# data_file_name: The base name of the data file to load\n", + "# \n", + "# Returns the full path file name based on the runtime env\n", + "#\n", + "def get_training_filename(data_file_name): \n", + " # if running on data bricks\n", + " if is_databricks():\n", + " # build the full path file name assuming data brick env\n", + " full_path_name = \"/FileStore/tables/%s\" % data_file_name\n", + " # else the data is assumed to be in the same dir as this notebook\n", + " else:\n", + " # Assume the student is running on their own computer and load the data\n", + " # file from the same dir as this notebook\n", + " full_path_name = data_file_name\n", + " \n", + " # return the full path file name to the caller\n", + " return full_path_name" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "# Loading the training data\n", + "\n", + "us_train_cat = spark.read.csv(get_training_filename('USAccident_balanced_train_cat.csv'), header = True, inferSchema = True)" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "# Loading the testing data\n", + "\n", + "us_test_cat = spark.read.csv(get_training_filename('USAccident_validation_cate.csv'), header = True, inferSchema = True)" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "+---------------+\n", + "|count(Severity)|\n", + "+---------------+\n", + "| 3|\n", + "+---------------+\n", + "\n" + ] + } + ], + "source": [ + "# Counting the Distinct Severity of Accidents in training data\n", + "\n", + "us_train_cat.agg(countDistinct(\"Severity\")).show()" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "+---------------+\n", + "|count(Severity)|\n", + "+---------------+\n", + "| 3|\n", + "+---------------+\n", + "\n" + ] + } + ], + "source": [ + "# Counting the Distinct Severity of Accidents in testing data\n", + "\n", + "us_test_cat.agg(countDistinct(\"Severity\")).show()" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "+--------+------+\n", + "|Severity| count|\n", + "+--------+------+\n", + "| 3|234445|\n", + "| 4|219519|\n", + "| 2|263497|\n", + "+--------+------+\n", + "\n" + ] + } + ], + "source": [ + "# Checking the balance of data in training dataset\n", + "\n", + "us_train_cat.groupBy('Severity').count().show()" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "+--------+------+\n", + "|Severity| count|\n", + "+--------+------+\n", + "| 3| 58339|\n", + "| 4| 6121|\n", + "| 2|131724|\n", + "+--------+------+\n", + "\n" + ] + } + ], + "source": [ + "# Checking the balance of data in testing dataset\n", + "\n", + "us_test_cat.groupBy('Severity').count().show()" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "# Assigning label 0 to severity 2 label for test dataset\n", + "\n", + "us_test_cat=us_test_cat.withColumn(\"Severity\",when(us_test_cat[\"Severity\"]==2,0).otherwise(us_test_cat[\"Severity\"]))" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "# Assigning label 0 to severity 2 label for train dataset\n", + "\n", + "us_train_cat=us_train_cat.withColumn(\"Severity\",when(us_train_cat[\"Severity\"]==2,0).otherwise(us_train_cat[\"Severity\"]))" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "# Assigning label 1 to severity 3 label for test dataset\n", + "\n", + "us_test_cat=us_test_cat.withColumn(\"Severity\",when(us_test_cat[\"Severity\"]==3,1).otherwise(us_test_cat[\"Severity\"]))" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [], + "source": [ + "# Assigning label 1 to severity 3 label for train dataset\n", + "\n", + "us_train_cat=us_train_cat.withColumn(\"Severity\",when(us_train_cat[\"Severity\"]==3,1).otherwise(us_train_cat[\"Severity\"]))" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [], + "source": [ + "# Assigning label 2 to severity 4 label for test dataset\n", + "\n", + "us_test_cat=us_test_cat.withColumn(\"Severity\",when(us_test_cat[\"Severity\"]==4,2).otherwise(us_test_cat[\"Severity\"]))" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [], + "source": [ + "# Assigning label 2 to severity 4 label for train dataset\n", + "\n", + "us_train_cat=us_train_cat.withColumn(\"Severity\",when(us_train_cat[\"Severity\"]==4,2).otherwise(us_train_cat[\"Severity\"]))" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [], + "source": [ + "# Vector Assembler to convert all features except Severity to a single column features for feeding it to input of model\n", + "\n", + "va = VectorAssembler().setInputCols([i for i in us_train_cat.columns if i!='Severity']).setOutputCol('features')\n" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [], + "source": [ + "# String Indexer to assign target Variable Severity name Label needed for the model to predict\n", + "\n", + "label_stringIdx = StringIndexer(inputCol=\"Severity\", outputCol=\"label\")" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [], + "source": [ + "# Multiclass Evaluator to evaluate the performance of the model with 3 class prediction \n", + "\n", + "from pyspark.ml.evaluation import MulticlassClassificationEvaluator\n", + "\n", + "evaluator = MulticlassClassificationEvaluator(labelCol=\"label\", predictionCol=\"prediction\", metricName=\"accuracy\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Multiclass RF Base Model" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [], + "source": [ + "\n", + "# Create an initial RandomForest model\n", + "rf = RandomForestClassifier(labelCol=\"label\", featuresCol=\"features\",seed=42)\n", + "\n", + "# Creating pipeline for RF Base Model \n", + "\n", + "rfModel = Pipeline(stages=[label_stringIdx,va, rf])" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [], + "source": [ + "# Train RF base model with Training Data\n", + "\n", + "rf_fit = rfModel.fit(us_train_cat)" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Accuracy is 0.5453502834074134\n" + ] + } + ], + "source": [ + "# Evaluation of model using Multiclass Evaluator on Test data for accuracy as metric\n", + "\n", + "print(\"Accuracy is\", evaluator.evaluate(rf_fit.transform(us_test_cat)))" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [], + "source": [ + "# Prediction output from the model to pandas\n", + "\n", + "prediction_rfmu=(rf_fit.transform(us_test_cat)).toPandas()[\"prediction\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [], + "source": [ + "# True Labels from test data for Target Variable\n", + "\n", + "true_labels=us_test_cat.toPandas()[\"Severity\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [], + "source": [ + "# Initializing Classification Report from sklearn\n", + "\n", + "from sklearn.metrics import classification_report" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " precision recall f1-score support\n", + "\n", + " 0 0.92 0.42 0.57 131724\n", + " 1 0.49 0.80 0.61 58339\n", + " 2 0.13 0.94 0.24 6121\n", + "\n", + " accuracy 0.55 196184\n", + " macro avg 0.52 0.72 0.47 196184\n", + "weighted avg 0.77 0.55 0.57 196184\n", + "\n" + ] + } + ], + "source": [ + "# Classification Report Generation for all metrics display at once\n", + "\n", + "print(classification_report(y_pred=prediction_rfmu,y_true=true_labels))" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": {}, + "outputs": [], + "source": [ + "# Creating Pandas Dataframe for Features and their Importance of RF Base Model for Multiclass Classification\n", + "\n", + "pd.set_option('display.max_rows', None)\n", + "feat_imp_tuned_rfm = pd.DataFrame(list(zip([i for i in us_train_cat.columns if i!='Severity'], rf_fit.stages[-1].featureImportances)),\n", + " columns = ['column', 'weight']).sort_values('weight',ascending=False)" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Text(0.5, 1.0, 'Top 10 Features based on Importance from Random Forest')" + ] + }, + "execution_count": 29, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAmcAAALhCAYAAAAaWwPUAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjMsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+AADFEAAAgAElEQVR4nOzdeZhkZX328e/tDAiyiMoosgygQREXlIy4QCS4gonighGX8Loir+KubzAmGsXdqHFBJ2jQqFGiRgzqCG4obiiDIpuiIy6MCAwqi6gg8Hv/OKehaHumu6Fq6uma7+e6+uo6W9Xv1HLqruc855xUFZIkSWrDzcZdgCRJkq5nOJMkSWqI4UySJKkhhjNJkqSGGM4kSZIaYjiTJElqiOFM2sAk2SRJJdl+zHVckGTvcdagTpK/S/LLJL9Lcpdx1zNKSQ5N8sVx1yGti+FMI9Nv6Kf+rk3yh4HhJw35sZ6U5Fv9Yxw/w/R7Jzktye+TfCfJ3dZxX8ckuXJa/Y+6ifU1EYg2RC2FwCQnJ3nyuOuYwduAp1XV5lX1g/X5wAOfjSv6z9rqJG9MkvVZx7Al2bVfr8HtyHfWcw0G0QXKcKaR6Tf0m1fV5sAvgEcMjPuvIT/cr4G3AG+dPiHJpsD/AkcBtwI+DhybZPE67u+Iwfqr6lNDrnfekiwadw26cZLcLEmT29skGwHbAmetZfq6PifDdOd+W/Eg4KlAiyF2vq6Zth3Zc753sB6ffzWkyY2FNgxJNk1yZJJf9b+W39x/UZBkvySrkrwqyW+SnJvkcWu7r6o6vqo+AfxqhskPAf5YVe+uqivpQtwWwLxbU5LskOR/k1zc13TowLS9knw7yaVJzk/ytoEN60n9/3OmWuKm/6qd3rrWt+C9I8nnk1wB3K9/zv4tyXl9i9A7k9y8n3+bJMcnuSTJr5N8eZbVeVSSnyVZk+S1Uy0V/S/+r/TP+5ok/5lki4E6/7l/zS5L8oMkf9WPX9RPO7d/fv4ryVYDyz09yS/6+3zpLM/zrZN8pJ/3p0n+30B9hyb5Uv/cXJLkJ0kePMu6Tt3voUm+nORd/ev04yTLkhySbrfehUkOGpj/mP45PjHJ5f3jbjcwfZ8k3+3v6+Qk9x6YdnKSVyf5NvB74L3AvYH39e+Bt/Tzvad//1+WrlX3vgP38Yb+efxo//inJ7nnwPSdBt6PF0/dZz/tWUnO6V/Hzw7WPTDPLYHf9oPnJDmrH39Bkpf0w5f14+6e5Gv9c356kv2nPU9vT/KFdC1gX0ly2yTv7uc/K8nd5/IaVdU5wMnA4Ho+K8kP++dgVZKnDUyb2lb8Y/9++WUGWub7Olb0z++3gB2nPQezvYb/0r8uv0vyySS3SfKx/v5Ozo1oDe8/K6/qPw8XJjk6/Wcs3efv6iTPTHIesKIf/1fpti+X9PXuNXB/z0z3Wb48/bYyyb2AfwP+uq/9gvnWqTGqKv/8G/kf8DPgwdPGvQn4GrA1cDvgFODl/bT9gKuB1wMbAw+m+4LbeZbHOQw4ftq4lwHHThv3ReA5a7mPY4B/mmH8IuAM4B/6mu5E1yK4Tz99T7ov30XAHYFVwKH9tE2AArYfuL9DgS8ODN9gnr6O3wD3ofshdXNgOfAJYCvglsAJwCv7+d8GvB1Y3Nf3gLWs39TjnNDfz87AucCT++m7Ag/s72Mbui/KN/TTdu/nvR0Q4A5TrwlweP96bts/xgeA9/fT7glcDtyvX48j+9d377XU+DG6Fs7Ngb8Afgo8aeB5+xNwcP9cvxD42TreExdMPc7Ask/sn6c3Az/vn7uNgUfShZVNBl6DS/q6N+mf/y/2025LF1z+rr+vpwBrgFv200/un6s7Axv185w89TwP1HcwXYvuRsDLgfOAjfppb6B73z+kX9e3AV/pp20E/KCf5xbApsD9+2kH9dPu1M/3GuDEWd4P2097zk7pX8tN+3l+Dry4v7+HAb8beO2P6ZfZvZ//6/26P76v+83A5+by+MBd++fx/w7M80i692notgV/AO46sK34U//cbQQ8mu69tnk//VPAh/u67glcOM/X8AfATsCtgR8DPwT26ef/b+A9a1mvXYGr1zLt2f397ghsCXwGeO/AcgW8b+B13Ylu78CD6bYFD+/rvFX/dwlwx3757YC7zLSN8W/h/I29AP82jD9mDme/BB44MHwA8MP+9n7AH+m/JPtxxwEvneVxZgpnrwU+MG3c/wCHr+U+juk3/pf0f6v78fsAP54276vWsXE+HPhof/vGhrOjBqYvBq4CthsYty/wg/72m+gCzR1meY6mHuevB8a9CPjsWuY/CPhWf/uudK2T+wKLp833U2CvgeGd6YJFgNcNvgZ0wfJaZghndOHtmsH1AJ4/9br2z9uZA9Nu3a/PVmupf3o4O2Ng2r37ZW85MO4KYNeB1+ADMzzWEuCZwEnTHut7wEH97ZOBf5w2/c/C2bTp6Z+zO/fDbwA+MzB9D+CSgdf+l8DNZrifE+nDbD+8EV2Aud063g/Tw9kTB4YfQhfOMjDuWPrPUP88vXNg2kuB7017ni+Y5f14af/cF12w32gdz9PxwLP62/v1y95sYPpldEFsk/59ttPAtLdyfTiby2v44oFpRzLwQw94HHDyWmqcClmXDPwd1k/7Bl0fv6l5d+f6z8rUctsOTH8lfXgbGPdVuvA7Fc4OYGB7OfB+N5wtwD93a2oskoSuVebnA6N/Tverb8qaqvrjtOnb3oiH+x3dr9NBW9L9ul6b11bVVv3f1G6LHYGd+t0KlyS5hC7UbAOQZLckn+t3U1wGvIKuVfCmOG/g9rZ0X7JnDTz+p+h+/UMXQs8HTux387xoHvd93XObZNskH+93D11G9wt+a4CqOosudL4WuKjf5Xa7/vXcAVgxUNv36H7l36a/7+ser6oupftCnck2/XK/mFbf4HtjcBfN7/v/m8+yvlMuHLj9B+DKvp7BcYP3NVj3b+jeT9v2f4Pv35nqPI9ZJHlZv/vxUvpWO274vpm+rlO17QD8tKquneFudwSWD7wWa+haKuezC276e+8X1X/j96av6/TndfrwbK/PXem6GxwM7EXXagRAkkf2uxZ/06/PA7nhc7Rm2vMw9TxtQxd4pr/XB9drttfwpqzXNQPbka2q6l1redyf07WQ3bofvraqzh+YviPw5GnbnmV0Ae63wJOA5wEXJDkuyV+soyYtAIYzjUW/kb+AG/b/WErXEjBl6ySbTJs+uMGaq7PofpkCXeds4G6spQP0OpxH17I3uLHdoqoe3U9/L/Bdut0LWwKvpvtigO6X8HRXMPAFRB/yphlc7ld0X7B3HHj8W1bVbaALPFX1/KraEXgs8E+D/VJmsMPA7cHn9s19bXfr1+MZA+tBVf1nVd2fbpfmJsBr+tdzqiV08PnZpKou7mu/7vH6vk63XEtdF9C1diydVt8vZ5595AbrvjXdl/Gv6J6vHafNO73O6a/7DYaTPAR4Lt2uuK3ovpz/wMDzvQ7n0f1YmGk7fh7wlGmvxaZVdeoc7nemWs/nhq8HjOA1qaprq+pDwOl03RFIshldi/ARwG2raivgy8ztObqAbj2mv9enzOU1HIXpj7uU7nX/TT88/X1zHvC+aa/nZlX1NoCq+mxVPYg+RAPvWcv9aIEwnGmcPgq8su9ge1u6PiMfHpi+EfDPSTZO8kC6XSv/M9Md9R1sN6Hb9XezdJ3rpzrjfwHYNF1n8JvT9VG6gq5fzHx8vX+sF0zdf5J7JNmjn74FcGlV/S7JXel2mQBQ3YEIl9IFmimnAfdKctckt6BraVurqvoTcDTw9iRbp7ND/wU/1bqwc9+KdSndrsFr1nGX/5Dklkl2otsd/N8D6/E74LIkS+laB+kfY7e+A/XN6b5M/jDwGMuBNyTZoZ/3tkke0U/7GPCYJPfpl30NXQCbaT2vpNtl9rokmyW5I91uzQ/PNP96cMC0uk+sqovodrPfK8mB/XvhYLov2T87lcuAC7nhe2ALut2Na+j6vL2aLvDOxdfpWn+PSHKLdAeL3L+ftpwunN8ZIMmtkjx2jvc7k6/Rfa5e0K/rQ4CH0oWmUXg98Jwkt6FrUdoIuAi4Nskjgb+ey530Le+fBl7VPz/3oGtlmnJjXsNh+CjwkiRL0x0I8BrgI9NaJgf9J/C4JA/qt3Wb9re3SbJdkr/ptyFX0n12pz6TFwI7pD/QSguH4Uzj9ArgbLoWrNPo+mG8aWD6z+haii6gCyVPrapz13Jfz6QLCm+jC3F/AN4FUFV/oOuPcShd34yDgEdV1dXzKbYPRw8H7k+3G2IN3S/Uqd0aLwSekeR3dH1T/nvaXbwC+Hi/W+KRVXUG1x8U8UPgK3Mo4wV0v7pX0gWw4+k6zAPcpb+Py+mODv3Xqjp5Hff1WeD7/X19nOvDzyvojmS9lC4kDQbiTemOdp1qDduc60Plm+gOtPhyksuBb9L1kaKqvkfXmfwTwGq6X/cXr6O2Z/X/f07XSvI+YNinX5mrD9P1/bqY7jn+PwBVdSFdR/WX03XWPgz426q6ZB339Tbg4CS/TfImuuBwEvATug70F9O9r2Y18H7cneuf08f00z5K9/7/ZL9r+jS6z8WN0oecvwUOpFvXtwKPr6qf3Nj7nOXxVtK9L1/Ut7y+hO65+jXwKPojGOfoWXQHsFwI/Dvw/oHHuTGv4TC8B/gk3WfkJ3QtZmvthtBv9x5L18f1YrrPxfPpvsMX0bUyXkC3Dvema42FbvvwM7ouCKtHsB4akaw9qEvjk2Q/4F1VZd8JjU2SY+gOPnjNuGuRtOGw5UySJKkhhjNJkqSGuFtTkiSpIbacSZIkNcRwJkmS1JCJutr91ltvXTvttNO4y5AkSZrVqaeeenFVLZk+fqLC2U477cTKlSvHXYYkSdKskky/fBjgbk1JkqSmGM4kSZIaYjiTJElqiOFMkiSpIYYzSZKkhhjOJEmSGmI4kyRJaojhTJIkqSGGM0mSpIYYziRJkhpiOJMkSWqI4UySJKkhhjNJkqSGGM4kSZIaYjiTJElqiOFMkiSpIYYzSZKkhhjOJEmSGmI4kyRJaojhTJIkqSGGM0mSpIYYziRJkhpiOJMkSWqI4UySJKkhi8ddwKj95Us/OO4S5u3UNx887hIkSdKY2HImSZLUEMOZJElSQ0YazpLsl+ScJKuSHL6O+e6d5JokB853WUmSpEkysnCWZBFwJLA/sBvwhCS7rWW+NwInzHdZSZKkSTPKlrM9gVVVdW5VXQUcAxwww3zPBf4HuOhGLCtJkjRRRhnOtgPOGxhe3Y+7TpLtgEcDy+e77MB9HJJkZZKVa9asuclFS5IkjdMow1lmGFfThv8N+IequuZGLNuNrDqqqpZV1bIlS5bciDIlSZLaMcrznK0GdhgY3h44f9o8y4BjkgBsDTw8ydVzXFaSJGnijDKcnQLskmRn4JfAQcATB2eoqp2nbif5APCZqvpUksWzLStJkjSJRhbOqurqJIfRHYW5CDi6qs5Kcmg/fXo/s1mXHVWtkiRJrRjp5ZuqagWwYtq4GUNZVT1ltmUlSZImnVcIkCRJaojhTJIkqSGGM0mSpIYYziRJkhpiOJMkSWqI4UySJKkhhjNJkqSGGM4kSZIaYjiTJElqiOFMkiSpIYYzSZKkhhjOJEmSGmI4kyRJaojhTJIkqSGGM0mSpIYYziRJkhpiOJMkSWqI4UySJKkhhjNJkqSGGM4kSZIaYjiTJElqiOFMkiSpIYYzSZKkhhjOJEmSGmI4kyRJaojhTJIkqSGGM0mSpIYYziRJkhpiOJMkSWqI4UySJKkhhjNJkqSGGM4kSZIaYjiTJElqiOFMkiSpIYYzSZKkhhjOJEmSGmI4kyRJaojhTJIkqSGGM0mSpIYYziRJkhpiOJMkSWqI4UySJKkhhjNJkqSGGM4kSZIaYjiTJElqiOFMkiSpIYYzSZKkhhjOJEmSGmI4kyRJaojhTJIkqSGGM0mSpIYYziRJkhpiOJMkSWqI4UySJKkhhjNJkqSGjDScJdkvyTlJViU5fIbpByQ5PclpSVYm2Xtg2s+SnDE1bZR1SpIktWLxqO44ySLgSOAhwGrglCTHVdXZA7N9CTiuqirJPYCPAbsOTN+3qi4eVY2SJEmtGWXL2Z7Aqqo6t6quAo4BDhicoap+V1XVD24GFJIkSRuwUYaz7YDzBoZX9+NuIMmjk/wQ+CzwtIFJBXw+yalJDlnbgyQ5pN8lunLNmjVDKl2SJGk8RhnOMsO4P2sZq6pjq2pX4FHAEQOT9qqqPYD9geckecBMD1JVR1XVsqpatmTJkmHULUmSNDajDGergR0GhrcHzl/bzFV1EnDHJFv3w+f3/y8CjqXbTSpJkjTRRhnOTgF2SbJzko2Bg4DjBmdI8hdJ0t/eA9gY+HWSzZJs0Y/fDHgocOYIa5UkSWrCyI7WrKqrkxwGnAAsAo6uqrOSHNpPXw48Fjg4yZ+APwCP74/cvB1wbJ/bFgMfqarjR1WrJElSK0YWzgCqagWwYtq45QO33wi8cYblzgV2H2VtkiRJLfIKAZIkSQ0xnEmSJDXEcCZJktQQw5kkSVJDDGeSJEkNMZxJkiQ1xHAmSZLUEMOZJElSQwxnkiRJDTGcSZIkNcRwJkmS1BDDmSRJUkMMZ5IkSQ0xnEmSJDXEcCZJktQQw5kkSVJDDGeSJEkNMZxJkiQ1xHAmSZLUEMOZJElSQwxnkiRJDTGcSZIkNcRwJkmS1BDDmSRJUkMMZ5IkSQ0xnEmSJDXEcCZJktQQw5kkSVJDDGeSJEkNMZxJkiQ1xHAmSZLUEMOZJElSQwxnkiRJDTGcSZIkNcRwJkmS1BDDmSRJUkMMZ5IkSQ0xnEmSJDXEcCZJktQQw5kkSVJDDGeSJEkNMZxJkiQ1xHAmSZLUEMOZJElSQwxnkiRJDTGcSZIkNcRwJkmS1BDDmSRJUkMMZ5IkSQ0xnEmSJDXEcCZJktQQw5kkSVJDDGeSJEkNMZxJkiQ1ZKThLMl+Sc5JsirJ4TNMPyDJ6UlOS7Iyyd5zXVaSJGkSjSycJVkEHAnsD+wGPCHJbtNm+xKwe1XdE3ga8L55LCtJkjRxRtlytiewqqrOraqrgGOAAwZnqKrfVVX1g5sBNddlJUmSJtEow9l2wHkDw6v7cTeQ5NFJfgh8lq71bM7LSpIkTZpRhrPMMK7+bETVsVW1K/Ao4Ij5LAuQ5JC+v9rKNWvW3OhiJUmSWjDKcLYa2GFgeHvg/LXNXFUnAXdMsvV8lq2qo6pqWVUtW7JkyU2vWpIkaYxGGc5OAXZJsnOSjYGDgOMGZ0jyF0nS394D2Bj49VyWlSRJmkSLR3XHVXV1ksOAE4BFwNFVdVaSQ/vpy4HHAgcn+RPwB+Dx/QECMy47qlolSZJaMbJwBlBVK4AV08YtH7j9RuCNc11WkiRp0nmFAEmSpIYYziRJkhpiOJMkSWqI4UySJKkhhjNJkqSGGM4kSZIaYjiTJElqiOFMkiSpIYYzSZKkhhjOJEmSGmI4kyRJaojhTJIkqSGGM0mSpIYYziRJkhpiOJMkSWqI4UySJKkhhjNJkqSGGM4kSZIaYjiTJElqiOFMkiSpIYYzSZKkhhjOJEmSGmI4kyRJaojhTJIkqSGGM0mSpIYYziRJkhpiOJMkSWqI4UySJKkhhjNJkqSGGM4kSZIaYjiTJElqiOFMkiSpIYYzSZKkhhjOJEmSGmI4kyRJaojhTJIkqSGGM0mSpIYYziRJkhpiOJMkSWqI4UySJKkhhjNJkqSGGM4kSZIaYjiTJElqiOFMkiSpIYYzSZKkhhjOJEmSGmI4kyRJaojhTJIkqSGGM0mSpIYYziRJkhpiOJMkSWqI4UySJKkhhjNJkqSGGM4kSZIaYjiTJElqyEjDWZL9kpyTZFWSw2eY/qQkp/d/30yy+8C0nyU5I8lpSVaOsk5JkqRWLB7VHSdZBBwJPARYDZyS5LiqOntgtp8C+1TVb5PsDxwF3Gdg+r5VdfGoapQkSWrNKFvO9gRWVdW5VXUVcAxwwOAMVfXNqvptP3gysP0I65EkSWreKMPZdsB5A8Or+3Fr83TgcwPDBXw+yalJDhlBfZIkSc0Z2W5NIDOMqxlnTPalC2d7D4zeq6rOT3Jb4AtJflhVJ82w7CHAIQBLly696VVLkiSN0ShbzlYDOwwMbw+cP32mJPcA3gccUFW/nhpfVef3/y8CjqXbTfpnquqoqlpWVcuWLFkyxPIlSZLWv1GGs1OAXZLsnGRj4CDguMEZkiwFPgn8fVX9aGD8Zkm2mLoNPBQ4c4S1SpIkNWFkuzWr6uokhwEnAIuAo6vqrCSH9tOXA68AbgO8OwnA1VW1DLgdcGw/bjHwkao6flS1SpIktWKUfc6oqhXAimnjlg/cfgbwjBmWOxfYffp4SZKkSecVAiRJkhpiOJMkSWqI4UySJKkhhjNJkqSGGM4kSZIaYjiTJElqiOFMkiSpIYYzSZKkhhjOJEmSGmI4kyRJaojhTJIkqSGGM0mSpIYYziRJkhpiOJMkSWqI4UySJKkhhjNJkqSGGM4kSZIaYjiTJElqiOFMkiSpIYYzSZKkhhjOJEmSGmI4kyRJaojhTJIkqSGGM0mSpIbMO5wluVWSe4yiGEmSpA3dnMJZkq8k2TLJrYHvA+9P8tbRliZJkrThmWvL2S2r6jLgMcD7q+ovgQePrixJkqQN01zD2eIktwf+DvjMCOuRJEnaoM01nL0KOAFYVVWnJLkD8OPRlSVJkrRhWjzH+X5VVdcdBFBV59rnTJIkafjm2nL2zjmOkyRJ0k2wzpazJPcD7g8sSfKigUlbAotGWZgkSdKGaLbdmhsDm/fzbTEw/jLgwFEVJUmStKFaZzirqq8CX03ygar6+XqqSZIkaYM11wMCbp7kKGCnwWWq6oGjKEpz94tX333cJczb0lecMe4SJElq1lzD2ceB5cD7gGtGV44kSdKGba7h7Oqqes9IK5EkSdKsR2veur/56STPBo4FrpyaXlW/GWFtkiRJG5zZWs5OBQpIP/zSgWkF3GEURUmSJG2oZjtac+f1VYgkSZLm2OcsyWNmGH0pcEZVXTTckiRJkjZccz0g4OnA/YAT++G/Bk4G7pTk1VX1oRHUJkmStMGZazi7FrhLVV0IkOR2wHuA+wAnAYYzSZKkIZjrhc93mgpmvYuAO/VHa/5p+GVJkiRtmObacva1JJ+hOxktwGOBk5JsBlwyksokSZI2QHMNZ8+hC2R70Z1W44PA/1RVAfuOqDZJkqQNzpzCWR/CPtH/SZIkaURmu0LA16tq7ySX05109rpJdJlty5FWJ0mStIGZ7SS0e/f/t1g/5UiSJG3Y5nq0Jkn2TvLU/vbWSbx6gCRJ0pDNKZwleSXwD8DL+lEbAx8eVVGSJEkbqrm2nD0aeCRwBUBVnQ+4q1OSJGnI5hrOruqP2CyA/vxmkiRJGrK5hrOPJfl3YKskzwS+CLx3dGVJkiRtmGY7lcYLgG8A/0Z3stnLgDsDr6iqL4y+PEmSpA3LbC1n2wNvp7uW5svprqN5InDqXO48yX5JzkmyKsnhM0x/UpLT+79vJtl9rstKkiRNonWGs6p6SVXdH9gG+EfgN8DTgDOTnL2uZZMsAo4E9gd2A56QZLdps/0U2Keq7gEcARw1j2UlSZImzlz7nG0KbAncsv87H/j2LMvsCayqqnOr6irgGOCAwRmq6ptV9dt+8GS6lro5LStJkjSJZutzdhRwV+ByujD2TeCtA4FqXbYDzhsYXg3cZx3zPx343I1cVpIkaSLMduHzpcDNgR8Dv6QLSZfM8b4zw7iaYRxJ9qULZ3vfiGUPAQ4BWLp06RxL00Kx1zv3GncJ8/KN535j3CVIkha42fqc7QfcG/jXftSLgVOSfD7Jq2a579XADgPD29PtDr2BJPcA3gccUFW/ns+yfY1HVdWyqlq2ZMmSWUqSJElq26x9zqpzJrCCbrfjN4A7As+fZdFTgF2S7JxkY+Ag4LjBGZIsBT4J/H1V/Wg+y0qSJE2i2fqcPQ+4P7AX3Wk0vgF8CzgaOGNdy1bV1UkOA04AFgFHV9VZSQ7tpy8HXgHcBnh3EoCr+1awGZe98aspSZK0MMzW52wn4BPAC6vqV/O986paQdfiNjhu+cDtZwDPmOuykiRJk26d4ayqXrS+CpEkSdLcz3MmSZKk9cBwJkmS1BDDmSRJUkMMZ5IkSQ0xnEmSJDXEcCZJktQQw5kkSVJDDGeSJEkNMZxJkiQ1xHAmSZLUEMOZJElSQwxnkiRJDTGcSZIkNcRwJkmS1BDDmSRJUkMMZ5IkSQ0xnEmSJDXEcCZJktQQw5kkSVJDDGeSJEkNMZxJkiQ1xHAmSZLUEMOZJElSQwxnkiRJDTGcSZIkNcRwJkmS1BDDmSRJUkMMZ5IkSQ0xnEmSJDXEcCZJktQQw5kkSVJDDGeSJEkNMZxJkiQ1xHAmSZLUEMOZJElSQwxnkiRJDTGcSZIkNcRwJkmS1BDDmSRJUkMMZ5IkSQ0xnEmSJDXEcCZJktQQw5kkSVJDDGeSJEkNMZxJkiQ1xHAmSZLUEMOZJElSQwxnkiRJDTGcSZIkNcRwJkmS1BDDmSRJUkMMZ5IkSQ0xnEmSJDXEcCZJktSQkYazJPslOSfJqiSHzzB91yTfSnJlkpdMm/azJGckOS3JylHWKUmS1IrFo7rjJIuAI4GHAKuBU5IcV1VnD8z2G+B5wKPWcjf7VtXFo6pRkiSpNaNsOdsTWFVV51bVVcAxwAGDM1TVRVV1CvCnEdYhSZK0YIwynG0HnDcwvLofN1cFfD7JqUkOGWplkiRJjRrZbk0gM4yreSy/V1Wdn+S2wBeS/LCqTvqzB+mC2yEAS5cuvXGVSpIkNWKULWergR0GhrcHzp/rwlV1fv//IuBYut2kM813VFUtq6plS5YsuQnlSpIkjd8ow9kpwC5Jdk6yMXAQcNxcFkyyWZItpm4DDwXOHFmlkiRJjRjZbs2qujrJYcAJwCLg6Ko6K8mh/fTlSbYBVgJbAtcmeQGwG7A1cGySqRo/UlXHj6pWSZKkVoyyzxlVtQJYMW3c8oHbF9Dt7pzuMmD3UdYmSZLUIq8QIEmS1BDDmSRJUkMMZ5IkSQ0xnEmSJKVsja0AACAASURBVDXEcCZJktQQw5kkSVJDDGeSJEkNMZxJkiQ1xHAmSZLUEMOZJElSQwxnkiRJDTGcSZIkNcRwJkmS1BDDmSRJUkMMZ5IkSQ0xnEmSJDXEcCZJktQQw5kkSVJDDGeSJEkNMZxJkiQ1xHAmSZLUEMOZJElSQwxnkiRJDTGcSZIkNcRwJkmS1BDDmSRJUkMMZ5IkSQ0xnEmSJDXEcCZJktQQw5kkSVJDDGeSJEkNMZxJkiQ1xHAmSZLUEMOZJElSQwxnkiRJDTGcSZIkNcRwJkmS1BDDmSRJUkMMZ5IkSQ0xnEmSJDXEcCZJktQQw5kkSVJDDGeSJEkNMZxJkiQ1xHAmSZLUEMOZJElSQwxnkiRJDTGcSZIkNcRwJkmS1BDDmSRJUkMMZ5IkSQ0xnEmSJDXEcCZJktQQw5kkSVJDDGeSJEkNGWk4S7JfknOSrEpy+AzTd03yrSRXJnnJfJaVJEmaRCMLZ0kWAUcC+wO7AU9Istu02X4DPA/41xuxrCRJ0sQZZcvZnsCqqjq3qq4CjgEOGJyhqi6qqlOAP813WUmSpEk0ynC2HXDewPDqftyol5UkSVqwRhnOMsO4GvaySQ5JsjLJyjVr1sy5OEmSpBaNMpytBnYYGN4eOH/Yy1bVUVW1rKqWLVmy5EYVKkmS1IpRhrNTgF2S7JxkY+Ag4Lj1sKwkSdKCtXhUd1xVVyc5DDgBWAQcXVVnJTm0n748yTbASmBL4NokLwB2q6rLZlp2VLVKkiS1YmThDKCqVgArpo1bPnD7ArpdlnNaVpIkadJ5hQBJkqSGGM4kSZIaYjiTJElqiOFMkiSpIYYzSZKkhhjOJEmSGmI4kyRJaojhTJIkqSGGM0mSpIYYziRJkhpiOJMkSWqI4UySJKkhhjNJkqSGGM4kSZIaYjiTJElqiOFMkiSpIYYzSZKkhhjOJEmSGmI4kyRJaojhTJIkqSGGM0mSpIYYziRJkhpiOJMkSWqI4UySJKkhhjNJkqSGGM4kSZIaYjiTJElqiOFMkiSpIYYzSZKkhhjOJEmSGmI4kyRJaojhTJIkqSGGM0mSpIYYziRJkhqyeNwFSBuyrz5gn3GXMC/7nPTVcZcgSRPPljNJkqSGGM4kSZIaYjiTJElqiOFMkiSpIYYzSZKkhhjOJEmSGmI4kyRJaojhTJIkqSGGM0mSpIYYziRJkhpiOJMkSWqI4UySJKkhhjNJkqSGGM4kSZIaYjiTJElqiOFMkiSpIYYzSZKkhhjOJEmSGmI4kyRJaojhTJIkqSEjDWdJ9ktyTpJVSQ6fYXqSvKOffnqSPQam/SzJGUlOS7JylHVKkiS1YvGo7jjJIuBI4CHAauCUJMdV1dkDs+0P7NL/3Qd4T/9/yr5VdfGoapQkSWrNKFvO9gRWVdW5VXUVcAxwwLR5DgA+WJ2Tga2S3H6ENUmSJDVtlOFsO+C8geHV/bi5zlPA55OcmuSQtT1IkkOSrEyycs2aNUMoW5IkaXxGGc4yw7iaxzx7VdUedLs+n5PkATM9SFUdVVXLqmrZkiVLbny1kiRJDRhlOFsN7DAwvD1w/lznqaqp/xcBx9LtJpUkSZpoIzsgADgF2CXJzsAvgYOAJ06b5zjgsCTH0B0IcGlV/SrJZsDNqury/vZDgVePsFZJQ/auF3963CXM22FvecS4S5Ck0YWzqro6yWHACcAi4OiqOivJof305cAK4OHAKuD3wFP7xW8HHJtkqsaPVNXxo6pVkiSpFaNsOaOqVtAFsMFxywduF/CcGZY7F9h9lLVJkiS1yCsESJIkNcRwJkmS1BDDmSRJUkMMZ5IkSQ0xnEmSJDXEcCZJktQQw5kkSVJDDGeSJEkNMZxJkiQ1xHAmSZLUEMOZJElSQwxnkiRJDTGcSZIkNcRwJkmS1BDDmSRJUkMMZ5IkSQ0xnEmSJDXEcCZJktQQw5kkSVJDDGeSJEkNMZxJkiQ1xHAmSZLUEMOZJElSQwxnkiRJDTGcSZIkNcRwJkmS1BDDmSRJUkMMZ5IkSQ0xnEmSJDXEcCZJktQQw5kkSVJDDGeSJEkNMZxJkiQ1ZPG4C5Ckhei1Tz5w3CXM28s//IlxlyBpDmw5kyRJaojhTJIkqSGGM0mSpIYYziRJkhpiOJMkSWqI4UySJKkhhjNJkqSGGM4kSZIaYjiTJElqiOFMkiSpIYYzSZKkhhjOJEmSGmI4kyRJasjicRcgSWrPD1775XGXMG93efkDx12CNBS2nEmSJDXEcCZJktQQd2tKkjY4//Iv/zLuEuZlodWrm8aWM0mSpIbYciZJ0oT52Mf3HHcJ8/J3j/vOuEtoii1nkiRJDbHlTJIkLRi7f+KEcZcwb98/8GHzmn+kLWdJ9ktyTpJVSQ6fYXqSvKOffnqSPea6rCRJ0iQaWThLsgg4Etgf2A14QpLdps22P7BL/3cI8J55LCtJkjRxRtlytiewqqrOraqrgGOAA6bNcwDwweqcDGyV5PZzXFaSJGnipKpGc8fJgcB+VfWMfvjvgftU1WED83wGeENVfb0f/hLwD8BOsy07cB+H0LW6AdwZOGckK/TntgYuXk+PNQ6u38Lm+i1ck7xu4PotdK7fcO1YVUumjxzlAQGZYdz0JLi2eeaybDey6ijgqPmVdtMlWVlVy9b3464vrt/C5votXJO8buD6LXSu3/oxynC2GthhYHh74Pw5zrPxHJaVJEmaOKPsc3YKsEuSnZNsDBwEHDdtnuOAg/ujNu8LXFpVv5rjspIkSRNnZC1nVXV1ksOAE4BFwNFVdVaSQ/vpy4EVwMOBVcDvgaeua9lR1XojrfddqeuZ67ewuX4L1ySvG7h+C53rtx6M7IAASZIkzZ+Xb5IkSWqI4UySJKkhhjNJkqSGGM50nSRPnza8KMkrx1WPpMmRZJMZxm09jlrWhyQbjbsGLVyGs3lK8uAZxv2fcdQyAg9KsiLJ7ZPcDTgZ2GLcRQ1Tkh2nXsMkmyaZmPVLckSSxQPDWyZ5/zhruqmSfC/Jd2f4+16S7467vmFJsscMf3ccfD0nwCn9KZMASPJY4JtjrGdoknwpydKB4b8EvjPGkoYqyW1nGHfncdQyCkle2V/Te2p48yTvHWdNk/TBX19e0W9UXgJsDrwPuBL4z7FWNQRV9cQkjwfOoDu1yROq6htjLmtokjyT7lJftwbuSHdy4+XAg8ZZ1xAtBr6d5KnANsA7+7+F7MBxF7CevBvYAzid7gopd+tv3ybJoVX1+XEWNyRPBI5O8hVgW+A2wAPHWtHwvBX4QpK3ANvRXQv6meMtaai+luSfq+pjAEleDDwd2G28ZQ3N5sDJSZ4C3I7u87h8nAV5Ko15ShLgxcCz+lGvqKqPjrGkoUmyC13IPAO4C3A28KKq+v1YCxuSJKcBewLfrqp79ePOqKq7j7ey4elbBT8N/BZ4QFWtGnNJmoMkxwBHTJ3PMcluwEuBI4BPVtU9x1nfsCR5FPAh4HIm7P2ZZB/gi3TXZbxnVV045pKGJsnt6c7/9Ue68PID4MVV9buxFjZESR4C/C9wCfDXVfWjcdbjbs35uxVwH+AndC1mO/aBbRJ8mi5sPgvYB/gx3dUaJsWVVXXV1EC/y2hifp0keQDwduDVwFeAdyXZdqxFDUmSeyc5OcmlSf6Y5Mokl427riHadfBE21V1NnCvqjp3jDUNVZL/AF4A3IPuhOOfTvKc8VY1HEleBhxJ1xL4GuArSR423qqGp79yz/HA/YCdgA9OWDC7P/A24PXA14C3JtlmnDW5W3P+TgbeUFVHJ9kUeCPwDeD+4y1rKPasqssAqmtSfUuSSbps1leT/COwaf8r6dl0gXRS/CvwuP6LnSSPAb4M7DrWqobj3cCTgWPoWj+fwg2vv7vQnZPkPXTrB/B44EdJbg78aXxlDdWZwDP6bctP+/5nbx1zTcOyPd328/d0uwA/B/wH3VVuFrwkXwB+Rbe7fXu63dMnVdVLxlvZ0LyDrhvPGQB9956vAmPrV+duzXlKsrSqfjFt3AOq6qRx1TQsSW5Bt8t2aVU9s9/Neeeq+syYSxuKJDej6yfxULp+PScA76sJ+RAkWVRV10wbd5uq+vW4ahqWJKdW1V8O7oZO8s2qmoQfRfQ/9J4N7E333vw6XSD9I3CLSWml6NdzaVWdM+5aRiHJzavqynHXMWxJHlVVnxoYXgy8rKqOGGNZQ5NkcVVdPW3ckqpaM7aaJuR7ab3pd2E+CbhDVb26P0Jnm6pa8EfmJPlv4FTg4Kq6W78h/dYE9XfZDPjjVIDpj865+QT1qbsd8Dpgu6rar++3dL+q+o8xl3aTJTkJeDBwNPALul/xz6yqe4y1MM1ZkkfQte5uXFU7J7kn8OqqeuSYS7vJkuxJ11J2y6pammR3ulbC5465tKFJsiOwS1V9sf9uWFxVl4+7rmFIsoRud/T2VfU3/bZzz6r6wLhqss/Z/L2bbr/7E/rhy+n6GkyCO1bVm+h3o1TVH+h+xU+KLwGbDgxvSteBd1J8gK418Pb98I/o+vhMgqfQba8OA64BdmGCjuRMsleSLyT5UZJzp/7GXdeQ/QvdLulLAKrqNGDncRY0RO8A/hb4NUBVfR/Yd6wVDVF/pPsngH/vR20PfGrtSyw4H6Dbjbl9P/xjur1IY2Ofs/m7T1XtkeR7AFX12yQbj7uoIbmq/0VUAEnuSHfQw6TYZHD3UFX9rt+VOym2rqqP9Z2Tqaqrk1wz20ILwUDH+D8C/zzOWkbkP4AX0rVcT8RrNoOrq+rSacdPTcqum5tV1c+nrdskvY7PoT/SHaCqfjzTuc8WsNtW1UeSvBSgqv407m2n4Wz+/tTvDpsKMEuAa8db0tC8ku6InB2S/BewF12LxaS4IskeVfVduO5EkX8Yc03DdEWS23D9e/O+wKXjLWk4+nV5JbAjA9utqrrT2Ioarkur6nPjLmLEzkzyRGBR35/1eUzISWiB8/pdm9V/PzyXruV6UlxZVVdNhc9JO9Kdbtt5a67fdt6bbq/Y2NjnbJ6SPInuSKo96M4JdiDwT1X18bEWNiT9l/t96XZnnlxVF4+5pKHpP3DHAOf3o24PPL6qTh1fVcOTZA+6k87eje7IuCXAgVV1+lgLG4IkPwD+H9NaliblXFJJ3gAsAj7JQGv11A+JSdC3Ur+cGx6Qc0RV/XGshQ1B34r0Drp+kdB1lzhsUrafSd5Etzv6YLrg+Wzg7Kp6+VgLG5Iky+hOQ3RX4Pt0JxI+sN/1Pp6aDGfzl2RXurPKB/hSVf1gzCXdJP2X+lpN2BfERnSHRwf4YVVNymkKgOt+0U6t3zmTsn5Jvl1V9xl3HaOS5MQZRldVTcoZ9LWATfqR7gB996S70K3f2YPnxBxLPRP03I5U3+S5VlX1m/VVy7ANfDFsAiyj++UQupNFfruq9h5XbcPWn2xwJ264a+yDYytoCPrzma1VVX1yfdUyKkle39+c3rK04FsFJ12ST7OOXWAL+WjNJG9j3ev2ovVYjuYpyTrfe1U1tvN82uds7k6l+xAGWEp3eZwAW9Ed2r9gjzqqqn3hukvIHDJwIr670V1DdCIk+RDdNTVP4/pdYwUs6HAGPKL/f1u6kyF/uR/el+5KAQs+nNGd/2vwP3Sv3QPGUMvQJHlyVX04yYxf4lU1CSdp/df+/2Porvn64X74CcDPxlHQEJ3Z/78vXXeCj/XDBzIBV1dJcgbrDp8L/VQ2j+v/b0237TyR7nt9H7qjNw1nrauqnQGSLAeOq6oV/fD+XN/PYKHbdSqYAVTVmf25iCbFMmC3SWqKB6iqpwIk+Qzd+v2qH749E3Kal6r6q3HXMCKb9f+3GGsVI1RVXwVIckRVDYbpT/fnr1uwps4h2PdFfsBUN4IkR9IdXLXQ/W3/f+oyWx/q/z8JWPDnh6yqvwfor4SzW1X9sh/ejq4P4di4W3Oeps5UPm3cyqpaNq6ahiXJR4Er6H7ZFt3lcjavqiesc8EFIsnHgedNhZdJk+TMqrrbwPDNgNMHxy1USZ43w+hLgVOr6swZpqkx/UEdfzN1WpQkOwMrquou463spktyDt1pli7ph7ei6xIytsv/DFOSb1TVXrONW6hm2HYGOGOc205bzubv4iT/xA0DzIK/PE7vqcD/BZ7fD58EvGd85Qzd1sDZSb7DDfstLdg+L9N8JckJwEfp3psH0TXTT4L7A/cGpi4l9nDgO8Dzk/xXVb1lbJUNQX803GvoTu1yPLA78IKq+vA6F1xYXkj3Hp06Z91OwLPGV85QvRk4LcnUSa2nLoA+KTZLsndVfR2u67u72SzLLCQnJfksN9x2jrVV15azeeoPDHgl1/d1OQl41UI+IGBDkWSfmcZP7XaZBP3BAVO7AE+qqmPHWc+w9KHzwKnLxSTZgq5/z2OBlVW12zjru6mSnFZV90zyaOBRdEHmxKrafcylDVW6C7nv2g/+cJKuQ9nvCrtvP3jy1C6ySdCfE/Jo4Jb9qEuAp03Kkfx9S9njGNh2Ap8YZxcYw5muk2QvukusTD/R5x3GVZME1+0Su/vUxYn7w96/X1V3SfK9qrrXeCu8aZKcVVV3TfJe4H+q6vgk35/AcDZxR0tPSbIN3cFig+s2KSfZBSDJlnS5YSJObt0yd2vOU5I70R3BuBM3/BBOwvmIJvoSMv1Z5t9Jdy6bjelO+nlFVW051sKGpG81eyPdUZvp/2pC1u9jwLeSTF3P75HAx9JdzP6c8ZU1NJ9O8kO63ZrP7q88suBPzjpogo+WJsnr6Lq4/IDrrxhTdLvfF7y+xfOx9N97U1cKqKpXj7GsoUlyAPAGYFsa2XbacjZPSb4PLOfPz1S+4M8yvwGc6HMlXV+Cj9MduXkwsEtV/eNYCxuSJKuARyz0kyKvTZL70J1KI8DXq+rkMZc0VEluBVxWVdf0Z9PfsqouGHddw9K3fk7c0dJw3QEBu0/C1Q5mkuR4+gNwuOH33oLu6zml33Y+evBsBeNmy9n8XV1Vk9RJftCJSd7MBF9CpqpWJVlUVdcA708ySbsdLpy0YJZks6q6ot+d8oP+b2rallV12fiqG54kjwOO74PZP9FdHu41wMSEM7pzgm0DTOLR0j8FbjbuIkZo+6rab9xFjNCFLQUzMJzdGJ9O8mzgWG4YYCbhgICpVrPB04IU3ZFHk+D3fV+l0/qj437FZB1xtDLJfwOf4obvzYV8EtpPAPsDZ3HDk2GmH146jqJG4J+r6uNJ9gYeRnfi1vdw/WdyEkzy0dKXA9/rj9YcXLdJuULAN5PcvbUAM0SnJPkv/nzbObaT0Lpbc56S/HSG0WWn+fYl2RG4kK6/2Qvpjjw6sqp+MtbChiTJ+2cYXVX1tPVejOZl6qCG/jJVZ1TVRybhQIdBk3y0dJKnzzR+6iS1C12Ss4G/oGshvJLr+2Qt9CsEANf1h5yuqurg9V5Mz3Am1nbpmCkTcgkZkjy/qt4+2zi1I8kOwKVTuy+TPAA4gO6yP8trci7s/hngl3RXG/lLugMDvjNpR2tqYep/2P6Zqvr5+q5lQ2E4m6NJvrh0kleua3pVvWp91TJKSb5bVXtMG7fgWyeSvJN1X/9uprPrLwhJTqY7v9nqJLvTXTf0TcDdgd9X1SFjLXBI+gMA9qNrNftxf+mtu1fV58dc2k2W5HJmfn+O/Yi4myrJ91j3Z2+PtU1bCPrzeq7VQu/Ok4YvXG+fs7l7xDqmFQv44tJzDV9JXlZVrx91PcOW5AnAE4Gd+2uoTdmSybi6w8pxFzBCt6iq1f3tJwNHV9Ub+0tTfX+MdQ1VVf0+yU+AhyV5GPC1SQhmAFU1p+uGJrlVVf121PUM2YHjLmDETqX7fssM0wpY6N15mr30my1nQ5bk/1TVf467jlGYqeVpIeib5HcGXg8cPjDpcrprT149lsLWsyTvrKrnjruO+UhyRlXdvb99KvDyqjq+Hz59gvq8PB94Jtf/yHs0cFRVvXN8Va1fC3X7MhdJvl5Ve4+7jlFJcteqOmvcdYxKkn+rqhesz8e05Wz4ng9MZDhj5l9Pzev7Rfw8yYOBP1TVtf3JhHcFJvXoo5ksxIsUfzXJR+iOrL0N3W7NqbOxT0R/s97T6S6cfQVAkjcC36I7afKGYkFuX+Zoko4Kn8mH6E7/MqkeMPsswzXJ52UZl0newCz0ZtaTgE36a+B9ie5C7x8Ya0WazfOAFXTn+/qrqrqqH78t8M9jq2r4wg2vynENk70tmclC376syySvG2x479WRs+Vs+Cb5Q7jQP4Dp+/Y8HXhnVb2p79CrRlXVtcCHZxh/gxMjT8Buo/cD304ydaH6R9FdTk1aCCb5e28sDGfDt9ADzLp8fNwF3ERJcj/gSXS7kWDD+gxM8ntzQe82qqq3JvkK11+e6qlVtaH9cJjk9+ckr9uGYL2/fu7WHL5vjLuA+UrypiSHzjD+hX3fFwCq6nXrt7KhewHwMuDYqjoryR2AE8dc09D1FwOfySSfz23B/nJPcrMkZ1bVd6vqHVX19kkLZlPrOMtsD1ovxYxAf+HzdY17yvqrZiyumn2Wds10qqxp4961HsvpHt+jNecnye2A1wHbVtX+SXaD/9/evYfZWdbnHv/eiQhIElDJJVpOGkEFChTKFqFAAdHuehaRUrCK1OKxVtxF2bUcrN3ai42KeBYP6EYRBVtN5dCiBoyCAglBEE8FhC1skApERGrg3n8870pWJpNJZtaa9cz7zv25rrlm1rtmMfe4xqxnPYffj2e1uRJ0U/15t2YJqf/6HMppxt3qJIvJkLQfcDYwz/b2TV2w422/vnK0adf2k35N65iTbP+8dpbp0uXfcT01FK/rShFhSe+0fXLf7bnAZ20fXTHW0Kzn+bvG9t61Ms2mJZ1h+Qxlf8jfNbd/DHyRdu8P8diBWXPxEUmtn47vHYOW9DXGmWHpSG8/gPdR+jJ+FcD2dU1F/dmg7X+nTwRuaPpOPtC72KG/Tejg7yjpeOC1wM6S+vdBzqfUCOuK7Xt1LiVtStnicu2GHjTTNTUF/wT4PUn9nXAWAOu8Jo5SBmeTt7Xt8yWdBGB7laSHN/SgGe43knay/ZP+i5J2orSRabte37T/XTXFCNi+bcx4uu1/mwBI2h64y/Zvm9ubU/6/eFvzLa+qlW0Qkp4KPAEYWwj6IEo7py7pRKeRMc6nnPxep4ai7bvqRJoWxwLnNq97BwMX2X5f5UzDcBelEO1vgf46bStZ+/kcuQzOJu8BSY+nmYGRtC9wX91IAzsZuEjSu1jzbu8PKfuzRlp4bzrYvqb5vETSwubru+ummha3NUublvRoShmKH1bONCwXAvv13X4EuAD4b1BmCWuEGoL3A//T9or+i5IeAE6h3TPya+lCg/Oxmo4GvwKOaFYZFlJeVx8l6Um2f1E14IAk9S/1nQl8jLKveomkvcaemm6bZm/nMknn9t74zRTZczZJzR/rWcBulBH3QkrvvxUTPnCGk7Qb8LeU3wvKu4jTbbe+SGvzj+YpwBspy19zgFWUchrvrJltmCRtTfkH9NmU3/NS4M22W9+iStJy23uOudb6PT3NQYBx93T2d0fogjE9Nh8NbAI80Obemj2SXgf8A6UdXG85zLZ3qZdqcJImOjBl24eMLMw0aiZZTgF2oAyue31fd66VKTNnk2T7WkkHAU+jPIE/st36SuW2fwC8snaOafI3lOr4+9i+GaA5qfkRSW/pyPQ8tn9JKRPSRfdI+lPbXweQ9Hyg1U2XG5tNcN/mI0sxAmN7bEp6Mc3MZwe8FXhG12bkbR9cO8OIfBo4kbJyNCO2gmTmbJIkvQE41/a9ze3HAkfZ/nDdZFM3phn4Otq8YRegKTR7WDN46b++ELjU9h/USTYcks5iglIStv96hHGmRdNu6/OUFk4AdwPH2P5xvVSDk/QF4Bu2PzHm+nHAc2wfWSfZaEi60va+tXMMqqlRd6jtGfHCPmxdrFLQT9JVtp9ZO0e/DM4maT3LK8va/AIv6W7gNuALwFWMOfnW9r0iG1g6Wu99bSGpN+O5P7AL5fQwwBHANbbfUiXYNJC0FUDvzVHbNS96X6HUierf7/lo4CW276yVbdjG1I2aQ/k9D7L9rEqRBiap98Znd2AnYDHwUO9+2x+okWvYJF1EU6XA9h6SHgUsa/uyu6Tdmy+Paj5fyNrPX7XtSlnWnLw5kuRmVNvUe3l05UyD2gY4jPIH+ufAvwJfsH3DhI9qj4kKJLa6eCKA7XMAJL0KOLi3zC7po5R9Z60l6SjbX+h7EexdB9r/4mf7/wH7STqYNfs9/9X2NyrGmi4v6Pt6FXAL8KI6UYZmYfP5juaj9fvn1qOLVQoAPjTmdn8LOFOh4XlPBmeTdylwfvPCZ0qNm4vrRhpMMxV/MXBxU8PmKOBbTeHBs+qmG4o9JN0/znUx8Z6ftnkSpb5Sby/WvOZam23VfF444Xe1nO1v0sFuFf1sH1s7w7DZ/vvaGUaki1UKsH1A7Qzrk8HZ5J0I/BXwOtaciDu7aqIhaAZlz6MMzHYEPkCZ4m0923NrZxiR91COhfde5A8CTq0XZyi2az4vs92Jv8fZStK2lJPu+1Ne5L9NOU18e9VgQyBpvL/N+4CrgU/YbvsM/QmU4taLJC2lqVJQN9LwjJ2Zb9xH2RayobZj0yJ7ziahWcI8x/YxtbMMk6RzKEsqFwHn1fpjjMFJ2gbobWy9qu17liRdD+wJfL/N7ZkCJP0b5VBHryj0McDRtg+rl2o4JH2Asj3kC82lIylFhOcBm9lu/Un4Zp9Zp6oU9Eg6D9iHsmcQ4E+B7wHPoBwAPGPkmTI4mxxJlwAv6MA7odUkPcKadir9fxC9Wi9d3UfRCZKebvumMQUjV2tzocimpcpxwBZA/9J072/zcVWCxaSt5zDVOtfaSNIS2wf13RawxPaBkm7sQL2zx1Bmz3aw/Zqme8zTbC/ewENboXldf5ntlc3t+ZTuD4cDV9d4/rKsOXm3AEub8hP9xcB7+wAAEdhJREFU/eHeu95HzHzXtfm0aXACZam99+5u7DuuNheKPJFSQ2ox0OqSLsEvJR3DmtmloyhFW7vgCZK27VuifRJr9kk+tJ7HtMmnKaeJeydrb6f01+zE4AzYnrVbFT4E7Gj7N5KqPH8ZnE3eL5qPOZTN112Q6dN2O1vSNr2CkU1pjcMpbyROrZhrGK6yvbeku7taQ2oWeTXwQeB9lH9zvtNc64ITge9Kuokyq7sz8EZJWwDnVk02HItsHynpKADbD2pME9+WO5/y/P1zc/uFlIN/WwA/qhEoy5qBpNuB9c78tXxWsPMkXQs82/Z/SjoQOA94E2Wv1jNst3bjrqQfUJpKvxNYp16b7QkLKEeMiqTNKXUGBdxg+8ENPKQ1JH0HOBRYansvSYso5Za60uEBSc+klNIQ8G3bV9bMk5mzSWpOwq0zom15j7G5lI2rXXonNJvMtd0rn3Ek8HHbFwAXSFpeMdcwvIGycXwrSlHdfqacIIsZrMsdLCQdZHuJpLFL7k+S1KU3D6dSyi1tJ+lcyonbV9UMNAyStrD9gKQFwA+bj959C2yPV4JpJDI4m7z/0ff1ZpTlo1WVsgzLHe5QA/BZaK6kR9leRXl3+1d997X6/+NNd4olkq62/bHaeWJKru77+jRKg+muOAxYwrpvHKBDbx5sXyrpGmBfypv4N49th9dSXwb+O3AD4xyGo+xFqyLLmkMw9qRO27S9/dRsJ+nvKEe/f0n5x2Qv25b0VErpl/2rBhwSSU+nLButLhxs+/P1EsVk5d+adpL0OeBy4ArbN9XOMxtkcDZJkvqP7s8B9gY+YPtplSINTNLj+pbFooWait1PpDRyf6C5tjMwr82lNHokvQN4DvB04BLguZR9IS+d8IExo0i6tkv16tZTvHS1trcX65F0CGU/1gHAU4DlwOW2z6wabEB9vTXHld6a7XINZbpTlOXMmyl1mForA7P2G2/zqu0f18gyTY6kHHC41vYrJD0RyDJn1NbptmI9tr8haQmlUOvBlLaFuwKtHpyxbm/Nfumt2Sa2n1w7Q8Qs9KDthyWtagpE3kl5Bx8znKSVrNnP85i+PretL3I9W3prSrqMUgj6u8AVwD6276qbanDprdkhkjah9NXsjai/BXysS60sImagZZK2Aj5F2WB+P9D65drZwHZX6kGuQ9JbbZ8hqVe7bS22T6gQazqsoGzh2Y3Sc/JeSd9te7mQCU7bAnVL9WRwNnkfATYBPtzcfkVz7S+rJYrosKbY5am27wU+1LRaWdCFvXTRej9rPne6H7HttwBImgccS+kYsA2wac1cQzBjT9vmQMAkSbrO9h4buhYRwyPpGtt7184RMR5J29v+ee0c00XSGymHAfYGbmXNyc1vVA3WYZk5m7yHJS2y/TMASU8B0lYmYnp9T9JemS2LGeo8SQuBq1gzcPnhBh7TJptTushc09RTXIukx9r+1ehjDYekH7NmP93lM+EwVWbOJknSoZQp3f9oLu0IHGv7m9VCRXRUr7iupOuBZ1CWkR5gzWbyzpRliHaTtBnwTMp+5NcAm9ueFac5214iRdJjKAV2D6B0P1hEORk+3nLnSGTmbCNJ2ge4zfZlknYCjgeeDVwKXFc1XER3fQ/YC3hx7SAR69PUGTyAMjDbmtLq6IqqoUar7a3/HgJWUt74PUgp6F2tdRNk5myjdbm5dMRMlYry0QaSHqacIn43sHi8pb8u68DM2a8pLZzeD1w2E8qEZHC2kfo3/Uv6EHC37VOb28tt71kzX0QXSbqdstdlXLbXe1/EqEjamrIcdiBl0/x/AUttn1Y12Ih0YHB2OKUDwh9SZs+WUvaeLamVaU6tH9xCcyX1loEPBfpPqWR5OGJ6zAXmAfPX8xFRXdME/Ebgh5TTjDtT2o21mqSNLbre6mVN2xc05UKOBS6ilMa6tGamzJxtpNnSXDpiJmn7O/KYHST9jHJY5Qrg28B3bf+2bqrB9UrYSLrM9qETfF+r+zNL+iJlb+vPKc/hFZTn8DfVMmVwtvG63lw6YqbJnrOYySS90fYHJc213bmSSpKWAf9MmUl639j7276tQNK+tq+U9Czg+zNpr2AGZxExY7X9HXl0W9dndiU9jXJS+m+Aj469v+176mby85e9UhExY2VgFlGP7R8B/yRphe2LaueZTTJzFhERMQWSVgHj7UvqFUleMOJI00LSlsAplNOoUPpRvtP2ffVSDU7SvZSODuOyPW5D9FHIzFlERMTUXD9L9kR+itLc/eXN7VdQOuW8tFqi4bgbOKN2iPFkcBYRERETWWT78L7bp0laXi3N8KysWctsIqlzFhERMTVf2phvknTSdAeZZg9K+qPeDUn7U9octd0tG/NNkg6b5hzr/szsOYuIiJg+M/lU4MaQtAfwWWDL5tKvgFfaXlEv1ejUeP6yrBkRETG92l5B/zpgD0kLmttrNQWX9Erb51QJNxojf/6yrBkRETG9OrFEZfv+sQOzxptHHma0Rv78ZXAWERExvVo9c7YRuv77jVwGZxEREdNrow4OtFgnZgYncMuof2AOBEREREyBpLOYYGBi+69HGKeatvbAlTRhnTbbF44qy1g5EBARETE1V9cOMAob0dh96cjCDNcLJrjPQLXBWWbOIiIiYr0k3Qx8Gfi07Rtr55kNMjiLiIgYgKSFwNuAXYDNetdtH1It1BBJmg/8GXAsZa/6p4Dz1nNys5UkPQ/YlbWfv3fWypMDAREREYM5F/gh8GTgNMoG8u/XDDRMtlfa/oTt/YATKU3Q75B0jqSnVo43MEkfBY4E3kQ5eXoEsEPNTBmcRUREDObxtj8J/M72EtuvBvatHWpYJM2V9EJJXwHOpDQLfwrwNeDrVcMNx362/wL4le3TgGcB29UMlAMBERERg/ld8/mOZnnsF8C2FfMM20+AbwKn2/5O3/UvSzqwUqZh6vUJ/Y2kJwH3UGZBq8ngLCIiYjDvkrQl8FbgLGAB8Ja6kYZqd9u/Hu+OjpQLWSxpK+B04FrKSc2zawbKgYCIiIhYL0mbAcex7ob5V1cLNU0kbQpsZvu+mjmy5ywiImIAzcb4rfpuP1bSp2pmGrLPAdsAzwWWUJZsV1ZNNESS3tB7/mw/BMyR9PqqmTJzFhERMXXjVchva9X88fR+F0krbO8uaRPgkg6VCllue88x16o+f5k5i4iIGMwcSY/t3ZD0OLq1p7t34OFeSbsBWwI71oszdHMkrW7eLmku8OiKeTr1xxMREVHDGcB3JH25uX0E8I8V8wzbx5vB5zuArwLzgL+vG2moLgHOb+qdGXgtcHHNQFnWjIiIGJCkXYBDKEVML+tCmyNJJ4x3ufls2+8dZZ7pImkOcDxwKOX3uxQ4ewP9RKc3UwZnERERkydpge37m2XMddj+z1FnGiZJpzRfPg3YhzJrBqVh+OW2/7JKsFkgg7OIiIgpkLTY9vObxuCmzLqs/mz7KVUDDomkS4HDba9sbs8HvmT7T+omG4yk822/XNL1lOdtLbZ3rxALyOAsIiIiJiDpJmCPpsxErxbYdbafXjfZYCQ90fYdksbto2n71lFn6smBgIiIiAFJ2p1ygnH166rtC6sFGq7PAd9remsaeAlwTt1Ig7N9R/Pl622/rf8+Sf8EvG3dR41GZs4iIiIG0BSc3R24AXikuewuVdCXtBdwQHPzctvLauYZJknX2t5rzLUVWdaMiIhoKUk32t6ldo6YHEmvA14PLAJ+2nfXfGCp7WOqBCODs4iIiIFI+iRwRhfKZ8wmTbP6xwLvBt7ed9fK2idtMziLiIgYgKQDga8BdwIPsea0ZrVlsdh4krYf77rtn486S08GZxEREQOQ9FPgBOB61uw5q3raLzZeXykNAZsBTwZ+ZHvXWplyWjMiImIwP7f91Q1/W8xEtn+//3Zz+OH4SnFKhsycRURETJ2kDwNbUZY2H+pd71ApjVlnvBOco5SZs4iIiMFsThmUPafvmoEMzlpgTA/ROcBewN2V4gCZOYuIiIhZrK+HKMAq4BbgAtu/rZMog7OIiIiBSNoWOAvYnzJj9m3gzbZvrxosWiuDs4iIiAFI+jfg85Q2RwDHAEfbPqxeqthYkhYCJwK7Uk5rAmD7kFqZ5tT6wRERER2x0Panba9qPj4DLKwdKjbaucBNlBIap1GWNb9fM1AGZxEREYP5paRjJM1tPo4B7qkdKjba421/Evid7SVNT9R9awbK4CwiImIwrwZeTukQcAfwsuZatMPvms93SHqepD8Atq0ZKHvOIiIiYtaS9HzgCmA7ysGOBcBpNQsLZ3AWERExgGZD+WuAHemrH9osj0VMWorQRkREDOZfKDMv/w48XDlLbCRJJ09wt23/w8jCjJGZs4iIiAFIWm57z9o5YnIkvXWcy1sAx1EOCcwbcaTVMjiLiIgYgKR3Ad+x/fXaWWJqJM0H3kwZmJ0PnGH7rmp5MjiLiIiYOkkrKTMu/8Wak3+2vaBeqtgYkh4HnAAcDZwDnGn7V3VTZc9ZRETEQGzPr50hJk/S6cBLgY8Dv2/715UjrZaZs4iIiAFJeiFwYHPzW7YX18wTGybpEeAhSrPz/sGQqDzzmcFZRETEACS9B9iH0gYI4CjgGttvr5cq2iyDs4iIiAFIWgHsafuR5vZcYJnt3esmi7ZK+6aIiIjBbdX39ZbVUkQn5EBARETEYN4NLJP0Tcp+pQOBk+pGijbLsmZERMQUSRKlSfYqyr4zAVfZvrNqsGi1DM4iIiIGIOka23vXzhHdkT1nERERg7lS0j61Q0R3ZOYsIiJiAJJuBHYGbgUeYE2drJzWjCnJ4CwiImIAknYY77rtW0edJbohy5oRERGDeZftW/s/gHfVDhXtlcFZRETEYHbtv9EUoc0BgZiyDM4iIiKmQNJJklYCu0u6v/lYCdwF/EvleNFi2XMWERExAEnvtp2iszE0mTmLiIgYzGJJWwBIOkbSe9d3SCBiY2RwFhERMZiPAL+RtAdwIqWkxmfrRoo2y+AsIiJiMKtc9gi9CDjT9pnA/MqZosXS+DwiImIwKyWdBLwCOKA5rZnX15iyzJxFREQM5kjgIeDYpuH5/sAWdSNFm2VkHxERMQDbd0r6BvDnkv4PcDPw/sqxosUyOIuIiJgCSTsDfwYcBdwDfJFSourgqsGi9VLnLCIiYgokPQJcARxn+6fNtf+w/ZS6yaLtsucsIiJiag4H7gS+KekTkg4FVDlTdEBmziIiIgbQFKB9MWV58xDgHOArti+tGixaK4OziIiIIZH0OOAI4Ejbh9TOE+2UwVlERETEDJI9ZxEREREzSAZnERERETNIBmcR0SmSHpa0vO9jxyn8N7aS9Prhp4uI2LDsOYuITpH0a9vzBvxv7Agstr3bJB831/bDg/zsiIjMnEVE50maK+l0Sd+XtELS8c31eZIuk3StpOslvah5yHuARc3M2+mS/ljS4r7/3gclvar5+hZJJ0v6NnCEpEWSLpZ0jaQrJD29+b4jJP1A0nWSLh/t/wIR0SZp3xQRXbO5pOXN1zfbfglwHHCf7X0kbQoslXQpcBvwEtv3S9oauFLSV4G3A7vZ3hNA0h9v4Gf+1vYfNd97GfBa2z+R9Ezgw5TaVycDz7X9fyVtNdxfOSK6JIOziOiaB3uDqj7PAXaX9LLm9pbATsDtwP+SdCDwCPB7wBOm8DO/CGUmDtgP+JK0ulD8ps3npcBnJJ0PXDiFnxERs0QGZxExGwh4k+1L1rpYliYXAnvb/p2kW4DNxnn8KtbeBjL2ex5oPs8B7h1ncIjt1zYzac8Dlkva0/Y9U/llIqLbsucsImaDS4DXSdoEQNLOTcudLYG7moHZwcAOzfevBOb3Pf5WYBdJm0raEjh0vB9i+37gZklHND9HkvZovl5k+yrbJwO/BLYb/q8ZEV2QmbOImA3OBnYErlVZb7yb0gvxXOBrkq4GlgM3Adi+R9JSST8ALrL9t81y5ArgJ8CyCX7W0cBHJL0D2AQ4D7gOOF3STpRZvMuaaxER60gpjYiIiIgZJMuaERERETNIBmcRERERM0gGZxEREREzSAZnERERETNIBmcRERERM0gGZxEREREzSAZnERERETNIBmcRERERM8j/B9HBlQvBpUt+AAAAAElFTkSuQmCC\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "# Plotting top 10 Features from Feature Importance of RF Base Model for Multiclass Classification\n", + "\n", + "plt.figure(figsize=(10,10))\n", + "sns.barplot(x=feat_imp_tuned_rfm['column'][:10], y=feat_imp_tuned_rfm['weight'][:10],data=feat_imp_tuned_rfm)\n", + "plt.xticks(rotation=90)\n", + "plt.xlabel(\"Features\")\n", + "plt.ylabel(\"Weights\")\n", + "plt.title(\"Top 10 Features based on Importance from Random Forest\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Multiclass RF Grid Search Model" + ] + }, + { + "cell_type": "code", + "execution_count": 85, + "metadata": {}, + "outputs": [], + "source": [ + "# Create an initial RandomForest model.\n", + "\n", + "rf_new = RandomForestClassifier(labelCol=\"label\", featuresCol=\"features\",seed=42)\n", + "\n", + "# Creating pipeline for RF Grid Model \n", + "\n", + "rfModel_new = Pipeline(stages=[label_stringIdx,va, rf_new])" + ] + }, + { + "cell_type": "code", + "execution_count": 86, + "metadata": {}, + "outputs": [], + "source": [ + "# Creating Grid Search for Hyper Parameter Tuning\n", + "\n", + "paramGrid_rf = ParamGridBuilder().addGrid(rf_new.numTrees, [10, 25, 60]).addGrid(rf_new.maxDepth, [3, 6, 10]).addGrid(rf_new.impurity,[\"entropy\", \"gini\"]).build()" + ] + }, + { + "cell_type": "code", + "execution_count": 87, + "metadata": {}, + "outputs": [], + "source": [ + "# Cross Validator with 5 fold and Grid Search to fit the training data\n", + "\n", + "cv_rf = CrossValidator(estimator=rfModel_new, estimatorParamMaps=paramGrid_rf, evaluator=evaluator, numFolds=5,seed=42).fit(us_train_cat)" + ] + }, + { + "cell_type": "code", + "execution_count": 88, + "metadata": {}, + "outputs": [], + "source": [ + "# Transform Test data using Cross Validation Pipeline Built earlier for prediction of Test data\n", + "\n", + "pred_rft = cv_rf.transform(us_test_cat)" + ] + }, + { + "cell_type": "code", + "execution_count": 89, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Accuracy is 0.5714176487379196\n" + ] + } + ], + "source": [ + "# Evaluation of model using Multiclass Evaluator on Test data for Accuracy calculation\n", + "\n", + "print(\"Accuracy is \",evaluator.evaluate(pred_rft))" + ] + }, + { + "cell_type": "code", + "execution_count": 90, + "metadata": {}, + "outputs": [], + "source": [ + "# Prediction output from the model to pandas\n", + "\n", + "prediction_rf=cv_rf.transform(us_test_cat).toPandas()[\"prediction\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 91, + "metadata": {}, + "outputs": [], + "source": [ + "# True Labels from test data for Target Variable\n", + "\n", + "true_labels=us_test_cat.toPandas()[\"Severity\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 92, + "metadata": {}, + "outputs": [], + "source": [ + "# Initializing Classification Report from sklearn\n", + "\n", + "from sklearn.metrics import classification_report" + ] + }, + { + "cell_type": "code", + "execution_count": 93, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " precision recall f1-score support\n", + "\n", + " 0 0.92 0.46 0.61 131724\n", + " 1 0.50 0.79 0.61 58339\n", + " 2 0.15 0.94 0.25 6121\n", + "\n", + " accuracy 0.57 196184\n", + " macro avg 0.52 0.73 0.49 196184\n", + "weighted avg 0.77 0.57 0.60 196184\n", + "\n" + ] + } + ], + "source": [ + "# Classification Report Generation for all metrics display at once\n", + "\n", + "print(classification_report(y_pred=prediction_rf,y_true=true_labels))" + ] + }, + { + "cell_type": "code", + "execution_count": 94, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{Param(parent='RandomForestClassifier_19a2a830fa51', name='featuresCol', doc='features column name.'): 'features',\n", + " Param(parent='RandomForestClassifier_19a2a830fa51', name='labelCol', doc='label column name.'): 'label',\n", + " Param(parent='RandomForestClassifier_19a2a830fa51', name='predictionCol', doc='prediction column name.'): 'prediction',\n", + " Param(parent='RandomForestClassifier_19a2a830fa51', name='probabilityCol', doc='Column name for predicted class conditional probabilities. Note: Not all models output well-calibrated probability estimates! These probabilities should be treated as confidences, not precise probabilities.'): 'probability',\n", + " Param(parent='RandomForestClassifier_19a2a830fa51', name='rawPredictionCol', doc='raw prediction (a.k.a. confidence) column name.'): 'rawPrediction',\n", + " Param(parent='RandomForestClassifier_19a2a830fa51', name='seed', doc='random seed.'): 42,\n", + " Param(parent='RandomForestClassifier_19a2a830fa51', name='cacheNodeIds', doc='If false, the algorithm will pass trees to executors to match instances with nodes. If true, the algorithm will cache node IDs for each instance. Caching can speed up training of deeper trees. Users can set how often should the cache be checkpointed or disable it by setting checkpointInterval.'): False,\n", + " Param(parent='RandomForestClassifier_19a2a830fa51', name='checkpointInterval', doc='set checkpoint interval (>= 1) or disable checkpoint (-1). E.g. 10 means that the cache will get checkpointed every 10 iterations. Note: this setting will be ignored if the checkpoint directory is not set in the SparkContext.'): 10,\n", + " Param(parent='RandomForestClassifier_19a2a830fa51', name='featureSubsetStrategy', doc=\"The number of features to consider for splits at each tree node. Supported options: 'auto' (choose automatically for task: If numTrees == 1, set to 'all'. If numTrees > 1 (forest), set to 'sqrt' for classification and to 'onethird' for regression), 'all' (use all features), 'onethird' (use 1/3 of the features), 'sqrt' (use sqrt(number of features)), 'log2' (use log2(number of features)), 'n' (when n is in the range (0, 1.0], use n * number of features. When n is in the range (1, number of features), use n features). default = 'auto'\"): 'auto',\n", + " Param(parent='RandomForestClassifier_19a2a830fa51', name='impurity', doc='Criterion used for information gain calculation (case-insensitive). Supported options: entropy, gini'): 'gini',\n", + " Param(parent='RandomForestClassifier_19a2a830fa51', name='leafCol', doc='Leaf indices column name. Predicted leaf index of each instance in each tree by preorder.'): '',\n", + " Param(parent='RandomForestClassifier_19a2a830fa51', name='maxBins', doc='Max number of bins for discretizing continuous features. Must be >=2 and >= number of categories for any categorical feature.'): 32,\n", + " Param(parent='RandomForestClassifier_19a2a830fa51', name='maxDepth', doc='Maximum depth of the tree. (>= 0) E.g., depth 0 means 1 leaf node; depth 1 means 1 internal node + 2 leaf nodes.'): 10,\n", + " Param(parent='RandomForestClassifier_19a2a830fa51', name='maxMemoryInMB', doc='Maximum memory in MB allocated to histogram aggregation. If too small, then 1 node will be split per iteration, and its aggregates may exceed this size.'): 256,\n", + " Param(parent='RandomForestClassifier_19a2a830fa51', name='minInfoGain', doc='Minimum information gain for a split to be considered at a tree node.'): 0.0,\n", + " Param(parent='RandomForestClassifier_19a2a830fa51', name='minInstancesPerNode', doc='Minimum number of instances each child must have after split. If a split causes the left or right child to have fewer than minInstancesPerNode, the split will be discarded as invalid. Should be >= 1.'): 1,\n", + " Param(parent='RandomForestClassifier_19a2a830fa51', name='minWeightFractionPerNode', doc='Minimum fraction of the weighted sample count that each child must have after split. If a split causes the fraction of the total weight in the left or right child to be less than minWeightFractionPerNode, the split will be discarded as invalid. Should be in interval [0.0, 0.5).'): 0.0,\n", + " Param(parent='RandomForestClassifier_19a2a830fa51', name='numTrees', doc='Number of trees to train (>= 1).'): 60,\n", + " Param(parent='RandomForestClassifier_19a2a830fa51', name='subsamplingRate', doc='Fraction of the training data used for learning each decision tree, in range (0, 1].'): 1.0}" + ] + }, + "execution_count": 94, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Best Model Hyper Parameters after tuning\n", + "\n", + "cv_rf.bestModel.stages[-1].extractParamMap()" + ] + }, + { + "cell_type": "code", + "execution_count": 95, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "SparseVector(46, {0: 0.0004, 1: 0.0008, 3: 0.0001, 4: 0.0002, 5: 0.0, 6: 0.0, 7: 0.0, 8: 0.0003, 9: 0.0002, 10: 0.0, 11: 0.0052, 13: 0.0001, 14: 0.0004, 15: 0.0, 16: 0.2309, 17: 0.0028, 18: 0.0021, 19: 0.0052, 20: 0.0007, 21: 0.0035, 22: 0.0006, 23: 0.0017, 24: 0.0, 25: 0.0183, 26: 0.0001, 27: 0.0069, 28: 0.0, 29: 0.0005, 31: 0.001, 32: 0.004, 33: 0.0, 34: 0.0539, 35: 0.3209, 36: 0.0916, 37: 0.0008, 38: 0.0049, 39: 0.0127, 40: 0.1946, 41: 0.0031, 42: 0.0032, 43: 0.0048, 44: 0.0071, 45: 0.0162})" + ] + }, + "execution_count": 95, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Feature Importance Sparse Matrix\n", + "\n", + "cv_rf.bestModel.stages[-1].featureImportances" + ] + }, + { + "cell_type": "code", + "execution_count": 96, + "metadata": {}, + "outputs": [], + "source": [ + "# Creating Pandas Dataframe for Features and their Importance of RF Grid Model for Multiclass Classification\n", + "\n", + "pd.set_option('display.max_rows', None)\n", + "feat_imp_tuned_rft = pd.DataFrame(list(zip([i for i in us_train_cat.columns if i!='Severity'], cv_rf.bestModel.stages[-1].featureImportances)),\n", + " columns = ['column', 'weight']).sort_values('weight',ascending=False)" + ] + }, + { + "cell_type": "code", + "execution_count": 97, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Text(0.5, 1.0, 'Top 10 Features based on Importance from Random Forest Grid Model')" + ] + }, + "execution_count": 97, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "# Plotting top 10 Features from Feature Importance of RF Grid Model for Multiclass Classification\n", + "\n", + "plt.figure(figsize=(10,10))\n", + "sns.barplot(x=feat_imp_tuned_rft['column'][:10], y=feat_imp_tuned_rft['weight'][:10],data=feat_imp_tuned_rft)\n", + "plt.xticks(rotation=90)\n", + "plt.xlabel(\"Features\")\n", + "plt.ylabel(\"Weights\")\n", + "plt.title(\"Top 10 Features based on Importance from Random Forest Grid Model\")" + ] + }, + { + "cell_type": "code", + "execution_count": 44, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "DecisionTreeClassificationModel: uid=dtc_c75d2dd73064, depth=10, numNodes=1039, numClasses=3, numFeatures=46\n", + " If (feature 35 <= 0.5)\n", + " If (feature 36 <= 0.5)\n", + " If (feature 31 <= 0.5)\n", + " If (feature 29 <= 0.5)\n", + " If (feature 39 <= 4.5)\n", + " If (feature 44 <= 0.5)\n", + " If (feature 27 <= 0.5)\n", + " If (feature 34 <= 0.5)\n", + " If (feature 25 <= 0.5)\n", + " Predict: 1.0\n", + " Else (feature 25 > 0.5)\n", + " Predict: 0.0\n", + " Else (feature 34 > 0.5)\n", + " If (feature 42 <= 0.5)\n", + " Predict: 0.0\n", + " Else (feature 42 > 0.5)\n", + " If (feature 45 <= 18.5)\n", + " Predict: 0.0\n", + " Else (feature 45 > 18.5)\n", + " Predict: 2.0\n", + " Else (feature 27 > 0.5)\n", + " If (feature 21 <= 3.25)\n", + " If (feature 18 <= 41.5)\n", + " Predict: 1.0\n", + " Else (feature 18 > 41.5)\n", + " If (feature 16 <= 1.2955)\n", + " Predict: 1.0\n", + " Else (feature 16 > 1.2955)\n", + " Predict: 2.0\n", + " Else (feature 21 > 3.25)\n", + " Predict: 1.0\n", + " Else (feature 44 > 0.5)\n", + " If (feature 16 <= 0.966)\n", + " If (feature 9 <= 0.5)\n", + " If (feature 37 <= 11.5)\n", + " If (feature 32 <= 0.5)\n", + " Predict: 1.0\n", + " Else (feature 32 > 0.5)\n", + " Predict: 0.0\n", + " Else (feature 37 > 11.5)\n", + " Predict: 1.0\n", + " Else (feature 9 > 0.5)\n", + " If (feature 37 <= 10.5)\n", + " If (feature 18 <= 50.5)\n", + " Predict: 0.0\n", + " Else (feature 18 > 50.5)\n", + " Predict: 1.0\n", + " Else (feature 37 > 10.5)\n", + " If (feature 34 <= 0.5)\n", + " Predict: 1.0\n", + " Else (feature 34 > 0.5)\n", + " Predict: 0.0\n", + " Else (feature 16 > 0.966)\n", + " If (feature 21 <= 3.25)\n", + " If (feature 40 <= 8.5)\n", + " If (feature 10 <= 0.5)\n", + " Predict: 2.0\n", + " Else (feature 10 > 0.5)\n", + " Predict: 0.0\n", + " Else (feature 40 > 8.5)\n", + " If (feature 37 <= 12.5)\n", + " Predict: 2.0\n", + " Else (feature 37 > 12.5)\n", + " Predict: 1.0\n", + " Else (feature 21 > 3.25)\n", + " If (feature 22 <= 0.045)\n", + " If (feature 19 <= 29.744999999999997)\n", + " Predict: 2.0\n", + " Else (feature 19 > 29.744999999999997)\n", + " Predict: 1.0\n", + " Else (feature 22 > 0.045)\n", + " If (feature 37 <= 0.5)\n", + " Predict: 2.0\n", + " Else (feature 37 > 0.5)\n", + " Predict: 1.0\n", + " Else (feature 39 > 4.5)\n", + " If (feature 25 <= 0.5)\n", + " If (feature 32 <= 0.5)\n", + " If (feature 34 <= 0.5)\n", + " If (feature 21 <= 3.25)\n", + " If (feature 16 <= 0.966)\n", + " Predict: 1.0\n", + " Else (feature 16 > 0.966)\n", + " Predict: 2.0\n", + " Else (feature 21 > 3.25)\n", + " Predict: 1.0\n", + " Else (feature 34 > 0.5)\n", + " If (feature 26 <= 0.5)\n", + " If (feature 9 <= 0.5)\n", + " Predict: 0.0\n", + " Else (feature 9 > 0.5)\n", + " Predict: 1.0\n", + " Else (feature 26 > 0.5)\n", + " Predict: 0.0\n", + " Else (feature 32 > 0.5)\n", + " If (feature 38 <= 2.5)\n", + " If (feature 21 <= 0.6)\n", + " Predict: 2.0\n", + " Else (feature 21 > 0.6)\n", + " If (feature 13 <= 0.5)\n", + " Predict: 0.0\n", + " Else (feature 13 > 0.5)\n", + " Predict: 1.0\n", + " Else (feature 38 > 2.5)\n", + " If (feature 37 <= 4.5)\n", + " If (feature 34 <= 0.5)\n", + " Predict: 0.0\n", + " Else (feature 34 > 0.5)\n", + " Predict: 1.0\n", + " Else (feature 37 > 4.5)\n", + " Predict: 0.0\n", + " Else (feature 25 > 0.5)\n", + " If (feature 23 <= 0.5)\n", + " If (feature 41 <= 0.5)\n", + " If (feature 21 <= 6.45)\n", + " If (feature 27 <= 0.5)\n", + " Predict: 0.0\n", + " Else (feature 27 > 0.5)\n", + " Predict: 1.0\n", + " Else (feature 21 > 6.45)\n", + " If (feature 22 <= 0.10500000000000001)\n", + " Predict: 0.0\n", + " Else (feature 22 > 0.10500000000000001)\n", + " Predict: 1.0\n", + " Else (feature 41 > 0.5)\n", + " If (feature 16 <= 1.2955)\n", + " If (feature 16 <= 5.0E-4)\n", + " Predict: 1.0\n", + " Else (feature 16 > 5.0E-4)\n", + " Predict: 0.0\n", + " Else (feature 16 > 1.2955)\n", + " If (feature 21 <= 5.4)\n", + " Predict: 0.0\n", + " Else (feature 21 > 5.4)\n", + " Predict: 1.0\n", + " Else (feature 23 > 0.5)\n", + " If (feature 18 <= 99.5)\n", + " If (feature 21 <= 5.4)\n", + " If (feature 42 <= 0.5)\n", + " Predict: 0.0\n", + " Else (feature 42 > 0.5)\n", + " Predict: 1.0\n", + " Else (feature 21 > 5.4)\n", + " Predict: 0.0\n", + " Else (feature 18 > 99.5)\n", + " Predict: 1.0\n", + " Else (feature 29 > 0.5)\n", + " If (feature 17 <= 67.9)\n", + " If (feature 27 <= 0.5)\n", + " If (feature 16 <= 1.8465)\n", + " If (feature 0 <= 0.5)\n", + " If (feature 25 <= 0.5)\n", + " Predict: 1.0\n", + " Else (feature 25 > 0.5)\n", + " Predict: 0.0\n", + " Else (feature 0 > 0.5)\n", + " If (feature 21 <= 3.25)\n", + " Predict: 0.0\n", + " Else (feature 21 > 3.25)\n", + " If (feature 20 <= 11.0)\n", + " Predict: 0.0\n", + " Else (feature 20 > 11.0)\n", + " Predict: 1.0\n", + " Else (feature 16 > 1.8465)\n", + " Predict: 2.0\n", + " Else (feature 27 > 0.5)\n", + " If (feature 21 <= 10.2)\n", + " If (feature 37 <= 4.5)\n", + " If (feature 17 <= 51.2)\n", + " If (feature 45 <= 1.5)\n", + " Predict: 0.0\n", + " Else (feature 45 > 1.5)\n", + " Predict: 1.0\n", + " Else (feature 17 > 51.2)\n", + " Predict: 1.0\n", + " Else (feature 37 > 4.5)\n", + " Predict: 1.0\n", + " Else (feature 21 > 10.2)\n", + " If (feature 44 <= 0.5)\n", + " If (feature 37 <= 12.5)\n", + " Predict: 0.0\n", + " Else (feature 37 > 12.5)\n", + " Predict: 1.0\n", + " Else (feature 44 > 0.5)\n", + " Predict: 1.0\n", + " Else (feature 17 > 67.9)\n", + " If (feature 25 <= 0.5)\n", + " If (feature 37 <= 9.5)\n", + " If (feature 40 <= 0.5)\n", + " If (feature 16 <= 0.2135)\n", + " If (feature 17 <= 69.9)\n", + " Predict: 0.0\n", + " Else (feature 17 > 69.9)\n", + " Predict: 1.0\n", + " Else (feature 16 > 0.2135)\n", + " Predict: 0.0\n", + " Else (feature 40 > 0.5)\n", + " Predict: 1.0\n", + " Else (feature 37 > 9.5)\n", + " If (feature 14 <= 0.5)\n", + " Predict: 1.0\n", + " Else (feature 14 > 0.5)\n", + " Predict: 0.0\n", + " Else (feature 25 > 0.5)\n", + " If (feature 41 <= 0.5)\n", + " If (feature 18 <= 21.5)\n", + " If (feature 1 <= 0.5)\n", + " If (feature 11 <= 0.5)\n", + " Predict: 0.0\n", + " Else (feature 11 > 0.5)\n", + " Predict: 1.0\n", + " Else (feature 1 > 0.5)\n", + " Predict: 0.0\n", + " Else (feature 18 > 21.5)\n", + " Predict: 0.0\n", + " Else (feature 41 > 0.5)\n", + " If (feature 44 <= 0.5)\n", + " If (feature 42 <= 0.5)\n", + " Predict: 0.0\n", + " Else (feature 42 > 0.5)\n", + " If (feature 38 <= 0.5)\n", + " Predict: 1.0\n", + " Else (feature 38 > 0.5)\n", + " Predict: 0.0\n", + " Else (feature 44 > 0.5)\n", + " If (feature 27 <= 0.5)\n", + " Predict: 0.0\n", + " Else (feature 27 > 0.5)\n", + " Predict: 1.0\n", + " Else (feature 31 > 0.5)\n", + " If (feature 19 <= 29.785)\n", + " If (feature 40 <= 0.5)\n", + " If (feature 21 <= 5.4)\n", + " If (feature 0 <= 0.5)\n", + " Predict: 0.0\n", + " Else (feature 0 > 0.5)\n", + " If (feature 16 <= 5.0E-4)\n", + " Predict: 0.0\n", + " Else (feature 16 > 5.0E-4)\n", + " Predict: 1.0\n", + " Else (feature 21 > 5.4)\n", + " If (feature 29 <= 0.5)\n", + " If (feature 27 <= 0.5)\n", + " If (feature 16 <= 0.4845)\n", + " Predict: 0.0\n", + " Else (feature 16 > 0.4845)\n", + " If (feature 37 <= 6.5)\n", + " Predict: 0.0\n", + " Else (feature 37 > 6.5)\n", + " Predict: 1.0\n", + " Else (feature 27 > 0.5)\n", + " Predict: 1.0\n", + " Else (feature 29 > 0.5)\n", + " If (feature 39 <= 2.5)\n", + " If (feature 42 <= 0.5)\n", + " If (feature 21 <= 19.0)\n", + " Predict: 0.0\n", + " Else (feature 21 > 19.0)\n", + " Predict: 1.0\n", + " Else (feature 42 > 0.5)\n", + " Predict: 0.0\n", + " Else (feature 39 > 2.5)\n", + " If (feature 18 <= 33.5)\n", + " Predict: 0.0\n", + " Else (feature 18 > 33.5)\n", + " If (feature 25 <= 0.5)\n", + " Predict: 1.0\n", + " Else (feature 25 > 0.5)\n", + " Predict: 0.0\n", + " Else (feature 40 > 0.5)\n", + " If (feature 37 <= 0.5)\n", + " Predict: 0.0\n", + " Else (feature 37 > 0.5)\n", + " If (feature 11 <= 0.5)\n", + " If (feature 32 <= 0.5)\n", + " If (feature 18 <= 66.5)\n", + " Predict: 0.0\n", + " Else (feature 18 > 66.5)\n", + " If (feature 34 <= 0.5)\n", + " Predict: 1.0\n", + " Else (feature 34 > 0.5)\n", + " Predict: 0.0\n", + " Else (feature 32 > 0.5)\n", + " Predict: 0.0\n", + " Else (feature 11 > 0.5)\n", + " If (feature 21 <= 5.4)\n", + " Predict: 0.0\n", + " Else (feature 21 > 5.4)\n", + " Predict: 1.0\n", + " Else (feature 19 > 29.785)\n", + " If (feature 29 <= 0.5)\n", + " If (feature 43 <= 0.5)\n", + " If (feature 11 <= 0.5)\n", + " If (feature 45 <= 5.5)\n", + " If (feature 34 <= 0.5)\n", + " Predict: 0.0\n", + " Else (feature 34 > 0.5)\n", + " If (feature 16 <= 0.2895)\n", + " Predict: 0.0\n", + " Else (feature 16 > 0.2895)\n", + " Predict: 1.0\n", + " Else (feature 45 > 5.5)\n", + " If (feature 27 <= 0.5)\n", + " Predict: 0.0\n", + " Else (feature 27 > 0.5)\n", + " Predict: 1.0\n", + " Else (feature 11 > 0.5)\n", + " Predict: 0.0\n", + " Else (feature 43 > 0.5)\n", + " If (feature 16 <= 5.0E-4)\n", + " If (feature 27 <= 0.5)\n", + " If (feature 34 <= 0.5)\n", + " If (feature 21 <= 9.1)\n", + " Predict: 0.0\n", + " Else (feature 21 > 9.1)\n", + " Predict: 1.0\n", + " Else (feature 34 > 0.5)\n", + " Predict: 0.0\n", + " Else (feature 27 > 0.5)\n", + " Predict: 1.0\n", + " Else (feature 16 > 5.0E-4)\n", + " If (feature 0 <= 0.5)\n", + " If (feature 40 <= 4.5)\n", + " If (feature 20 <= 0.225)\n", + " Predict: 1.0\n", + " Else (feature 20 > 0.225)\n", + " Predict: 0.0\n", + " Else (feature 40 > 4.5)\n", + " Predict: 1.0\n", + " Else (feature 0 > 0.5)\n", + " If (feature 19 <= 30.255000000000003)\n", + " Predict: 1.0\n", + " Else (feature 19 > 30.255000000000003)\n", + " Predict: 0.0\n", + " Else (feature 29 > 0.5)\n", + " If (feature 45 <= 1.5)\n", + " If (feature 0 <= 0.5)\n", + " If (feature 21 <= 11.75)\n", + " If (feature 45 <= 0.5)\n", + " Predict: 1.0\n", + " Else (feature 45 > 0.5)\n", + " If (feature 17 <= 57.1)\n", + " Predict: 1.0\n", + " Else (feature 17 > 57.1)\n", + " Predict: 0.0\n", + " Else (feature 21 > 11.75)\n", + " Predict: 0.0\n", + " Else (feature 0 > 0.5)\n", + " If (feature 37 <= 5.5)\n", + " Predict: 0.0\n", + " Else (feature 37 > 5.5)\n", + " If (feature 18 <= 85.5)\n", + " Predict: 1.0\n", + " Else (feature 18 > 85.5)\n", + " Predict: 0.0\n", + " Else (feature 45 > 1.5)\n", + " If (feature 38 <= 7.5)\n", + " If (feature 19 <= 30.165)\n", + " If (feature 34 <= 0.5)\n", + " Predict: 1.0\n", + " Else (feature 34 > 0.5)\n", + " If (feature 25 <= 0.5)\n", + " Predict: 1.0\n", + " Else (feature 25 > 0.5)\n", + " Predict: 0.0\n", + " Else (feature 19 > 30.165)\n", + " If (feature 21 <= 7.5)\n", + " Predict: 1.0\n", + " Else (feature 21 > 7.5)\n", + " If (feature 17 <= 71.15)\n", + " Predict: 0.0\n", + " Else (feature 17 > 71.15)\n", + " Predict: 1.0\n", + " Else (feature 38 > 7.5)\n", + " If (feature 34 <= 0.5)\n", + " If (feature 16 <= 0.0105)\n", + " Predict: 1.0\n", + " Else (feature 16 > 0.0105)\n", + " Predict: 0.0\n", + " Else (feature 34 > 0.5)\n", + " If (feature 45 <= 12.5)\n", + " Predict: 0.0\n", + " Else (feature 45 > 12.5)\n", + " If (feature 0 <= 0.5)\n", + " Predict: 1.0\n", + " Else (feature 0 > 0.5)\n", + " Predict: 0.0\n", + " Else (feature 36 > 0.5)\n", + " If (feature 16 <= 0.053500000000000006)\n", + " If (feature 25 <= 0.5)\n", + " If (feature 19 <= 30.165)\n", + " If (feature 45 <= 1.5)\n", + " If (feature 27 <= 0.5)\n", + " If (feature 40 <= 0.5)\n", + " Predict: 0.0\n", + " Else (feature 40 > 0.5)\n", + " If (feature 40 <= 3.5)\n", + " Predict: 0.0\n", + " Else (feature 40 > 3.5)\n", + " If (feature 22 <= 0.035)\n", + " Predict: 0.0\n", + " Else (feature 22 > 0.035)\n", + " Predict: 1.0\n", + " Else (feature 27 > 0.5)\n", + " If (feature 4 <= 0.5)\n", + " If (feature 37 <= 7.5)\n", + " Predict: 1.0\n", + " Else (feature 37 > 7.5)\n", + " Predict: 0.0\n", + " Else (feature 4 > 0.5)\n", + " Predict: 1.0\n", + " Else (feature 45 > 1.5)\n", + " If (feature 5 <= 0.5)\n", + " If (feature 43 <= 0.5)\n", + " Predict: 0.0\n", + " Else (feature 43 > 0.5)\n", + " If (feature 27 <= 0.5)\n", + " Predict: 0.0\n", + " Else (feature 27 > 0.5)\n", + " If (feature 21 <= 6.45)\n", + " Predict: 0.0\n", + " Else (feature 21 > 6.45)\n", + " Predict: 1.0\n", + " Else (feature 5 > 0.5)\n", + " If (feature 17 <= 77.1)\n", + " If (feature 19 <= 29.545)\n", + " If (feature 21 <= 13.4)\n", + " Predict: 1.0\n", + " Else (feature 21 > 13.4)\n", + " Predict: 0.0\n", + " Else (feature 19 > 29.545)\n", + " Predict: 0.0\n", + " Else (feature 17 > 77.1)\n", + " If (feature 40 <= 0.5)\n", + " Predict: 0.0\n", + " Else (feature 40 > 0.5)\n", + " If (feature 21 <= 13.9)\n", + " Predict: 0.0\n", + " Else (feature 21 > 13.9)\n", + " Predict: 1.0\n", + " Else (feature 19 > 30.165)\n", + " If (feature 39 <= 4.5)\n", + " If (feature 20 <= 11.0)\n", + " If (feature 3 <= 0.5)\n", + " Predict: 0.0\n", + " Else (feature 3 > 0.5)\n", + " If (feature 37 <= 3.5)\n", + " If (feature 11 <= 0.5)\n", + " Predict: 1.0\n", + " Else (feature 11 > 0.5)\n", + " Predict: 0.0\n", + " Else (feature 37 > 3.5)\n", + " Predict: 0.0\n", + " Else (feature 20 > 11.0)\n", + " If (feature 19 <= 30.185000000000002)\n", + " Predict: 1.0\n", + " Else (feature 19 > 30.185000000000002)\n", + " If (feature 38 <= 5.5)\n", + " If (feature 42 <= 0.5)\n", + " Predict: 0.0\n", + " Else (feature 42 > 0.5)\n", + " Predict: 1.0\n", + " Else (feature 38 > 5.5)\n", + " Predict: 0.0\n", + " Else (feature 39 > 4.5)\n", + " If (feature 18 <= 55.5)\n", + " If (feature 18 <= 38.5)\n", + " Predict: 0.0\n", + " Else (feature 18 > 38.5)\n", + " If (feature 17 <= 33.2)\n", + " If (feature 16 <= 5.0E-4)\n", + " Predict: 1.0\n", + " Else (feature 16 > 5.0E-4)\n", + " Predict: 0.0\n", + " Else (feature 17 > 33.2)\n", + " Predict: 0.0\n", + " Else (feature 18 > 55.5)\n", + " If (feature 31 <= 0.5)\n", + " If (feature 40 <= 4.5)\n", + " Predict: 0.0\n", + " Else (feature 40 > 4.5)\n", + " Predict: 1.0\n", + " Else (feature 31 > 0.5)\n", + " If (feature 37 <= 2.5)\n", + " If (feature 21 <= 7.5)\n", + " Predict: 0.0\n", + " Else (feature 21 > 7.5)\n", + " Predict: 1.0\n", + " Else (feature 37 > 2.5)\n", + " Predict: 0.0\n", + " Else (feature 25 > 0.5)\n", + " If (feature 40 <= 0.5)\n", + " If (feature 18 <= 38.5)\n", + " If (feature 19 <= 29.905)\n", + " If (feature 17 <= 53.5)\n", + " If (feature 19 <= 29.825)\n", + " Predict: 0.0\n", + " Else (feature 19 > 29.825)\n", + " If (feature 1 <= 0.5)\n", + " Predict: 2.0\n", + " Else (feature 1 > 0.5)\n", + " Predict: 0.0\n", + " Else (feature 17 > 53.5)\n", + " If (feature 17 <= 71.15)\n", + " If (feature 21 <= 20.85)\n", + " Predict: 0.0\n", + " Else (feature 21 > 20.85)\n", + " Predict: 1.0\n", + " Else (feature 17 > 71.15)\n", + " Predict: 0.0\n", + " Else (feature 19 > 29.905)\n", + " If (feature 45 <= 6.5)\n", + " Predict: 0.0\n", + " Else (feature 45 > 6.5)\n", + " If (feature 11 <= 0.5)\n", + " Predict: 0.0\n", + " Else (feature 11 > 0.5)\n", + " If (feature 39 <= 1.5)\n", + " Predict: 1.0\n", + " Else (feature 39 > 1.5)\n", + " Predict: 0.0\n", + " Else (feature 18 > 38.5)\n", + " Predict: 0.0\n", + " Else (feature 40 > 0.5)\n", + " If (feature 45 <= 13.5)\n", + " If (feature 26 <= 0.5)\n", + " If (feature 38 <= 8.5)\n", + " If (feature 18 <= 38.5)\n", + " If (feature 37 <= 7.5)\n", + " Predict: 0.0\n", + " Else (feature 37 > 7.5)\n", + " Predict: 1.0\n", + " Else (feature 18 > 38.5)\n", + " Predict: 0.0\n", + " Else (feature 38 > 8.5)\n", + " Predict: 0.0\n", + " Else (feature 26 > 0.5)\n", + " If (feature 17 <= 77.1)\n", + " Predict: 0.0\n", + " Else (feature 17 > 77.1)\n", + " Predict: 1.0\n", + " Else (feature 45 > 13.5)\n", + " If (feature 18 <= 50.5)\n", + " Predict: 1.0\n", + " Else (feature 18 > 50.5)\n", + " If (feature 45 <= 14.5)\n", + " If (feature 18 <= 93.5)\n", + " If (feature 17 <= 43.1)\n", + " Predict: 0.0\n", + " Else (feature 17 > 43.1)\n", + " Predict: 1.0\n", + " Else (feature 18 > 93.5)\n", + " Predict: 1.0\n", + " Else (feature 45 > 14.5)\n", + " Predict: 0.0\n", + " Else (feature 16 > 0.053500000000000006)\n", + " If (feature 39 <= 4.5)\n", + " If (feature 45 <= 12.5)\n", + " If (feature 8 <= 0.5)\n", + " If (feature 16 <= 0.2135)\n", + " If (feature 19 <= 30.095)\n", + " If (feature 19 <= 29.785)\n", + " Predict: 0.0\n", + " Else (feature 19 > 29.785)\n", + " If (feature 39 <= 2.5)\n", + " Predict: 0.0\n", + " Else (feature 39 > 2.5)\n", + " Predict: 1.0\n", + " Else (feature 19 > 30.095)\n", + " If (feature 1 <= 0.5)\n", + " If (feature 39 <= 0.5)\n", + " Predict: 1.0\n", + " Else (feature 39 > 0.5)\n", + " Predict: 0.0\n", + " Else (feature 1 > 0.5)\n", + " Predict: 0.0\n", + " Else (feature 16 > 0.2135)\n", + " If (feature 34 <= 0.5)\n", + " If (feature 37 <= 5.5)\n", + " If (feature 40 <= 16.5)\n", + " Predict: 1.0\n", + " Else (feature 40 > 16.5)\n", + " Predict: 2.0\n", + " Else (feature 37 > 5.5)\n", + " If (feature 25 <= 0.5)\n", + " Predict: 0.0\n", + " Else (feature 25 > 0.5)\n", + " Predict: 2.0\n", + " Else (feature 34 > 0.5)\n", + " If (feature 11 <= 0.5)\n", + " Predict: 0.0\n", + " Else (feature 11 > 0.5)\n", + " If (feature 37 <= 8.5)\n", + " Predict: 0.0\n", + " Else (feature 37 > 8.5)\n", + " Predict: 1.0\n", + " Else (feature 8 > 0.5)\n", + " If (feature 34 <= 0.5)\n", + " If (feature 38 <= 6.5)\n", + " If (feature 45 <= 9.5)\n", + " If (feature 45 <= 1.5)\n", + " Predict: 0.0\n", + " Else (feature 45 > 1.5)\n", + " Predict: 1.0\n", + " Else (feature 45 > 9.5)\n", + " Predict: 2.0\n", + " Else (feature 38 > 6.5)\n", + " If (feature 40 <= 8.5)\n", + " Predict: 1.0\n", + " Else (feature 40 > 8.5)\n", + " Predict: 0.0\n", + " Else (feature 34 > 0.5)\n", + " Predict: 0.0\n", + " Else (feature 45 > 12.5)\n", + " If (feature 45 <= 17.5)\n", + " If (feature 42 <= 0.5)\n", + " If (feature 17 <= 67.9)\n", + " If (feature 11 <= 0.5)\n", + " If (feature 23 <= 0.5)\n", + " Predict: 1.0\n", + " Else (feature 23 > 0.5)\n", + " Predict: 0.0\n", + " Else (feature 11 > 0.5)\n", + " If (feature 18 <= 44.5)\n", + " Predict: 0.0\n", + " Else (feature 18 > 44.5)\n", + " Predict: 1.0\n", + " Else (feature 17 > 67.9)\n", + " If (feature 16 <= 0.966)\n", + " If (feature 17 <= 77.1)\n", + " Predict: 0.0\n", + " Else (feature 17 > 77.1)\n", + " Predict: 1.0\n", + " Else (feature 16 > 0.966)\n", + " If (feature 39 <= 3.5)\n", + " Predict: 2.0\n", + " Else (feature 39 > 3.5)\n", + " Predict: 0.0\n", + " Else (feature 42 > 0.5)\n", + " If (feature 34 <= 0.5)\n", + " Predict: 1.0\n", + " Else (feature 34 > 0.5)\n", + " If (feature 18 <= 58.5)\n", + " If (feature 18 <= 44.5)\n", + " Predict: 0.0\n", + " Else (feature 18 > 44.5)\n", + " Predict: 1.0\n", + " Else (feature 18 > 58.5)\n", + " If (feature 17 <= 65.85)\n", + " Predict: 0.0\n", + " Else (feature 17 > 65.85)\n", + " Predict: 1.0\n", + " Else (feature 45 > 17.5)\n", + " If (feature 19 <= 29.115000000000002)\n", + " If (feature 11 <= 0.5)\n", + " If (feature 18 <= 88.5)\n", + " Predict: 1.0\n", + " Else (feature 18 > 88.5)\n", + " Predict: 0.0\n", + " Else (feature 11 > 0.5)\n", + " If (feature 38 <= 6.5)\n", + " Predict: 2.0\n", + " Else (feature 38 > 6.5)\n", + " If (feature 38 <= 8.5)\n", + " Predict: 1.0\n", + " Else (feature 38 > 8.5)\n", + " Predict: 2.0\n", + " Else (feature 19 > 29.115000000000002)\n", + " If (feature 16 <= 1.8465)\n", + " If (feature 38 <= 7.5)\n", + " If (feature 39 <= 2.5)\n", + " Predict: 1.0\n", + " Else (feature 39 > 2.5)\n", + " Predict: 0.0\n", + " Else (feature 38 > 7.5)\n", + " If (feature 34 <= 0.5)\n", + " Predict: 1.0\n", + " Else (feature 34 > 0.5)\n", + " Predict: 0.0\n", + " Else (feature 16 > 1.8465)\n", + " If (feature 16 <= 5.1419999999999995)\n", + " If (feature 38 <= 4.5)\n", + " Predict: 1.0\n", + " Else (feature 38 > 4.5)\n", + " Predict: 2.0\n", + " Else (feature 16 > 5.1419999999999995)\n", + " Predict: 0.0\n", + " Else (feature 39 > 4.5)\n", + " If (feature 21 <= 19.0)\n", + " If (feature 37 <= 3.5)\n", + " If (feature 45 <= 20.5)\n", + " If (feature 39 <= 5.5)\n", + " If (feature 19 <= 30.255000000000003)\n", + " If (feature 38 <= 2.5)\n", + " Predict: 0.0\n", + " Else (feature 38 > 2.5)\n", + " Predict: 1.0\n", + " Else (feature 19 > 30.255000000000003)\n", + " If (feature 45 <= 9.5)\n", + " Predict: 2.0\n", + " Else (feature 45 > 9.5)\n", + " Predict: 1.0\n", + " Else (feature 39 > 5.5)\n", + " If (feature 18 <= 53.5)\n", + " If (feature 21 <= 15.5)\n", + " Predict: 1.0\n", + " Else (feature 21 > 15.5)\n", + " Predict: 0.0\n", + " Else (feature 18 > 53.5)\n", + " Predict: 1.0\n", + " Else (feature 45 > 20.5)\n", + " Predict: 2.0\n", + " Else (feature 37 > 3.5)\n", + " If (feature 28 <= 0.5)\n", + " If (feature 45 <= 3.5)\n", + " Predict: 1.0\n", + " Else (feature 45 > 3.5)\n", + " If (feature 18 <= 62.5)\n", + " If (feature 19 <= 28.695)\n", + " Predict: 0.0\n", + " Else (feature 19 > 28.695)\n", + " Predict: 1.0\n", + " Else (feature 18 > 62.5)\n", + " Predict: 1.0\n", + " Else (feature 28 > 0.5)\n", + " Predict: 0.0\n", + " Else (feature 21 > 19.0)\n", + " If (feature 37 <= 11.5)\n", + " If (feature 37 <= 8.5)\n", + " Predict: 0.0\n", + " Else (feature 37 > 8.5)\n", + " Predict: 1.0\n", + " Else (feature 37 > 11.5)\n", + " If (feature 3 <= 0.5)\n", + " Predict: 2.0\n", + " Else (feature 3 > 0.5)\n", + " If (feature 25 <= 0.5)\n", + " Predict: 1.0\n", + " Else (feature 25 > 0.5)\n", + " Predict: 2.0\n", + " Else (feature 35 > 0.5)\n", + " If (feature 36 <= 0.5)\n", + " If (feature 45 <= 13.5)\n", + " If (feature 38 <= 4.5)\n", + " If (feature 4 <= 0.5)\n", + " If (feature 1 <= 0.5)\n", + " If (feature 40 <= 0.5)\n", + " If (feature 13 <= 0.5)\n", + " If (feature 34 <= 0.5)\n", + " Predict: 1.0\n", + " Else (feature 34 > 0.5)\n", + " Predict: 0.0\n", + " Else (feature 13 > 0.5)\n", + " Predict: 1.0\n", + " Else (feature 40 > 0.5)\n", + " If (feature 3 <= 0.5)\n", + " If (feature 20 <= 0.625)\n", + " Predict: 2.0\n", + " Else (feature 20 > 0.625)\n", + " If (feature 16 <= 0.0165)\n", + " Predict: 0.0\n", + " Else (feature 16 > 0.0165)\n", + " Predict: 2.0\n", + " Else (feature 3 > 0.5)\n", + " If (feature 39 <= 4.5)\n", + " If (feature 19 <= 28.695)\n", + " Predict: 2.0\n", + " Else (feature 19 > 28.695)\n", + " Predict: 0.0\n", + " Else (feature 39 > 4.5)\n", + " If (feature 17 <= 84.4)\n", + " Predict: 0.0\n", + " Else (feature 17 > 84.4)\n", + " Predict: 1.0\n", + " Else (feature 1 > 0.5)\n", + " If (feature 40 <= 0.5)\n", + " If (feature 38 <= 2.5)\n", + " If (feature 45 <= 8.5)\n", + " If (feature 25 <= 0.5)\n", + " Predict: 1.0\n", + " Else (feature 25 > 0.5)\n", + " Predict: 0.0\n", + " Else (feature 45 > 8.5)\n", + " If (feature 39 <= 3.5)\n", + " Predict: 0.0\n", + " Else (feature 39 > 3.5)\n", + " Predict: 1.0\n", + " Else (feature 38 > 2.5)\n", + " If (feature 45 <= 11.5)\n", + " Predict: 1.0\n", + " Else (feature 45 > 11.5)\n", + " If (feature 18 <= 21.5)\n", + " Predict: 0.0\n", + " Else (feature 18 > 21.5)\n", + " Predict: 1.0\n", + " Else (feature 40 > 0.5)\n", + " If (feature 39 <= 4.5)\n", + " If (feature 27 <= 0.5)\n", + " Predict: 2.0\n", + " Else (feature 27 > 0.5)\n", + " If (feature 16 <= 0.966)\n", + " Predict: 0.0\n", + " Else (feature 16 > 0.966)\n", + " Predict: 2.0\n", + " Else (feature 39 > 4.5)\n", + " If (feature 25 <= 0.5)\n", + " If (feature 16 <= 0.0035)\n", + " Predict: 0.0\n", + " Else (feature 16 > 0.0035)\n", + " Predict: 2.0\n", + " Else (feature 25 > 0.5)\n", + " Predict: 2.0\n", + " Else (feature 4 > 0.5)\n", + " If (feature 35 <= 1.5)\n", + " If (feature 17 <= 46.75)\n", + " If (feature 19 <= 29.355)\n", + " If (feature 9 <= 0.5)\n", + " Predict: 2.0\n", + " Else (feature 9 > 0.5)\n", + " If (feature 17 <= 37.2)\n", + " Predict: 0.0\n", + " Else (feature 17 > 37.2)\n", + " Predict: 2.0\n", + " Else (feature 19 > 29.355)\n", + " If (feature 45 <= 4.5)\n", + " If (feature 34 <= 0.5)\n", + " Predict: 2.0\n", + " Else (feature 34 > 0.5)\n", + " Predict: 1.0\n", + " Else (feature 45 > 4.5)\n", + " If (feature 15 <= 0.5)\n", + " Predict: 2.0\n", + " Else (feature 15 > 0.5)\n", + " Predict: 0.0\n", + " Else (feature 17 > 46.75)\n", + " If (feature 18 <= 87.5)\n", + " If (feature 20 <= 5.25)\n", + " Predict: 0.0\n", + " Else (feature 20 > 5.25)\n", + " If (feature 22 <= 0.035)\n", + " Predict: 2.0\n", + " Else (feature 22 > 0.035)\n", + " Predict: 0.0\n", + " Else (feature 18 > 87.5)\n", + " If (feature 38 <= 0.5)\n", + " If (feature 20 <= 1.9)\n", + " Predict: 0.0\n", + " Else (feature 20 > 1.9)\n", + " Predict: 2.0\n", + " Else (feature 38 > 0.5)\n", + " Predict: 2.0\n", + " Else (feature 35 > 1.5)\n", + " If (feature 20 <= 1.1)\n", + " If (feature 45 <= 9.5)\n", + " If (feature 21 <= 3.25)\n", + " Predict: 1.0\n", + " Else (feature 21 > 3.25)\n", + " Predict: 0.0\n", + " Else (feature 45 > 9.5)\n", + " Predict: 1.0\n", + " Else (feature 20 > 1.1)\n", + " If (feature 39 <= 4.5)\n", + " If (feature 41 <= 0.5)\n", + " Predict: 1.0\n", + " Else (feature 41 > 0.5)\n", + " If (feature 44 <= 0.5)\n", + " Predict: 0.0\n", + " Else (feature 44 > 0.5)\n", + " Predict: 1.0\n", + " Else (feature 39 > 4.5)\n", + " Predict: 1.0\n", + " Else (feature 38 > 4.5)\n", + " If (feature 35 <= 1.5)\n", + " If (feature 19 <= 30.134999999999998)\n", + " If (feature 20 <= 3.5)\n", + " If (feature 8 <= 0.5)\n", + " If (feature 22 <= 0.08499999999999999)\n", + " If (feature 31 <= 0.5)\n", + " Predict: 2.0\n", + " Else (feature 31 > 0.5)\n", + " Predict: 1.0\n", + " Else (feature 22 > 0.08499999999999999)\n", + " Predict: 2.0\n", + " Else (feature 8 > 0.5)\n", + " Predict: 2.0\n", + " Else (feature 20 > 3.5)\n", + " If (feature 19 <= 29.545)\n", + " If (feature 34 <= 0.5)\n", + " Predict: 2.0\n", + " Else (feature 34 > 0.5)\n", + " If (feature 45 <= 12.5)\n", + " Predict: 2.0\n", + " Else (feature 45 > 12.5)\n", + " Predict: 1.0\n", + " Else (feature 19 > 29.545)\n", + " Predict: 2.0\n", + " Else (feature 19 > 30.134999999999998)\n", + " If (feature 16 <= 0.966)\n", + " If (feature 45 <= 4.5)\n", + " Predict: 2.0\n", + " Else (feature 45 > 4.5)\n", + " If (feature 25 <= 0.5)\n", + " Predict: 2.0\n", + " Else (feature 25 > 0.5)\n", + " If (feature 37 <= 14.5)\n", + " Predict: 2.0\n", + " Else (feature 37 > 14.5)\n", + " Predict: 0.0\n", + " Else (feature 16 > 0.966)\n", + " If (feature 45 <= 4.5)\n", + " If (feature 0 <= 0.5)\n", + " If (feature 43 <= 0.5)\n", + " Predict: 2.0\n", + " Else (feature 43 > 0.5)\n", + " Predict: 0.0\n", + " Else (feature 0 > 0.5)\n", + " Predict: 2.0\n", + " Else (feature 45 > 4.5)\n", + " Predict: 2.0\n", + " Else (feature 35 > 1.5)\n", + " If (feature 25 <= 0.5)\n", + " If (feature 22 <= 0.08499999999999999)\n", + " Predict: 1.0\n", + " Else (feature 22 > 0.08499999999999999)\n", + " If (feature 22 <= 0.095)\n", + " If (feature 4 <= 0.5)\n", + " If (feature 38 <= 5.5)\n", + " Predict: 2.0\n", + " Else (feature 38 > 5.5)\n", + " Predict: 0.0\n", + " Else (feature 4 > 0.5)\n", + " Predict: 1.0\n", + " Else (feature 22 > 0.095)\n", + " If (feature 21 <= 13.9)\n", + " If (feature 6 <= 0.5)\n", + " Predict: 1.0\n", + " Else (feature 6 > 0.5)\n", + " Predict: 0.0\n", + " Else (feature 21 > 13.9)\n", + " If (feature 37 <= 8.5)\n", + " Predict: 2.0\n", + " Else (feature 37 > 8.5)\n", + " Predict: 1.0\n", + " Else (feature 25 > 0.5)\n", + " If (feature 45 <= 1.5)\n", + " If (feature 31 <= 0.5)\n", + " If (feature 38 <= 5.5)\n", + " If (feature 37 <= 5.5)\n", + " Predict: 0.0\n", + " Else (feature 37 > 5.5)\n", + " Predict: 1.0\n", + " Else (feature 38 > 5.5)\n", + " Predict: 0.0\n", + " Else (feature 31 > 0.5)\n", + " If (feature 45 <= 0.5)\n", + " Predict: 1.0\n", + " Else (feature 45 > 0.5)\n", + " Predict: 0.0\n", + " Else (feature 45 > 1.5)\n", + " If (feature 14 <= 0.5)\n", + " If (feature 45 <= 12.5)\n", + " If (feature 37 <= 10.5)\n", + " Predict: 0.0\n", + " Else (feature 37 > 10.5)\n", + " Predict: 1.0\n", + " Else (feature 45 > 12.5)\n", + " Predict: 1.0\n", + " Else (feature 14 > 0.5)\n", + " Predict: 0.0\n", + " Else (feature 45 > 13.5)\n", + " If (feature 11 <= 0.5)\n", + " If (feature 1 <= 0.5)\n", + " If (feature 21 <= 3.25)\n", + " If (feature 39 <= 1.5)\n", + " If (feature 35 <= 1.5)\n", + " If (feature 17 <= 65.85)\n", + " If (feature 19 <= 29.115000000000002)\n", + " Predict: 0.0\n", + " Else (feature 19 > 29.115000000000002)\n", + " Predict: 2.0\n", + " Else (feature 17 > 65.85)\n", + " If (feature 19 <= 29.825)\n", + " Predict: 2.0\n", + " Else (feature 19 > 29.825)\n", + " Predict: 1.0\n", + " Else (feature 35 > 1.5)\n", + " If (feature 45 <= 14.5)\n", + " Predict: 0.0\n", + " Else (feature 45 > 14.5)\n", + " Predict: 1.0\n", + " Else (feature 39 > 1.5)\n", + " If (feature 35 <= 1.5)\n", + " If (feature 16 <= 0.0045000000000000005)\n", + " Predict: 0.0\n", + " Else (feature 16 > 0.0045000000000000005)\n", + " Predict: 2.0\n", + " Else (feature 35 > 1.5)\n", + " If (feature 19 <= 28.695)\n", + " Predict: 0.0\n", + " Else (feature 19 > 28.695)\n", + " If (feature 5 <= 0.5)\n", + " Predict: 1.0\n", + " Else (feature 5 > 0.5)\n", + " Predict: 0.0\n", + " Else (feature 21 > 3.25)\n", + " If (feature 16 <= 5.0E-4)\n", + " If (feature 20 <= 9.5)\n", + " If (feature 34 <= 0.5)\n", + " Predict: 0.0\n", + " Else (feature 34 > 0.5)\n", + " If (feature 18 <= 81.5)\n", + " Predict: 1.0\n", + " Else (feature 18 > 81.5)\n", + " Predict: 2.0\n", + " Else (feature 20 > 9.5)\n", + " If (feature 44 <= 0.5)\n", + " If (feature 38 <= 4.5)\n", + " Predict: 0.0\n", + " Else (feature 38 > 4.5)\n", + " Predict: 2.0\n", + " Else (feature 44 > 0.5)\n", + " If (feature 38 <= 3.5)\n", + " Predict: 0.0\n", + " Else (feature 38 > 3.5)\n", + " Predict: 2.0\n", + " Else (feature 16 > 5.0E-4)\n", + " If (feature 45 <= 15.5)\n", + " Predict: 2.0\n", + " Else (feature 45 > 15.5)\n", + " If (feature 37 <= 7.5)\n", + " If (feature 40 <= 0.5)\n", + " Predict: 1.0\n", + " Else (feature 40 > 0.5)\n", + " Predict: 2.0\n", + " Else (feature 37 > 7.5)\n", + " Predict: 2.0\n", + " Else (feature 1 > 0.5)\n", + " If (feature 45 <= 16.5)\n", + " If (feature 22 <= 0.295)\n", + " If (feature 19 <= 30.005000000000003)\n", + " If (feature 18 <= 65.5)\n", + " Predict: 2.0\n", + " Else (feature 18 > 65.5)\n", + " If (feature 35 <= 1.5)\n", + " Predict: 2.0\n", + " Else (feature 35 > 1.5)\n", + " Predict: 1.0\n", + " Else (feature 19 > 30.005000000000003)\n", + " If (feature 42 <= 0.5)\n", + " If (feature 23 <= 0.5)\n", + " Predict: 2.0\n", + " Else (feature 23 > 0.5)\n", + " Predict: 1.0\n", + " Else (feature 42 > 0.5)\n", + " Predict: 2.0\n", + " Else (feature 22 > 0.295)\n", + " Predict: 2.0\n", + " Else (feature 45 > 16.5)\n", + " If (feature 35 <= 1.5)\n", + " Predict: 2.0\n", + " Else (feature 35 > 1.5)\n", + " If (feature 39 <= 0.5)\n", + " Predict: 2.0\n", + " Else (feature 39 > 0.5)\n", + " If (feature 18 <= 58.5)\n", + " If (feature 38 <= 0.5)\n", + " Predict: 0.0\n", + " Else (feature 38 > 0.5)\n", + " Predict: 1.0\n", + " Else (feature 18 > 58.5)\n", + " If (feature 38 <= 8.5)\n", + " Predict: 1.0\n", + " Else (feature 38 > 8.5)\n", + " Predict: 0.0\n", + " Else (feature 11 > 0.5)\n", + " If (feature 18 <= 65.5)\n", + " If (feature 40 <= 0.5)\n", + " If (feature 19 <= 29.785)\n", + " If (feature 37 <= 15.5)\n", + " If (feature 37 <= 14.5)\n", + " Predict: 1.0\n", + " Else (feature 37 > 14.5)\n", + " If (feature 17 <= 53.5)\n", + " Predict: 1.0\n", + " Else (feature 17 > 53.5)\n", + " Predict: 0.0\n", + " Else (feature 37 > 15.5)\n", + " Predict: 0.0\n", + " Else (feature 19 > 29.785)\n", + " If (feature 17 <= 71.15)\n", + " If (feature 44 <= 0.5)\n", + " Predict: 0.0\n", + " Else (feature 44 > 0.5)\n", + " If (feature 21 <= 3.25)\n", + " Predict: 0.0\n", + " Else (feature 21 > 3.25)\n", + " Predict: 1.0\n", + " Else (feature 17 > 71.15)\n", + " If (feature 38 <= 0.5)\n", + " Predict: 0.0\n", + " Else (feature 38 > 0.5)\n", + " Predict: 1.0\n", + " Else (feature 40 > 0.5)\n", + " If (feature 37 <= 3.5)\n", + " If (feature 39 <= 4.5)\n", + " If (feature 17 <= 80.69999999999999)\n", + " Predict: 2.0\n", + " Else (feature 17 > 80.69999999999999)\n", + " Predict: 0.0\n", + " Else (feature 39 > 4.5)\n", + " If (feature 37 <= 2.5)\n", + " Predict: 0.0\n", + " Else (feature 37 > 2.5)\n", + " If (feature 44 <= 0.5)\n", + " Predict: 0.0\n", + " Else (feature 44 > 0.5)\n", + " Predict: 2.0\n", + " Else (feature 37 > 3.5)\n", + " If (feature 21 <= 3.25)\n", + " If (feature 41 <= 0.5)\n", + " If (feature 19 <= 28.695)\n", + " Predict: 1.0\n", + " Else (feature 19 > 28.695)\n", + " Predict: 2.0\n", + " Else (feature 41 > 0.5)\n", + " If (feature 31 <= 0.5)\n", + " Predict: 0.0\n", + " Else (feature 31 > 0.5)\n", + " Predict: 2.0\n", + " Else (feature 21 > 3.25)\n", + " If (feature 45 <= 14.5)\n", + " Predict: 0.0\n", + " Else (feature 45 > 14.5)\n", + " Predict: 2.0\n", + " Else (feature 18 > 65.5)\n", + " If (feature 38 <= 3.5)\n", + " If (feature 45 <= 14.5)\n", + " If (feature 37 <= 8.5)\n", + " If (feature 19 <= 29.665)\n", + " If (feature 16 <= 0.1375)\n", + " Predict: 0.0\n", + " Else (feature 16 > 0.1375)\n", + " Predict: 2.0\n", + " Else (feature 19 > 29.665)\n", + " If (feature 16 <= 0.1375)\n", + " Predict: 0.0\n", + " Else (feature 16 > 0.1375)\n", + " Predict: 2.0\n", + " Else (feature 37 > 8.5)\n", + " Predict: 0.0\n", + " Else (feature 45 > 14.5)\n", + " If (feature 39 <= 5.5)\n", + " If (feature 17 <= 72.95)\n", + " Predict: 2.0\n", + " Else (feature 17 > 72.95)\n", + " If (feature 20 <= 9.5)\n", + " Predict: 0.0\n", + " Else (feature 20 > 9.5)\n", + " Predict: 2.0\n", + " Else (feature 39 > 5.5)\n", + " If (feature 37 <= 5.5)\n", + " If (feature 16 <= 0.053500000000000006)\n", + " Predict: 0.0\n", + " Else (feature 16 > 0.053500000000000006)\n", + " Predict: 2.0\n", + " Else (feature 37 > 5.5)\n", + " If (feature 40 <= 0.5)\n", + " Predict: 0.0\n", + " Else (feature 40 > 0.5)\n", + " Predict: 2.0\n", + " Else (feature 38 > 3.5)\n", + " If (feature 16 <= 5.0E-4)\n", + " If (feature 35 <= 1.5)\n", + " If (feature 20 <= 8.5)\n", + " Predict: 1.0\n", + " Else (feature 20 > 8.5)\n", + " If (feature 39 <= 5.5)\n", + " Predict: 0.0\n", + " Else (feature 39 > 5.5)\n", + " Predict: 2.0\n", + " Else (feature 35 > 1.5)\n", + " If (feature 18 <= 77.5)\n", + " Predict: 1.0\n", + " Else (feature 18 > 77.5)\n", + " If (feature 39 <= 1.5)\n", + " Predict: 1.0\n", + " Else (feature 39 > 1.5)\n", + " Predict: 0.0\n", + " Else (feature 16 > 5.0E-4)\n", + " If (feature 41 <= 0.5)\n", + " Predict: 2.0\n", + " Else (feature 41 > 0.5)\n", + " If (feature 22 <= 0.025)\n", + " Predict: 2.0\n", + " Else (feature 22 > 0.025)\n", + " Predict: 0.0\n", + " Else (feature 36 > 0.5)\n", + " If (feature 16 <= 5.0E-4)\n", + " If (feature 44 <= 0.5)\n", + " If (feature 40 <= 0.5)\n", + " If (feature 21 <= 17.65)\n", + " If (feature 45 <= 12.5)\n", + " If (feature 41 <= 0.5)\n", + " Predict: 0.0\n", + " Else (feature 41 > 0.5)\n", + " If (feature 0 <= 0.5)\n", + " If (feature 20 <= 2.65)\n", + " Predict: 1.0\n", + " Else (feature 20 > 2.65)\n", + " Predict: 0.0\n", + " Else (feature 0 > 0.5)\n", + " Predict: 0.0\n", + " Else (feature 45 > 12.5)\n", + " If (feature 37 <= 2.5)\n", + " If (feature 38 <= 2.5)\n", + " If (feature 20 <= 9.5)\n", + " Predict: 1.0\n", + " Else (feature 20 > 9.5)\n", + " Predict: 0.0\n", + " Else (feature 38 > 2.5)\n", + " Predict: 1.0\n", + " Else (feature 37 > 2.5)\n", + " If (feature 32 <= 0.5)\n", + " If (feature 19 <= 29.744999999999997)\n", + " Predict: 1.0\n", + " Else (feature 19 > 29.744999999999997)\n", + " Predict: 0.0\n", + " Else (feature 32 > 0.5)\n", + " Predict: 0.0\n", + " Else (feature 21 > 17.65)\n", + " If (feature 45 <= 3.5)\n", + " If (feature 25 <= 0.5)\n", + " Predict: 1.0\n", + " Else (feature 25 > 0.5)\n", + " Predict: 0.0\n", + " Else (feature 45 > 3.5)\n", + " If (feature 38 <= 7.5)\n", + " Predict: 0.0\n", + " Else (feature 38 > 7.5)\n", + " If (feature 19 <= 29.925)\n", + " If (feature 39 <= 2.5)\n", + " Predict: 0.0\n", + " Else (feature 39 > 2.5)\n", + " Predict: 1.0\n", + " Else (feature 19 > 29.925)\n", + " Predict: 1.0\n", + " Else (feature 40 > 0.5)\n", + " If (feature 35 <= 1.5)\n", + " If (feature 38 <= 3.5)\n", + " If (feature 21 <= 0.6)\n", + " If (feature 9 <= 0.5)\n", + " Predict: 0.0\n", + " Else (feature 9 > 0.5)\n", + " If (feature 19 <= 29.935000000000002)\n", + " Predict: 0.0\n", + " Else (feature 19 > 29.935000000000002)\n", + " Predict: 1.0\n", + " Else (feature 21 > 0.6)\n", + " If (feature 19 <= 29.994999999999997)\n", + " Predict: 0.0\n", + " Else (feature 19 > 29.994999999999997)\n", + " If (feature 21 <= 9.6)\n", + " Predict: 2.0\n", + " Else (feature 21 > 9.6)\n", + " Predict: 0.0\n", + " Else (feature 38 > 3.5)\n", + " If (feature 17 <= 37.2)\n", + " If (feature 1 <= 0.5)\n", + " Predict: 2.0\n", + " Else (feature 1 > 0.5)\n", + " If (feature 43 <= 0.5)\n", + " Predict: 2.0\n", + " Else (feature 43 > 0.5)\n", + " Predict: 1.0\n", + " Else (feature 17 > 37.2)\n", + " If (feature 41 <= 0.5)\n", + " If (feature 19 <= 29.785)\n", + " Predict: 2.0\n", + " Else (feature 19 > 29.785)\n", + " Predict: 0.0\n", + " Else (feature 41 > 0.5)\n", + " Predict: 2.0\n", + " Else (feature 35 > 1.5)\n", + " If (feature 20 <= 2.65)\n", + " If (feature 18 <= 66.5)\n", + " Predict: 2.0\n", + " Else (feature 18 > 66.5)\n", + " Predict: 0.0\n", + " Else (feature 20 > 2.65)\n", + " If (feature 38 <= 3.5)\n", + " If (feature 34 <= 0.5)\n", + " If (feature 19 <= 29.115000000000002)\n", + " Predict: 1.0\n", + " Else (feature 19 > 29.115000000000002)\n", + " Predict: 0.0\n", + " Else (feature 34 > 0.5)\n", + " Predict: 0.0\n", + " Else (feature 38 > 3.5)\n", + " If (feature 25 <= 0.5)\n", + " Predict: 1.0\n", + " Else (feature 25 > 0.5)\n", + " Predict: 0.0\n", + " Else (feature 44 > 0.5)\n", + " If (feature 38 <= 3.5)\n", + " If (feature 39 <= 1.5)\n", + " If (feature 19 <= 30.115000000000002)\n", + " If (feature 45 <= 21.5)\n", + " If (feature 19 <= 30.025)\n", + " Predict: 0.0\n", + " Else (feature 19 > 30.025)\n", + " If (feature 21 <= 9.6)\n", + " Predict: 0.0\n", + " Else (feature 21 > 9.6)\n", + " Predict: 2.0\n", + " Else (feature 45 > 21.5)\n", + " If (feature 20 <= 0.9)\n", + " Predict: 2.0\n", + " Else (feature 20 > 0.9)\n", + " If (feature 39 <= 0.5)\n", + " Predict: 2.0\n", + " Else (feature 39 > 0.5)\n", + " Predict: 0.0\n", + " Else (feature 19 > 30.115000000000002)\n", + " If (feature 19 <= 30.255000000000003)\n", + " If (feature 37 <= 0.5)\n", + " If (feature 21 <= 0.6)\n", + " Predict: 0.0\n", + " Else (feature 21 > 0.6)\n", + " Predict: 2.0\n", + " Else (feature 37 > 0.5)\n", + " Predict: 0.0\n", + " Else (feature 19 > 30.255000000000003)\n", + " Predict: 2.0\n", + " Else (feature 39 > 1.5)\n", + " If (feature 19 <= 29.925)\n", + " If (feature 1 <= 0.5)\n", + " Predict: 0.0\n", + " Else (feature 1 > 0.5)\n", + " Predict: 2.0\n", + " Else (feature 19 > 29.925)\n", + " If (feature 21 <= 3.25)\n", + " Predict: 0.0\n", + " Else (feature 21 > 3.25)\n", + " If (feature 45 <= 17.5)\n", + " Predict: 2.0\n", + " Else (feature 45 > 17.5)\n", + " If (feature 45 <= 20.5)\n", + " Predict: 1.0\n", + " Else (feature 45 > 20.5)\n", + " Predict: 2.0\n", + " Else (feature 38 > 3.5)\n", + " If (feature 40 <= 0.5)\n", + " If (feature 14 <= 0.5)\n", + " Predict: 0.0\n", + " Else (feature 14 > 0.5)\n", + " Predict: 1.0\n", + " Else (feature 40 > 0.5)\n", + " If (feature 34 <= 0.5)\n", + " If (feature 37 <= 13.5)\n", + " If (feature 39 <= 0.5)\n", + " If (feature 37 <= 2.5)\n", + " Predict: 2.0\n", + " Else (feature 37 > 2.5)\n", + " Predict: 0.0\n", + " Else (feature 39 > 0.5)\n", + " Predict: 2.0\n", + " Else (feature 37 > 13.5)\n", + " If (feature 17 <= 60.9)\n", + " If (feature 21 <= 4.05)\n", + " Predict: 0.0\n", + " Else (feature 21 > 4.05)\n", + " Predict: 2.0\n", + " Else (feature 17 > 60.9)\n", + " Predict: 0.0\n", + " Else (feature 34 > 0.5)\n", + " If (feature 18 <= 72.5)\n", + " If (feature 19 <= 29.355)\n", + " If (feature 41 <= 0.5)\n", + " Predict: 2.0\n", + " Else (feature 41 > 0.5)\n", + " Predict: 0.0\n", + " Else (feature 19 > 29.355)\n", + " If (feature 17 <= 46.75)\n", + " Predict: 1.0\n", + " Else (feature 17 > 46.75)\n", + " Predict: 0.0\n", + " Else (feature 18 > 72.5)\n", + " If (feature 38 <= 4.5)\n", + " Predict: 2.0\n", + " Else (feature 38 > 4.5)\n", + " If (feature 19 <= 30.115000000000002)\n", + " Predict: 2.0\n", + " Else (feature 19 > 30.115000000000002)\n", + " Predict: 0.0\n", + " Else (feature 16 > 5.0E-4)\n", + " If (feature 1 <= 0.5)\n", + " If (feature 41 <= 0.5)\n", + " If (feature 19 <= 28.695)\n", + " If (feature 45 <= 12.5)\n", + " If (feature 16 <= 0.2135)\n", + " If (feature 38 <= 0.5)\n", + " Predict: 0.0\n", + " Else (feature 38 > 0.5)\n", + " If (feature 17 <= 78.9)\n", + " Predict: 0.0\n", + " Else (feature 17 > 78.9)\n", + " Predict: 2.0\n", + " Else (feature 16 > 0.2135)\n", + " Predict: 2.0\n", + " Else (feature 45 > 12.5)\n", + " If (feature 18 <= 67.5)\n", + " If (feature 3 <= 0.5)\n", + " If (feature 38 <= 4.5)\n", + " Predict: 0.0\n", + " Else (feature 38 > 4.5)\n", + " Predict: 2.0\n", + " Else (feature 3 > 0.5)\n", + " Predict: 2.0\n", + " Else (feature 18 > 67.5)\n", + " If (feature 21 <= 5.4)\n", + " If (feature 21 <= 0.6)\n", + " Predict: 2.0\n", + " Else (feature 21 > 0.6)\n", + " Predict: 0.0\n", + " Else (feature 21 > 5.4)\n", + " Predict: 2.0\n", + " Else (feature 19 > 28.695)\n", + " If (feature 40 <= 0.5)\n", + " If (feature 20 <= 7.5)\n", + " Predict: 0.0\n", + " Else (feature 20 > 7.5)\n", + " If (feature 16 <= 0.2895)\n", + " If (feature 22 <= 0.005)\n", + " Predict: 0.0\n", + " Else (feature 22 > 0.005)\n", + " Predict: 1.0\n", + " Else (feature 16 > 0.2895)\n", + " Predict: 0.0\n", + " Else (feature 40 > 0.5)\n", + " If (feature 27 <= 0.5)\n", + " If (feature 21 <= 20.85)\n", + " Predict: 2.0\n", + " Else (feature 21 > 20.85)\n", + " If (feature 11 <= 0.5)\n", + " Predict: 2.0\n", + " Else (feature 11 > 0.5)\n", + " Predict: 0.0\n", + " Else (feature 27 > 0.5)\n", + " If (feature 16 <= 0.053500000000000006)\n", + " Predict: 0.0\n", + " Else (feature 16 > 0.053500000000000006)\n", + " Predict: 2.0\n", + " Else (feature 41 > 0.5)\n", + " If (feature 44 <= 0.5)\n", + " If (feature 35 <= 1.5)\n", + " If (feature 17 <= 62.7)\n", + " If (feature 29 <= 0.5)\n", + " Predict: 2.0\n", + " Else (feature 29 > 0.5)\n", + " If (feature 19 <= 29.884999999999998)\n", + " Predict: 0.0\n", + " Else (feature 19 > 29.884999999999998)\n", + " Predict: 2.0\n", + " Else (feature 17 > 62.7)\n", + " If (feature 3 <= 0.5)\n", + " Predict: 2.0\n", + " Else (feature 3 > 0.5)\n", + " Predict: 1.0\n", + " Else (feature 35 > 1.5)\n", + " If (feature 37 <= 3.5)\n", + " If (feature 37 <= 0.5)\n", + " Predict: 1.0\n", + " Else (feature 37 > 0.5)\n", + " Predict: 0.0\n", + " Else (feature 37 > 3.5)\n", + " If (feature 21 <= 8.55)\n", + " Predict: 1.0\n", + " Else (feature 21 > 8.55)\n", + " If (feature 16 <= 0.0105)\n", + " Predict: 1.0\n", + " Else (feature 16 > 0.0105)\n", + " Predict: 0.0\n", + " Else (feature 44 > 0.5)\n", + " If (feature 31 <= 0.5)\n", + " If (feature 13 <= 0.5)\n", + " Predict: 2.0\n", + " Else (feature 13 > 0.5)\n", + " If (feature 39 <= 0.5)\n", + " Predict: 0.0\n", + " Else (feature 39 > 0.5)\n", + " If (feature 21 <= 5.9)\n", + " Predict: 1.0\n", + " Else (feature 21 > 5.9)\n", + " Predict: 2.0\n", + " Else (feature 31 > 0.5)\n", + " If (feature 38 <= 10.5)\n", + " If (feature 4 <= 0.5)\n", + " If (feature 20 <= 3.5)\n", + " Predict: 1.0\n", + " Else (feature 20 > 3.5)\n", + " Predict: 2.0\n", + " Else (feature 4 > 0.5)\n", + " Predict: 1.0\n", + " Else (feature 38 > 10.5)\n", + " If (feature 21 <= 9.6)\n", + " If (feature 37 <= 13.5)\n", + " Predict: 1.0\n", + " Else (feature 37 > 13.5)\n", + " Predict: 0.0\n", + " Else (feature 21 > 9.6)\n", + " Predict: 2.0\n", + " Else (feature 1 > 0.5)\n", + " If (feature 26 <= 0.5)\n", + " If (feature 45 <= 12.5)\n", + " If (feature 21 <= 3.25)\n", + " Predict: 0.0\n", + " Else (feature 21 > 3.25)\n", + " If (feature 17 <= 82.30000000000001)\n", + " If (feature 34 <= 0.5)\n", + " If (feature 19 <= 28.695)\n", + " Predict: 0.0\n", + " Else (feature 19 > 28.695)\n", + " Predict: 2.0\n", + " Else (feature 34 > 0.5)\n", + " Predict: 2.0\n", + " Else (feature 17 > 82.30000000000001)\n", + " If (feature 17 <= 90.95)\n", + " Predict: 2.0\n", + " Else (feature 17 > 90.95)\n", + " If (feature 23 <= 0.5)\n", + " Predict: 2.0\n", + " Else (feature 23 > 0.5)\n", + " Predict: 0.0\n", + " Else (feature 45 > 12.5)\n", + " If (feature 18 <= 58.5)\n", + " If (feature 41 <= 0.5)\n", + " If (feature 34 <= 0.5)\n", + " Predict: 2.0\n", + " Else (feature 34 > 0.5)\n", + " If (feature 16 <= 0.1375)\n", + " Predict: 1.0\n", + " Else (feature 16 > 0.1375)\n", + " Predict: 2.0\n", + " Else (feature 41 > 0.5)\n", + " Predict: 2.0\n", + " Else (feature 18 > 58.5)\n", + " If (feature 16 <= 0.0155)\n", + " If (feature 45 <= 18.5)\n", + " If (feature 17 <= 51.2)\n", + " Predict: 2.0\n", + " Else (feature 17 > 51.2)\n", + " Predict: 0.0\n", + " Else (feature 45 > 18.5)\n", + " Predict: 2.0\n", + " Else (feature 16 > 0.0155)\n", + " Predict: 2.0\n", + " Else (feature 26 > 0.5)\n", + " Predict: 1.0\n", + "\n" + ] + } + ], + "source": [ + "# Tree from the best Model printing it \n", + "\n", + "print(cv_rf.bestModel.stages[-1].trees[3].toDebugString)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Decision Tree Base Model Multiclass Classification" + ] + }, + { + "cell_type": "code", + "execution_count": 47, + "metadata": {}, + "outputs": [], + "source": [ + "\n", + "# Create initial Decision Tree Model\n", + "\n", + "dt = DecisionTreeClassifier(labelCol=\"label\", featuresCol=\"features\",seed=42)\n", + "\n", + "# Creating pipeline for DT Base Model \n", + "\n", + "dt_pipe = Pipeline(stages=[label_stringIdx, va, dt])\n", + "\n", + "# Train DT Base model with Training Data\n", + "\n", + "dtModel = dt_pipe.fit(us_train_cat)" + ] + }, + { + "cell_type": "code", + "execution_count": 48, + "metadata": {}, + "outputs": [], + "source": [ + "# Multiclass Evaluator to evaluate the performance of the model \n", + "\n", + "from pyspark.ml.evaluation import MulticlassClassificationEvaluator\n", + "\n", + "evaluator_dt = MulticlassClassificationEvaluator(labelCol=\"label\", predictionCol=\"prediction\", metricName=\"accuracy\")" + ] + }, + { + "cell_type": "code", + "execution_count": 49, + "metadata": {}, + "outputs": [], + "source": [ + "# Transform Test data using Fitted Pipeline Built earlier for prediction of Test data\n", + "\n", + "pred_dt = dtModel.transform(us_test_cat)" + ] + }, + { + "cell_type": "code", + "execution_count": 50, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Accuracy 0.5456816050238552\n" + ] + } + ], + "source": [ + "# Evaluation of model using Multiclass Evaluator on Test data\n", + "\n", + "print(\"Accuracy\",evaluator_dt.evaluate(pred_dt))" + ] + }, + { + "cell_type": "code", + "execution_count": 51, + "metadata": {}, + "outputs": [], + "source": [ + "# Prediction output from the model to pandas\n", + "\n", + "prediction_dt=pred_dt.toPandas()[\"prediction\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 52, + "metadata": {}, + "outputs": [], + "source": [ + "# True Labels from test data for Target Variable\n", + "\n", + "true_labels=us_test_cat.toPandas()[\"Severity\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 53, + "metadata": {}, + "outputs": [], + "source": [ + "# Initializing Classification Report from sklearn\n", + "\n", + "from sklearn.metrics import classification_report" + ] + }, + { + "cell_type": "code", + "execution_count": 54, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " precision recall f1-score support\n", + "\n", + " 0 0.93 0.42 0.58 131724\n", + " 1 0.48 0.79 0.60 58339\n", + " 2 0.14 0.95 0.25 6121\n", + "\n", + " accuracy 0.55 196184\n", + " macro avg 0.52 0.72 0.47 196184\n", + "weighted avg 0.77 0.55 0.57 196184\n", + "\n" + ] + } + ], + "source": [ + "# Classification Report Generation for all metrics display at once\n", + "\n", + "print(classification_report(y_pred=prediction_dt,y_true=true_labels))" + ] + }, + { + "cell_type": "code", + "execution_count": 55, + "metadata": {}, + "outputs": [], + "source": [ + "# Creating Pandas Dataframe for Features and their Importance of DT Base Model for Multiclass Classification\n", + "\n", + "pd.set_option('display.max_rows', None)\n", + "feat_imp_tuned_dt = pd.DataFrame(list(zip([i for i in us_train_cat.columns if i!='Severity'], dtModel.stages[-1].featureImportances)),\n", + " columns = ['column', 'weight']).sort_values('weight',ascending=False)" + ] + }, + { + "cell_type": "code", + "execution_count": 56, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Text(0.5, 1.0, 'Top 10 Features based on Importance from DT Multiclass Base Model')" + ] + }, + "execution_count": 56, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "# Plotting top 10 Features from Feature Importance of DT Base Model for Multiclass Classification\n", + "\n", + "plt.figure(figsize=(10,10))\n", + "sns.barplot(x=feat_imp_tuned_dt['column'][:10], y=feat_imp_tuned_dt['weight'][:10],data=feat_imp_tuned_dt)\n", + "plt.xticks(rotation=90)\n", + "plt.xlabel(\"Features\")\n", + "plt.ylabel(\"Weights\")\n", + "plt.title(\"Top 10 Features based on Importance from DT Multiclass Base Model\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Decision Tree Grid Search Multiclass Classification" + ] + }, + { + "cell_type": "code", + "execution_count": 71, + "metadata": {}, + "outputs": [], + "source": [ + "\n", + "# Initializing DT Grid Pipeline \n", + "\n", + "dt_new = DecisionTreeClassifier(labelCol=\"label\", featuresCol=\"features\",seed=42)\n", + "\n", + "# Creating pipeline for DT Grid Model \n", + "\n", + "dt_new_pipe = Pipeline(stages=[label_stringIdx, va, dt_new])\n", + "\n", + "# Creating Grid Search for Hyper Parameter Tuning for DT Model\n", + "\n", + "grid_dt = ParamGridBuilder().addGrid(dt_new.maxDepth, [10,15,30]).addGrid(dt_new.minInstancesPerNode, [500,1000,1500]).addGrid(dt_new.maxBins,[20,35,50]).build()\n", + "\n", + "# Cross Validator Pipeline with 5 fold cv to fit the training data\n", + "\n", + "cv1_dt = CrossValidator(estimator=dt_new_pipe,estimatorParamMaps=grid_dt, numFolds=5, evaluator=evaluator_dt,seed=42)" + ] + }, + { + "cell_type": "code", + "execution_count": 72, + "metadata": {}, + "outputs": [], + "source": [ + "# Fitting the training data using the Cross Validator Pipeline \n", + "\n", + "dtModel_t = cv1_dt.fit(us_train_cat)" + ] + }, + { + "cell_type": "code", + "execution_count": 73, + "metadata": {}, + "outputs": [], + "source": [ + "# Transform Test data using Cross Validation Pipeline Built earlier for prediction of Test data\n", + "\n", + "pred_dtt = dtModel_t.transform(us_test_cat)" + ] + }, + { + "cell_type": "code", + "execution_count": 74, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Accuracy is 0.6133068955674265\n" + ] + } + ], + "source": [ + "# Evaluation of Testing Data using Multiclass Evaluator \n", + "\n", + "print(\"Accuracy is\",evaluator_dt.evaluate(pred_dtt))" + ] + }, + { + "cell_type": "code", + "execution_count": 98, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{Param(parent='DecisionTreeClassifier_b6336355b38a', name='featuresCol', doc='features column name.'): 'features',\n", + " Param(parent='DecisionTreeClassifier_b6336355b38a', name='labelCol', doc='label column name.'): 'label',\n", + " Param(parent='DecisionTreeClassifier_b6336355b38a', name='predictionCol', doc='prediction column name.'): 'prediction',\n", + " Param(parent='DecisionTreeClassifier_b6336355b38a', name='probabilityCol', doc='Column name for predicted class conditional probabilities. Note: Not all models output well-calibrated probability estimates! These probabilities should be treated as confidences, not precise probabilities.'): 'probability',\n", + " Param(parent='DecisionTreeClassifier_b6336355b38a', name='rawPredictionCol', doc='raw prediction (a.k.a. confidence) column name.'): 'rawPrediction',\n", + " Param(parent='DecisionTreeClassifier_b6336355b38a', name='seed', doc='random seed.'): 42,\n", + " Param(parent='DecisionTreeClassifier_b6336355b38a', name='cacheNodeIds', doc='If false, the algorithm will pass trees to executors to match instances with nodes. If true, the algorithm will cache node IDs for each instance. Caching can speed up training of deeper trees. Users can set how often should the cache be checkpointed or disable it by setting checkpointInterval.'): False,\n", + " Param(parent='DecisionTreeClassifier_b6336355b38a', name='checkpointInterval', doc='set checkpoint interval (>= 1) or disable checkpoint (-1). E.g. 10 means that the cache will get checkpointed every 10 iterations. Note: this setting will be ignored if the checkpoint directory is not set in the SparkContext.'): 10,\n", + " Param(parent='DecisionTreeClassifier_b6336355b38a', name='impurity', doc='Criterion used for information gain calculation (case-insensitive). Supported options: entropy, gini'): 'gini',\n", + " Param(parent='DecisionTreeClassifier_b6336355b38a', name='leafCol', doc='Leaf indices column name. Predicted leaf index of each instance in each tree by preorder.'): '',\n", + " Param(parent='DecisionTreeClassifier_b6336355b38a', name='maxBins', doc='Max number of bins for discretizing continuous features. Must be >=2 and >= number of categories for any categorical feature.'): 35,\n", + " Param(parent='DecisionTreeClassifier_b6336355b38a', name='maxDepth', doc='Maximum depth of the tree. (>= 0) E.g., depth 0 means 1 leaf node; depth 1 means 1 internal node + 2 leaf nodes.'): 30,\n", + " Param(parent='DecisionTreeClassifier_b6336355b38a', name='maxMemoryInMB', doc='Maximum memory in MB allocated to histogram aggregation. If too small, then 1 node will be split per iteration, and its aggregates may exceed this size.'): 256,\n", + " Param(parent='DecisionTreeClassifier_b6336355b38a', name='minInfoGain', doc='Minimum information gain for a split to be considered at a tree node.'): 0.0,\n", + " Param(parent='DecisionTreeClassifier_b6336355b38a', name='minInstancesPerNode', doc='Minimum number of instances each child must have after split. If a split causes the left or right child to have fewer than minInstancesPerNode, the split will be discarded as invalid. Should be >= 1.'): 500,\n", + " Param(parent='DecisionTreeClassifier_b6336355b38a', name='minWeightFractionPerNode', doc='Minimum fraction of the weighted sample count that each child must have after split. If a split causes the fraction of the total weight in the left or right child to be less than minWeightFractionPerNode, the split will be discarded as invalid. Should be in interval [0.0, 0.5).'): 0.0}" + ] + }, + "execution_count": 98, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Decision Tree Hyper Parameter Values from Best Model\n", + "\n", + "dtModel_t.bestModel.stages[-1].extractParamMap()" + ] + }, + { + "cell_type": "code", + "execution_count": 78, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "SparseVector(46, {0: 0.0004, 1: 0.0001, 11: 0.0046, 14: 0.0, 16: 0.1281, 17: 0.0045, 18: 0.002, 19: 0.0092, 21: 0.0006, 22: 0.0002, 23: 0.001, 25: 0.0049, 27: 0.0056, 32: 0.0071, 34: 0.0834, 35: 0.5412, 36: 0.1411, 37: 0.0011, 38: 0.0093, 39: 0.0142, 40: 0.019, 41: 0.0001, 44: 0.0006, 45: 0.0218})" + ] + }, + "execution_count": 78, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Feature Importance Sparse Matrix\n", + "\n", + "dtModel_t.bestModel.stages[-1].featureImportances" + ] + }, + { + "cell_type": "code", + "execution_count": 79, + "metadata": {}, + "outputs": [], + "source": [ + "# Prediction output from the model to pandas\n", + "\n", + "prediction_dtt=pred_dtt.toPandas()[\"prediction\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 80, + "metadata": {}, + "outputs": [], + "source": [ + "# True Labels from test data for Target Variable\n", + "\n", + "true_labels=us_test_cat.toPandas()[\"Severity\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 81, + "metadata": {}, + "outputs": [], + "source": [ + "# Initializing Classification Report from sklearn\n", + "\n", + "from sklearn.metrics import classification_report" + ] + }, + { + "cell_type": "code", + "execution_count": 82, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " precision recall f1-score support\n", + "\n", + " 0 0.88 0.55 0.68 131724\n", + " 1 0.52 0.73 0.61 58339\n", + " 2 0.17 0.90 0.29 6121\n", + "\n", + " accuracy 0.61 196184\n", + " macro avg 0.52 0.73 0.52 196184\n", + "weighted avg 0.75 0.61 0.64 196184\n", + "\n" + ] + } + ], + "source": [ + "# Classification Report Generation for all metrics display at once\n", + "\n", + "print(classification_report(y_pred=prediction_dtt,y_true=true_labels))" + ] + }, + { + "cell_type": "code", + "execution_count": 83, + "metadata": {}, + "outputs": [], + "source": [ + "# Creating Pandas Dataframe for Features and their Importance of DT Grid Model for Multiclass Classification\n", + "\n", + "pd.set_option('display.max_rows', None)\n", + "feat_imp_tuned_dtt = pd.DataFrame(list(zip([i for i in us_train_cat.columns if i!='Severity'], dtModel_t.bestModel.stages[-1].featureImportances)),\n", + " columns = ['column', 'weight']).sort_values('weight',ascending=False)" + ] + }, + { + "cell_type": "code", + "execution_count": 84, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Text(0.5, 1.0, 'Top 10 Features based on Importance from DT Multiclass tuned')" + ] + }, + "execution_count": 84, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "# Plotting top 10 Features from Feature Importance of DT Grid Model for Multiclass Classification\n", + "\n", + "plt.figure(figsize=(10,10))\n", + "sns.barplot(x=feat_imp_tuned_dtt['column'][:10], y=feat_imp_tuned_dtt['weight'][:10],data=feat_imp_tuned_dtt)\n", + "plt.xticks(rotation=90)\n", + "plt.xlabel(\"Features\")\n", + "plt.ylabel(\"Weights\")\n", + "plt.title(\"Top 10 Features based on Importance from DT Multiclass tuned\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.4" + }, + "latex_envs": { + "LaTeX_envs_menu_present": true, + "autoclose": false, + "autocomplete": true, + "bibliofile": "biblio.bib", + "cite_by": "apalike", + "current_citInitial": 1, + "eqLabelWithNumbers": true, + "eqNumInitial": 1, + "hotkeys": { + "equation": "Ctrl-E", + "itemize": "Ctrl-I" + }, + "labels_anchors": false, + "latex_user_defs": false, + "report_style_numbering": false, + "user_envs_cfg": false + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/RF_DT_GBT_Binary.ipynb b/RF_DT_GBT_Binary.ipynb new file mode 100644 index 0000000..a6110d6 --- /dev/null +++ b/RF_DT_GBT_Binary.ipynb @@ -0,0 +1,1596 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "# import the required libraries\n", + "from pyspark.sql import SparkSession\n", + "from pyspark.sql import Row\n", + "import numpy as np\n", + "import pandas as pd\n", + "from pyspark.sql.types import *\n", + "from pyspark.sql.functions import *\n", + "import matplotlib.pyplot as plt\n", + "from pyspark.sql import functions as fn\n", + "from pyspark.ml import feature, regression, evaluation, Pipeline\n", + "import seaborn as sns\n", + "from pyspark.ml.feature import VectorAssembler\n", + "from pyspark.ml import Pipeline\n", + "from pyspark.ml.regression import LinearRegression\n", + "from pyspark.ml.classification import GBTClassifier\n", + "from pyspark.ml.evaluation import BinaryClassificationEvaluator\n", + "from pyspark.ml.stat import Correlation\n", + "from pyspark.ml.feature import VectorAssembler\n", + "from pyspark.ml.classification import DecisionTreeClassifier\n", + "from pyspark.ml import Pipeline\n", + "from sklearn.metrics import classification_report\n", + "from pyspark.ml.feature import OneHotEncoder, OneHotEncoderModel, StringIndexer\n", + "from pyspark.ml.classification import LogisticRegression,RandomForestClassifier\n", + "from pyspark.ml.evaluation import BinaryClassificationEvaluator\n", + "from pyspark.ml.tuning import CrossValidator, ParamGridBuilder\n", + "spark = SparkSession.builder.getOrCreate()\n", + "sc = spark.sparkContext\n" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "# Do not delete or change this cell\n", + "\n", + "import os\n", + "\n", + "# Define a function to determine if we are running on data bricks\n", + "# Return true if running in the data bricks environment, false otherwise\n", + "def is_databricks():\n", + " # get the databricks runtime version\n", + " db_env = os.getenv(\"DATABRICKS_RUNTIME_VERSION\")\n", + " \n", + " # if running on data bricks\n", + " if db_env != None:\n", + " return True\n", + " else:\n", + " return False\n", + "\n", + "# Define a function to read the data file. The full path data file name is constructed\n", + "# by checking runtime environment variables to determine if the runtime environment is \n", + "# databricks, or a student's personal computer. The full path file name is then\n", + "# constructed based on the runtime env.\n", + "# \n", + "# Params\n", + "# data_file_name: The base name of the data file to load\n", + "# \n", + "# Returns the full path file name based on the runtime env\n", + "#\n", + "def get_training_filename(data_file_name): \n", + " # if running on data bricks\n", + " if is_databricks():\n", + " # build the full path file name assuming data brick env\n", + " full_path_name = \"/FileStore/tables/%s\" % data_file_name\n", + " # else the data is assumed to be in the same dir as this notebook\n", + " else:\n", + " # Assume the student is running on their own computer and load the data\n", + " # file from the same dir as this notebook\n", + " full_path_name = data_file_name\n", + " \n", + " # return the full path file name to the caller\n", + " return full_path_name" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "# reads the train data\n", + "us_train_cat = spark.read.csv(get_training_filename('USAccident_train_categorical.csv'), header = True, inferSchema = True)" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "# reads the test data\n", + "us_test_cat = spark.read.csv(get_training_filename('USAccident_validation_categorical.csv'), header = True, inferSchema = True)" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "# creates a vector assembler\n", + "va = VectorAssembler().setInputCols([i for i in us_train_cat.columns if i!='Severity']).setOutputCol('features')" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "# creates a string indexer\n", + "label_stringIdx = StringIndexer(inputCol=\"Severity\", outputCol=\"label\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Below we convert the multiclass data into binary data" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "us_train_cat=us_train_cat.withColumn(\"Severity\",when(((us_train_cat[\"Severity\"]==4) | (us_train_cat[\"Severity\"]==3)),1).otherwise(0))" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "us_test_cat=us_test_cat.withColumn(\"Severity\",when(((us_test_cat[\"Severity\"]==4) | (us_test_cat[\"Severity\"]==3)),1).otherwise(0))" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "# Creating the evaluator for our binary classification\n", + "evaluator_rfb = BinaryClassificationEvaluator(labelCol='label',metricName='areaUnderROC')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# RF Base Model" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "# Create an initial RandomForest model.\n", + "rf = RandomForestClassifier(labelCol=\"label\", featuresCol=\"features\",seed=42)\n", + "\n", + "# Train model with Training Data\n", + "rfModel = Pipeline(stages=[label_stringIdx,va, rf])" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "rf_fit = rfModel.fit(us_train_cat)" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "AUC ROC score: 0.7634901876492165\n" + ] + } + ], + "source": [ + "print(\"AUC ROC score:\",evaluator_rfb.evaluate(rf_fit.transform(us_test_cat)))" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Accuracy: 0.6892473173146102\n" + ] + } + ], + "source": [ + "# Prints the accuracy of our binary classification\n", + "true_labels=us_test_cat.toPandas()[\"Severity\"]\n", + "evaluator_rfb.evaluate(rf_fit.transform(us_test_cat))\n", + "binary_prediction=rf_fit.transform(us_test_cat).select(\"prediction\").collect()\n", + "binary_true_labels=us_test_cat.select(\"Severity\").collect()\n", + "print(\"Accuracy:\",np.sum(list([int(binary_true_labels[i][0]==binary_prediction[i][0]) for i in range(len(true_labels))]))/len(true_labels))" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "5" + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "rf_fit.stages[-1].getMaxDepth()" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "20" + ] + }, + "execution_count": 26, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "rf_fit.stages[-1].getNumTrees" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'gini'" + ] + }, + "execution_count": 27, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "rf_fit.stages[-1].getImpurity()" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [], + "source": [ + "# tranforming the test data for predictions\n", + "prediction_rfb=(rf_fit.transform(us_test_cat)).toPandas()[\"prediction\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [], + "source": [ + "# storing the true labels for evaluation purpose below\n", + "true_labels=us_test_cat.toPandas()[\"Severity\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " precision recall f1-score support\n", + "\n", + " 0 0.69 0.98 0.81 131571\n", + " 1 0.73 0.09 0.16 64408\n", + "\n", + " micro avg 0.69 0.69 0.69 195979\n", + " macro avg 0.71 0.54 0.48 195979\n", + "weighted avg 0.70 0.69 0.59 195979\n", + "\n" + ] + } + ], + "source": [ + "print(classification_report(y_pred=prediction_rfb,y_true=true_labels))" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [], + "source": [ + "# create a dataframe to print the feature importance\n", + "pd.set_option('display.max_rows', None)\n", + "feat_imp_tuned_rf = pd.DataFrame(list(zip([i for i in us_train_cat.columns if i!='Severity'], rf_fit.stages[-1].featureImportances)),\n", + " columns = ['column', 'weight']).sort_values('weight',ascending=False)" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.figure(figsize=(10,10))\n", + "sns.barplot(x=feat_imp_tuned_rf['column'][:10], y=feat_imp_tuned_rf['weight'][:10],data=feat_imp_tuned_rf)\n", + "plt.xticks(rotation=90)\n", + "plt.xlabel(\"Features\")\n", + "plt.ylabel(\"Weights\")\n", + "plt.title(\"Top 10 Features based on Importance from Random Forest\");" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# RF Grid Search " + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [], + "source": [ + "# Create an initial RandomForest model.\n", + "rf_new = RandomForestClassifier(labelCol=\"label\", featuresCol=\"features\",seed=42)\n", + "\n", + "# Train model with Training Data\n", + "rfModel_new = Pipeline(stages=[label_stringIdx,va, rf_new])\n", + "\n", + "#paramGrid_rft = ParamGridBuilder().addGrid(rf_new.numTrees, [10, 30, 60]).addGrid(rf_new.maxDepth, [3, 5, 10]).addGrid(rf_new.impurity,[\"entropy\", \"gini\"]).build()\n", + "paramGrid_rft = ParamGridBuilder().addGrid(rf_new.numTrees, [60]).addGrid(rf_new.maxDepth, [10]).addGrid(rf_new.impurity,[\"gini\"]).build()" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [], + "source": [ + "# creating a cross validator for tuning our model\n", + "cv_rf = CrossValidator(estimator=rfModel_new, estimatorParamMaps=paramGrid_rft, evaluator=evaluator_rfb, numFolds=5).fit(us_train_cat)" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [], + "source": [ + "# store the predictions from our test set\n", + "pred_rft = cv_rf.transform(us_test_cat)" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "ROC AUC sccore: 0.7880870240899686\n" + ] + } + ], + "source": [ + "print(\"ROC AUC sccore:\",evaluator_rfb.evaluate(pred_rft))" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Accuracy: 0.7257971517356452\n" + ] + } + ], + "source": [ + "# Printing the accuracy of our binary predictions\n", + "true_labels=us_test_cat.toPandas()[\"Severity\"]\n", + "evaluator_rfb.evaluate(pred_rft)\n", + "binary_prediction=pred_rft.select(\"prediction\").collect()\n", + "binary_true_labels=us_test_cat.select(\"Severity\").collect()\n", + "print(\"Accuracy:\",np.sum(list([int(binary_true_labels[i][0]==binary_prediction[i][0]) for i in range(len(true_labels))]))/len(true_labels))" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "10" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "cv_rf.bestModel.stages[-1].getMaxDepth()" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "60" + ] + }, + "execution_count": 22, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "cv_rf.bestModel.stages[-1].getNumTrees" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'gini'" + ] + }, + "execution_count": 24, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "cv_rf.bestModel.stages[-1].getImpurity()" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{Param(parent='RandomForestClassifier_deb569e64636', name='cacheNodeIds', doc='If false, the algorithm will pass trees to executors to match instances with nodes. If true, the algorithm will cache node IDs for each instance. Caching can speed up training of deeper trees.'): False,\n", + " Param(parent='RandomForestClassifier_deb569e64636', name='checkpointInterval', doc='set checkpoint interval (>= 1) or disable checkpoint (-1). E.g. 10 means that the cache will get checkpointed every 10 iterations. Note: this setting will be ignored if the checkpoint directory is not set in the SparkContext'): 10,\n", + " Param(parent='RandomForestClassifier_deb569e64636', name='featureSubsetStrategy', doc='The number of features to consider for splits at each tree node. Supported options: auto, all, onethird, sqrt, log2, (0.0-1.0], [1-n].'): 'auto',\n", + " Param(parent='RandomForestClassifier_deb569e64636', name='featuresCol', doc='features column name'): 'features',\n", + " Param(parent='RandomForestClassifier_deb569e64636', name='impurity', doc='Criterion used for information gain calculation (case-insensitive). Supported options: entropy, gini'): 'gini',\n", + " Param(parent='RandomForestClassifier_deb569e64636', name='labelCol', doc='label column name'): 'label',\n", + " Param(parent='RandomForestClassifier_deb569e64636', name='maxBins', doc='Max number of bins for discretizing continuous features. Must be >=2 and >= number of categories for any categorical feature.'): 32,\n", + " Param(parent='RandomForestClassifier_deb569e64636', name='maxDepth', doc='Maximum depth of the tree. (>= 0) E.g., depth 0 means 1 leaf node; depth 1 means 1 internal node + 2 leaf nodes.'): 10,\n", + " Param(parent='RandomForestClassifier_deb569e64636', name='maxMemoryInMB', doc='Maximum memory in MB allocated to histogram aggregation.'): 256,\n", + " Param(parent='RandomForestClassifier_deb569e64636', name='minInfoGain', doc='Minimum information gain for a split to be considered at a tree node.'): 0.0,\n", + " Param(parent='RandomForestClassifier_deb569e64636', name='minInstancesPerNode', doc='Minimum number of instances each child must have after split. If a split causes the left or right child to have fewer than minInstancesPerNode, the split will be discarded as invalid. Should be >= 1.'): 1,\n", + " Param(parent='RandomForestClassifier_deb569e64636', name='numTrees', doc='Number of trees to train (>= 1)'): 60,\n", + " Param(parent='RandomForestClassifier_deb569e64636', name='predictionCol', doc='prediction column name'): 'prediction',\n", + " Param(parent='RandomForestClassifier_deb569e64636', name='probabilityCol', doc='Column name for predicted class conditional probabilities. Note: Not all models output well-calibrated probability estimates! These probabilities should be treated as confidences, not precise probabilities'): 'probability',\n", + " Param(parent='RandomForestClassifier_deb569e64636', name='rawPredictionCol', doc='raw prediction (a.k.a. confidence) column name'): 'rawPrediction',\n", + " Param(parent='RandomForestClassifier_deb569e64636', name='seed', doc='random seed'): 42,\n", + " Param(parent='RandomForestClassifier_deb569e64636', name='subsamplingRate', doc='Fraction of the training data used for learning each decision tree, in range (0, 1].'): 1.0}" + ] + }, + "execution_count": 24, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "cv_rf.bestModel.stages[-1].extractParamMap()" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [], + "source": [ + "# storing the predictions of our test set\n", + "prediction_rft=pred_rft.toPandas()[\"prediction\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [], + "source": [ + "# storing the true labels of our test set\n", + "true_labels=us_test_cat.toPandas()[\"Severity\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " precision recall f1-score support\n", + "\n", + " 0 0.74 0.91 0.82 131571\n", + " 1 0.66 0.34 0.45 64408\n", + "\n", + " micro avg 0.73 0.73 0.73 195979\n", + " macro avg 0.70 0.63 0.63 195979\n", + "weighted avg 0.71 0.73 0.70 195979\n", + "\n" + ] + } + ], + "source": [ + "print(classification_report(y_pred=prediction_rft,y_true=true_labels))" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": {}, + "outputs": [], + "source": [ + "# Creates a Dataframe of feature importances from our model\n", + "pd.set_option('display.max_rows', None)\n", + "feat_imp_tuned_rfg = pd.DataFrame(list(zip([i for i in us_train_cat.columns if i!='Severity'], cv_rf.bestModel.stages[-1].featureImportances)),\n", + " columns = ['column', 'weight']).sort_values('weight',ascending=False)" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.figure(figsize=(10,10))\n", + "sns.barplot(x=feat_imp_tuned_rfg['column'][:10], y=feat_imp_tuned_rfg['weight'][:10],data=feat_imp_tuned_rfg)\n", + "plt.xticks(rotation=90)\n", + "plt.xlabel(\"Features\")\n", + "plt.ylabel(\"Weights\")\n", + "plt.title(\"Top 10 Features based on Importance from Random Forest Grid\");" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# GBT Base Model" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": {}, + "outputs": [], + "source": [ + "# Declares the gbt classifier model\n", + "gbt = GBTClassifier(seed=42)" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": {}, + "outputs": [], + "source": [ + "# Creates a pipeline for our model\n", + "gbt_pipe = Pipeline(stages=[label_stringIdx, va, gbt])" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": {}, + "outputs": [], + "source": [ + "# Fits the pipeline on our train data\n", + "gbtModel = gbt_pipe.fit(us_train_cat)" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "ROC AUC Score: 0.787408211157604\n" + ] + } + ], + "source": [ + "print(\"ROC AUC Score:\",evaluator_rfb.evaluate(gbtModel.transform(us_test_cat)))" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Accuracy: 0.7289046275366238\n" + ] + } + ], + "source": [ + "# Calculates the accuracy of our model\n", + "true_labels=us_test_cat.toPandas()[\"Severity\"]\n", + "evaluator_rfb.evaluate(gbtModel.transform(us_test_cat))\n", + "binary_prediction=gbtModel.transform(us_test_cat).select(\"prediction\").collect()\n", + "binary_true_labels=us_test_cat.select(\"Severity\").collect()\n", + "print(\"Accuracy:\",np.sum(list([int(binary_true_labels[i][0]==binary_prediction[i][0]) for i in range(len(true_labels))]))/len(true_labels))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "gbtModel.stages[-1].getMaxDepth()" + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.1" + ] + }, + "execution_count": 40, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "gbtModel.stages[-1].getStepSize()" + ] + }, + { + "cell_type": "code", + "execution_count": 41, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "20" + ] + }, + "execution_count": 41, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "gbtModel.stages[-1].getMaxIter()" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "metadata": {}, + "outputs": [], + "source": [ + "# Predict on test data\n", + "prediction_gbtn=gbtModel.transform(us_test_cat).toPandas()[\"prediction\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "metadata": {}, + "outputs": [], + "source": [ + "# Stores the true labels from our test data\n", + "true_labels=us_test_cat.toPandas()[\"Severity\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " precision recall f1-score support\n", + "\n", + " 0 0.76 0.88 0.81 131571\n", + " 1 0.63 0.43 0.51 64408\n", + "\n", + " micro avg 0.73 0.73 0.73 195979\n", + " macro avg 0.69 0.65 0.66 195979\n", + "weighted avg 0.72 0.73 0.71 195979\n", + "\n" + ] + } + ], + "source": [ + "print(classification_report(y_pred=prediction_gbtn,y_true=true_labels))" + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "metadata": {}, + "outputs": [], + "source": [ + "# Create a dataframe for our feature importances\n", + "pd.set_option('display.max_rows', None)\n", + "feat_imp_tuned_gtbb = pd.DataFrame(list(zip([i for i in us_train_cat.columns if i!='Severity'], gbtModel.stages[-1].featureImportances)),\n", + " columns = ['column', 'weight']).sort_values('weight',ascending=False)" + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.figure(figsize=(10,10))\n", + "sns.barplot(x=feat_imp_tuned_gtbb['column'][:10], y=feat_imp_tuned_gtbb['weight'][:10],data=feat_imp_tuned_gtbb)\n", + "plt.xticks(rotation=90)\n", + "plt.xlabel(\"Features\")\n", + "plt.ylabel(\"Weights\")\n", + "plt.title(\"Top 10 Features based on Importance from GBT Base Model\");" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# GBT Binary Tuned Best Model" + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "metadata": {}, + "outputs": [], + "source": [ + "# Create a GBT Classifier\n", + "gbt_t_new = GBTClassifier(maxIter=55,seed=42)\n", + "gbt_pipe_t_new = Pipeline(stages=[label_stringIdx, va, gbt_t_new])\n", + "\n", + "# Create a evaluator for our model\n", + "evaluator = BinaryClassificationEvaluator(labelCol='label',metricName='areaUnderROC')\n", + "\n", + "# Create grid for tuning the model\n", + "#grid_gbt_t_new = ParamGridBuilder().addGrid(gbt_t_new.stepSize, [0.1,0.3,0.01]).addGrid(gbt_t_new.maxDepth, [3, 5, 8]).build()\n", + "grid_gbt_t_new = ParamGridBuilder().addGrid(gbt_t_new.stepSize, [0.3]).addGrid(gbt_t_new.maxDepth, [8]).build()\n", + "cv1_gbt_t_new = CrossValidator(estimator=gbt_pipe_t_new,estimatorParamMaps=grid_gbt_t_new, numFolds=5, evaluator=evaluator,seed=42)" + ] + }, + { + "cell_type": "code", + "execution_count": 41, + "metadata": {}, + "outputs": [], + "source": [ + "# fit the cross validation model\n", + "cvModel_gbt_t_new = cv1_gbt_t_new.fit(us_train_cat)" + ] + }, + { + "cell_type": "code", + "execution_count": 42, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "ROC AUC Score: 0.8032377340351009\n" + ] + } + ], + "source": [ + "print(\"ROC AUC Score:\",evaluator_rfb.evaluate(cvModel_gbt_t_new.transform(us_test_cat)))" + ] + }, + { + "cell_type": "code", + "execution_count": 43, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Accuracy: 0.7407885538756703\n" + ] + } + ], + "source": [ + "# calculates the accuracy of the binary model\n", + "true_labels=us_test_cat.toPandas()[\"Severity\"]\n", + "evaluator_rfb.evaluate(cvModel_gbt_t_new.transform(us_test_cat))\n", + "binary_prediction=cvModel_gbt_t_new.transform(us_test_cat).select(\"prediction\").collect()\n", + "binary_true_labels=us_test_cat.select(\"Severity\").collect()\n", + "print(\"Accuracy:\",np.sum(list([int(binary_true_labels[i][0]==binary_prediction[i][0]) for i in range(len(true_labels))]))/len(true_labels))" + ] + }, + { + "cell_type": "code", + "execution_count": 68, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "8" + ] + }, + "execution_count": 68, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "cvModel_gbt_t_new.bestModel.stages[-1].getMaxDepth()" + ] + }, + { + "cell_type": "code", + "execution_count": 69, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.3" + ] + }, + "execution_count": 69, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "cvModel_gbt_t_new.bestModel.stages[-1].getStepSize()" + ] + }, + { + "cell_type": "code", + "execution_count": 45, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{Param(parent='GBTClassifier_34f6d1b395a8', name='cacheNodeIds', doc='If false, the algorithm will pass trees to executors to match instances with nodes. If true, the algorithm will cache node IDs for each instance. Caching can speed up training of deeper trees.'): False,\n", + " Param(parent='GBTClassifier_34f6d1b395a8', name='checkpointInterval', doc='set checkpoint interval (>= 1) or disable checkpoint (-1). E.g. 10 means that the cache will get checkpointed every 10 iterations. Note: this setting will be ignored if the checkpoint directory is not set in the SparkContext'): 10,\n", + " Param(parent='GBTClassifier_34f6d1b395a8', name='featureSubsetStrategy', doc='The number of features to consider for splits at each tree node. Supported options: auto, all, onethird, sqrt, log2, (0.0-1.0], [1-n].'): 'all',\n", + " Param(parent='GBTClassifier_34f6d1b395a8', name='featuresCol', doc='features column name'): 'features',\n", + " Param(parent='GBTClassifier_34f6d1b395a8', name='labelCol', doc='label column name'): 'label',\n", + " Param(parent='GBTClassifier_34f6d1b395a8', name='lossType', doc='Loss function which GBT tries to minimize (case-insensitive). Supported options: logistic'): 'logistic',\n", + " Param(parent='GBTClassifier_34f6d1b395a8', name='maxBins', doc='Max number of bins for discretizing continuous features. Must be >=2 and >= number of categories for any categorical feature.'): 32,\n", + " Param(parent='GBTClassifier_34f6d1b395a8', name='maxDepth', doc='Maximum depth of the tree. (>= 0) E.g., depth 0 means 1 leaf node; depth 1 means 1 internal node + 2 leaf nodes.'): 8,\n", + " Param(parent='GBTClassifier_34f6d1b395a8', name='maxIter', doc='maximum number of iterations (>= 0)'): 55,\n", + " Param(parent='GBTClassifier_34f6d1b395a8', name='maxMemoryInMB', doc='Maximum memory in MB allocated to histogram aggregation.'): 256,\n", + " Param(parent='GBTClassifier_34f6d1b395a8', name='minInfoGain', doc='Minimum information gain for a split to be considered at a tree node.'): 0.0,\n", + " Param(parent='GBTClassifier_34f6d1b395a8', name='minInstancesPerNode', doc='Minimum number of instances each child must have after split. If a split causes the left or right child to have fewer than minInstancesPerNode, the split will be discarded as invalid. Should be >= 1.'): 1,\n", + " Param(parent='GBTClassifier_34f6d1b395a8', name='predictionCol', doc='prediction column name'): 'prediction',\n", + " Param(parent='GBTClassifier_34f6d1b395a8', name='seed', doc='random seed'): 42,\n", + " Param(parent='GBTClassifier_34f6d1b395a8', name='stepSize', doc='Step size (a.k.a. learning rate) in interval (0, 1] for shrinking the contribution of each estimator.'): 0.3,\n", + " Param(parent='GBTClassifier_34f6d1b395a8', name='subsamplingRate', doc='Fraction of the training data used for learning each decision tree, in range (0, 1].'): 1.0}" + ] + }, + "execution_count": 45, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "cvModel_gbt_t_new.bestModel.stages[-1].extractParamMap()" + ] + }, + { + "cell_type": "code", + "execution_count": 46, + "metadata": {}, + "outputs": [], + "source": [ + "# Stores the prediction from ourr test set\n", + "prediction_gbt_t_new=cvModel_gbt_t_new.transform(us_test_cat).toPandas()[\"prediction\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 47, + "metadata": {}, + "outputs": [], + "source": [ + "# Stores the true labels from our test set\n", + "true_labels=us_test_cat.toPandas()[\"Severity\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 48, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " precision recall f1-score support\n", + "\n", + " 0 0.78 0.86 0.82 131571\n", + " 1 0.63 0.50 0.56 64408\n", + "\n", + " micro avg 0.74 0.74 0.74 195979\n", + " macro avg 0.71 0.68 0.69 195979\n", + "weighted avg 0.73 0.74 0.73 195979\n", + "\n" + ] + } + ], + "source": [ + "print(classification_report(y_pred=prediction_gbt_t_new,y_true=true_labels))" + ] + }, + { + "cell_type": "code", + "execution_count": 49, + "metadata": {}, + "outputs": [], + "source": [ + "# Create a dataframe of feature importances\n", + "pd.set_option('display.max_rows', None)\n", + "feat_imp_tuned_gbt_t_new = pd.DataFrame(list(zip([i for i in us_train_cat.columns if i!='Severity'], cvModel_gbt_t_new.bestModel.stages[-1].featureImportances)),\n", + " columns = ['column', 'weight']).sort_values('weight',ascending=False)" + ] + }, + { + "cell_type": "code", + "execution_count": 50, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.figure(figsize=(10,10))\n", + "sns.barplot(x=feat_imp_tuned_gbt_t_new['column'][:10], y=feat_imp_tuned_gbt_t_new['weight'][:10],data=feat_imp_tuned_gbt_t_new)\n", + "plt.xticks(rotation=90)\n", + "plt.xlabel(\"Features\")\n", + "plt.ylabel(\"Weights\")\n", + "plt.title(\"Top 10 Features based on Importance from GBT Best tuned\");" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Decision Trees Binary Classification Base Model" + ] + }, + { + "cell_type": "code", + "execution_count": 51, + "metadata": {}, + "outputs": [], + "source": [ + "# Create initial Decision Tree Model\n", + "dt = DecisionTreeClassifier(labelCol=\"label\", featuresCol=\"features\",seed=42)\n", + "\n", + "# Creates a pipeline\n", + "dt_pipe = Pipeline(stages=[label_stringIdx, va, dt])\n", + "\n", + "# Train model with Training Data\n", + "dtModel = dt_pipe.fit(us_train_cat)" + ] + }, + { + "cell_type": "code", + "execution_count": 52, + "metadata": {}, + "outputs": [], + "source": [ + "# Makes prediction from our test set\n", + "pred_dt = dtModel.transform(us_test_cat)" + ] + }, + { + "cell_type": "code", + "execution_count": 53, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "ROC AUC: 0.6639903304724255\n" + ] + } + ], + "source": [ + "# prints the ROC AUC score\n", + "print(\"ROC AUC:\",evaluator.evaluate(pred_dt))" + ] + }, + { + "cell_type": "code", + "execution_count": 203, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "5" + ] + }, + "execution_count": 203, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "dtModel.stages[-1].getMaxDepth()" + ] + }, + { + "cell_type": "code", + "execution_count": 204, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "1" + ] + }, + "execution_count": 204, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "dtModel.stages[-1].getMinInstancesPerNode()" + ] + }, + { + "cell_type": "code", + "execution_count": 205, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "32" + ] + }, + "execution_count": 205, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "dtModel.stages[-1].getMaxBins()" + ] + }, + { + "cell_type": "code", + "execution_count": 54, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Accuracy: 0.7156021818664244\n" + ] + } + ], + "source": [ + "# calculates the accuracy of our model\n", + "evaluator.evaluate(pred_dt)\n", + "\n", + "binary_prediction=pred_dt.select(\"prediction\").collect()\n", + "\n", + "binary_true_labels=us_test_cat.select(\"Severity\").collect()\n", + "\n", + "print(\"Accuracy:\",np.sum(list([int(binary_true_labels[i][0]==binary_prediction[i][0]) for i in range(len(true_labels))]))/len(true_labels))" + ] + }, + { + "cell_type": "code", + "execution_count": 55, + "metadata": {}, + "outputs": [], + "source": [ + "prediction_dtb=pred_dt.toPandas()[\"prediction\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 56, + "metadata": {}, + "outputs": [], + "source": [ + "true_labels=us_test_cat.toPandas()[\"Severity\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 57, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " precision recall f1-score support\n", + "\n", + " 0 0.74 0.89 0.81 131571\n", + " 1 0.61 0.37 0.46 64408\n", + "\n", + " micro avg 0.72 0.72 0.72 195979\n", + " macro avg 0.68 0.63 0.63 195979\n", + "weighted avg 0.70 0.72 0.69 195979\n", + "\n" + ] + } + ], + "source": [ + "print(classification_report(y_pred=prediction_dtb,y_true=true_labels))" + ] + }, + { + "cell_type": "code", + "execution_count": 58, + "metadata": {}, + "outputs": [], + "source": [ + "pd.set_option('display.max_rows', None)\n", + "feat_imp_tuned_dtb= pd.DataFrame(list(zip([i for i in us_train_cat.columns if i!='Severity'], dtModel.stages[-1].featureImportances)),\n", + " columns = ['column', 'weight']).sort_values('weight',ascending=False)" + ] + }, + { + "cell_type": "code", + "execution_count": 59, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.figure(figsize=(10,10))\n", + "sns.barplot(x=feat_imp_tuned_dtb['column'][:10], y=feat_imp_tuned_dtb['weight'][:10],data=feat_imp_tuned_dtb)\n", + "plt.xticks(rotation=90)\n", + "plt.xlabel(\"Features\")\n", + "plt.ylabel(\"Weights\")\n", + "plt.title(\"Top 10 Features based on Importance from DT Binary Base Model\");" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Decision Tree Binary Classification Grid Search" + ] + }, + { + "cell_type": "code", + "execution_count": 60, + "metadata": {}, + "outputs": [], + "source": [ + "# declares a decision tree classifier\n", + "dt_new = DecisionTreeClassifier(labelCol=\"label\", featuresCol=\"features\")\n", + "\n", + "dt_new_pipe = Pipeline(stages=[label_stringIdx, va, dt_new])\n", + "\n", + "evaluator = BinaryClassificationEvaluator(labelCol='label',metricName='areaUnderROC')\n", + "\n", + "#grid_dt = ParamGridBuilder().addGrid(dt_new.maxDepth, [10,15,30]).addGrid(dt_new.minInstancesPerNode, [500,1000,1500]).addGrid(dt_new.maxBins,[20,35,50]).build()\n", + "grid_dt = ParamGridBuilder().addGrid(dt_new.maxDepth, [10]).addGrid(dt_new.minInstancesPerNode, [500]).addGrid(dt_new.maxBins,[50]).build()\n", + "\n", + "cv1_dt = CrossValidator(estimator=dt_new_pipe,estimatorParamMaps=grid_dt, numFolds=5, evaluator=evaluator)" + ] + }, + { + "cell_type": "code", + "execution_count": 61, + "metadata": {}, + "outputs": [], + "source": [ + "dtModel_t = cv1_dt.fit(us_train_cat)" + ] + }, + { + "cell_type": "code", + "execution_count": 62, + "metadata": {}, + "outputs": [], + "source": [ + "pred_dtt = dtModel_t.transform(us_test_cat)" + ] + }, + { + "cell_type": "code", + "execution_count": 63, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "AUC ROC: 0.5687880524415173\n" + ] + } + ], + "source": [ + "print(\"AUC ROC:\",evaluator.evaluate(pred_dtt))" + ] + }, + { + "cell_type": "code", + "execution_count": 64, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Accuracy: 0.7307313538695472\n" + ] + } + ], + "source": [ + "# calculates the accuracy \n", + "evaluator.evaluate(pred_dtt)\n", + "\n", + "binary_prediction=pred_dtt.select(\"prediction\").collect()\n", + "\n", + "binary_true_labels=us_test_cat.select(\"Severity\").collect()\n", + "\n", + "print(\"Accuracy:\",np.sum(list([int(binary_true_labels[i][0]==binary_prediction[i][0]) for i in range(len(true_labels))]))/len(true_labels))" + ] + }, + { + "cell_type": "code", + "execution_count": 65, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{Param(parent='DecisionTreeClassifier_6cf0199ad377', name='cacheNodeIds', doc='If false, the algorithm will pass trees to executors to match instances with nodes. If true, the algorithm will cache node IDs for each instance. Caching can speed up training of deeper trees.'): False,\n", + " Param(parent='DecisionTreeClassifier_6cf0199ad377', name='checkpointInterval', doc='set checkpoint interval (>= 1) or disable checkpoint (-1). E.g. 10 means that the cache will get checkpointed every 10 iterations. Note: this setting will be ignored if the checkpoint directory is not set in the SparkContext'): 10,\n", + " Param(parent='DecisionTreeClassifier_6cf0199ad377', name='featuresCol', doc='features column name'): 'features',\n", + " Param(parent='DecisionTreeClassifier_6cf0199ad377', name='impurity', doc='Criterion used for information gain calculation (case-insensitive). Supported options: entropy, gini'): 'gini',\n", + " Param(parent='DecisionTreeClassifier_6cf0199ad377', name='labelCol', doc='label column name'): 'label',\n", + " Param(parent='DecisionTreeClassifier_6cf0199ad377', name='maxBins', doc='Max number of bins for discretizing continuous features. Must be >=2 and >= number of categories for any categorical feature.'): 50,\n", + " Param(parent='DecisionTreeClassifier_6cf0199ad377', name='maxDepth', doc='Maximum depth of the tree. (>= 0) E.g., depth 0 means 1 leaf node; depth 1 means 1 internal node + 2 leaf nodes.'): 10,\n", + " Param(parent='DecisionTreeClassifier_6cf0199ad377', name='maxMemoryInMB', doc='Maximum memory in MB allocated to histogram aggregation.'): 256,\n", + " Param(parent='DecisionTreeClassifier_6cf0199ad377', name='minInfoGain', doc='Minimum information gain for a split to be considered at a tree node.'): 0.0,\n", + " Param(parent='DecisionTreeClassifier_6cf0199ad377', name='minInstancesPerNode', doc='Minimum number of instances each child must have after split. If a split causes the left or right child to have fewer than minInstancesPerNode, the split will be discarded as invalid. Should be >= 1.'): 500,\n", + " Param(parent='DecisionTreeClassifier_6cf0199ad377', name='predictionCol', doc='prediction column name'): 'prediction',\n", + " Param(parent='DecisionTreeClassifier_6cf0199ad377', name='probabilityCol', doc='Column name for predicted class conditional probabilities. Note: Not all models output well-calibrated probability estimates! These probabilities should be treated as confidences, not precise probabilities'): 'probability',\n", + " Param(parent='DecisionTreeClassifier_6cf0199ad377', name='rawPredictionCol', doc='raw prediction (a.k.a. confidence) column name'): 'rawPrediction',\n", + " Param(parent='DecisionTreeClassifier_6cf0199ad377', name='seed', doc='random seed'): -3198175077911245588}" + ] + }, + "execution_count": 65, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "dtModel_t.bestModel.stages[-1].extractParamMap()" + ] + }, + { + "cell_type": "code", + "execution_count": 179, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "10" + ] + }, + "execution_count": 179, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "dtModel_t.bestModel.stages[-1].getMaxDepth()" + ] + }, + { + "cell_type": "code", + "execution_count": 180, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "500" + ] + }, + "execution_count": 180, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "dtModel_t.bestModel.stages[-1].getMinInstancesPerNode()" + ] + }, + { + "cell_type": "code", + "execution_count": 181, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "50" + ] + }, + "execution_count": 181, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "dtModel_t.bestModel.stages[-1].getMaxBins()" + ] + }, + { + "cell_type": "code", + "execution_count": 66, + "metadata": {}, + "outputs": [], + "source": [ + "prediction_dtbt=pred_dtt.toPandas()[\"prediction\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 67, + "metadata": {}, + "outputs": [], + "source": [ + "true_labels=us_test_cat.toPandas()[\"Severity\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 68, + "metadata": {}, + "outputs": [], + "source": [ + "from sklearn.metrics import classification_report" + ] + }, + { + "cell_type": "code", + "execution_count": 69, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " precision recall f1-score support\n", + "\n", + " 0 0.77 0.85 0.81 131571\n", + " 1 0.61 0.49 0.54 64408\n", + "\n", + " micro avg 0.73 0.73 0.73 195979\n", + " macro avg 0.69 0.67 0.68 195979\n", + "weighted avg 0.72 0.73 0.72 195979\n", + "\n" + ] + } + ], + "source": [ + "print(classification_report(y_pred=prediction_dtbt,y_true=true_labels))" + ] + }, + { + "cell_type": "code", + "execution_count": 70, + "metadata": {}, + "outputs": [], + "source": [ + "pd.set_option('display.max_rows', None)\n", + "feat_imp_tuned_dtbt= pd.DataFrame(list(zip([i for i in us_train_cat.columns if i!='Severity'], dtModel_t.bestModel.stages[-1].featureImportances)),\n", + " columns = ['column', 'weight']).sort_values('weight',ascending=False)" + ] + }, + { + "cell_type": "code", + "execution_count": 71, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.figure(figsize=(10,10))\n", + "sns.barplot(x=feat_imp_tuned_dtbt['column'][:10], y=feat_imp_tuned_dtbt['weight'][:10],data=feat_imp_tuned_dtbt)\n", + "plt.xticks(rotation=90)\n", + "plt.xlabel(\"Features\")\n", + "plt.ylabel(\"Weights\")\n", + "plt.title(\"Top 10 Features based on Importance from DT Binary Grid Model\");" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.5.4" + }, + "latex_envs": { + "LaTeX_envs_menu_present": true, + "autoclose": false, + "autocomplete": true, + "bibliofile": "biblio.bib", + "cite_by": "apalike", + "current_citInitial": 1, + "eqLabelWithNumbers": true, + "eqNumInitial": 1, + "hotkeys": { + "equation": "Ctrl-E", + "itemize": "Ctrl-I" + }, + "labels_anchors": false, + "latex_user_defs": false, + "report_style_numbering": false, + "user_envs_cfg": false + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/RF_DT_GBT_LR_Binary_Bal.ipynb b/RF_DT_GBT_LR_Binary_Bal.ipynb new file mode 100644 index 0000000..bd8fd9a --- /dev/null +++ b/RF_DT_GBT_LR_Binary_Bal.ipynb @@ -0,0 +1,2548 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 214, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "ERROR:py4j.java_gateway:An error occurred while trying to connect to the Java server (127.0.0.1:62046)\n", + "Traceback (most recent call last):\n", + " File \"C:\\Spark_installed\\spark-3.0.0-preview2-bin-hadoop2.7\\python\\lib\\py4j-0.10.8.1-src.zip\\py4j\\java_gateway.py\", line 958, in _get_connection\n", + " connection = self.deque.pop()\n", + "IndexError: pop from an empty deque\n", + "\n", + "During handling of the above exception, another exception occurred:\n", + "\n", + "Traceback (most recent call last):\n", + " File \"C:\\Spark_installed\\spark-3.0.0-preview2-bin-hadoop2.7\\python\\lib\\py4j-0.10.8.1-src.zip\\py4j\\java_gateway.py\", line 1096, in start\n", + " self.socket.connect((self.address, self.port))\n", + "ConnectionRefusedError: [WinError 10061] No connection could be made because the target machine actively refused it\n" + ] + }, + { + "ename": "Py4JNetworkError", + "evalue": "An error occurred while trying to connect to the Java server (127.0.0.1:62046)", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mIndexError\u001b[0m Traceback (most recent call last)", + "\u001b[1;32mC:\\Spark_installed\\spark-3.0.0-preview2-bin-hadoop2.7\\python\\lib\\py4j-0.10.8.1-src.zip\\py4j\\java_gateway.py\u001b[0m in \u001b[0;36m_get_connection\u001b[1;34m(self)\u001b[0m\n\u001b[0;32m 957\u001b[0m \u001b[1;32mtry\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 958\u001b[1;33m \u001b[0mconnection\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mdeque\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mpop\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 959\u001b[0m \u001b[1;32mexcept\u001b[0m \u001b[0mIndexError\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;31mIndexError\u001b[0m: pop from an empty deque", + "\nDuring handling of the above exception, another exception occurred:\n", + "\u001b[1;31mConnectionRefusedError\u001b[0m Traceback (most recent call last)", + "\u001b[1;32mC:\\Spark_installed\\spark-3.0.0-preview2-bin-hadoop2.7\\python\\lib\\py4j-0.10.8.1-src.zip\\py4j\\java_gateway.py\u001b[0m in \u001b[0;36mstart\u001b[1;34m(self)\u001b[0m\n\u001b[0;32m 1095\u001b[0m \u001b[1;32mtry\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m-> 1096\u001b[1;33m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0msocket\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mconnect\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0maddress\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mport\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 1097\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mstream\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0msocket\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mmakefile\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"rb\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;31mConnectionRefusedError\u001b[0m: [WinError 10061] No connection could be made because the target machine actively refused it", + "\nDuring handling of the above exception, another exception occurred:\n", + "\u001b[1;31mPy4JNetworkError\u001b[0m Traceback (most recent call last)", + "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m\u001b[0m\n\u001b[0;32m 24\u001b[0m \u001b[1;32mfrom\u001b[0m \u001b[0mpyspark\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mml\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mevaluation\u001b[0m \u001b[1;32mimport\u001b[0m \u001b[0mBinaryClassificationEvaluator\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 25\u001b[0m \u001b[1;32mfrom\u001b[0m \u001b[0mpyspark\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mml\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mfeature\u001b[0m \u001b[1;32mimport\u001b[0m \u001b[0mOneHotEncoder\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mOneHotEncoderModel\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mStringIndexer\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mVectorAssembler\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 26\u001b[1;33m \u001b[0mspark\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mSparkSession\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mbuilder\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mgetOrCreate\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 27\u001b[0m \u001b[0msc\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mspark\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0msparkContext\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32mC:\\Spark_installed\\spark-3.0.0-preview2-bin-hadoop2.7\\python\\pyspark\\sql\\session.py\u001b[0m in \u001b[0;36mgetOrCreate\u001b[1;34m(self)\u001b[0m\n\u001b[0;32m 186\u001b[0m \u001b[0msession\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mSparkSession\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0msc\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 187\u001b[0m \u001b[1;32mfor\u001b[0m \u001b[0mkey\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mvalue\u001b[0m \u001b[1;32min\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_options\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mitems\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 188\u001b[1;33m \u001b[0msession\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_jsparkSession\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0msessionState\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mconf\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0msetConfString\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mvalue\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 189\u001b[0m \u001b[1;32mreturn\u001b[0m \u001b[0msession\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 190\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32mC:\\Spark_installed\\spark-3.0.0-preview2-bin-hadoop2.7\\python\\lib\\py4j-0.10.8.1-src.zip\\py4j\\java_gateway.py\u001b[0m in \u001b[0;36m__call__\u001b[1;34m(self, *args)\u001b[0m\n\u001b[0;32m 1282\u001b[0m \u001b[0mproto\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mEND_COMMAND_PART\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 1283\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m-> 1284\u001b[1;33m \u001b[0manswer\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mgateway_client\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0msend_command\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mcommand\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 1285\u001b[0m return_value = get_return_value(\n\u001b[0;32m 1286\u001b[0m answer, self.gateway_client, self.target_id, self.name)\n", + "\u001b[1;32mC:\\Spark_installed\\spark-3.0.0-preview2-bin-hadoop2.7\\python\\lib\\py4j-0.10.8.1-src.zip\\py4j\\java_gateway.py\u001b[0m in \u001b[0;36msend_command\u001b[1;34m(self, command, retry, binary)\u001b[0m\n\u001b[0;32m 1010\u001b[0m \u001b[1;32mif\u001b[0m\u001b[0;31m \u001b[0m\u001b[0;31m`\u001b[0m\u001b[0mbinary\u001b[0m\u001b[0;31m`\u001b[0m \u001b[1;32mis\u001b[0m\u001b[0;31m \u001b[0m\u001b[0;31m`\u001b[0m\u001b[1;32mTrue\u001b[0m\u001b[0;31m`\u001b[0m\u001b[1;33m.\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 1011\u001b[0m \"\"\"\n\u001b[1;32m-> 1012\u001b[1;33m \u001b[0mconnection\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_get_connection\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 1013\u001b[0m \u001b[1;32mtry\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 1014\u001b[0m \u001b[0mresponse\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mconnection\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0msend_command\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mcommand\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32mC:\\Spark_installed\\spark-3.0.0-preview2-bin-hadoop2.7\\python\\lib\\py4j-0.10.8.1-src.zip\\py4j\\java_gateway.py\u001b[0m in \u001b[0;36m_get_connection\u001b[1;34m(self)\u001b[0m\n\u001b[0;32m 958\u001b[0m \u001b[0mconnection\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mdeque\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mpop\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 959\u001b[0m \u001b[1;32mexcept\u001b[0m \u001b[0mIndexError\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 960\u001b[1;33m \u001b[0mconnection\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_create_connection\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 961\u001b[0m \u001b[1;32mreturn\u001b[0m \u001b[0mconnection\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 962\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32mC:\\Spark_installed\\spark-3.0.0-preview2-bin-hadoop2.7\\python\\lib\\py4j-0.10.8.1-src.zip\\py4j\\java_gateway.py\u001b[0m in \u001b[0;36m_create_connection\u001b[1;34m(self)\u001b[0m\n\u001b[0;32m 964\u001b[0m connection = GatewayConnection(\n\u001b[0;32m 965\u001b[0m self.gateway_parameters, self.gateway_property)\n\u001b[1;32m--> 966\u001b[1;33m \u001b[0mconnection\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mstart\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 967\u001b[0m \u001b[1;32mreturn\u001b[0m \u001b[0mconnection\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 968\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32mC:\\Spark_installed\\spark-3.0.0-preview2-bin-hadoop2.7\\python\\lib\\py4j-0.10.8.1-src.zip\\py4j\\java_gateway.py\u001b[0m in \u001b[0;36mstart\u001b[1;34m(self)\u001b[0m\n\u001b[0;32m 1106\u001b[0m \u001b[1;34m\"server ({0}:{1})\"\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mformat\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0maddress\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mport\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 1107\u001b[0m \u001b[0mlogger\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mexception\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mmsg\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m-> 1108\u001b[1;33m \u001b[1;32mraise\u001b[0m \u001b[0mPy4JNetworkError\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mmsg\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0me\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 1109\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 1110\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0m_authenticate_connection\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;31mPy4JNetworkError\u001b[0m: An error occurred while trying to connect to the Java server (127.0.0.1:62046)" + ] + } + ], + "source": [ + "from pyspark.sql import SparkSession\n", + "from pyspark.sql import Row\n", + "import numpy as np\n", + "import pandas as pd\n", + "from pyspark.sql.types import *\n", + "from pyspark.sql.functions import *\n", + "import matplotlib.pyplot as plt\n", + "from pyspark.sql import functions as fn\n", + "from pyspark.ml import feature, regression, evaluation, Pipeline\n", + "import seaborn as sns\n", + "from pyspark.ml.feature import VectorAssembler\n", + "from pyspark.ml import Pipeline\n", + "from pyspark.ml.regression import LinearRegression\n", + "from pyspark.ml.stat import Correlation\n", + "from pyspark.ml.feature import VectorAssembler\n", + "from pyspark.ml.classification import RandomForestClassifier\n", + "from pyspark.ml.classification import LogisticRegression,RandomForestClassifier\n", + "from pyspark.ml.classification import GBTClassifier\n", + "from pyspark.ml.evaluation import BinaryClassificationEvaluator\n", + "from pyspark.ml.classification import DecisionTreeClassifier\n", + "from pyspark.ml.tuning import CrossValidator, ParamGridBuilder\n", + "from pyspark.ml.classification import LogisticRegression\n", + "from pyspark.ml import Pipeline\n", + "from pyspark.ml.evaluation import BinaryClassificationEvaluator\n", + "from pyspark.ml.feature import OneHotEncoder, OneHotEncoderModel, StringIndexer, VectorAssembler\n", + "spark = SparkSession.builder.getOrCreate()\n", + "sc = spark.sparkContext\n" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "# Do not delete or change this cell\n", + "\n", + "import os\n", + "\n", + "# Define a function to determine if we are running on data bricks\n", + "# Return true if running in the data bricks environment, false otherwise\n", + "def is_databricks():\n", + " # get the databricks runtime version\n", + " db_env = os.getenv(\"DATABRICKS_RUNTIME_VERSION\")\n", + " \n", + " # if running on data bricks\n", + " if db_env != None:\n", + " return True\n", + " else:\n", + " return False\n", + "\n", + "# Define a function to read the data file. The full path data file name is constructed\n", + "# by checking runtime environment variables to determine if the runtime environment is \n", + "# databricks, or a student's personal computer. The full path file name is then\n", + "# constructed based on the runtime env.\n", + "# \n", + "# Params\n", + "# data_file_name: The base name of the data file to load\n", + "# \n", + "# Returns the full path file name based on the runtime env\n", + "#\n", + "def get_training_filename(data_file_name): \n", + " # if running on data bricks\n", + " if is_databricks():\n", + " # build the full path file name assuming data brick env\n", + " full_path_name = \"/FileStore/tables/%s\" % data_file_name\n", + " # else the data is assumed to be in the same dir as this notebook\n", + " else:\n", + " # Assume the student is running on their own computer and load the data\n", + " # file from the same dir as this notebook\n", + " full_path_name = data_file_name\n", + " \n", + " # return the full path file name to the caller\n", + " return full_path_name" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "# Loading Train data\n", + "\n", + "us_train_cat = spark.read.csv(get_training_filename('USAccident_train_bal_bin.csv'), header = True, inferSchema = True)" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "+---------------+\n", + "|count(Severity)|\n", + "+---------------+\n", + "| 2|\n", + "+---------------+\n", + "\n" + ] + } + ], + "source": [ + "# Number of unique labels in Severity column\n", + "\n", + "us_train_cat.agg(countDistinct(\"Severity\")).show()" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "+--------+------+\n", + "|Severity| count|\n", + "+--------+------+\n", + "| 1|258836|\n", + "| 0|263700|\n", + "+--------+------+\n", + "\n" + ] + } + ], + "source": [ + "# Checking the balance of data in training dataset\n", + "\n", + "us_train_cat.groupBy('Severity').count().show()" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "# Loading the test data\n", + "\n", + "us_test_cat = spark.read.csv(get_training_filename('USAccident_validation_new.csv'), header = True, inferSchema = True)" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "+--------+------+\n", + "|Severity| count|\n", + "+--------+------+\n", + "| 3| 58617|\n", + "| 4| 5993|\n", + "| 2|131790|\n", + "+--------+------+\n", + "\n" + ] + } + ], + "source": [ + "# Checking the balance of data in testing dataset\n", + "\n", + "us_test_cat.groupBy('Severity').count().show()" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "# Vector Assembler to convert all features except Severity to a single column features for feeding it to input of model\n", + "\n", + "va = VectorAssembler().setInputCols([i for i in us_train_cat.columns if i!='Severity']).setOutputCol('features')\n" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "# String Indexer to assign target Variable Severity name Label needed for the model to predict\n", + "\n", + "label_stringIdx = StringIndexer(inputCol=\"Severity\", outputCol=\"label\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Assigning label of 1 to category 3 and 4 and combine them to make it 1 category for train data\n", + "\n", + "us_train_cat=us_train_cat.withColumn(\"Severity\",when(((us_train_cat[\"Severity\"]==4) | (us_train_cat[\"Severity\"]==3)),1).otherwise(0))" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "# Assigning label of 1 to category 3 and 4 and combine them to make it 1 category for test data\n", + "\n", + "us_test_cat=us_test_cat.withColumn(\"Severity\",when(((us_test_cat[\"Severity\"]==4) | (us_test_cat[\"Severity\"]==3)),1).otherwise(0))" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [], + "source": [ + "# Evaluator defined for Binary Classification\n", + "\n", + "evaluator_rfb = BinaryClassificationEvaluator(labelCol='label',metricName='areaUnderROC')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# RF Base Model" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [], + "source": [ + "\n", + "# Create an initial RandomForest model.\n", + "rf = RandomForestClassifier(labelCol=\"label\", featuresCol=\"features\",seed=42)\n", + "\n", + "# Pipeline with stages for fitting the training data\n", + "\n", + "rfModel = Pipeline(stages=[label_stringIdx,va, rf])" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [], + "source": [ + "# Fit the training data using RF pipeline\n", + "\n", + "rf_fit = rfModel.fit(us_train_cat)" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [], + "source": [ + "# Predict the test data using fitted train pipeline\n", + "\n", + "pred_rfbb = rf_fit.transform(us_test_cat)" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "AUC Score is 0.7516960347127739\n" + ] + } + ], + "source": [ + "# AUC Score for the test data\n", + "\n", + "print(\"AUC Score is\", evaluator_rfb.evaluate(pred_rfbb))" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [], + "source": [ + "# Prediction output from the model to pandas\n", + "\n", + "prediction_rfbb=(pred_rfbb).toPandas()[\"prediction\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [], + "source": [ + "# True Labels from test data for Target Variable\n", + "\n", + "true_labels=us_test_cat.toPandas()[\"Severity\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [], + "source": [ + "# Initializing Classification Report from sklearn\n", + "\n", + "from sklearn.metrics import classification_report" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " precision recall f1-score support\n", + "\n", + " 0 0.86 0.59 0.70 131790\n", + " 1 0.49 0.80 0.61 64610\n", + "\n", + " accuracy 0.66 196400\n", + " macro avg 0.68 0.70 0.66 196400\n", + "weighted avg 0.74 0.66 0.67 196400\n", + "\n" + ] + } + ], + "source": [ + "# Classification Report Generation for all metrics display at once\n", + "\n", + "print(classification_report(y_pred=prediction_rfbb,y_true=true_labels))" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "SparseVector(119, {2: 0.0001, 3: 0.0001, 4: 0.0, 5: 0.0, 7: 0.0, 9: 0.0006, 13: 0.0003, 14: 0.0001, 15: 0.0, 17: 0.0, 19: 0.0, 20: 0.0, 21: 0.0, 23: 0.0228, 24: 0.0088, 25: 0.0142, 26: 0.0025, 27: 0.006, 28: 0.0, 30: 0.0268, 32: 0.0003, 34: 0.0164, 36: 0.0976, 38: 0.0, 40: 0.0007, 42: 0.0017, 44: 0.0025, 48: 0.0, 49: 0.0, 50: 0.0014, 51: 0.0508, 52: 0.0274, 53: 0.0, 54: 0.0, 55: 0.0, 58: 0.0001, 59: 0.0, 60: 0.0001, 61: 0.0, 62: 0.0001, 63: 0.0, 65: 0.0, 66: 0.0, 67: 0.0, 68: 0.0, 70: 0.0, 71: 0.0001, 73: 0.0, 75: 0.0001, 77: 0.0, 78: 0.0, 81: 0.1403, 82: 0.0434, 83: 0.0004, 84: 0.0001, 85: 0.0, 87: 0.0, 89: 0.0, 92: 0.0, 93: 0.0, 94: 0.0, 95: 0.0112, 97: 0.0, 98: 0.0005, 100: 0.05, 101: 0.0002, 102: 0.0003, 103: 0.0014, 104: 0.0, 105: 0.0209, 106: 0.0001, 107: 0.0121, 109: 0.1052, 110: 0.0, 111: 0.0209, 113: 0.001, 115: 0.0088, 116: 0.013, 117: 0.0, 118: 0.288})" + ] + }, + "execution_count": 27, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Feature Importance from RF model \n", + "\n", + "rf_fit.stages[-1].featureImportances" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": {}, + "outputs": [], + "source": [ + "# Creating Pandas Dataframe for Features and their Importance of RF Base Model for Binary Classification\n", + "\n", + "pd.set_option('display.max_rows', None)\n", + "feat_imp_tuned_rfbb = pd.DataFrame(list(zip([i for i in us_train_cat.columns if i!='Severity'], rf_fit.stages[-1].featureImportances)),\n", + " columns = ['column', 'weight']).sort_values('weight',ascending=False)" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Text(0.5, 1.0, 'Top 10 Features based on Importance from Random Forest binary balanced')" + ] + }, + "execution_count": 29, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "# Plotting top 10 Features from Feature Importance of RF Base Model for Binary Classification\n", + "\n", + "plt.figure(figsize=(10,10))\n", + "sns.barplot(x=feat_imp_tuned_rfbb['column'][:10], y=feat_imp_tuned_rfbb['weight'][:10],data=feat_imp_tuned_rfbb)\n", + "plt.xticks(rotation=90)\n", + "plt.xlabel(\"Features\")\n", + "plt.ylabel(\"Weights\")\n", + "plt.title(\"Top 10 Features based on Importance from Random Forest binary balanced\")" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.6618991853360489" + ] + }, + "execution_count": 30, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Accuracy calculation for RF Base Model\n", + "\n", + "true_labels=us_test_cat.toPandas()[\"Severity\"]\n", + "\n", + "binary_prediction=(pred_rfbb).select(\"prediction\").collect()\n", + "\n", + "binary_true_labels=us_test_cat.select(\"Severity\").collect()\n", + "\n", + "np.sum(list([int(binary_true_labels[i][0]==binary_prediction[i][0]) for i in range(len(true_labels))]))/len(true_labels)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# RF Grid Search " + ] + }, + { + "cell_type": "code", + "execution_count": 210, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "ERROR:py4j.java_gateway:An error occurred while trying to connect to the Java server (127.0.0.1:62046)\n", + "Traceback (most recent call last):\n", + " File \"C:\\Spark_installed\\spark-3.0.0-preview2-bin-hadoop2.7\\python\\lib\\py4j-0.10.8.1-src.zip\\py4j\\java_gateway.py\", line 1174, in send_command\n", + " self.socket.sendall(command.encode(\"utf-8\"))\n", + "ConnectionResetError: [WinError 10054] An existing connection was forcibly closed by the remote host\n", + "\n", + "During handling of the above exception, another exception occurred:\n", + "\n", + "Traceback (most recent call last):\n", + " File \"C:\\Spark_installed\\spark-3.0.0-preview2-bin-hadoop2.7\\python\\lib\\py4j-0.10.8.1-src.zip\\py4j\\java_gateway.py\", line 1014, in send_command\n", + " response = connection.send_command(command)\n", + " File \"C:\\Spark_installed\\spark-3.0.0-preview2-bin-hadoop2.7\\python\\lib\\py4j-0.10.8.1-src.zip\\py4j\\java_gateway.py\", line 1178, in send_command\n", + " \"Error while sending\", e, proto.ERROR_ON_SEND)\n", + "py4j.protocol.Py4JNetworkError: Error while sending\n", + "\n", + "During handling of the above exception, another exception occurred:\n", + "\n", + "Traceback (most recent call last):\n", + " File \"C:\\Spark_installed\\spark-3.0.0-preview2-bin-hadoop2.7\\python\\lib\\py4j-0.10.8.1-src.zip\\py4j\\java_gateway.py\", line 958, in _get_connection\n", + " connection = self.deque.pop()\n", + "IndexError: pop from an empty deque\n", + "\n", + "During handling of the above exception, another exception occurred:\n", + "\n", + "Traceback (most recent call last):\n", + " File \"C:\\Spark_installed\\spark-3.0.0-preview2-bin-hadoop2.7\\python\\lib\\py4j-0.10.8.1-src.zip\\py4j\\java_gateway.py\", line 1096, in start\n", + " self.socket.connect((self.address, self.port))\n", + "ConnectionRefusedError: [WinError 10061] No connection could be made because the target machine actively refused it\n" + ] + }, + { + "ename": "Py4JNetworkError", + "evalue": "An error occurred while trying to connect to the Java server (127.0.0.1:62046)", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mConnectionResetError\u001b[0m Traceback (most recent call last)", + "\u001b[1;32mC:\\Spark_installed\\spark-3.0.0-preview2-bin-hadoop2.7\\python\\lib\\py4j-0.10.8.1-src.zip\\py4j\\java_gateway.py\u001b[0m in \u001b[0;36msend_command\u001b[1;34m(self, command)\u001b[0m\n\u001b[0;32m 1173\u001b[0m \u001b[1;31m# if it sent a RST packet (SO_LINGER)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m-> 1174\u001b[1;33m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0msocket\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0msendall\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mcommand\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mencode\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"utf-8\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 1175\u001b[0m \u001b[1;32mexcept\u001b[0m \u001b[0mException\u001b[0m \u001b[1;32mas\u001b[0m \u001b[0me\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;31mConnectionResetError\u001b[0m: [WinError 10054] An existing connection was forcibly closed by the remote host", + "\nDuring handling of the above exception, another exception occurred:\n", + "\u001b[1;31mPy4JNetworkError\u001b[0m Traceback (most recent call last)", + "\u001b[1;32mC:\\Spark_installed\\spark-3.0.0-preview2-bin-hadoop2.7\\python\\lib\\py4j-0.10.8.1-src.zip\\py4j\\java_gateway.py\u001b[0m in \u001b[0;36msend_command\u001b[1;34m(self, command, retry, binary)\u001b[0m\n\u001b[0;32m 1013\u001b[0m \u001b[1;32mtry\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m-> 1014\u001b[1;33m \u001b[0mresponse\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mconnection\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0msend_command\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mcommand\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 1015\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mbinary\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32mC:\\Spark_installed\\spark-3.0.0-preview2-bin-hadoop2.7\\python\\lib\\py4j-0.10.8.1-src.zip\\py4j\\java_gateway.py\u001b[0m in \u001b[0;36msend_command\u001b[1;34m(self, command)\u001b[0m\n\u001b[0;32m 1177\u001b[0m raise Py4JNetworkError(\n\u001b[1;32m-> 1178\u001b[1;33m \"Error while sending\", e, proto.ERROR_ON_SEND)\n\u001b[0m\u001b[0;32m 1179\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;31mPy4JNetworkError\u001b[0m: Error while sending", + "\nDuring handling of the above exception, another exception occurred:\n", + "\u001b[1;31mIndexError\u001b[0m Traceback (most recent call last)", + "\u001b[1;32mC:\\Spark_installed\\spark-3.0.0-preview2-bin-hadoop2.7\\python\\lib\\py4j-0.10.8.1-src.zip\\py4j\\java_gateway.py\u001b[0m in \u001b[0;36m_get_connection\u001b[1;34m(self)\u001b[0m\n\u001b[0;32m 957\u001b[0m \u001b[1;32mtry\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 958\u001b[1;33m \u001b[0mconnection\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mdeque\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mpop\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 959\u001b[0m \u001b[1;32mexcept\u001b[0m \u001b[0mIndexError\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;31mIndexError\u001b[0m: pop from an empty deque", + "\nDuring handling of the above exception, another exception occurred:\n", + "\u001b[1;31mConnectionRefusedError\u001b[0m Traceback (most recent call last)", + "\u001b[1;32mC:\\Spark_installed\\spark-3.0.0-preview2-bin-hadoop2.7\\python\\lib\\py4j-0.10.8.1-src.zip\\py4j\\java_gateway.py\u001b[0m in \u001b[0;36mstart\u001b[1;34m(self)\u001b[0m\n\u001b[0;32m 1095\u001b[0m \u001b[1;32mtry\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m-> 1096\u001b[1;33m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0msocket\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mconnect\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0maddress\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mport\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 1097\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mstream\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0msocket\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mmakefile\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"rb\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;31mConnectionRefusedError\u001b[0m: [WinError 10061] No connection could be made because the target machine actively refused it", + "\nDuring handling of the above exception, another exception occurred:\n", + "\u001b[1;31mPy4JNetworkError\u001b[0m Traceback (most recent call last)", + "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[1;31m# Create an initial RandomForest model.\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 2\u001b[1;33m \u001b[0mrf_new\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mRandomForestClassifier\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mlabelCol\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;34m\"label\"\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mfeaturesCol\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;34m\"features\"\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0mseed\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;36m42\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 3\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 4\u001b[0m \u001b[1;31m# Train model with Training Data\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 5\u001b[0m \u001b[0mrfModel_new\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mPipeline\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mstages\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mlabel_stringIdx\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0mva\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mrf_new\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32mC:\\Spark_installed\\spark-3.0.0-preview2-bin-hadoop2.7\\python\\pyspark\\__init__.py\u001b[0m in \u001b[0;36mwrapper\u001b[1;34m(self, *args, **kwargs)\u001b[0m\n\u001b[0;32m 109\u001b[0m \u001b[1;32mraise\u001b[0m \u001b[0mTypeError\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"Method %s forces keyword arguments.\"\u001b[0m \u001b[1;33m%\u001b[0m \u001b[0mfunc\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m__name__\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 110\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_input_kwargs\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mkwargs\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 111\u001b[1;33m \u001b[1;32mreturn\u001b[0m \u001b[0mfunc\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;33m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 112\u001b[0m \u001b[1;32mreturn\u001b[0m \u001b[0mwrapper\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 113\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32mC:\\Spark_installed\\spark-3.0.0-preview2-bin-hadoop2.7\\python\\pyspark\\ml\\classification.py\u001b[0m in \u001b[0;36m__init__\u001b[1;34m(self, featuresCol, labelCol, predictionCol, probabilityCol, rawPredictionCol, maxDepth, maxBins, minInstancesPerNode, minInfoGain, maxMemoryInMB, cacheNodeIds, checkpointInterval, impurity, numTrees, featureSubsetStrategy, seed, subsamplingRate, leafCol, minWeightFractionPerNode)\u001b[0m\n\u001b[0;32m 1424\u001b[0m \u001b[0msuper\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mRandomForestClassifier\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m__init__\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 1425\u001b[0m self._java_obj = self._new_java_obj(\n\u001b[1;32m-> 1426\u001b[1;33m \"org.apache.spark.ml.classification.RandomForestClassifier\", self.uid)\n\u001b[0m\u001b[0;32m 1427\u001b[0m self._setDefault(maxDepth=5, maxBins=32, minInstancesPerNode=1, minInfoGain=0.0,\n\u001b[0;32m 1428\u001b[0m \u001b[0mmaxMemoryInMB\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;36m256\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mcacheNodeIds\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;32mFalse\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mcheckpointInterval\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;36m10\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32mC:\\Spark_installed\\spark-3.0.0-preview2-bin-hadoop2.7\\python\\pyspark\\ml\\wrapper.py\u001b[0m in \u001b[0;36m_new_java_obj\u001b[1;34m(java_class, *args)\u001b[0m\n\u001b[0;32m 65\u001b[0m \u001b[0mjava_obj\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0m_jvm\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 66\u001b[0m \u001b[1;32mfor\u001b[0m \u001b[0mname\u001b[0m \u001b[1;32min\u001b[0m \u001b[0mjava_class\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0msplit\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\".\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 67\u001b[1;33m \u001b[0mjava_obj\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mgetattr\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mjava_obj\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mname\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 68\u001b[0m \u001b[0mjava_args\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;33m[\u001b[0m\u001b[0m_py2java\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0msc\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0marg\u001b[0m\u001b[1;33m)\u001b[0m \u001b[1;32mfor\u001b[0m \u001b[0marg\u001b[0m \u001b[1;32min\u001b[0m \u001b[0margs\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 69\u001b[0m \u001b[1;32mreturn\u001b[0m \u001b[0mjava_obj\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m*\u001b[0m\u001b[0mjava_args\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32mC:\\Spark_installed\\spark-3.0.0-preview2-bin-hadoop2.7\\python\\lib\\py4j-0.10.8.1-src.zip\\py4j\\java_gateway.py\u001b[0m in \u001b[0;36m__getattr__\u001b[1;34m(self, name)\u001b[0m\n\u001b[0;32m 1676\u001b[0m \u001b[0mproto\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mREFLECTION_COMMAND_NAME\u001b[0m \u001b[1;33m+\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 1677\u001b[0m \u001b[0mproto\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mREFL_GET_UNKNOWN_SUB_COMMAND_NAME\u001b[0m \u001b[1;33m+\u001b[0m \u001b[0mname\u001b[0m \u001b[1;33m+\u001b[0m \u001b[1;34m\"\\n\"\u001b[0m \u001b[1;33m+\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_id\u001b[0m \u001b[1;33m+\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m-> 1678\u001b[1;33m \"\\n\" + proto.END_COMMAND_PART)\n\u001b[0m\u001b[0;32m 1679\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0manswer\u001b[0m \u001b[1;33m==\u001b[0m \u001b[0mproto\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mSUCCESS_PACKAGE\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 1680\u001b[0m \u001b[1;32mreturn\u001b[0m \u001b[0mJavaPackage\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mname\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_gateway_client\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mjvm_id\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_id\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32mC:\\Spark_installed\\spark-3.0.0-preview2-bin-hadoop2.7\\python\\lib\\py4j-0.10.8.1-src.zip\\py4j\\java_gateway.py\u001b[0m in \u001b[0;36msend_command\u001b[1;34m(self, command, retry, binary)\u001b[0m\n\u001b[0;32m 1027\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_should_retry\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mretry\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mconnection\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mpne\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 1028\u001b[0m \u001b[0mlogging\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0minfo\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"Exception while sending command.\"\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mexc_info\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;32mTrue\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m-> 1029\u001b[1;33m \u001b[0mresponse\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0msend_command\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mcommand\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mbinary\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mbinary\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 1030\u001b[0m \u001b[1;32melse\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 1031\u001b[0m logging.exception(\n", + "\u001b[1;32mC:\\Spark_installed\\spark-3.0.0-preview2-bin-hadoop2.7\\python\\lib\\py4j-0.10.8.1-src.zip\\py4j\\java_gateway.py\u001b[0m in \u001b[0;36msend_command\u001b[1;34m(self, command, retry, binary)\u001b[0m\n\u001b[0;32m 1010\u001b[0m \u001b[1;32mif\u001b[0m\u001b[0;31m \u001b[0m\u001b[0;31m`\u001b[0m\u001b[0mbinary\u001b[0m\u001b[0;31m`\u001b[0m \u001b[1;32mis\u001b[0m\u001b[0;31m \u001b[0m\u001b[0;31m`\u001b[0m\u001b[1;32mTrue\u001b[0m\u001b[0;31m`\u001b[0m\u001b[1;33m.\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 1011\u001b[0m \"\"\"\n\u001b[1;32m-> 1012\u001b[1;33m \u001b[0mconnection\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_get_connection\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 1013\u001b[0m \u001b[1;32mtry\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 1014\u001b[0m \u001b[0mresponse\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mconnection\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0msend_command\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mcommand\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32mC:\\Spark_installed\\spark-3.0.0-preview2-bin-hadoop2.7\\python\\lib\\py4j-0.10.8.1-src.zip\\py4j\\java_gateway.py\u001b[0m in \u001b[0;36m_get_connection\u001b[1;34m(self)\u001b[0m\n\u001b[0;32m 958\u001b[0m \u001b[0mconnection\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mdeque\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mpop\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 959\u001b[0m \u001b[1;32mexcept\u001b[0m \u001b[0mIndexError\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 960\u001b[1;33m \u001b[0mconnection\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_create_connection\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 961\u001b[0m \u001b[1;32mreturn\u001b[0m \u001b[0mconnection\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 962\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32mC:\\Spark_installed\\spark-3.0.0-preview2-bin-hadoop2.7\\python\\lib\\py4j-0.10.8.1-src.zip\\py4j\\java_gateway.py\u001b[0m in \u001b[0;36m_create_connection\u001b[1;34m(self)\u001b[0m\n\u001b[0;32m 964\u001b[0m connection = GatewayConnection(\n\u001b[0;32m 965\u001b[0m self.gateway_parameters, self.gateway_property)\n\u001b[1;32m--> 966\u001b[1;33m \u001b[0mconnection\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mstart\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 967\u001b[0m \u001b[1;32mreturn\u001b[0m \u001b[0mconnection\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 968\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32mC:\\Spark_installed\\spark-3.0.0-preview2-bin-hadoop2.7\\python\\lib\\py4j-0.10.8.1-src.zip\\py4j\\java_gateway.py\u001b[0m in \u001b[0;36mstart\u001b[1;34m(self)\u001b[0m\n\u001b[0;32m 1106\u001b[0m \u001b[1;34m\"server ({0}:{1})\"\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mformat\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0maddress\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mport\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 1107\u001b[0m \u001b[0mlogger\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mexception\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mmsg\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m-> 1108\u001b[1;33m \u001b[1;32mraise\u001b[0m \u001b[0mPy4JNetworkError\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mmsg\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0me\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 1109\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 1110\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0m_authenticate_connection\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;31mPy4JNetworkError\u001b[0m: An error occurred while trying to connect to the Java server (127.0.0.1:62046)" + ] + } + ], + "source": [ + "\n", + "# Create an initial RandomForest model\n", + "\n", + "rf_new = RandomForestClassifier(labelCol=\"label\", featuresCol=\"features\",seed=42)\n", + "\n", + "# Pipeline with stages for RF Grid Search Model\n", + "\n", + "rfModel_new = Pipeline(stages=[label_stringIdx,va, rf_new])\n", + "\n", + "# Grid Search for tuning Hyper parameters \n", + "\n", + "paramGrid_rft = ParamGridBuilder().addGrid(rf_new.numTrees, [10,25,60]).addGrid(rf_new.maxDepth, [3,6,10]).addGrid(rf_new.impurity,[\"entropy\", \"gini\"]).build()" + ] + }, + { + "cell_type": "code", + "execution_count": 209, + "metadata": {}, + "outputs": [ + { + "ename": "Py4JJavaError", + "evalue": "An error occurred while calling o124422.fit.\n: org.apache.spark.SparkException: Job aborted due to stage failure: Task 7 in stage 51187.0 failed 1 times, most recent failure: Lost task 7.0 in stage 51187.0 (TID 368623, DESKTOP-TT8TT9T.fios-router.home, executor driver): java.lang.OutOfMemoryError: Java heap space\r\n\tat java.lang.reflect.Array.newArray(Native Method)\r\n\tat java.lang.reflect.Array.newInstance(Unknown Source)\r\n\tat java.io.ObjectInputStream.readArray(Unknown Source)\r\n\tat java.io.ObjectInputStream.readObject0(Unknown Source)\r\n\tat java.io.ObjectInputStream.defaultReadFields(Unknown Source)\r\n\tat java.io.ObjectInputStream.readSerialData(Unknown Source)\r\n\tat java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)\r\n\tat java.io.ObjectInputStream.readObject0(Unknown Source)\r\n\tat java.io.ObjectInputStream.defaultReadFields(Unknown Source)\r\n\tat java.io.ObjectInputStream.readSerialData(Unknown Source)\r\n\tat java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)\r\n\tat java.io.ObjectInputStream.readObject0(Unknown Source)\r\n\tat java.io.ObjectInputStream.readObject(Unknown Source)\r\n\tat java.io.ObjectInputStream.readObject(Unknown Source)\r\n\tat org.apache.spark.serializer.JavaDeserializationStream.readObject(JavaSerializer.scala:76)\r\n\tat org.apache.spark.serializer.DeserializationStream$$anon$1.getNext(Serializer.scala:168)\r\n\tat org.apache.spark.util.NextIterator.hasNext(NextIterator.scala:73)\r\n\tat org.apache.spark.storage.memory.MemoryStore.putIterator(MemoryStore.scala:221)\r\n\tat org.apache.spark.storage.memory.MemoryStore.putIteratorAsValues(MemoryStore.scala:299)\r\n\tat org.apache.spark.storage.BlockManager.maybeCacheDiskValuesInMemory(BlockManager.scala:1516)\r\n\tat org.apache.spark.storage.BlockManager.getLocalValues(BlockManager.scala:825)\r\n\tat org.apache.spark.storage.BlockManager.get(BlockManager.scala:1111)\r\n\tat org.apache.spark.storage.BlockManager.getOrElseUpdate(BlockManager.scala:1178)\r\n\tat org.apache.spark.rdd.RDD.getOrCompute(RDD.scala:360)\r\n\tat org.apache.spark.rdd.RDD.iterator(RDD.scala:311)\r\n\tat org.apache.spark.rdd.MapPartitionsRDD.compute(MapPartitionsRDD.scala:52)\r\n\tat org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:349)\r\n\tat org.apache.spark.rdd.RDD.iterator(RDD.scala:313)\r\n\tat org.apache.spark.shuffle.ShuffleWriteProcessor.write(ShuffleWriteProcessor.scala:59)\r\n\tat org.apache.spark.scheduler.ShuffleMapTask.runTask(ShuffleMapTask.scala:99)\r\n\tat org.apache.spark.scheduler.ShuffleMapTask.runTask(ShuffleMapTask.scala:52)\r\n\tat org.apache.spark.scheduler.Task.run(Task.scala:127)\r\n\nDriver stacktrace:\r\n\tat org.apache.spark.scheduler.DAGScheduler.failJobAndIndependentStages(DAGScheduler.scala:1989)\r\n\tat org.apache.spark.scheduler.DAGScheduler.$anonfun$abortStage$2(DAGScheduler.scala:1977)\r\n\tat org.apache.spark.scheduler.DAGScheduler.$anonfun$abortStage$2$adapted(DAGScheduler.scala:1976)\r\n\tat scala.collection.mutable.ResizableArray.foreach(ResizableArray.scala:62)\r\n\tat scala.collection.mutable.ResizableArray.foreach$(ResizableArray.scala:55)\r\n\tat scala.collection.mutable.ArrayBuffer.foreach(ArrayBuffer.scala:49)\r\n\tat org.apache.spark.scheduler.DAGScheduler.abortStage(DAGScheduler.scala:1976)\r\n\tat org.apache.spark.scheduler.DAGScheduler.$anonfun$handleTaskSetFailed$1(DAGScheduler.scala:956)\r\n\tat org.apache.spark.scheduler.DAGScheduler.$anonfun$handleTaskSetFailed$1$adapted(DAGScheduler.scala:956)\r\n\tat scala.Option.foreach(Option.scala:407)\r\n\tat org.apache.spark.scheduler.DAGScheduler.handleTaskSetFailed(DAGScheduler.scala:956)\r\n\tat org.apache.spark.scheduler.DAGSchedulerEventProcessLoop.doOnReceive(DAGScheduler.scala:2206)\r\n\tat org.apache.spark.scheduler.DAGSchedulerEventProcessLoop.onReceive(DAGScheduler.scala:2155)\r\n\tat org.apache.spark.scheduler.DAGSchedulerEventProcessLoop.onReceive(DAGScheduler.scala:2144)\r\n\tat org.apache.spark.util.EventLoop$$anon$1.run(EventLoop.scala:49)\r\n\tat org.apache.spark.scheduler.DAGScheduler.runJob(DAGScheduler.scala:758)\r\n\tat org.apache.spark.SparkContext.runJob(SparkContext.scala:2116)\r\n\tat org.apache.spark.SparkContext.runJob(SparkContext.scala:2137)\r\n\tat org.apache.spark.SparkContext.runJob(SparkContext.scala:2156)\r\n\tat org.apache.spark.SparkContext.runJob(SparkContext.scala:2181)\r\n\tat org.apache.spark.rdd.RDD.$anonfun$collect$1(RDD.scala:1004)\r\n\tat org.apache.spark.rdd.RDDOperationScope$.withScope(RDDOperationScope.scala:151)\r\n\tat org.apache.spark.rdd.RDDOperationScope$.withScope(RDDOperationScope.scala:112)\r\n\tat org.apache.spark.rdd.RDD.withScope(RDD.scala:388)\r\n\tat org.apache.spark.rdd.RDD.collect(RDD.scala:1003)\r\n\tat org.apache.spark.rdd.PairRDDFunctions.$anonfun$collectAsMap$1(PairRDDFunctions.scala:737)\r\n\tat org.apache.spark.rdd.RDDOperationScope$.withScope(RDDOperationScope.scala:151)\r\n\tat org.apache.spark.rdd.RDDOperationScope$.withScope(RDDOperationScope.scala:112)\r\n\tat org.apache.spark.rdd.RDD.withScope(RDD.scala:388)\r\n\tat org.apache.spark.rdd.PairRDDFunctions.collectAsMap(PairRDDFunctions.scala:736)\r\n\tat org.apache.spark.ml.tree.impl.RandomForest$.findBestSplits(RandomForest.scala:588)\r\n\tat org.apache.spark.ml.tree.impl.RandomForest$.run(RandomForest.scala:226)\r\n\tat org.apache.spark.ml.classification.RandomForestClassifier.$anonfun$train$1(RandomForestClassifier.scala:144)\r\n\tat org.apache.spark.ml.util.Instrumentation$.$anonfun$instrumented$1(Instrumentation.scala:191)\r\n\tat scala.util.Try$.apply(Try.scala:213)\r\n\tat org.apache.spark.ml.util.Instrumentation$.instrumented(Instrumentation.scala:191)\r\n\tat org.apache.spark.ml.classification.RandomForestClassifier.train(RandomForestClassifier.scala:122)\r\n\tat org.apache.spark.ml.classification.RandomForestClassifier.train(RandomForestClassifier.scala:48)\r\n\tat org.apache.spark.ml.Predictor.fit(Predictor.scala:152)\r\n\tat sun.reflect.GeneratedMethodAccessor2715.invoke(Unknown Source)\r\n\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)\r\n\tat java.lang.reflect.Method.invoke(Unknown Source)\r\n\tat py4j.reflection.MethodInvoker.invoke(MethodInvoker.java:244)\r\n\tat py4j.reflection.ReflectionEngine.invoke(ReflectionEngine.java:357)\r\n\tat py4j.Gateway.invoke(Gateway.java:282)\r\n\tat py4j.commands.AbstractCommand.invokeMethod(AbstractCommand.java:132)\r\n\tat py4j.commands.CallCommand.execute(CallCommand.java:79)\r\n\tat py4j.GatewayConnection.run(GatewayConnection.java:238)\r\n\tat java.lang.Thread.run(Unknown Source)\r\nCaused by: java.lang.OutOfMemoryError: Java heap space\r\n\tat java.lang.reflect.Array.newArray(Native Method)\r\n\tat java.lang.reflect.Array.newInstance(Unknown Source)\r\n\tat java.io.ObjectInputStream.readArray(Unknown Source)\r\n\tat java.io.ObjectInputStream.readObject0(Unknown Source)\r\n\tat java.io.ObjectInputStream.defaultReadFields(Unknown Source)\r\n\tat java.io.ObjectInputStream.readSerialData(Unknown Source)\r\n\tat java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)\r\n\tat java.io.ObjectInputStream.readObject0(Unknown Source)\r\n\tat java.io.ObjectInputStream.defaultReadFields(Unknown Source)\r\n\tat java.io.ObjectInputStream.readSerialData(Unknown Source)\r\n\tat java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)\r\n\tat java.io.ObjectInputStream.readObject0(Unknown Source)\r\n\tat java.io.ObjectInputStream.readObject(Unknown Source)\r\n\tat java.io.ObjectInputStream.readObject(Unknown Source)\r\n\tat org.apache.spark.serializer.JavaDeserializationStream.readObject(JavaSerializer.scala:76)\r\n\tat org.apache.spark.serializer.DeserializationStream$$anon$1.getNext(Serializer.scala:168)\r\n\tat org.apache.spark.util.NextIterator.hasNext(NextIterator.scala:73)\r\n\tat org.apache.spark.storage.memory.MemoryStore.putIterator(MemoryStore.scala:221)\r\n\tat org.apache.spark.storage.memory.MemoryStore.putIteratorAsValues(MemoryStore.scala:299)\r\n\tat org.apache.spark.storage.BlockManager.maybeCacheDiskValuesInMemory(BlockManager.scala:1516)\r\n\tat org.apache.spark.storage.BlockManager.getLocalValues(BlockManager.scala:825)\r\n\tat org.apache.spark.storage.BlockManager.get(BlockManager.scala:1111)\r\n\tat org.apache.spark.storage.BlockManager.getOrElseUpdate(BlockManager.scala:1178)\r\n\tat org.apache.spark.rdd.RDD.getOrCompute(RDD.scala:360)\r\n\tat org.apache.spark.rdd.RDD.iterator(RDD.scala:311)\r\n\tat org.apache.spark.rdd.MapPartitionsRDD.compute(MapPartitionsRDD.scala:52)\r\n\tat org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:349)\r\n\tat org.apache.spark.rdd.RDD.iterator(RDD.scala:313)\r\n\tat org.apache.spark.shuffle.ShuffleWriteProcessor.write(ShuffleWriteProcessor.scala:59)\r\n\tat org.apache.spark.scheduler.ShuffleMapTask.runTask(ShuffleMapTask.scala:99)\r\n\tat org.apache.spark.scheduler.ShuffleMapTask.runTask(ShuffleMapTask.scala:52)\r\n\tat org.apache.spark.scheduler.Task.run(Task.scala:127)\r\n", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mPy4JJavaError\u001b[0m Traceback (most recent call last)", + "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[0mcv_rf\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mCrossValidator\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mestimator\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mrfModel_new\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mestimatorParamMaps\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mparamGrid_rft\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mevaluator\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mevaluator_rfb\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mnumFolds\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;36m5\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0mseed\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;36m42\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mfit\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mus_train_cat\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[1;32mC:\\Spark_installed\\spark-3.0.0-preview2-bin-hadoop2.7\\python\\pyspark\\ml\\base.py\u001b[0m in \u001b[0;36mfit\u001b[1;34m(self, dataset, params)\u001b[0m\n\u001b[0;32m 129\u001b[0m \u001b[1;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mcopy\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mparams\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_fit\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mdataset\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 130\u001b[0m \u001b[1;32melse\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 131\u001b[1;33m \u001b[1;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_fit\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mdataset\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 132\u001b[0m \u001b[1;32melse\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 133\u001b[0m raise ValueError(\"Params must be either a param map or a list/tuple of param maps, \"\n", + "\u001b[1;32mC:\\Spark_installed\\spark-3.0.0-preview2-bin-hadoop2.7\\python\\pyspark\\ml\\tuning.py\u001b[0m in \u001b[0;36m_fit\u001b[1;34m(self, dataset)\u001b[0m\n\u001b[0;32m 350\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 351\u001b[0m \u001b[0mtasks\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0m_parallelFitTasks\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mest\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mtrain\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0meva\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mvalidation\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mepm\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mcollectSubModelsParam\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 352\u001b[1;33m \u001b[1;32mfor\u001b[0m \u001b[0mj\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mmetric\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0msubModel\u001b[0m \u001b[1;32min\u001b[0m \u001b[0mpool\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mimap_unordered\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;32mlambda\u001b[0m \u001b[0mf\u001b[0m\u001b[1;33m:\u001b[0m \u001b[0mf\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mtasks\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 353\u001b[0m \u001b[0mmetrics\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mj\u001b[0m\u001b[1;33m]\u001b[0m \u001b[1;33m+=\u001b[0m \u001b[1;33m(\u001b[0m\u001b[0mmetric\u001b[0m \u001b[1;33m/\u001b[0m \u001b[0mnFolds\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 354\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mcollectSubModelsParam\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32m~\\Anaconda3\\lib\\multiprocessing\\pool.py\u001b[0m in \u001b[0;36mnext\u001b[1;34m(self, timeout)\u001b[0m\n\u001b[0;32m 746\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0msuccess\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 747\u001b[0m \u001b[1;32mreturn\u001b[0m \u001b[0mvalue\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 748\u001b[1;33m \u001b[1;32mraise\u001b[0m \u001b[0mvalue\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 749\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 750\u001b[0m \u001b[0m__next__\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mnext\u001b[0m \u001b[1;31m# XXX\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32m~\\Anaconda3\\lib\\multiprocessing\\pool.py\u001b[0m in \u001b[0;36mworker\u001b[1;34m(inqueue, outqueue, initializer, initargs, maxtasks, wrap_exception)\u001b[0m\n\u001b[0;32m 119\u001b[0m \u001b[0mjob\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mi\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mfunc\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0margs\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mkwds\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mtask\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 120\u001b[0m \u001b[1;32mtry\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 121\u001b[1;33m \u001b[0mresult\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;33m(\u001b[0m\u001b[1;32mTrue\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mfunc\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m*\u001b[0m\u001b[0margs\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;33m**\u001b[0m\u001b[0mkwds\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 122\u001b[0m \u001b[1;32mexcept\u001b[0m \u001b[0mException\u001b[0m \u001b[1;32mas\u001b[0m \u001b[0me\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 123\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mwrap_exception\u001b[0m \u001b[1;32mand\u001b[0m \u001b[0mfunc\u001b[0m \u001b[1;32mis\u001b[0m \u001b[1;32mnot\u001b[0m \u001b[0m_helper_reraises_exception\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32mC:\\Spark_installed\\spark-3.0.0-preview2-bin-hadoop2.7\\python\\pyspark\\ml\\tuning.py\u001b[0m in \u001b[0;36m\u001b[1;34m(f)\u001b[0m\n\u001b[0;32m 350\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 351\u001b[0m \u001b[0mtasks\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0m_parallelFitTasks\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mest\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mtrain\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0meva\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mvalidation\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mepm\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mcollectSubModelsParam\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 352\u001b[1;33m \u001b[1;32mfor\u001b[0m \u001b[0mj\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mmetric\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0msubModel\u001b[0m \u001b[1;32min\u001b[0m \u001b[0mpool\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mimap_unordered\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;32mlambda\u001b[0m \u001b[0mf\u001b[0m\u001b[1;33m:\u001b[0m \u001b[0mf\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mtasks\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 353\u001b[0m \u001b[0mmetrics\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mj\u001b[0m\u001b[1;33m]\u001b[0m \u001b[1;33m+=\u001b[0m \u001b[1;33m(\u001b[0m\u001b[0mmetric\u001b[0m \u001b[1;33m/\u001b[0m \u001b[0mnFolds\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 354\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mcollectSubModelsParam\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32mC:\\Spark_installed\\spark-3.0.0-preview2-bin-hadoop2.7\\python\\pyspark\\ml\\tuning.py\u001b[0m in \u001b[0;36msingleTask\u001b[1;34m()\u001b[0m\n\u001b[0;32m 50\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 51\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0msingleTask\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 52\u001b[1;33m \u001b[0mindex\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mmodel\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mnext\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mmodelIter\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 53\u001b[0m \u001b[0mmetric\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0meva\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mevaluate\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mmodel\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mtransform\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mvalidation\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mepm\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mindex\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 54\u001b[0m \u001b[1;32mreturn\u001b[0m \u001b[0mindex\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mmetric\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mmodel\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mcollectSubModel\u001b[0m \u001b[1;32melse\u001b[0m \u001b[1;32mNone\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32mC:\\Spark_installed\\spark-3.0.0-preview2-bin-hadoop2.7\\python\\pyspark\\ml\\base.py\u001b[0m in \u001b[0;36m__next__\u001b[1;34m(self)\u001b[0m\n\u001b[0;32m 60\u001b[0m \u001b[1;32mraise\u001b[0m \u001b[0mStopIteration\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"No models remaining.\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 61\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mcounter\u001b[0m \u001b[1;33m+=\u001b[0m \u001b[1;36m1\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 62\u001b[1;33m \u001b[1;32mreturn\u001b[0m \u001b[0mindex\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mfitSingleModel\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mindex\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 63\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 64\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0mnext\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32mC:\\Spark_installed\\spark-3.0.0-preview2-bin-hadoop2.7\\python\\pyspark\\ml\\base.py\u001b[0m in \u001b[0;36mfitSingleModel\u001b[1;34m(index)\u001b[0m\n\u001b[0;32m 103\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 104\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0mfitSingleModel\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mindex\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 105\u001b[1;33m \u001b[1;32mreturn\u001b[0m \u001b[0mestimator\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mfit\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mdataset\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mparamMaps\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mindex\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 106\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 107\u001b[0m \u001b[1;32mreturn\u001b[0m \u001b[0m_FitMultipleIterator\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mfitSingleModel\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mlen\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mparamMaps\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32mC:\\Spark_installed\\spark-3.0.0-preview2-bin-hadoop2.7\\python\\pyspark\\ml\\base.py\u001b[0m in \u001b[0;36mfit\u001b[1;34m(self, dataset, params)\u001b[0m\n\u001b[0;32m 127\u001b[0m \u001b[1;32melif\u001b[0m \u001b[0misinstance\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mparams\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mdict\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 128\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mparams\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 129\u001b[1;33m \u001b[1;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mcopy\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mparams\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_fit\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mdataset\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 130\u001b[0m \u001b[1;32melse\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 131\u001b[0m \u001b[1;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_fit\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mdataset\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32mC:\\Spark_installed\\spark-3.0.0-preview2-bin-hadoop2.7\\python\\pyspark\\ml\\pipeline.py\u001b[0m in \u001b[0;36m_fit\u001b[1;34m(self, dataset)\u001b[0m\n\u001b[0;32m 107\u001b[0m \u001b[0mdataset\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mstage\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mtransform\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mdataset\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 108\u001b[0m \u001b[1;32melse\u001b[0m\u001b[1;33m:\u001b[0m \u001b[1;31m# must be an Estimator\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 109\u001b[1;33m \u001b[0mmodel\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mstage\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mfit\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mdataset\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 110\u001b[0m \u001b[0mtransformers\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mappend\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mmodel\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 111\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mi\u001b[0m \u001b[1;33m<\u001b[0m \u001b[0mindexOfLastEstimator\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32mC:\\Spark_installed\\spark-3.0.0-preview2-bin-hadoop2.7\\python\\pyspark\\ml\\base.py\u001b[0m in \u001b[0;36mfit\u001b[1;34m(self, dataset, params)\u001b[0m\n\u001b[0;32m 129\u001b[0m \u001b[1;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mcopy\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mparams\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_fit\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mdataset\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 130\u001b[0m \u001b[1;32melse\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 131\u001b[1;33m \u001b[1;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_fit\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mdataset\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 132\u001b[0m \u001b[1;32melse\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 133\u001b[0m raise ValueError(\"Params must be either a param map or a list/tuple of param maps, \"\n", + "\u001b[1;32mC:\\Spark_installed\\spark-3.0.0-preview2-bin-hadoop2.7\\python\\pyspark\\ml\\wrapper.py\u001b[0m in \u001b[0;36m_fit\u001b[1;34m(self, dataset)\u001b[0m\n\u001b[0;32m 319\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 320\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0m_fit\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mdataset\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 321\u001b[1;33m \u001b[0mjava_model\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_fit_java\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mdataset\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 322\u001b[0m \u001b[0mmodel\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_create_model\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mjava_model\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 323\u001b[0m \u001b[1;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_copyValues\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mmodel\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32mC:\\Spark_installed\\spark-3.0.0-preview2-bin-hadoop2.7\\python\\pyspark\\ml\\wrapper.py\u001b[0m in \u001b[0;36m_fit_java\u001b[1;34m(self, dataset)\u001b[0m\n\u001b[0;32m 316\u001b[0m \"\"\"\n\u001b[0;32m 317\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_transfer_params_to_java\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 318\u001b[1;33m \u001b[1;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_java_obj\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mfit\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mdataset\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_jdf\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 319\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 320\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0m_fit\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mdataset\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32mC:\\Spark_installed\\spark-3.0.0-preview2-bin-hadoop2.7\\python\\lib\\py4j-0.10.8.1-src.zip\\py4j\\java_gateway.py\u001b[0m in \u001b[0;36m__call__\u001b[1;34m(self, *args)\u001b[0m\n\u001b[0;32m 1284\u001b[0m \u001b[0manswer\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mgateway_client\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0msend_command\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mcommand\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 1285\u001b[0m return_value = get_return_value(\n\u001b[1;32m-> 1286\u001b[1;33m answer, self.gateway_client, self.target_id, self.name)\n\u001b[0m\u001b[0;32m 1287\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 1288\u001b[0m \u001b[1;32mfor\u001b[0m \u001b[0mtemp_arg\u001b[0m \u001b[1;32min\u001b[0m \u001b[0mtemp_args\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32mC:\\Spark_installed\\spark-3.0.0-preview2-bin-hadoop2.7\\python\\pyspark\\sql\\utils.py\u001b[0m in \u001b[0;36mdeco\u001b[1;34m(*a, **kw)\u001b[0m\n\u001b[0;32m 96\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0mdeco\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m*\u001b[0m\u001b[0ma\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;33m**\u001b[0m\u001b[0mkw\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 97\u001b[0m \u001b[1;32mtry\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 98\u001b[1;33m \u001b[1;32mreturn\u001b[0m \u001b[0mf\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m*\u001b[0m\u001b[0ma\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;33m**\u001b[0m\u001b[0mkw\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 99\u001b[0m \u001b[1;32mexcept\u001b[0m \u001b[0mpy4j\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mprotocol\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mPy4JJavaError\u001b[0m \u001b[1;32mas\u001b[0m \u001b[0me\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 100\u001b[0m \u001b[0mconverted\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mconvert_exception\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0me\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mjava_exception\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32mC:\\Spark_installed\\spark-3.0.0-preview2-bin-hadoop2.7\\python\\lib\\py4j-0.10.8.1-src.zip\\py4j\\protocol.py\u001b[0m in \u001b[0;36mget_return_value\u001b[1;34m(answer, gateway_client, target_id, name)\u001b[0m\n\u001b[0;32m 326\u001b[0m raise Py4JJavaError(\n\u001b[0;32m 327\u001b[0m \u001b[1;34m\"An error occurred while calling {0}{1}{2}.\\n\"\u001b[0m\u001b[1;33m.\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 328\u001b[1;33m format(target_id, \".\", name), value)\n\u001b[0m\u001b[0;32m 329\u001b[0m \u001b[1;32melse\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 330\u001b[0m raise Py4JError(\n", + "\u001b[1;31mPy4JJavaError\u001b[0m: An error occurred while calling o124422.fit.\n: org.apache.spark.SparkException: Job aborted due to stage failure: Task 7 in stage 51187.0 failed 1 times, most recent failure: Lost task 7.0 in stage 51187.0 (TID 368623, DESKTOP-TT8TT9T.fios-router.home, executor driver): java.lang.OutOfMemoryError: Java heap space\r\n\tat java.lang.reflect.Array.newArray(Native Method)\r\n\tat java.lang.reflect.Array.newInstance(Unknown Source)\r\n\tat java.io.ObjectInputStream.readArray(Unknown Source)\r\n\tat java.io.ObjectInputStream.readObject0(Unknown Source)\r\n\tat java.io.ObjectInputStream.defaultReadFields(Unknown Source)\r\n\tat java.io.ObjectInputStream.readSerialData(Unknown Source)\r\n\tat java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)\r\n\tat java.io.ObjectInputStream.readObject0(Unknown Source)\r\n\tat java.io.ObjectInputStream.defaultReadFields(Unknown Source)\r\n\tat java.io.ObjectInputStream.readSerialData(Unknown Source)\r\n\tat java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)\r\n\tat java.io.ObjectInputStream.readObject0(Unknown Source)\r\n\tat java.io.ObjectInputStream.readObject(Unknown Source)\r\n\tat java.io.ObjectInputStream.readObject(Unknown Source)\r\n\tat org.apache.spark.serializer.JavaDeserializationStream.readObject(JavaSerializer.scala:76)\r\n\tat org.apache.spark.serializer.DeserializationStream$$anon$1.getNext(Serializer.scala:168)\r\n\tat org.apache.spark.util.NextIterator.hasNext(NextIterator.scala:73)\r\n\tat org.apache.spark.storage.memory.MemoryStore.putIterator(MemoryStore.scala:221)\r\n\tat org.apache.spark.storage.memory.MemoryStore.putIteratorAsValues(MemoryStore.scala:299)\r\n\tat org.apache.spark.storage.BlockManager.maybeCacheDiskValuesInMemory(BlockManager.scala:1516)\r\n\tat org.apache.spark.storage.BlockManager.getLocalValues(BlockManager.scala:825)\r\n\tat org.apache.spark.storage.BlockManager.get(BlockManager.scala:1111)\r\n\tat org.apache.spark.storage.BlockManager.getOrElseUpdate(BlockManager.scala:1178)\r\n\tat org.apache.spark.rdd.RDD.getOrCompute(RDD.scala:360)\r\n\tat org.apache.spark.rdd.RDD.iterator(RDD.scala:311)\r\n\tat org.apache.spark.rdd.MapPartitionsRDD.compute(MapPartitionsRDD.scala:52)\r\n\tat org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:349)\r\n\tat org.apache.spark.rdd.RDD.iterator(RDD.scala:313)\r\n\tat org.apache.spark.shuffle.ShuffleWriteProcessor.write(ShuffleWriteProcessor.scala:59)\r\n\tat org.apache.spark.scheduler.ShuffleMapTask.runTask(ShuffleMapTask.scala:99)\r\n\tat org.apache.spark.scheduler.ShuffleMapTask.runTask(ShuffleMapTask.scala:52)\r\n\tat org.apache.spark.scheduler.Task.run(Task.scala:127)\r\n\nDriver stacktrace:\r\n\tat org.apache.spark.scheduler.DAGScheduler.failJobAndIndependentStages(DAGScheduler.scala:1989)\r\n\tat org.apache.spark.scheduler.DAGScheduler.$anonfun$abortStage$2(DAGScheduler.scala:1977)\r\n\tat org.apache.spark.scheduler.DAGScheduler.$anonfun$abortStage$2$adapted(DAGScheduler.scala:1976)\r\n\tat scala.collection.mutable.ResizableArray.foreach(ResizableArray.scala:62)\r\n\tat scala.collection.mutable.ResizableArray.foreach$(ResizableArray.scala:55)\r\n\tat scala.collection.mutable.ArrayBuffer.foreach(ArrayBuffer.scala:49)\r\n\tat org.apache.spark.scheduler.DAGScheduler.abortStage(DAGScheduler.scala:1976)\r\n\tat org.apache.spark.scheduler.DAGScheduler.$anonfun$handleTaskSetFailed$1(DAGScheduler.scala:956)\r\n\tat org.apache.spark.scheduler.DAGScheduler.$anonfun$handleTaskSetFailed$1$adapted(DAGScheduler.scala:956)\r\n\tat scala.Option.foreach(Option.scala:407)\r\n\tat org.apache.spark.scheduler.DAGScheduler.handleTaskSetFailed(DAGScheduler.scala:956)\r\n\tat org.apache.spark.scheduler.DAGSchedulerEventProcessLoop.doOnReceive(DAGScheduler.scala:2206)\r\n\tat org.apache.spark.scheduler.DAGSchedulerEventProcessLoop.onReceive(DAGScheduler.scala:2155)\r\n\tat org.apache.spark.scheduler.DAGSchedulerEventProcessLoop.onReceive(DAGScheduler.scala:2144)\r\n\tat org.apache.spark.util.EventLoop$$anon$1.run(EventLoop.scala:49)\r\n\tat org.apache.spark.scheduler.DAGScheduler.runJob(DAGScheduler.scala:758)\r\n\tat org.apache.spark.SparkContext.runJob(SparkContext.scala:2116)\r\n\tat org.apache.spark.SparkContext.runJob(SparkContext.scala:2137)\r\n\tat org.apache.spark.SparkContext.runJob(SparkContext.scala:2156)\r\n\tat org.apache.spark.SparkContext.runJob(SparkContext.scala:2181)\r\n\tat org.apache.spark.rdd.RDD.$anonfun$collect$1(RDD.scala:1004)\r\n\tat org.apache.spark.rdd.RDDOperationScope$.withScope(RDDOperationScope.scala:151)\r\n\tat org.apache.spark.rdd.RDDOperationScope$.withScope(RDDOperationScope.scala:112)\r\n\tat org.apache.spark.rdd.RDD.withScope(RDD.scala:388)\r\n\tat org.apache.spark.rdd.RDD.collect(RDD.scala:1003)\r\n\tat org.apache.spark.rdd.PairRDDFunctions.$anonfun$collectAsMap$1(PairRDDFunctions.scala:737)\r\n\tat org.apache.spark.rdd.RDDOperationScope$.withScope(RDDOperationScope.scala:151)\r\n\tat org.apache.spark.rdd.RDDOperationScope$.withScope(RDDOperationScope.scala:112)\r\n\tat org.apache.spark.rdd.RDD.withScope(RDD.scala:388)\r\n\tat org.apache.spark.rdd.PairRDDFunctions.collectAsMap(PairRDDFunctions.scala:736)\r\n\tat org.apache.spark.ml.tree.impl.RandomForest$.findBestSplits(RandomForest.scala:588)\r\n\tat org.apache.spark.ml.tree.impl.RandomForest$.run(RandomForest.scala:226)\r\n\tat org.apache.spark.ml.classification.RandomForestClassifier.$anonfun$train$1(RandomForestClassifier.scala:144)\r\n\tat org.apache.spark.ml.util.Instrumentation$.$anonfun$instrumented$1(Instrumentation.scala:191)\r\n\tat scala.util.Try$.apply(Try.scala:213)\r\n\tat org.apache.spark.ml.util.Instrumentation$.instrumented(Instrumentation.scala:191)\r\n\tat org.apache.spark.ml.classification.RandomForestClassifier.train(RandomForestClassifier.scala:122)\r\n\tat org.apache.spark.ml.classification.RandomForestClassifier.train(RandomForestClassifier.scala:48)\r\n\tat org.apache.spark.ml.Predictor.fit(Predictor.scala:152)\r\n\tat sun.reflect.GeneratedMethodAccessor2715.invoke(Unknown Source)\r\n\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)\r\n\tat java.lang.reflect.Method.invoke(Unknown Source)\r\n\tat py4j.reflection.MethodInvoker.invoke(MethodInvoker.java:244)\r\n\tat py4j.reflection.ReflectionEngine.invoke(ReflectionEngine.java:357)\r\n\tat py4j.Gateway.invoke(Gateway.java:282)\r\n\tat py4j.commands.AbstractCommand.invokeMethod(AbstractCommand.java:132)\r\n\tat py4j.commands.CallCommand.execute(CallCommand.java:79)\r\n\tat py4j.GatewayConnection.run(GatewayConnection.java:238)\r\n\tat java.lang.Thread.run(Unknown Source)\r\nCaused by: java.lang.OutOfMemoryError: Java heap space\r\n\tat java.lang.reflect.Array.newArray(Native Method)\r\n\tat java.lang.reflect.Array.newInstance(Unknown Source)\r\n\tat java.io.ObjectInputStream.readArray(Unknown Source)\r\n\tat java.io.ObjectInputStream.readObject0(Unknown Source)\r\n\tat java.io.ObjectInputStream.defaultReadFields(Unknown Source)\r\n\tat java.io.ObjectInputStream.readSerialData(Unknown Source)\r\n\tat java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)\r\n\tat java.io.ObjectInputStream.readObject0(Unknown Source)\r\n\tat java.io.ObjectInputStream.defaultReadFields(Unknown Source)\r\n\tat java.io.ObjectInputStream.readSerialData(Unknown Source)\r\n\tat java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)\r\n\tat java.io.ObjectInputStream.readObject0(Unknown Source)\r\n\tat java.io.ObjectInputStream.readObject(Unknown Source)\r\n\tat java.io.ObjectInputStream.readObject(Unknown Source)\r\n\tat org.apache.spark.serializer.JavaDeserializationStream.readObject(JavaSerializer.scala:76)\r\n\tat org.apache.spark.serializer.DeserializationStream$$anon$1.getNext(Serializer.scala:168)\r\n\tat org.apache.spark.util.NextIterator.hasNext(NextIterator.scala:73)\r\n\tat org.apache.spark.storage.memory.MemoryStore.putIterator(MemoryStore.scala:221)\r\n\tat org.apache.spark.storage.memory.MemoryStore.putIteratorAsValues(MemoryStore.scala:299)\r\n\tat org.apache.spark.storage.BlockManager.maybeCacheDiskValuesInMemory(BlockManager.scala:1516)\r\n\tat org.apache.spark.storage.BlockManager.getLocalValues(BlockManager.scala:825)\r\n\tat org.apache.spark.storage.BlockManager.get(BlockManager.scala:1111)\r\n\tat org.apache.spark.storage.BlockManager.getOrElseUpdate(BlockManager.scala:1178)\r\n\tat org.apache.spark.rdd.RDD.getOrCompute(RDD.scala:360)\r\n\tat org.apache.spark.rdd.RDD.iterator(RDD.scala:311)\r\n\tat org.apache.spark.rdd.MapPartitionsRDD.compute(MapPartitionsRDD.scala:52)\r\n\tat org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:349)\r\n\tat org.apache.spark.rdd.RDD.iterator(RDD.scala:313)\r\n\tat org.apache.spark.shuffle.ShuffleWriteProcessor.write(ShuffleWriteProcessor.scala:59)\r\n\tat org.apache.spark.scheduler.ShuffleMapTask.runTask(ShuffleMapTask.scala:99)\r\n\tat org.apache.spark.scheduler.ShuffleMapTask.runTask(ShuffleMapTask.scala:52)\r\n\tat org.apache.spark.scheduler.Task.run(Task.scala:127)\r\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "ERROR:root:Exception while sending command.\n", + "Traceback (most recent call last):\n", + " File \"C:\\Spark_installed\\spark-3.0.0-preview2-bin-hadoop2.7\\python\\lib\\py4j-0.10.8.1-src.zip\\py4j\\java_gateway.py\", line 1181, in send_command\n", + " answer = smart_decode(self.stream.readline()[:-1])\n", + " File \"C:\\Users\\hites\\Anaconda3\\lib\\socket.py\", line 589, in readinto\n", + " return self._sock.recv_into(b)\n", + "ConnectionResetError: [WinError 10054] An existing connection was forcibly closed by the remote host\n", + "\n", + "During handling of the above exception, another exception occurred:\n", + "\n", + "Traceback (most recent call last):\n", + " File \"C:\\Spark_installed\\spark-3.0.0-preview2-bin-hadoop2.7\\python\\lib\\py4j-0.10.8.1-src.zip\\py4j\\java_gateway.py\", line 1014, in send_command\n", + " response = connection.send_command(command)\n", + " File \"C:\\Spark_installed\\spark-3.0.0-preview2-bin-hadoop2.7\\python\\lib\\py4j-0.10.8.1-src.zip\\py4j\\java_gateway.py\", line 1193, in send_command\n", + " \"Error while receiving\", e, proto.ERROR_ON_RECEIVE)\n", + "py4j.protocol.Py4JNetworkError: Error while receiving\n" + ] + } + ], + "source": [ + "# 5-fold Cross Validator Pipeline and fitting the train data using this cv pipeline\n", + "\n", + "cv_rf = CrossValidator(estimator=rfModel_new, estimatorParamMaps=paramGrid_rft, evaluator=evaluator_rfb, numFolds=5,seed=42).fit(us_train_cat)" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": {}, + "outputs": [], + "source": [ + "# Predicting the test data using fitted cv pipeline\n", + "\n", + "pred_rft = cv_rf.transform(us_test_cat)" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "AUC Score is 0.7819275566312943\n" + ] + } + ], + "source": [ + "# AUC Score of tuned RF model\n", + "\n", + "print(\"AUC Score is\", evaluator_rfb.evaluate(pred_rft))" + ] + }, + { + "cell_type": "code", + "execution_count": 216, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{Param(parent='RandomForestClassifier_8713e549bc1f', name='featuresCol', doc='features column name.'): 'features',\n", + " Param(parent='RandomForestClassifier_8713e549bc1f', name='labelCol', doc='label column name.'): 'label',\n", + " Param(parent='RandomForestClassifier_8713e549bc1f', name='predictionCol', doc='prediction column name.'): 'prediction',\n", + " Param(parent='RandomForestClassifier_8713e549bc1f', name='probabilityCol', doc='Column name for predicted class conditional probabilities. Note: Not all models output well-calibrated probability estimates! These probabilities should be treated as confidences, not precise probabilities.'): 'probability',\n", + " Param(parent='RandomForestClassifier_8713e549bc1f', name='rawPredictionCol', doc='raw prediction (a.k.a. confidence) column name.'): 'rawPrediction',\n", + " Param(parent='RandomForestClassifier_8713e549bc1f', name='seed', doc='random seed.'): 42,\n", + " Param(parent='RandomForestClassifier_8713e549bc1f', name='cacheNodeIds', doc='If false, the algorithm will pass trees to executors to match instances with nodes. If true, the algorithm will cache node IDs for each instance. Caching can speed up training of deeper trees. Users can set how often should the cache be checkpointed or disable it by setting checkpointInterval.'): False,\n", + " Param(parent='RandomForestClassifier_8713e549bc1f', name='checkpointInterval', doc='set checkpoint interval (>= 1) or disable checkpoint (-1). E.g. 10 means that the cache will get checkpointed every 10 iterations. Note: this setting will be ignored if the checkpoint directory is not set in the SparkContext.'): 10,\n", + " Param(parent='RandomForestClassifier_8713e549bc1f', name='featureSubsetStrategy', doc=\"The number of features to consider for splits at each tree node. Supported options: 'auto' (choose automatically for task: If numTrees == 1, set to 'all'. If numTrees > 1 (forest), set to 'sqrt' for classification and to 'onethird' for regression), 'all' (use all features), 'onethird' (use 1/3 of the features), 'sqrt' (use sqrt(number of features)), 'log2' (use log2(number of features)), 'n' (when n is in the range (0, 1.0], use n * number of features. When n is in the range (1, number of features), use n features). default = 'auto'\"): 'auto',\n", + " Param(parent='RandomForestClassifier_8713e549bc1f', name='impurity', doc='Criterion used for information gain calculation (case-insensitive). Supported options: entropy, gini'): 'entropy',\n", + " Param(parent='RandomForestClassifier_8713e549bc1f', name='leafCol', doc='Leaf indices column name. Predicted leaf index of each instance in each tree by preorder.'): '',\n", + " Param(parent='RandomForestClassifier_8713e549bc1f', name='maxBins', doc='Max number of bins for discretizing continuous features. Must be >=2 and >= number of categories for any categorical feature.'): 32,\n", + " Param(parent='RandomForestClassifier_8713e549bc1f', name='maxDepth', doc='Maximum depth of the tree. (>= 0) E.g., depth 0 means 1 leaf node; depth 1 means 1 internal node + 2 leaf nodes.'): 10,\n", + " Param(parent='RandomForestClassifier_8713e549bc1f', name='maxMemoryInMB', doc='Maximum memory in MB allocated to histogram aggregation. If too small, then 1 node will be split per iteration, and its aggregates may exceed this size.'): 256,\n", + " Param(parent='RandomForestClassifier_8713e549bc1f', name='minInfoGain', doc='Minimum information gain for a split to be considered at a tree node.'): 0.0,\n", + " Param(parent='RandomForestClassifier_8713e549bc1f', name='minInstancesPerNode', doc='Minimum number of instances each child must have after split. If a split causes the left or right child to have fewer than minInstancesPerNode, the split will be discarded as invalid. Should be >= 1.'): 1,\n", + " Param(parent='RandomForestClassifier_8713e549bc1f', name='minWeightFractionPerNode', doc='Minimum fraction of the weighted sample count that each child must have after split. If a split causes the fraction of the total weight in the left or right child to be less than minWeightFractionPerNode, the split will be discarded as invalid. Should be in interval [0.0, 0.5).'): 0.0,\n", + " Param(parent='RandomForestClassifier_8713e549bc1f', name='numTrees', doc='Number of trees to train (>= 1).'): 60,\n", + " Param(parent='RandomForestClassifier_8713e549bc1f', name='subsamplingRate', doc='Fraction of the training data used for learning each decision tree, in range (0, 1].'): 1.0}" + ] + }, + "execution_count": 216, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Best Model Hyper Parameters after tuning\n", + "\n", + "cv_rf.bestModel.stages[-1].extractParamMap()" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "60" + ] + }, + "execution_count": 36, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Best model number of trees parameter from Grid Search\n", + "\n", + "cv_rf.bestModel.stages[-1].getNumTrees" + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.6788441955193483" + ] + }, + "execution_count": 38, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Accuracy of the model on test data\n", + "\n", + "true_labels=us_test_cat.toPandas()[\"Severity\"]\n", + "\n", + "binary_prediction=pred_rft.select(\"prediction\").collect()\n", + "\n", + "binary_true_labels=us_test_cat.select(\"Severity\").collect()\n", + "\n", + "np.sum(list([int(binary_true_labels[i][0]==binary_prediction[i][0]) for i in range(len(true_labels))]))/len(true_labels)" + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "metadata": {}, + "outputs": [], + "source": [ + "# Prediction output from the model to pandas\n", + "\n", + "prediction_rft=pred_rft.toPandas()[\"prediction\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "metadata": {}, + "outputs": [], + "source": [ + "# True Labels from test data for Target Variable\n", + "\n", + "true_labels=us_test_cat.toPandas()[\"Severity\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 41, + "metadata": {}, + "outputs": [], + "source": [ + "# Initializing Classification Report from sklearn\n", + "\n", + "from sklearn.metrics import classification_report" + ] + }, + { + "cell_type": "code", + "execution_count": 42, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " precision recall f1-score support\n", + "\n", + " 0 0.87 0.61 0.72 131790\n", + " 1 0.51 0.81 0.62 64610\n", + "\n", + " accuracy 0.68 196400\n", + " macro avg 0.69 0.71 0.67 196400\n", + "weighted avg 0.75 0.68 0.69 196400\n", + "\n" + ] + } + ], + "source": [ + "# Classification Report Generation for all metrics display at once\n", + "\n", + "print(classification_report(y_pred=prediction_rft,y_true=true_labels))" + ] + }, + { + "cell_type": "code", + "execution_count": 43, + "metadata": {}, + "outputs": [], + "source": [ + "# Creating Pandas Dataframe for Features and their Importance of RF Grid Model for Binary Classification\n", + "\n", + "pd.set_option('display.max_rows', None)\n", + "feat_imp_tuned_rfg = pd.DataFrame(list(zip([i for i in us_train_cat.columns if i!='Severity'], cv_rf.bestModel.stages[-1].featureImportances)),\n", + " columns = ['column', 'weight']).sort_values('weight',ascending=False)" + ] + }, + { + "cell_type": "code", + "execution_count": 44, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Text(0.5, 1.0, 'Top 10 Features based on Importance from Random Forest Grid')" + ] + }, + "execution_count": 44, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "# Plotting top 10 Features from Feature Importance of RF Grid Model for Binary Classification\n", + "\n", + "plt.figure(figsize=(10,10))\n", + "sns.barplot(x=feat_imp_tuned_rfg['column'][:10], y=feat_imp_tuned_rfg['weight'][:10],data=feat_imp_tuned_rfg)\n", + "plt.xticks(rotation=90)\n", + "plt.xlabel(\"Features\")\n", + "plt.ylabel(\"Weights\")\n", + "plt.title(\"Top 10 Features based on Importance from Random Forest Grid\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# GBT Base Model" + ] + }, + { + "cell_type": "code", + "execution_count": 46, + "metadata": {}, + "outputs": [], + "source": [ + "# Initialize the GBT Base model\n", + "\n", + "gbt = GBTClassifier(seed=42)" + ] + }, + { + "cell_type": "code", + "execution_count": 47, + "metadata": {}, + "outputs": [], + "source": [ + "# Pipeline with stages to be used to fit the train data\n", + "\n", + "gbt_pipe = Pipeline(stages=[label_stringIdx, va, gbt])" + ] + }, + { + "cell_type": "code", + "execution_count": 48, + "metadata": {}, + "outputs": [], + "source": [ + "# Fitting the training data using the pipeline above\n", + "\n", + "gbtModel = gbt_pipe.fit(us_train_cat)" + ] + }, + { + "cell_type": "code", + "execution_count": 49, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "AUC Score is 0.7842374103722184\n" + ] + } + ], + "source": [ + "# AUC Score from the model on the test data\n", + "\n", + "print(\"AUC Score is\", evaluator_rfb.evaluate(gbtModel.transform(us_test_cat)))" + ] + }, + { + "cell_type": "code", + "execution_count": 53, + "metadata": {}, + "outputs": [], + "source": [ + "# Prediction output from the model to pandas\n", + "\n", + "prediction_gbtn=(gbtModel.transform(us_test_cat)).toPandas()[\"prediction\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 54, + "metadata": {}, + "outputs": [], + "source": [ + "# True labels from the test data for the target variable\n", + "\n", + "true_labels=us_test_cat.toPandas()[\"Severity\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 55, + "metadata": {}, + "outputs": [], + "source": [ + "# Initializing Classification Report from sklearn\n", + "\n", + "from sklearn.metrics import classification_report" + ] + }, + { + "cell_type": "code", + "execution_count": 56, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " precision recall f1-score support\n", + "\n", + " 0 0.88 0.60 0.72 131790\n", + " 1 0.51 0.83 0.63 64610\n", + "\n", + " accuracy 0.68 196400\n", + " macro avg 0.69 0.72 0.67 196400\n", + "weighted avg 0.75 0.68 0.69 196400\n", + "\n" + ] + } + ], + "source": [ + "# Classification Report Generation for all metrics display at once\n", + "\n", + "print(classification_report(y_pred=prediction_gbtn,y_true=true_labels))" + ] + }, + { + "cell_type": "code", + "execution_count": 57, + "metadata": {}, + "outputs": [], + "source": [ + "# Creating Pandas Dataframe for Features and their Importance of GBT Base Model for Binary Classification\n", + "\n", + "pd.set_option('display.max_rows', None)\n", + "feat_imp_tuned_gtbb = pd.DataFrame(list(zip([i for i in us_train_cat.columns if i!='Severity'], gbtModel.stages[-1].featureImportances)),\n", + " columns = ['column', 'weight']).sort_values('weight',ascending=False)" + ] + }, + { + "cell_type": "code", + "execution_count": 58, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Text(0.5, 1.0, 'Top 10 Features based on Importance from GBT Base Model')" + ] + }, + "execution_count": 58, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "# Plotting top 10 Features from Feature Importance of GBT Base Model for Binary Classification\n", + "\n", + "plt.figure(figsize=(10,10))\n", + "sns.barplot(x=feat_imp_tuned_gtbb['column'][:10], y=feat_imp_tuned_gtbb['weight'][:10],data=feat_imp_tuned_gtbb)\n", + "plt.xticks(rotation=90)\n", + "plt.xlabel(\"Features\")\n", + "plt.ylabel(\"Weights\")\n", + "plt.title(\"Top 10 Features based on Importance from GBT Base Model\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# GBT Binary Classification Grid Search" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# GBT Binary Tuned Best Model" + ] + }, + { + "cell_type": "code", + "execution_count": 157, + "metadata": {}, + "outputs": [], + "source": [ + "\n", + "# Initializing GBT Grid Pipeline \n", + "\n", + "gbt_t_new = GBTClassifier(maxIter=55,seed=42)\n", + "\n", + "# Creating pipeline for GBT grid Model \n", + "\n", + "gbt_pipe_t_new = Pipeline(stages=[label_stringIdx, va, gbt_t_new])\n", + "\n", + "# Binary Classification Evaluator\n", + "\n", + "evaluator = BinaryClassificationEvaluator(labelCol='label',metricName='areaUnderROC')\n", + "\n", + "# Creating Grid Search for Hyper Parameter Tuning for GBT model\n", + "\n", + "grid_gbt_t_new = ParamGridBuilder().addGrid(gbt_t_new.stepSize, [0.2,0.4,0.01]).addGrid(gbt_t_new.maxDepth, [3, 5, 8]).build()\n", + "\n", + "# Cross Validator Pipeline with 5 fold cv to fit the training data\n", + "\n", + "cv1_gbt_t_new = CrossValidator(estimator=gbt_pipe_t_new,estimatorParamMaps=grid_gbt_t_new, numFolds=5, evaluator=evaluator,seed=42)" + ] + }, + { + "cell_type": "code", + "execution_count": 158, + "metadata": {}, + "outputs": [], + "source": [ + "# Fitting train data using 5-fold cross validator pipeline\n", + "\n", + "cvModel_gbt_t_new = cv1_gbt_t_new.fit(us_train_cat)" + ] + }, + { + "cell_type": "code", + "execution_count": 159, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "AUC Score is 0.8118245222266022\n" + ] + } + ], + "source": [ + "# AUC Score from the fitted pipeline for the test data\n", + "\n", + "print(\"AUC Score is\", evaluator.evaluate(cvModel_gbt_t_new.transform(us_test_cat)))" + ] + }, + { + "cell_type": "code", + "execution_count": 173, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.7997203339021297" + ] + }, + "execution_count": 173, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# AUC Score from the Cross validator Pipeline\n", + "\n", + "np.max(cvModel_gbt_t_new.avgMetrics)" + ] + }, + { + "cell_type": "code", + "execution_count": 217, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{Param(parent='GBTClassifier_48357a426a79', name='featuresCol', doc='features column name.'): 'features',\n", + " Param(parent='GBTClassifier_48357a426a79', name='labelCol', doc='label column name.'): 'label',\n", + " Param(parent='GBTClassifier_48357a426a79', name='predictionCol', doc='prediction column name.'): 'prediction',\n", + " Param(parent='GBTClassifier_48357a426a79', name='probabilityCol', doc='Column name for predicted class conditional probabilities. Note: Not all models output well-calibrated probability estimates! These probabilities should be treated as confidences, not precise probabilities.'): 'probability',\n", + " Param(parent='GBTClassifier_48357a426a79', name='rawPredictionCol', doc='raw prediction (a.k.a. confidence) column name.'): 'rawPrediction',\n", + " Param(parent='GBTClassifier_48357a426a79', name='seed', doc='random seed.'): 42,\n", + " Param(parent='GBTClassifier_48357a426a79', name='cacheNodeIds', doc='If false, the algorithm will pass trees to executors to match instances with nodes. If true, the algorithm will cache node IDs for each instance. Caching can speed up training of deeper trees. Users can set how often should the cache be checkpointed or disable it by setting checkpointInterval.'): False,\n", + " Param(parent='GBTClassifier_48357a426a79', name='checkpointInterval', doc='set checkpoint interval (>= 1) or disable checkpoint (-1). E.g. 10 means that the cache will get checkpointed every 10 iterations. Note: this setting will be ignored if the checkpoint directory is not set in the SparkContext.'): 10,\n", + " Param(parent='GBTClassifier_48357a426a79', name='featureSubsetStrategy', doc=\"The number of features to consider for splits at each tree node. Supported options: 'auto' (choose automatically for task: If numTrees == 1, set to 'all'. If numTrees > 1 (forest), set to 'sqrt' for classification and to 'onethird' for regression), 'all' (use all features), 'onethird' (use 1/3 of the features), 'sqrt' (use sqrt(number of features)), 'log2' (use log2(number of features)), 'n' (when n is in the range (0, 1.0], use n * number of features. When n is in the range (1, number of features), use n features). default = 'auto'\"): 'all',\n", + " Param(parent='GBTClassifier_48357a426a79', name='impurity', doc='Criterion used for information gain calculation (case-insensitive). Supported options: variance'): 'variance',\n", + " Param(parent='GBTClassifier_48357a426a79', name='leafCol', doc='Leaf indices column name. Predicted leaf index of each instance in each tree by preorder.'): '',\n", + " Param(parent='GBTClassifier_48357a426a79', name='lossType', doc='Loss function which GBT tries to minimize (case-insensitive). Supported options: logistic'): 'logistic',\n", + " Param(parent='GBTClassifier_48357a426a79', name='maxBins', doc='Max number of bins for discretizing continuous features. Must be >=2 and >= number of categories for any categorical feature.'): 32,\n", + " Param(parent='GBTClassifier_48357a426a79', name='maxDepth', doc='Maximum depth of the tree. (>= 0) E.g., depth 0 means 1 leaf node; depth 1 means 1 internal node + 2 leaf nodes.'): 8,\n", + " Param(parent='GBTClassifier_48357a426a79', name='maxIter', doc='max number of iterations (>= 0).'): 55,\n", + " Param(parent='GBTClassifier_48357a426a79', name='maxMemoryInMB', doc='Maximum memory in MB allocated to histogram aggregation. If too small, then 1 node will be split per iteration, and its aggregates may exceed this size.'): 256,\n", + " Param(parent='GBTClassifier_48357a426a79', name='minInfoGain', doc='Minimum information gain for a split to be considered at a tree node.'): 0.0,\n", + " Param(parent='GBTClassifier_48357a426a79', name='minInstancesPerNode', doc='Minimum number of instances each child must have after split. If a split causes the left or right child to have fewer than minInstancesPerNode, the split will be discarded as invalid. Should be >= 1.'): 1,\n", + " Param(parent='GBTClassifier_48357a426a79', name='minWeightFractionPerNode', doc='Minimum fraction of the weighted sample count that each child must have after split. If a split causes the fraction of the total weight in the left or right child to be less than minWeightFractionPerNode, the split will be discarded as invalid. Should be in interval [0.0, 0.5).'): 0.0,\n", + " Param(parent='GBTClassifier_48357a426a79', name='stepSize', doc='Step size (a.k.a. learning rate) in interval (0, 1] for shrinking the contribution of each estimator.'): 0.2,\n", + " Param(parent='GBTClassifier_48357a426a79', name='subsamplingRate', doc='Fraction of the training data used for learning each decision tree, in range (0, 1].'): 1.0,\n", + " Param(parent='GBTClassifier_48357a426a79', name='validationTol', doc='Threshold for stopping early when fit with validation is used. If the error rate on the validation input changes by less than the validationTol, then learning will stop early (before `maxIter`). This parameter is ignored when fit without validation is used.'): 0.01}" + ] + }, + "execution_count": 217, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Hyper pramaters from the best model \n", + "\n", + "cvModel_gbt_t_new.bestModel.stages[-1].extractParamMap()" + ] + }, + { + "cell_type": "code", + "execution_count": 177, + "metadata": {}, + "outputs": [], + "source": [ + "# Prediction output from the model to pandas\n", + "\n", + "prediction_gbt_t_new=cvModel_gbt_t_new.transform(us_test_cat).toPandas()[\"prediction\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 178, + "metadata": {}, + "outputs": [], + "source": [ + "# True Labels from test data for Target Variable\n", + "\n", + "true_labels=us_test_cat.toPandas()[\"Severity\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 179, + "metadata": {}, + "outputs": [], + "source": [ + "# Initializing Classification Report from sklearn\n", + "\n", + "from sklearn.metrics import classification_report" + ] + }, + { + "cell_type": "code", + "execution_count": 180, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " precision recall f1-score support\n", + "\n", + " 0 0.88 0.65 0.75 131790\n", + " 1 0.53 0.82 0.65 64610\n", + "\n", + " accuracy 0.70 196400\n", + " macro avg 0.71 0.73 0.70 196400\n", + "weighted avg 0.77 0.70 0.71 196400\n", + "\n" + ] + } + ], + "source": [ + "# Classification Report Generation for all metrics display at once\n", + "\n", + "print(classification_report(y_pred=prediction_gbt_t_new,y_true=true_labels))" + ] + }, + { + "cell_type": "code", + "execution_count": 181, + "metadata": {}, + "outputs": [], + "source": [ + "# Creating Pandas Dataframe for Features and their Importance of GBT Grid Model for Binary Classification\n", + "\n", + "pd.set_option('display.max_rows', None)\n", + "feat_imp_tuned_gbt_t_new = pd.DataFrame(list(zip([i for i in us_train_cat.columns if i!='Severity'], cvModel_gbt_t_new.bestModel.stages[-1].featureImportances)),\n", + " columns = ['column', 'weight']).sort_values('weight',ascending=False)" + ] + }, + { + "cell_type": "code", + "execution_count": 182, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Text(0.5, 1.0, 'Top 10 Features based on Importance from GBT Best tuned')" + ] + }, + "execution_count": 182, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "# Plotting top 10 Features from Feature Importance of GBT Grid Model for Binary Classification\n", + "\n", + "plt.figure(figsize=(10,10))\n", + "sns.barplot(x=feat_imp_tuned_gbt_t_new['column'][:10], y=feat_imp_tuned_gbt_t_new['weight'][:10],data=feat_imp_tuned_gbt_t_new)\n", + "plt.xticks(rotation=90)\n", + "plt.xlabel(\"Features\")\n", + "plt.ylabel(\"Weights\")\n", + "plt.title(\"Top 10 Features based on Importance from GBT Best tuned\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Decision Trees Binary Classification Base Model" + ] + }, + { + "cell_type": "code", + "execution_count": 60, + "metadata": {}, + "outputs": [], + "source": [ + "\n", + "# Create initial Decision Tree Model\n", + "dt = DecisionTreeClassifier(labelCol=\"label\", featuresCol=\"features\",seed=42)\n", + "\n", + "# Pipeline with stages created for DT Model \n", + "\n", + "dt_pipe = Pipeline(stages=[label_stringIdx, va, dt])\n", + "\n", + "# Train model with Training Data\n", + "\n", + "dtModel = dt_pipe.fit(us_train_cat)" + ] + }, + { + "cell_type": "code", + "execution_count": 61, + "metadata": {}, + "outputs": [], + "source": [ + "# Binary Class Evaluator Initialize\n", + "\n", + "evaluator = BinaryClassificationEvaluator(labelCol='label',metricName='areaUnderROC')" + ] + }, + { + "cell_type": "code", + "execution_count": 62, + "metadata": {}, + "outputs": [], + "source": [ + "# Transform the test data to get prediction from the model for the test data\n", + "\n", + "pred_dt = dtModel.transform(us_test_cat)" + ] + }, + { + "cell_type": "code", + "execution_count": 63, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "AUC Score is 0.7039599188458128\n" + ] + } + ], + "source": [ + "# AUC Score from the evaluator for the test data\n", + "\n", + "print(\"AUC Score is\",evaluator.evaluate(pred_dt))" + ] + }, + { + "cell_type": "code", + "execution_count": 67, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.6643584521384929" + ] + }, + "execution_count": 67, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Accuracy Calculation for DT Base Model\n", + "\n", + "binary_prediction=pred_dt.select(\"prediction\").collect()\n", + "\n", + "binary_true_labels=us_test_cat.select(\"Severity\").collect()\n", + "\n", + "np.sum(list([int(binary_true_labels[i][0]==binary_prediction[i][0]) for i in range(len(true_labels))]))/len(true_labels)" + ] + }, + { + "cell_type": "code", + "execution_count": 68, + "metadata": {}, + "outputs": [], + "source": [ + "# Prediction output from the model to pandas\n", + "\n", + "prediction_dtb=pred_dt.toPandas()[\"prediction\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 69, + "metadata": {}, + "outputs": [], + "source": [ + "# True Labels from test data for Target Variable\n", + "\n", + "true_labels=us_test_cat.toPandas()[\"Severity\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 70, + "metadata": {}, + "outputs": [], + "source": [ + "# Initializing Classification Report from sklearn\n", + "\n", + "from sklearn.metrics import classification_report" + ] + }, + { + "cell_type": "code", + "execution_count": 71, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " precision recall f1-score support\n", + "\n", + " 0 0.86 0.60 0.70 131790\n", + " 1 0.49 0.81 0.61 64610\n", + "\n", + " accuracy 0.66 196400\n", + " macro avg 0.68 0.70 0.66 196400\n", + "weighted avg 0.74 0.66 0.67 196400\n", + "\n" + ] + } + ], + "source": [ + "# Classification Report Generation for all metrics display at once\n", + "\n", + "print(classification_report(y_pred=prediction_dtb,y_true=true_labels))" + ] + }, + { + "cell_type": "code", + "execution_count": 72, + "metadata": {}, + "outputs": [], + "source": [ + "# Creating Pandas Dataframe for Features and their Importance of DT Base Model for Binary Classification\n", + "\n", + "pd.set_option('display.max_rows', None)\n", + "feat_imp_tuned_dtb= pd.DataFrame(list(zip([i for i in us_train_cat.columns if i!='Severity'], dtModel.stages[-1].featureImportances)),\n", + " columns = ['column', 'weight']).sort_values('weight',ascending=False)" + ] + }, + { + "cell_type": "code", + "execution_count": 73, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Text(0.5, 1.0, 'Top 10 Features based on Importance from DT Binary Base Model')" + ] + }, + "execution_count": 73, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "# Plotting top 10 Features from Feature Importance of DT Base Model for Binary Classification\n", + "\n", + "plt.figure(figsize=(10,10))\n", + "sns.barplot(x=feat_imp_tuned_dtb['column'][:10], y=feat_imp_tuned_dtb['weight'][:10],data=feat_imp_tuned_dtb)\n", + "plt.xticks(rotation=90)\n", + "plt.xlabel(\"Features\")\n", + "plt.ylabel(\"Weights\")\n", + "plt.title(\"Top 10 Features based on Importance from DT Binary Base Model\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Decision Tree Binary Classification Grid Search" + ] + }, + { + "cell_type": "code", + "execution_count": 160, + "metadata": {}, + "outputs": [], + "source": [ + "# Initializing DT Grid Pipeline\n", + "\n", + "dt_new = DecisionTreeClassifier(labelCol=\"label\", featuresCol=\"features\",seed=42)\n", + "\n", + "# Creating pipeline for DT Grid Model \n", + "\n", + "dt_new_pipe = Pipeline(stages=[label_stringIdx, va, dt_new])\n", + "\n", + "# Binary Evaluator Initializing\n", + "\n", + "evaluator = BinaryClassificationEvaluator(labelCol='label',metricName='areaUnderROC')\n", + "\n", + "# Creating Grid Search for Hyper Parameter Tuning for DT Model\n", + "\n", + "grid_dt = ParamGridBuilder().addGrid(dt_new.maxDepth, [10,15,30]).addGrid(dt_new.minInstancesPerNode, [500,1000,1500]).addGrid(dt_new.maxBins,[20,35,50]).build()\n", + "\n", + "# Cross Validator Pipeline with 5 fold cv to fit the training data\n", + "\n", + "cv1_dt = CrossValidator(estimator=dt_new_pipe,estimatorParamMaps=grid_dt, numFolds=5, evaluator=evaluator,seed=42)" + ] + }, + { + "cell_type": "code", + "execution_count": 161, + "metadata": {}, + "outputs": [], + "source": [ + "# Fitting the train data using the 5-fold Cross validator pipeline\n", + "\n", + "dtModel_t = cv1_dt.fit(us_train_cat)" + ] + }, + { + "cell_type": "code", + "execution_count": 162, + "metadata": {}, + "outputs": [], + "source": [ + "# Predicting the test data using the fitted pipeline\n", + "\n", + "pred_dtt = dtModel_t.transform(us_test_cat)" + ] + }, + { + "cell_type": "code", + "execution_count": 163, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "AUC Score 0.6710458592255817\n" + ] + } + ], + "source": [ + "# AUC Score for the fitted pipeline for test data\n", + "\n", + "print(\"AUC Score\", evaluator.evaluate(pred_dtt))" + ] + }, + { + "cell_type": "code", + "execution_count": 218, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{Param(parent='DecisionTreeClassifier_0bccbe6ff0a3', name='featuresCol', doc='features column name.'): 'features',\n", + " Param(parent='DecisionTreeClassifier_0bccbe6ff0a3', name='labelCol', doc='label column name.'): 'label',\n", + " Param(parent='DecisionTreeClassifier_0bccbe6ff0a3', name='predictionCol', doc='prediction column name.'): 'prediction',\n", + " Param(parent='DecisionTreeClassifier_0bccbe6ff0a3', name='probabilityCol', doc='Column name for predicted class conditional probabilities. Note: Not all models output well-calibrated probability estimates! These probabilities should be treated as confidences, not precise probabilities.'): 'probability',\n", + " Param(parent='DecisionTreeClassifier_0bccbe6ff0a3', name='rawPredictionCol', doc='raw prediction (a.k.a. confidence) column name.'): 'rawPrediction',\n", + " Param(parent='DecisionTreeClassifier_0bccbe6ff0a3', name='seed', doc='random seed.'): 42,\n", + " Param(parent='DecisionTreeClassifier_0bccbe6ff0a3', name='cacheNodeIds', doc='If false, the algorithm will pass trees to executors to match instances with nodes. If true, the algorithm will cache node IDs for each instance. Caching can speed up training of deeper trees. Users can set how often should the cache be checkpointed or disable it by setting checkpointInterval.'): False,\n", + " Param(parent='DecisionTreeClassifier_0bccbe6ff0a3', name='checkpointInterval', doc='set checkpoint interval (>= 1) or disable checkpoint (-1). E.g. 10 means that the cache will get checkpointed every 10 iterations. Note: this setting will be ignored if the checkpoint directory is not set in the SparkContext.'): 10,\n", + " Param(parent='DecisionTreeClassifier_0bccbe6ff0a3', name='impurity', doc='Criterion used for information gain calculation (case-insensitive). Supported options: entropy, gini'): 'gini',\n", + " Param(parent='DecisionTreeClassifier_0bccbe6ff0a3', name='leafCol', doc='Leaf indices column name. Predicted leaf index of each instance in each tree by preorder.'): '',\n", + " Param(parent='DecisionTreeClassifier_0bccbe6ff0a3', name='maxBins', doc='Max number of bins for discretizing continuous features. Must be >=2 and >= number of categories for any categorical feature.'): 50,\n", + " Param(parent='DecisionTreeClassifier_0bccbe6ff0a3', name='maxDepth', doc='Maximum depth of the tree. (>= 0) E.g., depth 0 means 1 leaf node; depth 1 means 1 internal node + 2 leaf nodes.'): 10,\n", + " Param(parent='DecisionTreeClassifier_0bccbe6ff0a3', name='maxMemoryInMB', doc='Maximum memory in MB allocated to histogram aggregation. If too small, then 1 node will be split per iteration, and its aggregates may exceed this size.'): 256,\n", + " Param(parent='DecisionTreeClassifier_0bccbe6ff0a3', name='minInfoGain', doc='Minimum information gain for a split to be considered at a tree node.'): 0.0,\n", + " Param(parent='DecisionTreeClassifier_0bccbe6ff0a3', name='minInstancesPerNode', doc='Minimum number of instances each child must have after split. If a split causes the left or right child to have fewer than minInstancesPerNode, the split will be discarded as invalid. Should be >= 1.'): 1500,\n", + " Param(parent='DecisionTreeClassifier_0bccbe6ff0a3', name='minWeightFractionPerNode', doc='Minimum fraction of the weighted sample count that each child must have after split. If a split causes the fraction of the total weight in the left or right child to be less than minWeightFractionPerNode, the split will be discarded as invalid. Should be in interval [0.0, 0.5).'): 0.0}" + ] + }, + "execution_count": 218, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Best Model Hyper parameters for the DT Grid Search Model\n", + "\n", + "dtModel_t.bestModel.stages[-1].extractParamMap()" + ] + }, + { + "cell_type": "code", + "execution_count": 167, + "metadata": {}, + "outputs": [], + "source": [ + "# Prediction output from the model to pandas\n", + "\n", + "prediction_dtbt=pred_dtt.toPandas()[\"prediction\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 168, + "metadata": {}, + "outputs": [], + "source": [ + "# True Labels from test data for Target Variable\n", + "\n", + "true_labels=us_test_cat.toPandas()[\"Severity\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 169, + "metadata": {}, + "outputs": [], + "source": [ + "# Initializing Classification Report from sklearn\n", + "\n", + "from sklearn.metrics import classification_report" + ] + }, + { + "cell_type": "code", + "execution_count": 170, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " precision recall f1-score support\n", + "\n", + " 0 0.88 0.57 0.70 131790\n", + " 1 0.49 0.85 0.62 64610\n", + "\n", + " accuracy 0.66 196400\n", + " macro avg 0.69 0.71 0.66 196400\n", + "weighted avg 0.76 0.66 0.67 196400\n", + "\n" + ] + } + ], + "source": [ + "# Classification Report Generation for all metrics display at once\n", + "\n", + "print(classification_report(y_pred=prediction_dtbt,y_true=true_labels))" + ] + }, + { + "cell_type": "code", + "execution_count": 171, + "metadata": {}, + "outputs": [], + "source": [ + "# Creating Pandas Dataframe for Features and their Importance of DT Grid Model for Binary Classification\n", + "\n", + "pd.set_option('display.max_rows', None)\n", + "feat_imp_tuned_dtbt= pd.DataFrame(list(zip([i for i in us_train_cat.columns if i!='Severity'], dtModel_t.bestModel.stages[-1].featureImportances)),\n", + " columns = ['column', 'weight']).sort_values('weight',ascending=False)" + ] + }, + { + "cell_type": "code", + "execution_count": 172, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Text(0.5, 1.0, 'Top 10 Features based on Importance from DT Binary Grid Model')" + ] + }, + "execution_count": 172, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "# Plotting top 10 Features from Feature Importance of DT Grid Model for Binary Classification\n", + "\n", + "plt.figure(figsize=(10,10))\n", + "sns.barplot(x=feat_imp_tuned_dtbt['column'][:10], y=feat_imp_tuned_dtbt['weight'][:10],data=feat_imp_tuned_dtbt)\n", + "plt.xticks(rotation=90)\n", + "plt.xlabel(\"Features\")\n", + "plt.ylabel(\"Weights\")\n", + "plt.title(\"Top 10 Features based on Importance from DT Binary Grid Model\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Logistic Regression " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Logistic Base Model Binary" + ] + }, + { + "cell_type": "code", + "execution_count": 107, + "metadata": {}, + "outputs": [], + "source": [ + "# Standard Scaler to standardize the output of vector assembler before feeding it to Logistic Regression\n", + "\n", + "center = feature.StandardScaler(withMean=True, withStd=False, inputCol='features', outputCol='centered_features')" + ] + }, + { + "cell_type": "code", + "execution_count": 109, + "metadata": {}, + "outputs": [], + "source": [ + "# Create initial LogisticRegression model\n", + "lr = LogisticRegression(labelCol=\"label\", featuresCol=\"centered_features\")\n", + "\n", + "# Pipeline for training data \n", + "\n", + "lrModel = Pipeline(stages=[label_stringIdx,va, center, lr])\n", + "\n", + "# Fit the train data using LR model\n", + "\n", + "lr_fit = lrModel.fit(us_train_cat)" + ] + }, + { + "cell_type": "code", + "execution_count": 110, + "metadata": {}, + "outputs": [], + "source": [ + "# Transsform test data to predict Severity by using fitted pipeline from training data\n", + "\n", + "pred_lrb = lr_fit.transform(us_test_cat)" + ] + }, + { + "cell_type": "code", + "execution_count": 111, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Test Area Under ROC for Logistic Base Model 0.7619402091983631\n" + ] + } + ], + "source": [ + "# Evaluator to get AUC Score for test data\n", + "\n", + "evaluator_lrb = BinaryClassificationEvaluator(labelCol='label',metricName='areaUnderROC')\n", + "print('Test Area Under ROC for Logistic Base Model ', evaluator_lrb.evaluate(lr_fit.transform(us_test_cat)))" + ] + }, + { + "cell_type": "code", + "execution_count": 112, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYIAAAEWCAYAAABrDZDcAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjMsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+AADFEAAAgAElEQVR4nO3deXxU5b3H8c8PSEjCFggQdgIYRKyIGEBc41bXXrW1datWW6vWWm17b6u3tXq7XrWby9W6XesO7kq97ktcUdlk38IethCWQBIg2+/+MYPGmIRJzMlk5nzfr1dezJnzzMz3IXB+c7bnMXdHRETCq0O8A4iISHypEIiIhJwKgYhIyKkQiIiEnAqBiEjIqRCIiIScCoGISMipEEhSMbNVZrbLzMrMbKOZPWhmXeu1OdzM3jKznWZWamb/MrPR9dp0N7NbzWxN9L0Ko8u9G/lcM7OrzWy+mZWbWZGZPWVmBwXZX5HWoEIgyegb7t4VGAscAvzn3hVmNgl4DXgBGAAMA+YAH5jZ8GibVOBN4EDgZKA7cDiwBZjQyGfeBlwDXA30AkYCzwOnNTe8mXVq7mtEvgrTncWSTMxsFXCpu78RXb4FONDdT4suvwfMc/cr673uZWCzu19kZpcCfwRGuHtZDJ+ZCywGJrn7J420KQAedff7o8sXR3MeGV124Crgp0An4FWgzN3/o857vAC84+5/M7MBwB3A0UAZ8Hd3vz2GvyKRL9EegSQtMxsEnAIURpcziHyzf6qB5k8CJ0YfnwC8EksRiDoeKGqsCDTDmcBEYDTwOHCOmRmAmfUEvg5MMbMOwL+I7MkMjH7+T83spK/4+RJSKgSSjJ43s53AWqAYuDH6fC8i/+Y3NPCaDcDe4/9ZjbRpTHPbN+a/3X2ru+8C3gMcOCq67mxgmruvB8YDfdz9d+5e6e4rgPuAc1shg4SQCoEkozPdvRuQD4zi8w38NqAW6N/Aa/oDJdHHWxpp05jmtm/M2r0PPHLMdgpwXvSp84HHoo+HAgPMbPveH+BXQHYrZJAQUiGQpOXu7wAPAn+JLpcD04BvN9D8O0ROEAO8AZxkZl1i/Kg3gUFmltdEm3Igo85yv4Yi11ueDJxtZkOJHDJ6Jvr8WmClu2fW+enm7qfGmFfkC1QIJNndCpxoZmOjy9cB34te6tnNzHqa2R+AScBvo20eIbKxfcbMRplZBzPLMrNfmdmXNrbuvgy4C5hsZvlmlmpmaWZ2rpldF232KfBNM8sws/2AH+wruLvPBjYD9wOvuvv26KpPgB1mdq2ZpZtZRzP7mpmNb8lfkIgKgSQ1d98MPAz8Jrr8PnAS8E0ix/VXE7nE9MjoBh1330PkhPFi4HVgB5GNb2/g40Y+6mrgf4A7ge3AcuAsIid1Af4OVAKbgIf4/DDPvkyOZnm8Tp9qgG8QuTx2JZFDWvcDPWJ8T5Ev0OWjIiIhpz0CEZGQUyEQEQk5FQIRkZBTIRARCbmEG9yqd+/enpOT06LXlpeX06VLrJeGJwf1ORzU53D4Kn2eOXNmibv3aWhdwhWCnJwcZsyY0aLXFhQUkJ+f37qB2jn1ORzU53D4Kn02s9WNrdOhIRGRkFMhEBEJORUCEZGQUyEQEQk5FQIRkZALrBCY2QNmVmxm8xtZb2Z2e3RS8LlmNi6oLCIi0rgg9wgeJDLxd2NOAXKjP5cB/wgwi4iINCKw+wjc/V0zy2miyRnAw9GZmD4ys0wz6+/urTHln4hIQqquqWXH7mq2V1SyfVcV2ysq2bxzD8U79mDbasgP4DPjeUPZQOpMzQcURZ/7UiEws8uI7DWQnZ1NQUFBiz6wrKysxa9NVOpzOKjP7VN1rVNW6ZRXQ0WVU17lVEQf76x0duz92fP5413Vjb/fiYM8kD7HsxBYA881ODmCu98L3AuQl5fnLb2zTncihoP6HA7x7HNNrbNpx27Wb9/F+tLon9t3sWnHbraUVbK1vJKSsj3s2N34Vt0Memak0rtrKn2yOjOqa2eyuqSSmZFCZnoKmRmp9Ig+7tOtM326dWba++8F0ud4FoIiYHCd5UHA+jhlERH5gtpaZ33pLlaWlLOqpJyVJRWs3lLOyi3lrN1aQVXNF7+3dk/rRHb3NHp37czoAd3J6pJKVtfO9OySSmZ6Ct3TU+ie1oke6Sl0S0uhZ0YKnTq2jws341kIpgJXmdkUIhNzl+r8gIi0td1VNazYXM6y4p0s3bST5cXlkY3/lnL2VNd+1i49pSNDszIY2bcbXx/dj8G90hmYGfnpn5lO184JN3TbZwJLbmaTgXygt5kVATcCKQDufjfwEnAqUAhUAJcElUVEpKqmllUl5SzZtJOlm8pYujGy4V+1pZza6Jf7jh2Mob0yGN6nC0eP7M2w3l0Z1rsLw3p3Ibt7Z8waOqKd+IK8aui8fax34MdBfb6IhNPuqhpWbSlnxeZylheXsbQ4stFfUVL22eGcDgY5WV3Ize7KaWP6k5vdjZHZkY1+504d49yDtpe4+zIiElq7Kmso2lnLaws2smZrBau3VHy28V9fuguvc/h+UM90RmZ3I39UH0b160Zu327s17craSnh2+A3RoVARNqd2lqneOce1m6rYO3WCtbs/dkS+bN4555Iww9mApETtUOzunDo0J58u88ghvfpyvDoIZ0uCXzsvq3ob0hE2lxVTS0btu9mXfSyy8hlmLtYt303RVsrKNq+i8o6J2rNoH/3NAb3yuCYkX0Y0iuD8uLVnHJkHkOzMsjMSI1jbxKfCoGItLrdVTXRDfxu1m2v+HwDv20XRdsq2Lhj92cnaPfq3TWV/j3SGdW/GyeOzmZQrwwG90xncK8MBmamf+lQTkHBOg4enNmGvUpeKgQi0my1tc6mnbtZVVLv0M3WCoq2VVBSVvmF9h0M+vdIZ2DPdA4bkcWgnhkMyowsD8hMp3+PNB2zjyMVAhFpUE2ts6F0F6tKIidiV28pZ9WWyE1Vq7dUfOEa+44djIGZ6QzplcEJB2RHrq+PbuQHZqbTr0caKe3k5in5MhUCkZDbVVnD8s1lLN9cxrJNZSwr3snyzeWs2VJBZc3nG/vOnTqQk9WFnKwu5O/fl6FZGQzt1YWhWRn075HWbu6SleZTIRAJidpaZ/XWChZt2MHijTtZsnEHSzbuZPXWis8ut+zUwRialcGIPl05/oC+n234c3pnkN0tjQ4dkvOGqrBTIRBJUhtLd/Pp2m3MKSplbtF25haVsjM6CNreG6pGD+jOmYcMZGR2N3L7dmVoVhdSO+mbfdioEIgkgcoaZ8aqrcxes53Za7cxe812NpTuBiLf8kf178Y3Dh7AwYN6MLp/D3KzdUOVfE6FQCQB7dxdxfRVW/l45VZmrtrGp2sqqH59GgBDemUwYVgvDhmcycGDMzmgf3dt9KVJKgQiCWBPdQ0zVm3jg8ISpq3YwtyiUmpqnZSOxkEDe3DC0BTOOmoM44b0pE+3zvGOKwlGhUCknVpVUs47SzfzztLNTFu+hV1VNXTqYBw8OJMfHTOCw0dkMW5oT9JSOkYmaTmwX7wjS4JSIRBpJ/ZU1/Dxiq28vaSYtxcXs2pLBQA5WRl8J28QR4/sw8ThWQk97r20T/oXJRJHu6tqKFhSzL/mbuDtxcVUVNbQuVMHJo3I4uLDc8jfvy85vbvEO6YkORUCkTZWUVnNu0s38/L8jbyxcBPllTVkdUnlzEMGcsIBfZk0vDfpqTq5K21HhUCkDWwrr+S1hRt5bcEm3issobK6lsyMFL5x8ABOHzOAw4b30p25EjcqBCIBqa6p5Z2lm3l6ZhFvLiqmsqaWgZnpXDBxCF8f3Y/xOT218Zd2QYVApBW5OwvW7+DZWeuYOmc9JWV76NUllQsOG8I3DxnE1wZ2T9p5byVxqRCItIL123fx3Ox1PDd7HYXFZaR0NI4b1ZdvjRtE/v59NWyDtGsqBCIttLuqhtcWbuKpGWt5v7AEd5iQ04s/nXUQpx7UT7NmScJQIRBppsLiMh7/eA3PzCqidFcVAzPT+clxuZw9bhBDsjLiHU+k2VQIRGJQVVPLK/M38uhHq/l45VZSOhonHdiPc8cP4fARWRqeWRKaCoFIE0rK9jD54zU8+vFqNu3Yw+Be6Vx78ii+nTeI3l01po8kBxUCkQYUFu/kvndX8tzsdVTW1HJUbm/+dNZB5O/fl4769i9JRoVApI7pq7ZyzzvLeWNRMWkpHfjO+EFcfPgw9uvbNd7RRAKjQiCh5+68u6yEO98q5JNVW+mZkcI1x+dy0aShZOnwj4SACoGElrvz5qJibn9rGXOLSunfI40bvzGac8cP0Vg/EioqBBI6ewvArW8uZf66HQzNyuCmbx7EN8cN0o1fEkoqBBIqHy4v4eaXFzOnqJQhvTL489ljOOuQgRrzR0JNhUBCYeH6Hdz8ymLeWbqZAT3SuPlbkT2AFBUAkWALgZmdDNwGdATud/eb6q3vATwKDIlm+Yu7/zPITBIuG0t385fXlvDMrCK6p6Xwq1NHcdGkHE3mLlJHYIXAzDoCdwInAkXAdDOb6u4L6zT7MbDQ3b9hZn2AJWb2mLtXBpVLwqGispq731nBve8up7YWfnjUcH6cvx89MlLiHU2k3Qlyj2ACUOjuKwDMbApwBlC3EDjQzSLj8nYFtgLVAWaSJOfufLi+mmv/UsCmHXs4bUx/rjt5FIN7aQwgkcaYuwfzxmZnAye7+6XR5QuBie5+VZ023YCpwCigG3COu/9fA+91GXAZQHZ29qFTpkxpUaaysjK6dg3XjUFh6vPK0hoeW1RJ4fZacrp34IIDUsntGY5DQGH6Pe+lPjfPscceO9Pd8xpaF+QeQUP34devOicBnwLHASOA183sPXff8YUXud8L3AuQl5fn+fn5LQpUUFBAS1+bqMLQ5+Idu7nl1SU8PbOI3l0784OvOb8+/4RQDQQXht9zfepz6wmyEBQBg+ssDwLW12tzCXCTR3ZLCs1sJZG9g08CzCVJoqqmlv99fyV3vLmMqhrn8mOGc9Wx+zHzow9CVQREvqogC8F0INfMhgHrgHOB8+u1WQMcD7xnZtnA/sCKADNJkpi+aiu/fm4eSzeVccIBfbn+tNHk9O4S71giCSmwQuDu1WZ2FfAqkctHH3D3BWZ2RXT93cDvgQfNbB6RQ0nXuntJUJkk8W0rr+SmlxfzxIy1DOiRxr0XHsrXD+wX71giCS3Q+wjc/SXgpXrP3V3n8Xrg60FmkOTxyvwNXP/8fLZXVHH50cO5+vhcunTWPZEiX5X+F0m7t7W8khtemM+Lczdw4IDuPPz9iYwe0D3esUSShgqBtFvuztQ56/ntvxayc3cV/37iSK7IH6FhIURamQqBtEsbSndx/XPzeXNxMQcPzuTmbx3EqH7aCxAJggqBtDtT56zn+ufmUVXjXH/aAVxyxDBNDykSIBUCaTdKd1Vx4wvzef7T9YwbksnfzxnL0CxdEioSNBUCaRfeX1bCL56eQ/HOPfz8xJFcmT9CcwSItBEVAomrXZU13PzKYh78cBXD+3ThmR8dztjBmfGOJRIqKgQSN8s27eTKx2axrLiMS47I4ZcnjdJcwSJxsM9CYGYZwL8DQ9z9h2aWC+zv7i8Gnk6S1lMz1nLDCwvo0rkjj/xgAkfl9ol3JJHQimWP4J/ATGBSdLkIeApQIZBmK9tTzQ0vzOfZWeuYNDyL284dS9/uafGOJRJqsRSCEe5+jpmdB+Duu6ITyYg0y7yiUq6eMpvVW8r56Qm5/OS4XF0WKtIOxFIIKs0snehcAmY2AtgTaCpJKu7O/76/kptfWUzvrp2Z/MPDmDg8K96xRCQqlkLwX8ArwGAzeww4gsg8AiL7tK28kl88PYc3FhVzwgHZ/PnsMfTskhrvWCJSxz4Lgbu/ZmYzgcOIDBV9jYaKlljMWrONqx6bxeayPdxw+mguOSIHHVUUaX9iuWroTXc/Hvi/Bp4T+RJ359GPVvO7FxfSr0caz/zocMYM0r0BIu1Vo4XAzNKADKC3mfXk8zmIuwMD2iCbJKDdVTX86rl5PDtrHcfu34dbzzmEHhkp8Y4lIk1oao/gcuCnRDb6M/m8EOwA7gw4lySgDaW7uPyRmcwtKuWnJ+Ry9XG5mjtYJAE0Wgjc/TbgNjP7ibvf0YaZJAHNWLWVKx6dxe6qGu67KI8TR2fHO5KIxCiWk8V3mNnXgNFAWp3nHw4ymCQGd+eRj1bzu38tZGDPdCb/cCK52d3iHUtEmiGWk8U3AvlECsFLwCnA+4AKQcjtrqrh18/N55lZRRw/qi9/+85YnQ8QSUCx3EdwNnAwMNvdLzGzbOD+YGNJe7ehdBeXPTyTeetKueb4XK45XucDRBJVLIVgl7vXmlm1mXUHioHhAeeSdmzm6m1c/shMnQ8QSRKxFIIZZpYJ3Efk6qEy4JNAU0m79fTMIn717Dz6Z6bpfIBIkojlZPGV0Yd3m9krQHd3nxtsLGlvamqdW15dzD3vrOCI/bK48/xxZGZoqAiRZNCsuQDdfRWwx8zuCyaOtEfle6q5/JGZ3PPOCr572BAevGSCioBIEmm0EJjZGDN7zczmm9kfzCzbzJ4B3gQWtl1EiaeNpbv5zj3TeGvxJn77bwfyhzMPIkVzCYsklaYODd0H/AOYBpwMzAIeBy5w991tkE3ibMH6Un7w4Ax27q7ify8ez7H79413JBEJQFOFoLO7Pxh9vMTM/gO4zt1rgo8l8TZt+RYufWg63dNTeOqKwxk9oHu8I4lIQJoqBGlmdgifjzFUBozZOzuZu88KOpzExxsLN3Hl47MY2iuDR34wkX49NJWkSDJrqhBsAP5WZ3ljnWUHjgsqlMTPC5+u4+dPzuHAAd156JIJmkRGJASaGnTu2K/65mZ2MnAb0BG4391vaqBNPnArkAKUuPsxX/VzpWWenL6Wa5+dy4ScXtz/vTy6pWm4CJEwiOWGshYxs45Ehqs+ESgCppvZVHdfWKdNJnAXcLK7rzEznY2Mk4c+XMWNUxdw9Mg+3PPdQ0lP7RjvSCLSRoK8DnACUOjuK9y9EpgCnFGvzfnAs+6+BsDdiwPMIw1wd25/cxk3Tl3AiaOzue8iFQGRsDF3D+aNzc4m8k3/0ujyhcBEd7+qTpu9h4QOBLoBtzU0vLWZXQZcBpCdnX3olClTWpSprKyMrl27tui1iaqpPte6M3lxJa+vrubwAZ34/tdS6ZQEA8fp9xwO6nPzHHvssTPdPa+hdbEMQ23ABcBwd/+dmQ0B+rn7vsYbamiLUr/qdAIOBY4H0oFpZvaRuy/9wovc7wXuBcjLy/P8/Px9xW5QQUEBLX1tomqszzW1znXPzOX11UVcckQOvzltdNKMHqrfczioz60nlkNDdwGTgPOiyzuJbarKImBwneVBwPoG2rzi7uXuXgK8S2TIawlQVU0t10yZzVMzi7jm+FxuOD15ioCINF8shWCiu/8Y2A3g7tuAWK4pnA7kmtkwM0sFzgWm1mvzAnCUmXUyswxgIrAo5vTSbFU1tVz1+CxenLuB604Zxc9OHEn01hARCalYrhqqil4B5ABm1geo3deL3L3azK4CXiVy+egD7r7AzK6Irr/b3RdFRzSdG33P+919fgv7IvtQU+v87IlPeXXBJm44fTTfP3JYvCOJSDsQSyG4HXgO6GtmfyQyY9n1sby5u79EZHrLus/dXW/5z8CfY0orLVZb61z7zFxenLuB/zxllIqAiHwmlvkIHjOzmURO6Bpwprvr8E0Cqa11fvPCfJ6eWcTVx+dy+TEj4h1JRNqRWK4aug14wt1jOUEs7UytR4rAYx+v4YpjRvCzE3LjHUlE2plYDg3NAq43s5FEDhE94e4zgo0lrcHdeWRhJW+vXcOV+SP4xUn768SwiHzJPq8acveH3P1UIncKLwVuNrNlgSeTr8TduXHqAt5eW82PVAREpAnNGWJiP2AUkAMsDiSNtAp353cvLuThaas5OSeFX6oIiEgTYjlHcDPwTWA58CTwe3ffHnQwabm/vraUf36wikuOyOHorsUqAiLSpFjOEawEJkXv/JV27r53V/A/bxdy7vjB3HD6aN55Z3O8I4lIO9doITCzUe6+GPgEGBIdY+gzmqGs/Xly+lr++NIiTjuoP3886yDtCYhITJraI/g5kRE//9rAOs1Q1s68Mn8D1z07l6Nye/P3c8bSUWMHiUiMmpqh7LLow1PcfXfddWamSWzbkQ8LS7h68qccPDiTey48lNROQU4zISLJJpYtxocxPidxMK+olB8+PIOc3hn88+LxZKQGNumciCSpps4R9AMGAulmdgifzy/QHchog2yyDytLyrn4n5+QmZHKw9+fSGaGJpoXkeZr6uvjScDFROYR+Fud53cCvwowk8Rg8849XPTAxzjwyA8m0K+HjtaJSMs0dY7gIeAhM/uWuz/ThplkHyoqq7n0oels3rmHKZdNYnifcE3XJyKtq6lDQ99190eBHDP7ef317v63Bl4mAaupda6e/Cnz1pVyz4V5jB2cGe9IIpLgmjo01CX6p75utiN//L9FvLFoE78740BOHJ0d7zgikgSaOjR0T/TP37ZdHGnKIx+t5oEPVnLJETlcNCkn3nFEJEns8/JRM7vFzLqbWYqZvWlmJWb23bYIJ597b9lm/mvqAo4b1ZfrTxsd7zgikkRiuY/g6+6+AzgdKAJGAr8INJV8QWFxGVc+Novcvl25/bxDdNewiLSqWApBSvTPU4HJ7r41wDxSz/aKSi59aDqdO3Xg/u/l0bWzbhgTkdYVy1blX2a2GNgFXGlmfYDd+3iNtIKaWucnk2ezfvtuJl82kUE9dR+fiLS+WGYouw6YBOS5exVQDpwRdDCBv762hPeWlfD7Mw/k0KG94h1HRJJULBPTpAAXAkdHhzV+B7g74Fyh98r8jdxVsJzzJgzhnPFD9v0CEZEWiuXQ0D+InCe4K7p8YfS5S4MKFXYrNpfxH0/N4eDBmfzXv+kKIREJViyFYLy7H1xn+S0zmxNUoLDbVVnDlY/NIqWjcdcF4+jcqWO8I4lIkovlqqEaMxuxd8HMhgM1wUUKL3fn18/PY8mmndx27iEMzEyPdyQRCYFY9gh+AbxtZiuIDEU9FLgk0FQh9cT0tTw7ax0/PSGXo0f2iXccEQmJfRYCd3/TzHKB/YkUgsXuvifwZCEzf10pN0xdwFG5vfnJcbnxjiMiIdLooSEzyzWzF8xsPvAgsMXd56gItL6yPdVc9fgsemWkcqvmGxaRNtbUOYIHgBeBbwGzgDvaJFEI3fjCAtZsreC2c8eS1bVzvOOISMg0dWiom7vfF338ZzOb1RaBwuaFT9fxzKwirjk+l4nDs+IdR0RCqKk9gjQzO8TMxpnZOKJzF9dZ3iczO9nMlphZoZld10S78WZWY2ZnN7cDiWz1lnJ+/dx8xuf05CfH7RfvOCISUk3tEWzgi3MVb6yz7MBxTb2xmXUE7gROJDJq6XQzm+ruCxtodzPwavOiJ7bK6lqunjybDga3nnsInTrGciWviEjra2pimmO/4ntPAArdfQWAmU0hMkbRwnrtfgI8A4z/ip+XUP76+hLmFJXyjwvG6X4BEYmrIMc0HgisrbNcBEys28DMBgJnEdm7aLQQmNllwGUA2dnZFBQUtChQWVlZi1/bmhaU1HDPjN3kD+pE+pYlFBQsCeyz2kuf25L6HA7qc+sJshA0dA2k11u+FbjW3WuiA9o1yN3vBe4FyMvL8/z8/BYFKigooKWvbS1byyv55a3vMqJPF/5x2VGkpwY7hER76HNbU5/DQX1uPUEWgiJgcJ3lQcD6em3ygCnRItAbONXMqt39+QBzxdX1z89je0UV/7xkfOBFQEQkFrHMWWxm9l0zuyG6PMTMJsTw3tOBXDMbZmapwLnA1LoN3H2Yu+e4ew7wNHBlMheBl+Zt4KV5G7nmhFwOHNAj3nFERIDYBp27i8jENOdFl3cSuRqoSe5eDVxF5GqgRcCT7r7AzK4wsytamDdhbdqxm189N48xg3pw+dHD4x1HROQzsRwamuju48xsNoC7b4t+w98nd38JeKnecw1OauPuF8fynomottb59yfnsKeqlr+fM1aXiopIuxLLFqkqeq2/A0TnLK4NNFWSefDDVbxfWMJvTh/NiD5d4x1HROQLYikEtwPPAX3N7I/A+8CfAk2VRFaVlHPLq4s5blRfzpsweN8vEBFpY7EMQ/2Ymc0EjidySeiZ7r4o8GRJoLbW+eUzc0np2IE/nXUQTV0iKyISL7FcNTQCWOnudwLzgRPNLDPwZEng0Y9X88nKrfzm9NH065EW7zgiIg2K5dDQM0Smq9wPuB8YBjweaKoksHZrBTe9vJijR/bh24cOinccEZFGxVIIaqOXgn4TuM3dfwb0DzZWYnN3rnt2Lh3M+O9v6pCQiLRvsV41dB5wEZGJagBSgouU+J6eWcQHhVv4z1NHaUA5EWn3YikElxC5oeyP7r7SzIYBjwYbK3FtK6/kv19ezKFDe3Le+CHxjiMisk+xXDW0ELi6zvJK4KYgQyWyW15dTOmuKv5w5tfooLmHRSQBNFoIzGweXx4t9DPuPiaQRAls1pptTP5kLZceOYwD+nePdxwRkZg0tUdwepulSAI1tc5vnp9PdvfO/PTEkfGOIyISs6ZmKFvdlkES3eMfr2bB+h3ccd4hdO0c5OjeIiKtK5Ybyg4zs+lmVmZmldFJ5ne0RbhEsb2ikr++vpRJw7M4fYyurBWRxBLLVUP/Q2QI6mVAOnApcEeQoRLNbW8uY8euKm74xmjdMyAiCSemYxjuXmhmHd29BvinmX0YcK6EsWJzGY9MW80544foBLGIJKRYCkFFdP6BT83sFmAD0CXYWInjb68vJbVTB36uE8QikqBiOTR0YbTdVUA5kXmIvxVkqESxYH0pL87dwPePGEafbp3jHUdEpEWauo9giLuvqXP10G7gt20TKzH89bWldE/rxA819aSIJLCm9gg+m0TezJ5pgywJZcaqrby1uJjLjxlBj3QNvSQiiaupQlD38hd95a3D3bnllSX06daZ7x8xLN5xRES+kqYKgTfyOPTeWbqZT1Zt5erj9iM9tWO844iIfCVNXTV0cPTGMQPS69xEZoC7eyivlXR3buGAxtcAAA1pSURBVH1jGQMz0zlHo4uKSBJoaogJfdVtwLvLSvh07Xb+dNZBpHaK5aIrEZH2TVuyZnB3bn9zGQN6pHG2pp8UkSShQtAM05ZvYebqbfwof4T2BkQkaWhr1gy3v7WMvt068+28wfGOIiLSalQIYjRj1VY+WrGVy48ZQVqKTp+ISPJQIYjRHW8VktUllfMmaG9ARJKLCkEM5hWV8s7SzXz/yGFkpGrSGRFJLioEMbiroJBuaZ24cNLQeEcREWl1gRYCMzvZzJaYWaGZXdfA+gvMbG7050MzOzjIPC2xdmsFry7YyHcPG0r3NI0pJCLJJ7BCYGYdgTuBU4DRwHlmNrpes5XAMe4+Bvg9cG9QeVrqvvdW0LGD8b1JOfGOIiISiCD3CCYAhe6+wt0rgSnAGXUbuPuH7r4tuvgR0K7u0tpStocnZ6zlrEMG0q9HWrzjiIgEIsgznwOBtXWWi4CJTbT/AfByQyvM7DLgMoDs7GwKCgpaFKisrKxZr31uWSW7q2oZm7alxZ8Zb83tczJQn8NBfW49QRaChmZxb3AUUzM7lkghOLKh9e5+L9HDRnl5eZ6fn9+iQAUFBcT62t1VNfz7e29xwgF9Of/08S36vPagOX1OFupzOKjPrSfIQlBEZFrLvQYB6+s3MrMxwP3AKe6+JcA8zfLCp+vYUl7J94/UfAMiktyCPEcwHcg1s2FmlgqcC0yt28DMhgDPAhe6+9IAszSLu/PA+6s4oH93Jg3PinccEZFABbZH4O7VZnYV8CrQEXjA3ReY2RXR9XcDNwBZwF1mBlDt7nlBZYrVtOVbWLJpJ7ecPYZoLhGRpBXobbLu/hLwUr3n7q7z+FLg0iAztMQ/P1xFry6p/NvBA+IdRUQkcLqzuJ61Wyt4c9EmzpswWIPLiUgoqBDUM/mTNQBcMFHDSYhIOKgQ1FFVU8uTM4o4blRfBmSmxzuOiEibUCGo442Fmygp28P5EzUpvYiEhwpBHZOnr2VAjzSOGdk33lFERNqMCkHUuu27eG/ZZs7OG0zHDrpkVETCQ4Ug6qkZkWGRvn1ouxr3TkQkcCoEQG2t89SMIo4Y0ZvBvTLiHUdEpE2pEAAfLC9h3fZdnDNe8xGLSPioEABPTF9LZkYKXz8wO95RRETaXOgLQemuKl5bsIkzxw6kcyfdSSwi4RP6QvDyvA1U1tTyrXE6SSwi4RT6QvDc7HUM79OFrw3sHu8oIiJxEepCsG77Lj5euZUzxw7UcNMiElqhLgT/mhOZMO3MsQPjnEREJH5CXQimfrqesYMzGZKlewdEJLxCWwgKi3eycMMOzhiryWdEJNxCWwhenLsBMzjtoP7xjiIiElehLQQvzdvA+Jxe9O2eFu8oIiJxFcpCUFi8k6WbyrQ3ICJCSAvBG4uKATjpwH5xTiIiEn+hLATvLt3MqH7d6NdDh4VEREJXCCoqq5mxahtHj+wT7ygiIu1C6ArBxyu3UllTy5H79Y53FBGRdiF0hWDa8i2kduzA+Jxe8Y4iItIuhLIQjB2SSXqqhpwWEYGQFYLyKmf++lImDc+KdxQRkXYjVIVg9Y5a3CEvp2e8o4iItBuhKgQrS2sA+NqAHnFOIiLSfoSqEKzaUcvgXun07JIa7ygiIu1GqArB2p21jO6vmchEROoKtBCY2clmtsTMCs3sugbWm5ndHl0/18zGBZWluqaWzRXO8D5dg/oIEZGEFFghMLOOwJ3AKcBo4DwzG12v2SlAbvTnMuAfQeVZt30XNQ7DencJ6iNERBJSkHsEE4BCd1/h7pXAFOCMem3OAB72iI+ATDMLZEjQFSXlgAqBiEh9nQJ874HA2jrLRcDEGNoMBDbUbWRmlxHZYyA7O5uCgoJmh1m2rYYxvZwNS+dQsCo8E9WXlZW16O8rkanP4aA+t54gC0FDW1tvQRvc/V7gXoC8vDzPz89vdph8YGRBAS15bSIrUJ9DQX0Oh6D6HOShoSJgcJ3lQcD6FrQREZEABVkIpgO5ZjbMzFKBc4Gp9dpMBS6KXj10GFDq7hvqv5GIiAQnsEND7l5tZlcBrwIdgQfcfYGZXRFdfzfwEnAqUAhUAJcElUdERBoW5DkC3P0lIhv7us/dXeexAz8OMoOIiDQtVHcWi4jIl6kQiIiEnAqBiEjIqRCIiIScRc7XJg4z2wysbuHLewMlrRgnEajP4aA+h8NX6fNQd+/T0IqEKwRfhZnNcPe8eOdoS+pzOKjP4RBUn3VoSEQk5FQIRERCLmyF4N54B4gD9Tkc1OdwCKTPoTpHICIiXxa2PQIREalHhUBEJOSSshCY2clmtsTMCs3sugbWm5ndHl0/18zGxSNna4qhzxdE+zrXzD40s4PjkbM17avPddqNN7MaMzu7LfMFIZY+m1m+mX1qZgvM7J22ztjaYvi33cPM/mVmc6J9TuhRjM3sATMrNrP5jaxv/e2XuyfVD5Ehr5cDw4FUYA4wul6bU4GXicyQdhjwcbxzt0GfDwd6Rh+fEoY+12n3FpFRcM+Od+42+D1nAguBIdHlvvHO3QZ9/hVwc/RxH2ArkBrv7F+hz0cD44D5jaxv9e1XMu4RTAAK3X2Fu1cCU4Az6rU5A3jYIz4CMs2sf1sHbUX77LO7f+ju26KLHxGZDS6RxfJ7BvgJ8AxQ3JbhAhJLn88HnnX3NQDunuj9jqXPDnQzMwO6EikE1W0bs/W4+7tE+tCYVt9+JWMhGAisrbNcFH2uuW0SSXP78wMi3ygS2T77bGYDgbOAu0kOsfyeRwI9zazAzGaa2UVtli4YsfT5f4ADiExzOw+4xt1r2yZeXLT69ivQiWnixBp4rv41srG0SSQx98fMjiVSCI4MNFHwYunzrcC17l4T+bKY8GLpcyfgUOB4IB2YZmYfufvSoMMFJJY+nwR8ChwHjABeN7P33H1H0OHipNW3X8lYCIqAwXWWBxH5ptDcNokkpv6Y2RjgfuAUd9/SRtmCEkuf84Ap0SLQGzjVzKrd/fm2idjqYv23XeLu5UC5mb0LHAwkaiGIpc+XADd55AB6oZmtBEYBn7RNxDbX6tuvZDw0NB3INbNhZpYKnAtMrddmKnBR9Oz7YUCpu29o66CtaJ99NrMhwLPAhQn87bCuffbZ3Ye5e4675wBPA1cmcBGA2P5tvwAcZWadzCwDmAgsauOcrSmWPq8hsgeEmWUD+wMr2jRl22r17VfS7RG4e7WZXQW8SuSKgwfcfYGZXRFdfzeRK0hOBQqBCiLfKBJWjH2+AcgC7op+Q672BB65McY+J5VY+uzui8zsFWAuUAvc7+4NXoaYCGL8Pf8eeNDM5hE5bHKtuyfs8NRmNhnIB3qbWRFwI5ACwW2/NMSEiEjIJeOhIRERaQYVAhGRkFMhEBEJORUCEZGQUyEQEQk5FQJpl8wsKzqC5qdmttHM1tVZTm3FzznBzEqj77vIzH7dgvfoaGbvRR8PN7Nz66ybaGZ/b+Wci83sphheM87MTv6qny3JT4VA2iV33+LuY919LJGxgv6+dzk6+Nje4Xhb49/w29HPGQ/8oLlDdLt7jbsfFV0cTuSmp73rPnb3n7VCxro5xwHfMrOJ+2g/DlAhkH1SIZCEYmb7mdl8M7sbmAUMNrPtddafa2b3Rx9nm9mzZjbDzD6J3oXZKHcvi77nCDNLN7OHzGyemc0ys6Oj73mQmU2PfjOfG90D6FQnw03AsdH1V0e/yT8f3WtYbWbdo+9jZrbCzHq3IGcFkeGYB0bf6zAzm2Zms83sAzPLNbN0IjcRXhDNcraZdTWzB6OfMdvMvtH834AkIxUCSUSjgf9190OAdU20ux24JXoH9XeIjLPUKDPrQ2TY4wXA1UClux8EXAg8Ej0kdSXwlzp7EPXHeLmO6Dd3d79975PuXgO8yOdDKB8OLI3eAdvcnL2I7Hm8H31qEXBk9O/j98Af3H0X8DvgsWiWp4kUhlfcfQKRAdr+amZpTX2WhEPSDTEhobDc3afH0O4EYH/7fOTRnmaWHt1I1nWsmc0mMiTD7919iZkdCfwZIDqkwXpgP+BD4HozG0pk3P9CM4v1/9ETwC+BR4gcPnqiBTnnEhlQ7fd15hrIBB42sxH7+PyvA6fY57N8pQFDSNwB6aSVqBBIIiqv87iWLw7LW/cbrgET9p5TaMLb7n5mvecaHLfa3R8xs2nAaUSGO/4ekeIQi/eIjImTBfwb8JuW5DSzUcB7Zva8u88D/gi86u53mdl+wCuNvN6AM919eYx5JSR0aEgSWnQCkm3R4+IdiExEs9cbwI/3LpjZ2Ga89bvABdHXHQD0JzLE8XB3L3T324D/A8bUe91OoFsjWZ3I6KC3AnPcfe95hWbldPfFwC1E9i4AevD5IbKLm8jyKpFDXns/55CmPkfCQ4VAksG1RL4Fv0lkrPa9fgwcET2puxD4YTPe8w4gPTqi5WPARdFv7OdbZIL0T4kcp3+03utmAx0tMpH61XzZE8B3+fywUEtz3gUcb5HhxW8G/mxmH9Rr8xZwcPTE8NnAb4GM6AnwBcB/xfA5EgIafVREJOS0RyAiEnIqBCIiIadCICIScioEIiIhp0IgIhJyKgQiIiGnQiAiEnL/D5w4G8QO1cizAAAAAElFTkSuQmCC\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Training set areaUnderROC: 0.7627619042131226\n" + ] + } + ], + "source": [ + "# ROC Curve for LR Base Model\n", + "\n", + "trainingSummary = lr_fit.stages[-1].summary\n", + "roc = trainingSummary.roc.toPandas()\n", + "plt.plot(roc['FPR'],roc['TPR'])\n", + "plt.ylabel('False Positive Rate')\n", + "plt.xlabel('True Positive Rate')\n", + "plt.title('ROC Curve')\n", + "plt.grid(True)\n", + "plt.show()\n", + "print('Training set areaUnderROC: ' + str(trainingSummary.areaUnderROC))" + ] + }, + { + "cell_type": "code", + "execution_count": 113, + "metadata": {}, + "outputs": [], + "source": [ + "# Logistic Regression Coefficients to Array \n", + "\n", + "coef_l1=lr_fit.stages[-1].coefficientMatrix.toArray()" + ] + }, + { + "cell_type": "code", + "execution_count": 114, + "metadata": {}, + "outputs": [], + "source": [ + "# to stack the coefficient array column wise for further analysis\n", + "\n", + "cof_l1=np.hstack(coef_l1)" + ] + }, + { + "cell_type": "code", + "execution_count": 116, + "metadata": {}, + "outputs": [], + "source": [ + "# Creating pandas dataframe with Logistic Regression weights for each variable along with variable name\n", + "\n", + "pd.set_option('display.max_rows', None)\n", + "feat_imp_tuned_b = pd.DataFrame(list(zip([i for i in us_train_cat.columns if i!='Severity'], cof_l1)),\n", + " columns = ['column', 'weight']).sort_values('weight',ascending=False)" + ] + }, + { + "cell_type": "code", + "execution_count": 117, + "metadata": {}, + "outputs": [], + "source": [ + "# Coefficient from LR model for each variable\n", + "\n", + "coef_L1=lr_fit.stages[-1].coefficients.toArray()" + ] + }, + { + "cell_type": "code", + "execution_count": 146, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([ 6.10404226e-02, 3.84503967e-01, 5.55462923e-01, 2.83682423e-02,\n", + " 3.11545767e-01, 5.72957889e-01, 2.68684159e-01, 6.40513508e-01,\n", + " 2.39662302e-01, 7.29093517e-01, 3.38870399e-01, 6.35365038e-01,\n", + " 3.42524554e-01, 3.00627117e-01, 2.86496247e-01, 3.33305131e-01,\n", + " 1.74724528e-01, 7.28250150e-01, 4.11683887e-01, 1.01770132e-01,\n", + " 7.77776525e-02, 4.80918989e-01, 1.93834032e-01, 6.10964689e-02,\n", + " 7.07937460e-02, -2.46781145e-02, 3.25562566e-02, 1.93521868e+00,\n", + " 6.98425343e-01, 2.44544359e-01, -2.92797816e-01, 4.20970924e-01,\n", + " 1.18834527e+00, -4.98702447e-01, 1.49876162e+00, -3.76084559e-01,\n", + " 8.73144768e-01, 1.01459587e+00, -3.68386095e-01, 8.15470313e-01,\n", + " 1.02401163e+00, 1.33550551e+00, 9.34355323e-01, -5.02078892e-02,\n", + " 1.90952537e+00, 1.15563651e+00, 6.80595337e-01, 5.58708379e-02,\n", + " 2.25339626e-02, 2.20958954e-02, 7.43138848e-04, 6.98986882e-01,\n", + " 6.92230035e-01, 3.43491620e-01, 1.09905601e-01, -6.59910295e-02,\n", + " 2.73193089e-01, 6.57264786e-02, 1.43917276e-01, 6.74550394e-05,\n", + " 7.00180998e-02, 2.05815870e-01, 3.62644772e-01, 2.44123017e-01,\n", + " 8.74585264e-02, 2.65865377e-02, 1.39148506e-02, -3.64614378e-02,\n", + " 3.60980672e-02, 5.39018526e-02, 6.97262794e-02, 3.48474891e-02,\n", + " 7.32900545e-02, 9.03299822e-03, 3.43603153e-02, 1.55938700e-02,\n", + " 1.39685633e-02, 3.34354498e-02, 4.88498457e-02, 7.42683555e-02,\n", + " 6.41895294e-03, -1.52099373e+00, -2.92797816e-01, 3.21061922e-01,\n", + " 1.12504363e-01, 9.90974565e-02, 8.69937407e-01, -3.11252258e-01,\n", + " -4.64919144e-02, 7.05797649e-02, 2.02713308e-01, -2.74288756e-03,\n", + " 4.03122329e-01, 2.52918849e-01, 3.42967380e-01, -3.63234523e-01,\n", + " -1.65340324e-01, 2.05437823e-01, 2.01133559e-01, 3.13500571e-01,\n", + " 3.03022094e-01, -3.83431591e-03, 1.29392900e-04, 5.04152924e-02,\n", + " 1.42110421e-02, 9.75298836e-03, 3.16315594e-02, -7.36661603e-01,\n", + " 3.93267264e-01, -6.70645537e-01, 3.50216355e-01, 1.91966480e-01,\n", + " 3.17809826e-02, 1.69946149e-01, -2.11351631e+00, -4.39883557e-01,\n", + " -1.60607312e+00, -9.26287099e-01, -1.28426974e+00])" + ] + }, + "execution_count": 146, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "coef_L1" + ] + }, + { + "cell_type": "code", + "execution_count": 156, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Total number of features are 119\n", + "Eliminated features out of 119 are 0\n" + ] + } + ], + "source": [ + "# Taking absolute values of weights and calculating the number of features eliminated by LR Model after L1 regularization \n", + "\n", + "coef_L1 = np.absolute(coef_L1)\n", + "\n", + "print('Total number of features are',len(coef_L1))\n", + "\n", + "sorted_abs = np.sort(coef_L1)\n", + "\n", + "weights_notzero = sorted_abs[sorted_abs == 0]\n", + "nonzero_weights = len(sorted_abs[sorted_abs == 0])\n", + "\n", + "print('Eliminated features out of ' + str(len(coef_L1)) + ' are', nonzero_weights)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 140, + "metadata": {}, + "outputs": [], + "source": [ + "# Prediction output from the model to pandas\n", + "\n", + "prediction_lrbal=pred_lrb.toPandas()[\"prediction\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 141, + "metadata": {}, + "outputs": [], + "source": [ + "# True Labels from test data for Target Variable\n", + "\n", + "true_labels=us_test_cat.toPandas()[\"Severity\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 142, + "metadata": {}, + "outputs": [], + "source": [ + "# Initializing Classification Report from sklearn\n", + "\n", + "from sklearn.metrics import classification_report" + ] + }, + { + "cell_type": "code", + "execution_count": 143, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " precision recall f1-score support\n", + "\n", + " 0 0.85 0.63 0.72 131790\n", + " 1 0.50 0.77 0.61 64610\n", + "\n", + " accuracy 0.67 196400\n", + " macro avg 0.67 0.70 0.66 196400\n", + "weighted avg 0.73 0.67 0.68 196400\n", + "\n" + ] + } + ], + "source": [ + "# Classification Report Generation for all metrics display at once\n", + "\n", + "print(classification_report(y_pred=prediction_lrbal,y_true=true_labels))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Logistic Binary Grid Search Binary" + ] + }, + { + "cell_type": "code", + "execution_count": 183, + "metadata": {}, + "outputs": [], + "source": [ + "# Logistic Regression Pipeline initialization\n", + "\n", + "lr_new = LogisticRegression(labelCol=\"label\", featuresCol=\"centered_features\")" + ] + }, + { + "cell_type": "code", + "execution_count": 187, + "metadata": {}, + "outputs": [], + "source": [ + "# Grid Search for tuning the hyper parameters of Logistic Regression Model\n", + "\n", + "paramGrid_lr = ParamGridBuilder().addGrid(lr_new.regParam, [0.01, 0.04,0.07]).addGrid(lr_new.elasticNetParam, [0.1,0.4,0.7]).build()" + ] + }, + { + "cell_type": "code", + "execution_count": 185, + "metadata": {}, + "outputs": [], + "source": [ + "# Creating pipeline to be used for fitting the training data\n", + "\n", + "cvModel_lrbal = Pipeline(stages=[label_stringIdx,va,center,lr_new])" + ] + }, + { + "cell_type": "code", + "execution_count": 186, + "metadata": {}, + "outputs": [], + "source": [ + "# Initializing Binary Evaluator for evaluating the model performance\n", + "\n", + "evaluator_lrbt = BinaryClassificationEvaluator(labelCol='label',metricName='areaUnderROC')" + ] + }, + { + "cell_type": "code", + "execution_count": 188, + "metadata": {}, + "outputs": [], + "source": [ + "# Cross validator pipeline initialization for 5-fold cross validation and fitting the train data\n", + "\n", + "cv_lrbal = CrossValidator(estimator=cvModel_lrbal, estimatorParamMaps=paramGrid_lr, evaluator=evaluator_lrbt, numFolds=5,seed=42).fit(us_train_cat)" + ] + }, + { + "cell_type": "code", + "execution_count": 189, + "metadata": {}, + "outputs": [], + "source": [ + "# Testing the test data on fitted 5 fold cv pipeline\n", + "\n", + "pred_lrbalt=cv_lrbal.transform(us_test_cat)" + ] + }, + { + "cell_type": "code", + "execution_count": 190, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "AUC Score is 0.7612376191461516\n" + ] + } + ], + "source": [ + "# Accuracy calculation from the Multiclass evaluator\n", + "\n", + "print(\"AUC Score is\",evaluator_lrbt.evaluate(pred_lrbalt))" + ] + }, + { + "cell_type": "code", + "execution_count": 191, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Training set areaUnderROC: 0.7622374995379829\n" + ] + } + ], + "source": [ + "# ROC Curve for Logistic Regression Grid Search Model\n", + "\n", + "trainingSummary_t = cv_lrbal.bestModel.stages[-1].summary\n", + "roc = trainingSummary_t.roc.toPandas()\n", + "plt.plot(roc['FPR'],roc['TPR'])\n", + "plt.ylabel('False Positive Rate')\n", + "plt.xlabel('True Positive Rate')\n", + "plt.title('ROC Curve')\n", + "plt.grid(True)\n", + "plt.show()\n", + "print('Training set areaUnderROC: ' + str(trainingSummary_t.areaUnderROC))" + ] + }, + { + "cell_type": "code", + "execution_count": 212, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{Param(parent='LogisticRegression_f000cca535b6', name='aggregationDepth', doc='suggested depth for treeAggregate (>= 2).'): 2,\n", + " Param(parent='LogisticRegression_f000cca535b6', name='elasticNetParam', doc='the ElasticNet mixing parameter, in range [0, 1]. For alpha = 0, the penalty is an L2 penalty. For alpha = 1, it is an L1 penalty.'): 0.1,\n", + " Param(parent='LogisticRegression_f000cca535b6', name='featuresCol', doc='features column name.'): 'centered_features',\n", + " Param(parent='LogisticRegression_f000cca535b6', name='fitIntercept', doc='whether to fit an intercept term.'): True,\n", + " Param(parent='LogisticRegression_f000cca535b6', name='labelCol', doc='label column name.'): 'label',\n", + " Param(parent='LogisticRegression_f000cca535b6', name='predictionCol', doc='prediction column name.'): 'prediction',\n", + " Param(parent='LogisticRegression_f000cca535b6', name='probabilityCol', doc='Column name for predicted class conditional probabilities. Note: Not all models output well-calibrated probability estimates! These probabilities should be treated as confidences, not precise probabilities.'): 'probability',\n", + " Param(parent='LogisticRegression_f000cca535b6', name='rawPredictionCol', doc='raw prediction (a.k.a. confidence) column name.'): 'rawPrediction',\n", + " Param(parent='LogisticRegression_f000cca535b6', name='standardization', doc='whether to standardize the training features before fitting the model.'): True,\n", + " Param(parent='LogisticRegression_f000cca535b6', name='threshold', doc='Threshold in binary classification prediction, in range [0, 1]. If threshold and thresholds are both set, they must match.e.g. if threshold is p, then thresholds must be equal to [1-p, p].'): 0.5,\n", + " Param(parent='LogisticRegression_f000cca535b6', name='family', doc='The name of family which is a description of the label distribution to be used in the model. Supported options: auto, binomial, multinomial'): 'auto',\n", + " Param(parent='LogisticRegression_f000cca535b6', name='maxIter', doc='max number of iterations (>= 0).'): 100,\n", + " Param(parent='LogisticRegression_f000cca535b6', name='regParam', doc='regularization parameter (>= 0).'): 0.01,\n", + " Param(parent='LogisticRegression_f000cca535b6', name='tol', doc='the convergence tolerance for iterative algorithms (>= 0).'): 1e-06}" + ] + }, + "execution_count": 212, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Best Model Hyper parameters after Tuning LR Model\n", + "\n", + "cv_lrbal.bestModel.stages[-1].extractParamMap()" + ] + }, + { + "cell_type": "code", + "execution_count": 194, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.6688034623217922" + ] + }, + "execution_count": 194, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Accuracy Calculation for the test data from the model\n", + "\n", + "binary_prediction=pred_lrbalt.select(\"prediction\").collect()\n", + "\n", + "binary_true_labels=us_test_cat.select(\"Severity\").collect()\n", + "\n", + "np.sum(list([int(binary_true_labels[i][0]==binary_prediction[i][0]) for i in range(len(true_labels))]))/len(true_labels)" + ] + }, + { + "cell_type": "code", + "execution_count": 195, + "metadata": {}, + "outputs": [], + "source": [ + "# Prediction output from the model to pandas\n", + "\n", + "prediction_lrbalt=pred_lrbalt.toPandas()[\"prediction\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 196, + "metadata": {}, + "outputs": [], + "source": [ + "# True Labels from test data for Target Variable\n", + "\n", + "true_labels=us_test_cat.toPandas()[\"Severity\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 197, + "metadata": {}, + "outputs": [], + "source": [ + "# Initializing Classification Report from sklearn\n", + "\n", + "from sklearn.metrics import classification_report" + ] + }, + { + "cell_type": "code", + "execution_count": 198, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " precision recall f1-score support\n", + "\n", + " 0 0.85 0.61 0.71 131790\n", + " 1 0.50 0.78 0.61 64610\n", + "\n", + " accuracy 0.67 196400\n", + " macro avg 0.67 0.70 0.66 196400\n", + "weighted avg 0.74 0.67 0.68 196400\n", + "\n" + ] + } + ], + "source": [ + "# Classification Report Generation for all metrics display at once\n", + "\n", + "print(classification_report(y_pred=prediction_dtbalt,y_true=true_labels))" + ] + }, + { + "cell_type": "code", + "execution_count": 199, + "metadata": {}, + "outputs": [], + "source": [ + "# Coefficient from LR model for each variable\n", + "\n", + "coef_L1_m=cv_lrbal.bestModel.stages[-1].coefficients.toArray()" + ] + }, + { + "cell_type": "code", + "execution_count": 200, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([-0.05730593, 0.1631614 , 0.22683363, -0.0922915 , 0.12743824,\n", + " 0.22850115, 0.0874906 , 0.29489116, 0. , 0.37672293,\n", + " 0.15445802, 0.28753523, 0.14824354, 0.00970946, 0.10372804,\n", + " 0.08653566, 0. , 0.37548958, 0.13350159, -0.01698079,\n", + " -0.04548731, 0.17180723, 0.01903713, 0.10730425, 0.08693924,\n", + " 0.01656798, 0.06626178, 1.65740542, 0.5776856 , 0. ,\n", + " -0.25852766, 0.34445895, 0.99689203, -0.21432981, 1.33791048,\n", + " 0. , 0.80841273, 0.59158904, -0.23910861, 0.58651763,\n", + " 0.90778268, 0.11721702, 0.81946075, 0. , 1.58545586,\n", + " 0.78832342, 0.50243283, 0.0249303 , 0. , 0. ,\n", + " -0.01444565, 0.63605211, 0.62860006, 0.22391409, 0.02995857,\n", + " -0.11490668, 0.14692048, 0. , 0.02469895, -0.06192017,\n", + " 0. , 0.10814645, 0.23145346, 0.13481408, 0.03663532,\n", + " 0. , 0. , -0.03897284, 0. , 0. ,\n", + " 0.02532982, 0.00652907, 0.01371828, 0. , 0. ,\n", + " 0. , 0. , 0. , 0.01066444, 0.02208044,\n", + " 0. , -1.41648022, -0.25852766, 0.26103542, 0. ,\n", + " 0. , 0. , -0.22986335, 0.0026555 , 0.04903758,\n", + " 0.14350738, 0. , 0.21757303, 0.08485045, 0.0949972 ,\n", + " -0.44105302, 0. , 0.01732823, 0.07618706, 0. ,\n", + " 0.23152556, -0.00195721, 0. , 0.0395699 , 0.00836024,\n", + " 0.01054067, 0.00280582, -0.64456 , 0. , -0.63672179,\n", + " 0.17710428, 0.18114564, 0. , 0.0416721 , -0.79625681,\n", + " -0.37949686, -1.40585049, -0.38560954, -1.20185474])" + ] + }, + "execution_count": 200, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "coef_L1_m" + ] + }, + { + "cell_type": "code", + "execution_count": 205, + "metadata": {}, + "outputs": [], + "source": [ + "# Pandas dataframe of weights of variables with variable names to find which variables are eliminated\n", + "\n", + "feat_imp_tuned_lrt = pd.DataFrame(list(zip([i for i in us_train_cat.columns if i!='Severity'], np.absolute(coef_L1_m))),\n", + " columns = ['column', 'weight']).sort_values('weight')" + ] + }, + { + "cell_type": "code", + "execution_count": 211, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
columnweight
80Wind_Direction_Index_120.0
65Wind_Direction_Index_70.0
85clear0.0
84cloud0.0
57month_of_year_Index_110.0
29TMC_Index_180.0
77Wind_Direction_Index_50.0
76Wind_Direction_Index_150.0
75Wind_Direction_Index_60.0
74Wind_Direction_Index_130.0
\n", + "
" + ], + "text/plain": [ + " column weight\n", + "80 Wind_Direction_Index_12 0.0\n", + "65 Wind_Direction_Index_7 0.0\n", + "85 clear 0.0\n", + "84 cloud 0.0\n", + "57 month_of_year_Index_11 0.0\n", + "29 TMC_Index_18 0.0\n", + "77 Wind_Direction_Index_5 0.0\n", + "76 Wind_Direction_Index_15 0.0\n", + "75 Wind_Direction_Index_6 0.0\n", + "74 Wind_Direction_Index_13 0.0" + ] + }, + "execution_count": 211, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Sample of 10 features eliminated by the Logistic Regression Model after L1 Regularization\n", + "\n", + "feat_imp_tuned_lrt[:10]" + ] + }, + { + "cell_type": "code", + "execution_count": 207, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Total number of features are 119\n", + "Eliminated features out of 119 are 28\n" + ] + } + ], + "source": [ + "# Taking absolute values of weights and calculating the number of features eliminated by LR Model after L1 regularization \n", + "\n", + "coef_L1_m = np.absolute(coef_L1_m)\n", + "\n", + "print('Total number of features are',len(coef_L1_m))\n", + "\n", + "sorted_abs = np.sort(coef_L1_m)\n", + "\n", + "weights_notzero = sorted_abs[sorted_abs == 0]\n", + "nonzero_weights = len(sorted_abs[sorted_abs == 0])\n", + "\n", + "print('Eliminated features out of ' + str(len(coef_L1_m)) + ' are', len(weights_notzero))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.4" + }, + "latex_envs": { + "LaTeX_envs_menu_present": true, + "autoclose": false, + "autocomplete": true, + "bibliofile": "biblio.bib", + "cite_by": "apalike", + "current_citInitial": 1, + "eqLabelWithNumbers": true, + "eqNumInitial": 1, + "hotkeys": { + "equation": "Ctrl-E", + "itemize": "Ctrl-I" + }, + "labels_anchors": false, + "latex_user_defs": false, + "report_style_numbering": false, + "user_envs_cfg": false + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/StringIndexing_OHE_Conversion.ipynb b/StringIndexing_OHE_Conversion.ipynb new file mode 100644 index 0000000..44e237f --- /dev/null +++ b/StringIndexing_OHE_Conversion.ipynb @@ -0,0 +1,504 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "#importing all required libraries\n", + "from pyspark.sql import SparkSession\n", + "spark = SparkSession.builder.getOrCreate()\n", + "sc = spark.sparkContext\n", + "from pyspark.sql import Row\n", + "import numpy as np\n", + "import pandas as pd\n", + "from pyspark.sql.types import *\n", + "from pyspark.sql.functions import *\n", + "import matplotlib.pyplot as plt\n", + "from pyspark.sql import functions as fn\n", + "from pyspark.ml import feature, regression, evaluation, Pipeline\n", + "import seaborn as sns\n", + "from pyspark.ml.feature import VectorAssembler\n", + "from pyspark.ml import Pipeline\n", + "from pyspark.ml.regression import LinearRegression\n", + "from pyspark.sql.functions import udf\n", + "from pyspark.ml.stat import Correlation\n", + "from pyspark.ml.feature import StringIndexer\n", + "from pyspark.ml.feature import OneHotEncoderEstimator" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "# Do not delete or change this cell\n", + "\n", + "import os\n", + "\n", + "# Define a function to determine if we are running on data bricks\n", + "# Return true if running in the data bricks environment, false otherwise\n", + "def is_databricks():\n", + " # get the databricks runtime version\n", + " db_env = os.getenv(\"DATABRICKS_RUNTIME_VERSION\")\n", + " \n", + " # if running on data bricks\n", + " if db_env != None:\n", + " return True\n", + " else:\n", + " return False\n", + "\n", + "# Define a function to read the data file. The full path data file name is constructed\n", + "# by checking runtime environment variables to determine if the runtime environment is \n", + "# databricks, or a student's personal computer. The full path file name is then\n", + "# constructed based on the runtime env.\n", + "# \n", + "# Params\n", + "# data_file_name: The base name of the data file to load\n", + "# \n", + "# Returns the full path file name based on the runtime env\n", + "#\n", + "def get_training_filename(data_file_name): \n", + " # if running on data bricks\n", + " if is_databricks():\n", + " # build the full path file name assuming data brick env\n", + " full_path_name = \"/FileStore/tables/%s\" % data_file_name\n", + " # else the data is assumed to be in the same dir as this notebook\n", + " else:\n", + " # Assume the student is running on their own computer and load the data\n", + " # file from the same dir as this notebook\n", + " full_path_name = data_file_name\n", + " \n", + " # return the full path file name to the caller\n", + " return full_path_name" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "# reads the cleaned data file\n", + "data=spark.read.csv(get_training_filename(\"Us_clean.csv\"),inferSchema=True,header=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "# Extracts hour of the day from the start time of the accident and stores in a new column named Hour \n", + "data=data.withColumn(\"Hour\", date_format(col(\"Start_Time\"), \"H\"))" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "# Dropping column Start time,end time, timezone, start latitude and end latitude as they won't be helpful in predicting\n", + "# the severiy of the accident\n", + "# The columns city, county and state have high cardinality so we have dropped them\n", + "drop_col=[\"Start_Time\",\"End_Time\",\"Start_Lat\",\"Start_Lng\",'City','County','State','Timezone']" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "#Dropping the columns \n", + "data = data.drop(*(drop_col))" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "# As the data contains very few rows (around 300 in 1 million rows) of Severity 1 we have converted it to Severity 2 because \n", + "# both the classes indicate accidents with less severity \n", + "data=data.withColumn(\"Severity\",when(data[\"Severity\"]==1,2).otherwise(data[\"Severity\"]))" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "# TMC column is an important column so we decided not to drop it\n", + "# It has around 25000 missing so using the mode to impute does not make sense\n", + "# So, we have made a different category for the missing values\n", + "data=data.fillna({'TMC':'-1'})" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "#list of all categorical columns\n", + "categorical_columns=['Source','Side','Wind_Direction','month_of_year','day_of_week',\"TMC\",'Sunrise_Sunset','Civil_Twilight',\n", + " 'Nautical_Twilight','Astronomical_Twilight',\"Hour\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "#encoding the categrical column as models do not accept string\n", + "stages = []\n", + "\n", + "#iterate through all categorical values\n", + "for categoricalCol in categorical_columns:\n", + " #create a string indexer for those categorical values and assign a new name including the word 'Index'\n", + " stringIndexer = StringIndexer(inputCol = categoricalCol, outputCol = categoricalCol + '_Index')\n", + "\n", + " #append the string Indexer to our list of stages\n", + " stages += [stringIndexer]" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [], + "source": [ + "# Running the pipeline which encodes the categorical column\n", + "\n", + "pipeline = Pipeline(stages = stages)\n", + "#fit the pipeline to our dataframe\n", + "pipelineModel = pipeline.fit(data)\n", + "#transform the dataframe\n", + "data= pipelineModel.transform(data)" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "# Dropping the original categorical column\n", + "data=data.drop(*(categorical_columns))" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [], + "source": [ + "#List of columns with binary values i.e. True/False\n", + "\n", + "binary_columns=['Amenity','Bump','Crossing','Give_Way','Junction','No_Exit','Railway','Roundabout','Station','Stop',\n", + "'Traffic_Calming','Traffic_Signal']" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [], + "source": [ + "# Converts the binary values into 0/1\n", + "\n", + "for i in binary_columns:\n", + " data=data.withColumn(i,data[i].cast(\"int\"))" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [], + "source": [ + "#Converts the Weather Condition to lowercase\n", + "data=data.withColumn('Weather_Condition',fn.lower(col(\"Weather_Condition\")))" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [], + "source": [ + "# Replaces T-storm with Thunderstorm because they are the same weather condition\n", + "data=data.withColumn('Weather_Condition', regexp_replace('Weather_Condition', 'T-Storm', 'Thunderstorm'))" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [], + "source": [ + "# List of manually picked weather conditions that we thought could help in predicting the severity \n", + "w_conditions=[\"cloud\",\"clear\",\"whirl\",\"wind\",\"light\",\"heavy\",\"thunderstorm\",\"shower\",\"snow\",\"rain\",\"drizzle\",\n", + " \"fair\",\"hail\",\"haze\",\"overcast\",'pellets']" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [], + "source": [ + "#Splits the strings in the weather condition on space character and converts it into a list of words\n", + "data=data.withColumn('Weather_Condition', fn.split(\"Weather_Condition\",\" \"))" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [], + "source": [ + "# Removes the word having length less than 4 and also the word \"with\"\n", + "data_clean1=udf(lambda x: list([i for i in x if ((len(i)>3) and (i!=\"with\"))]),\n", + " returnType=ArrayType(StringType()))" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "# Executes the above function\n", + "data=data.withColumn(\"Weather_Condition\",data_clean1(\"Weather_Condition\"))" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [], + "source": [ + "# Converts the categorical columns into String type\n", + "for i in categorical_columns:\n", + " data = data.withColumn(i+\"_Index\", data[i+\"_Index\"].cast(StringType()))" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [], + "source": [ + "# Removes the words from the weather condition column that are not present in the w_conditions list\n", + "data_clean2=udf(lambda x: list([i for i in w_conditions if any(i in j for j in x)]),\n", + " returnType=ArrayType(StringType()))" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [], + "source": [ + "# Executes the above function\n", + "data=data.withColumn(\"Weather_Condition\",data_clean2(\"Weather_Condition\"))" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [], + "source": [ + "# Makes dummy variable for each weather condition in our list\n", + "exprs = [fn.when(fn.array_contains(fn.col('Weather_Condition'), column), 1).otherwise(0).alias(column)\\\n", + " for column in w_conditions]" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [], + "source": [ + "# Makes a temporary dataframe of our weather condition and dummy variables \n", + "temp=data.select(['Weather_Condition']+exprs)" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": {}, + "outputs": [], + "source": [ + "#create two dataframe which we will join to make our final dataframe \n", + "df1 = data.withColumn(\"id\", monotonically_increasing_id())\n", + "df2 = temp.withColumn(\"id\", monotonically_increasing_id())" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": {}, + "outputs": [], + "source": [ + "# Creates the final datafram\n", + "data = df2.join(df1, \"id\", \"outer\").drop(\"id\")" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": {}, + "outputs": [], + "source": [ + "# Now we can drop the weather condition column after making dummies from it\n", + "data=data.drop(\"Weather_Condition\")" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": {}, + "outputs": [], + "source": [ + "# Splits the dataframe into train and test\n", + "training_df, validation_df= data.randomSplit([0.8, 0.2],seed=42)" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": {}, + "outputs": [], + "source": [ + "# Saves as csv\n", + "training_df.toPandas().to_csv(\"USAccident_train_categorical.csv\",index=False)" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": {}, + "outputs": [], + "source": [ + "# Saves as csv\n", + "validation_df.toPandas().to_csv(\"USAccident_validation_categorical.csv\",index=False)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## One Hot Encoding" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": {}, + "outputs": [], + "source": [ + "# list of columns to be one hot encoded\n", + "categorical_columns2=[i+\"_Index\"for i in categorical_columns]" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": {}, + "outputs": [], + "source": [ + "# Creating dummies of categorical column\n", + "for category in categorical_columns2:\n", + " categ = data.select(category).distinct().rdd.flatMap(lambda x:x).collect()\n", + " exprs = [fn.when(fn.col(category) == cat,1).otherwise(0)\\\n", + " .alias(category+\"_\"+str(int(float(cat)))) for cat in categ]\n", + " data = data.select(exprs+data.columns)" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "metadata": {}, + "outputs": [], + "source": [ + "# Dropping all the original categorical columns\n", + "data=data.drop(*(categorical_columns2))" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "metadata": {}, + "outputs": [], + "source": [ + "# From the n dummies made for each categorical column, dropping the nth dummy\n", + "data=data.drop(*([i+\"_Index_0\" for i in categorical_columns]))" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "metadata": {}, + "outputs": [], + "source": [ + "# Splits the dataframe into train and test\n", + "training_df, validation_df= data.randomSplit([0.8, 0.2],seed=42)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Saves as csv\n", + "training_df.toPandas().to_csv(\"USAccident_train_OHE.csv\",index=False)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Saves as csv\n", + "validation_df.toPandas().to_csv(\"USAccident_validation_OHE.csv\",index=False)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.5.4" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/Undersampling_Oversampling.ipynb b/Undersampling_Oversampling.ipynb new file mode 100644 index 0000000..4ffb180 --- /dev/null +++ b/Undersampling_Oversampling.ipynb @@ -0,0 +1,461 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "from pyspark.sql import SparkSession\n", + "spark = SparkSession.builder.getOrCreate()\n", + "sc = spark.sparkContext\n", + "from pyspark.sql import Row\n", + "import numpy as np\n", + "import pandas as pd\n", + "from pyspark.sql.types import *\n", + "from pyspark.sql.functions import *\n", + "import matplotlib.pyplot as plt\n", + "from pyspark.sql import functions as fn\n", + "from pyspark.ml import feature, regression, evaluation, Pipeline\n", + "import seaborn as sns\n", + "from pyspark.ml.feature import VectorAssembler\n", + "from pyspark.ml import Pipeline\n", + "from pyspark.ml.regression import LinearRegression\n", + "from pyspark.ml.stat import Correlation\n", + "from pyspark.ml.feature import StringIndexer\n", + "from pyspark.ml.feature import OneHotEncoderEstimator\n", + "from pyspark.ml.feature import VectorAssembler\n", + "from pyspark.ml.classification import RandomForestClassifier\n", + "from pyspark.ml.evaluation import BinaryClassificationEvaluator,MulticlassClassificationEvaluator\n", + "from sklearn.metrics import classification_report\n", + "from pyspark.ml.classification import DecisionTreeClassifier\n", + "from pyspark.ml.tuning import CrossValidator,ParamGridBuilder" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "# Do not delete or change this cell\n", + "\n", + "import os\n", + "\n", + "# Define a function to determine if we are running on data bricks\n", + "# Return true if running in the data bricks environment, false otherwise\n", + "def is_databricks():\n", + " # get the databricks runtime version\n", + " db_env = os.getenv(\"DATABRICKS_RUNTIME_VERSION\")\n", + " \n", + " # if running on data bricks\n", + " if db_env != None:\n", + " return True\n", + " else:\n", + " return False\n", + "\n", + "# Define a function to read the data file. The full path data file name is constructed\n", + "# by checking runtime environment variables to determine if the runtime environment is \n", + "# databricks, or a student's personal computer. The full path file name is then\n", + "# constructed based on the runtime env.\n", + "# \n", + "# Params\n", + "# data_file_name: The base name of the data file to load\n", + "# \n", + "# Returns the full path file name based on the runtime env\n", + "#\n", + "def get_training_filename(data_file_name): \n", + " # if running on data bricks\n", + " if is_databricks():\n", + " # build the full path file name assuming data brick env\n", + " full_path_name = \"/FileStore/tables/%s\" % data_file_name\n", + " # else the data is assumed to be in the same dir as this notebook\n", + " else:\n", + " # Assume the student is running on their own computer and load the data\n", + " # file from the same dir as this notebook\n", + " full_path_name = data_file_name\n", + " \n", + " # return the full path file name to the caller\n", + " return full_path_name" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "# Sampling will only be performed on training data\n", + "# below we import the data\n", + "training_df=spark.read.csv(get_training_filename(\"USAccident_train_categorical.csv\"),inferSchema=True,header=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Balancing for Multiclass" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**For balancing the multiclass data, we will oversample the class 4 as it has the least data and undersample class 2 with the most data.**" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Oversampling Target 4" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "# The class 4 will be oversampled in such a way that the new number of rows of class 4 matches the number of class 3.\n", + "major_df = training_df.filter(col(\"Severity\") == 3)\n", + "minor_df = training_df.filter(col(\"Severity\") == 4)" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "# calculating the ratio of number of rows in class 3 by class 4\n", + "oversampling_ratio = int(major_df.count()/minor_df.count())" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "a=range(oversampling_ratio)" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "# storing the new oversampled data of class 4\n", + "oversampled_df = minor_df.withColumn(\"dummy\", explode(array([lit(x) for x in a]))).drop('dummy')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Undersampling Target 2" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "# The class 2 will be undersampled in such a way that the new number of rows of class 2 matches the number of class 3.\n", + "major_df = training_df.filter(col(\"Severity\") == 2)\n", + "minor_df = training_df.filter(col(\"Severity\") == 3)" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "# calculating the ratio of number of rows in class 2 by class 3\n", + "ratio=int(major_df.count()/minor_df.count())" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "#Performs the undersampling\n", + "undersampled_df = major_df.sample(False, 1/ratio)" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "unsampled_class_data=training_df.filter(col(\"Severity\") == 3)" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [], + "source": [ + "# Combining the data to create our final dataset\n", + "temp_data=unsampled_class_data.unionAll(undersampled_df)\n", + "balanced_data=temp_data.unionAll(oversampled_df)" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [], + "source": [ + "# saving in a csv file\n", + "balanced_data.toPandas().to_csv(\"USAccident_balanced_train_categorical.csv\",index=False)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### One Hot encoding for balanced data" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [], + "source": [ + "#list of all categorical columns\n", + "categorical_columns=['Source','Side','Wind_Direction','month_of_year','day_of_week',\"TMC\",'Sunrise_Sunset','Civil_Twilight',\n", + " 'Nautical_Twilight','Astronomical_Twilight',\"Hour\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [], + "source": [ + "#list of columns to be one hot encoded\n", + "categorical_columns2=[i+\"_Index\"for i in categorical_columns]" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [], + "source": [ + "# Creating dummies of categorical column\n", + "for category in categorical_columns2:\n", + " categ = balanced_data.select(category).distinct().rdd.flatMap(lambda x:x).collect()\n", + " exprs = [fn.when(fn.col(category) == cat,1).otherwise(0)\\\n", + " .alias(category+\"_\"+str(int(float(cat)))) for cat in categ]\n", + " balanced_data = balanced_data.select(exprs+balanced_data.columns)" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [], + "source": [ + "# Dropping all the original categorical columns\n", + "balanced_data=balanced_data.drop(*(categorical_columns2))" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [], + "source": [ + "# From the n dummies made for each categorical column, dropping the nth dummy\n", + "balanced_data=balanced_data.drop(*([i+\"_Index_0\" for i in categorical_columns]))" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [], + "source": [ + "# Saves as csv\n", + "balanced_data.toPandas().to_csv(\"USAccident_balanced_train_categorical_OHE.csv\",index=False)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Balancing for Binary Data" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [], + "source": [ + "# binarizing the target variable\n", + "training_df_new=training_df.withColumn(\"Severity\",fn.when(((training_df[\"Severity\"]==1) | (training_df[\"Severity\"]==2)),0).otherwise(1))" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [], + "source": [ + "# The class 0 will be undersampled in such a way that the new number of rows of class 0 matches the number of class 1.\n", + "major_df = training_df_new.filter(col(\"Severity\") == 0)\n", + "minor_df = training_df_new.filter(col(\"Severity\") == 1)" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [], + "source": [ + "ratio=int(major_df.count()/minor_df.count())" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [], + "source": [ + "# performs the undersampling\n", + "undersampled_df = major_df.sample(False, 1/ratio)" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [], + "source": [ + "# Combining the data to create the balanced dataset for binary output\n", + "balanced_data_binary=training_df_new.filter(col(\"Severity\") == 1).unionAll(undersampled_df)" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [], + "source": [ + "balanced_data_binary.toPandas().to_csv(\"USAccident_balanced_train_binary.csv\",index=False)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### One Hot Encoding for balanced data" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": {}, + "outputs": [], + "source": [ + "#list of all categorical columns\n", + "categorical_columns=['Source','Side','Wind_Direction','month_of_year','day_of_week',\"TMC\",'Sunrise_Sunset','Civil_Twilight',\n", + " 'Nautical_Twilight','Astronomical_Twilight',\"Hour\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": {}, + "outputs": [], + "source": [ + "#list of columns to be one hot encoded\n", + "categorical_columns2=[i+\"_Index\"for i in categorical_columns]" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": {}, + "outputs": [], + "source": [ + "# Creating dummies of categorical column\n", + "for category in categorical_columns2:\n", + " categ = balanced_data_binary.select(category).distinct().rdd.flatMap(lambda x:x).collect()\n", + " exprs = [fn.when(fn.col(category) == cat,1).otherwise(0)\\\n", + " .alias(category+\"_\"+str(int(float(cat)))) for cat in categ]\n", + " balanced_data_binary = balanced_data_binary.select(exprs+balanced_data_binary.columns)" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": {}, + "outputs": [], + "source": [ + "# Dropping all the original categorical columns\n", + "balanced_data_binary=balanced_data_binary.drop(*(categorical_columns2))" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": {}, + "outputs": [], + "source": [ + "# From the n dummies made for each categorical column, dropping the nth dummy\n", + "balanced_data_binary=balanced_data_binary.drop(*([i+\"_Index_0\" for i in categorical_columns]))" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "metadata": {}, + "outputs": [], + "source": [ + "# Saves as csv\n", + "balanced_data_binary.toPandas().to_csv(\"USAccident_balanced_train_binary_OHE.csv\",index=False)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.5.4" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +}