{ "cells": [ { "cell_type": "markdown", "id": "8d4bf69d", "metadata": {}, "source": [ "# Voltage Quality Classification Model\n", " The quality of power supplied to end-use equipments depends upon the quality of voltage supplied by utility. Voltage is said to have quality if it has rated value at rated frequency without any distortion from sine wave. The normal voltage quality issues are:\n", "- Voltage Sag\n", "- Voltage Swell\n", "- Voltage Flicker\n", "- Voltage Harmonics\n", "- Voltage Interruption\n", "\n", "Classification of voltage quality is a must for activating corresponding controllers to mitigate the issues using compensating device. Training data is generated by using functions which simulate the above power quality issues." ] }, { "cell_type": "markdown", "id": "8ba94acd", "metadata": {}, "source": [ "# Installing the required packages" ] }, { "cell_type": "code", "execution_count": 1, "id": "4f7c0ea6", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Requirement already satisfied: xgboost in /opt/anaconda3/lib/python3.8/site-packages (1.4.2)\r\n", "Requirement already satisfied: scipy in /opt/anaconda3/lib/python3.8/site-packages (from xgboost) (1.6.2)\r\n", "Requirement already satisfied: numpy in /opt/anaconda3/lib/python3.8/site-packages (from xgboost) (1.20.1)\r\n" ] } ], "source": [ "!pip install xgboost" ] }, { "cell_type": "markdown", "id": "18fc265e", "metadata": {}, "source": [ "# Importing the required libraries" ] }, { "cell_type": "code", "execution_count": 2, "id": "c8212aea", "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", "import numpy as np\n", "import seaborn as sn\n", "import matplotlib.pyplot as plt\n", "from matplotlib import rcParams\n", "from sklearn.tree import DecisionTreeClassifier\n", "from sklearn.svm import SVC\n", "from sklearn.metrics import classification_report, confusion_matrix, accuracy_score\n", "from xgboost import XGBClassifier\n", "from sklearn.ensemble import RandomForestClassifier\n", "from sklearn.model_selection import GridSearchCV\n", "\n", "%matplotlib inline\n", "\n", "import warnings\n", "warnings.filterwarnings(\"ignore\")" ] }, { "cell_type": "markdown", "id": "0cf4bd32", "metadata": {}, "source": [ "# Loading the data into the dataframe" ] }, { "cell_type": "code", "execution_count": 3, "id": "be3e6804", "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", "
SampleVoltageProblem
0156.46Normal
12111.20Normal
23162.57Normal
34209.00Normal
45249.09Normal
\n", "
" ], "text/plain": [ " Sample Voltage Problem\n", "0 1 56.46 Normal\n", "1 2 111.20 Normal\n", "2 3 162.57 Normal\n", "3 4 209.00 Normal\n", "4 5 249.09 Normal" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data = pd.read_csv(\"Voltage Quality.csv\")\n", "test = pd.read_csv(\"Voltage Quality Test.csv\")\n", "data.head()" ] }, { "cell_type": "code", "execution_count": 4, "id": "959d88dc", "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", "
SampleVoltageProblem
0156.46Normal
12111.20Normal
23162.57Normal
34209.00Normal
45249.09Normal
\n", "
" ], "text/plain": [ " Sample Voltage Problem\n", "0 1 56.46 Normal\n", "1 2 111.20 Normal\n", "2 3 162.57 Normal\n", "3 4 209.00 Normal\n", "4 5 249.09 Normal" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "test.head()" ] }, { "cell_type": "markdown", "id": "865fe385", "metadata": {}, "source": [ "# Total number of rows and columns" ] }, { "cell_type": "code", "execution_count": 5, "id": "34b1b141", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(3366, 3)" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data.shape # 3366 rows and 3 columns" ] }, { "cell_type": "code", "execution_count": 6, "id": "c6fcc035", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(1020, 3)" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "test.shape" ] }, { "cell_type": "markdown", "id": "91147657", "metadata": {}, "source": [ "# Checking the type of data" ] }, { "cell_type": "code", "execution_count": 7, "id": "a2612df2", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "RangeIndex: 3366 entries, 0 to 3365\n", "Data columns (total 3 columns):\n", " # Column Non-Null Count Dtype \n", "--- ------ -------------- ----- \n", " 0 Sample 3366 non-null int64 \n", " 1 Voltage 3366 non-null float64\n", " 2 Problem 3366 non-null object \n", "dtypes: float64(1), int64(1), object(1)\n", "memory usage: 79.0+ KB\n" ] } ], "source": [ "data.info()" ] }, { "cell_type": "code", "execution_count": 8, "id": "4bda0fc9", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "RangeIndex: 1020 entries, 0 to 1019\n", "Data columns (total 3 columns):\n", " # Column Non-Null Count Dtype \n", "--- ------ -------------- ----- \n", " 0 Sample 1020 non-null int64 \n", " 1 Voltage 1020 non-null float64\n", " 2 Problem 1020 non-null object \n", "dtypes: float64(1), int64(1), object(1)\n", "memory usage: 24.0+ KB\n" ] } ], "source": [ "test.info()" ] }, { "cell_type": "markdown", "id": "593b3e7c", "metadata": {}, "source": [ "# Checking for missing values" ] }, { "cell_type": "code", "execution_count": 9, "id": "a62ca453", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Sample 0\n", "Voltage 0\n", "Problem 0\n", "dtype: int64" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data.isnull().sum() # No missing values" ] }, { "cell_type": "code", "execution_count": 10, "id": "ddf6406b", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Sample 0\n", "Voltage 0\n", "Problem 0\n", "dtype: int64" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "test.isnull().sum()" ] }, { "cell_type": "markdown", "id": "451f6cda", "metadata": {}, "source": [ "# Checking for duplicates" ] }, { "cell_type": "code", "execution_count": 11, "id": "48f717bc", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "510" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data.duplicated().sum() # 510 duplicates" ] }, { "cell_type": "code", "execution_count": 12, "id": "f1aa7d57", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "136" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "test.duplicated().sum()" ] }, { "cell_type": "markdown", "id": "2f7bc812", "metadata": {}, "source": [ "# Finding the unique values in problem column" ] }, { "cell_type": "code", "execution_count": 13, "id": "66c66225", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array(['Normal', 'Sag', 'Swell', 'Flicker', 'Interruption', 'Harmonics'],\n", " dtype=object)" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data.Problem.unique() # 6 unique values" ] }, { "cell_type": "code", "execution_count": 14, "id": "e0974cd2", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array(['Normal', 'Sag', 'Swell', 'Flicker', 'Interruption', 'Harmonics'],\n", " dtype=object)" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "test.Problem.unique()" ] }, { "cell_type": "code", "execution_count": 15, "id": "99109e7f", "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", "
SampleVoltageProblem
0156.46Normal
12111.20Normal
23162.57Normal
34209.00Normal
45249.09Normal
\n", "
" ], "text/plain": [ " Sample Voltage Problem\n", "0 1 56.46 Normal\n", "1 2 111.20 Normal\n", "2 3 162.57 Normal\n", "3 4 209.00 Normal\n", "4 5 249.09 Normal" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data.head()" ] }, { "cell_type": "markdown", "id": "1410da43", "metadata": {}, "source": [ "# Analysing statistical data" ] }, { "cell_type": "code", "execution_count": 16, "id": "d35d8713", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
SampleVoltageProblem
count3366.0000003366.0000003366
uniqueNaNNaN6
topNaNNaNHarmonics
freqNaNNaN578
mean17.5000000.000226NaN
std9.812166229.620084NaN
min1.000000-585.480000NaN
25%9.000000-208.957500NaN
50%17.5000000.000000NaN
75%26.000000209.255000NaN
max34.000000585.480000NaN
\n", "
" ], "text/plain": [ " Sample Voltage Problem\n", "count 3366.000000 3366.000000 3366\n", "unique NaN NaN 6\n", "top NaN NaN Harmonics\n", "freq NaN NaN 578\n", "mean 17.500000 0.000226 NaN\n", "std 9.812166 229.620084 NaN\n", "min 1.000000 -585.480000 NaN\n", "25% 9.000000 -208.957500 NaN\n", "50% 17.500000 0.000000 NaN\n", "75% 26.000000 209.255000 NaN\n", "max 34.000000 585.480000 NaN" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data.describe(include=\"all\")" ] }, { "cell_type": "markdown", "id": "553a108e", "metadata": {}, "source": [ "# Finding outliers" ] }, { "cell_type": "code", "execution_count": 17, "id": "51229178", "metadata": {}, "outputs": [], "source": [ "# Function to find the outliers\n", "def findoutliers(column):\n", " outliers=[]\n", " Q1=column.quantile(.25)\n", " Q3=column.quantile(.75)\n", " IQR=Q3-Q1\n", " lower_limit=Q1-(1.5*IQR)\n", " upper_limit=Q3+(1.5*IQR)\n", " for out1 in column:\n", " if out1>upper_limit or out1 " ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Voltage\n", "fix, (ax1,ax2) =plt.subplots(1,2,figsize=(7,5))\n", "sn.boxplot(data.Voltage, orient='v',ax=ax1)\n", "ax1.set_ylabel=data.Voltage.name\n", "ax1.set_title('Box plot of {}'.format(data.Voltage.name))\n", "sn.distplot(data.Voltage,ax=ax2) \n", "ax2.set_title('Distribution plot of {}'.format(data.Voltage.name))" ] }, { "cell_type": "code", "execution_count": 21, "id": "784eada8", "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "Harmonics 578\n", "Swell 578\n", "Sag 578\n", "Normal 578\n", "Flicker 544\n", "Interruption 510\n", "Name: Problem, dtype: int64" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Problem\n", "data.Problem.value_counts()" ] }, { "cell_type": "code", "execution_count": 22, "id": "012d7672", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "pl = sn.factorplot('Problem',data=data, aspect=4,kind='count')\n", "pl.set_xticklabels()" ] }, { "cell_type": "markdown", "id": "07cb4c79", "metadata": {}, "source": [ "# Identifying the independent and dependent variables" ] }, { "cell_type": "code", "execution_count": 23, "id": "d18b49b6", "metadata": {}, "outputs": [], "source": [ "X = data.iloc[:,:-1] # Independent variable\n", "y = data.Problem # Dependent variable" ] }, { "cell_type": "code", "execution_count": 24, "id": "a22d8277", "metadata": {}, "outputs": [], "source": [ "x_test = test.iloc[:,:-1]\n", "y_test = test.Problem " ] }, { "cell_type": "markdown", "id": "57dfd617", "metadata": {}, "source": [ "# Decision Tree" ] }, { "cell_type": "markdown", "id": "50e0afdc", "metadata": {}, "source": [ "# Defining the model" ] }, { "cell_type": "code", "execution_count": 25, "id": "56e08b15", "metadata": {}, "outputs": [], "source": [ "model_dt = DecisionTreeClassifier()" ] }, { "cell_type": "markdown", "id": "0626248b", "metadata": {}, "source": [ "# Training the model" ] }, { "cell_type": "code", "execution_count": 26, "id": "91e5d0f2", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "DecisionTreeClassifier()" ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" } ], "source": [ "model_dt.fit(X,y)" ] }, { "cell_type": "markdown", "id": "7a358b81", "metadata": {}, "source": [ "# Testing the model" ] }, { "cell_type": "code", "execution_count": 27, "id": "5ef648e8", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.95" ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" } ], "source": [ "y_predict_dt = model_dt.predict(x_test)\n", "as_dt = accuracy_score(y_test,y_predict_dt)\n", "as_dt" ] }, { "cell_type": "code", "execution_count": 28, "id": "894932ae", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " precision recall f1-score support\n", "\n", " Flicker 0.92 1.00 0.96 170\n", " Harmonics 0.91 0.85 0.88 170\n", "Interruption 1.00 1.00 1.00 170\n", " Normal 0.95 1.00 0.97 170\n", " Sag 0.98 0.92 0.95 170\n", " Swell 0.95 0.92 0.93 170\n", "\n", " accuracy 0.95 1020\n", " macro avg 0.95 0.95 0.95 1020\n", "weighted avg 0.95 0.95 0.95 1020\n", "\n" ] } ], "source": [ "print(classification_report(y_test,y_predict_dt))" ] }, { "cell_type": "code", "execution_count": 29, "id": "d9a53648", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[170, 0, 0, 0, 0, 0],\n", " [ 7, 145, 0, 5, 4, 9],\n", " [ 0, 0, 170, 0, 0, 0],\n", " [ 0, 0, 0, 170, 0, 0],\n", " [ 3, 10, 0, 0, 157, 0],\n", " [ 4, 5, 0, 4, 0, 157]])" ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" } ], "source": [ "confusion_matrix(y_test,y_predict_dt)" ] }, { "cell_type": "markdown", "id": "03be07e5", "metadata": {}, "source": [ "# XGBoost" ] }, { "cell_type": "markdown", "id": "10b72622", "metadata": {}, "source": [ "# Defining the model" ] }, { "cell_type": "code", "execution_count": 30, "id": "d9b1d0d6", "metadata": {}, "outputs": [], "source": [ "model_xgb = XGBClassifier(n_estimators=300)" ] }, { "cell_type": "markdown", "id": "473fe685", "metadata": {}, "source": [ "# Training the model" ] }, { "cell_type": "code", "execution_count": 31, "id": "10d8cbdc", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[21:26:24] WARNING: /opt/concourse/worker/volumes/live/7a2b9f41-3287-451b-6691-43e9a6c0910f/volume/xgboost-split_1619728204606/work/src/learner.cc:1061: Starting in XGBoost 1.3.0, the default evaluation metric used with the objective 'multi:softprob' was changed from 'merror' to 'mlogloss'. Explicitly set eval_metric if you'd like to restore the old behavior.\n" ] }, { "data": { "text/plain": [ "XGBClassifier(base_score=0.5, booster='gbtree', colsample_bylevel=1,\n", " colsample_bynode=1, colsample_bytree=1, gamma=0, gpu_id=-1,\n", " importance_type='gain', interaction_constraints='',\n", " learning_rate=0.300000012, max_delta_step=0, max_depth=6,\n", " min_child_weight=1, missing=nan, monotone_constraints='()',\n", " n_estimators=300, n_jobs=16, num_parallel_tree=1,\n", " objective='multi:softprob', random_state=0, reg_alpha=0,\n", " reg_lambda=1, scale_pos_weight=None, subsample=1,\n", " tree_method='exact', validate_parameters=1, verbosity=None)" ] }, "execution_count": 31, "metadata": {}, "output_type": "execute_result" } ], "source": [ "model_xgb.fit(X,y)" ] }, { "cell_type": "markdown", "id": "8ffd720a", "metadata": {}, "source": [ "# Testing the model" ] }, { "cell_type": "code", "execution_count": 32, "id": "ab0a0c92", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.95" ] }, "execution_count": 32, "metadata": {}, "output_type": "execute_result" } ], "source": [ "y_predict_xgb = model_dt.predict(x_test)\n", "as_xgb = accuracy_score(y_test,y_predict_xgb)\n", "as_xgb" ] }, { "cell_type": "code", "execution_count": 33, "id": "f98f8111", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " precision recall f1-score support\n", "\n", " Flicker 0.92 1.00 0.96 170\n", " Harmonics 0.91 0.85 0.88 170\n", "Interruption 1.00 1.00 1.00 170\n", " Normal 0.95 1.00 0.97 170\n", " Sag 0.98 0.92 0.95 170\n", " Swell 0.95 0.92 0.93 170\n", "\n", " accuracy 0.95 1020\n", " macro avg 0.95 0.95 0.95 1020\n", "weighted avg 0.95 0.95 0.95 1020\n", "\n" ] } ], "source": [ "print(classification_report(y_test,y_predict_xgb))" ] }, { "cell_type": "code", "execution_count": 34, "id": "ebdecc0c", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[170, 0, 0, 0, 0, 0],\n", " [ 7, 145, 0, 5, 4, 9],\n", " [ 0, 0, 170, 0, 0, 0],\n", " [ 0, 0, 0, 170, 0, 0],\n", " [ 3, 10, 0, 0, 157, 0],\n", " [ 4, 5, 0, 4, 0, 157]])" ] }, "execution_count": 34, "metadata": {}, "output_type": "execute_result" } ], "source": [ "confusion_matrix(y_test,y_predict_xgb)" ] }, { "cell_type": "markdown", "id": "f5dc8e32", "metadata": {}, "source": [ "# Random Forest" ] }, { "cell_type": "markdown", "id": "d8d6a4f0", "metadata": {}, "source": [ "# Defining the model" ] }, { "cell_type": "code", "execution_count": 35, "id": "8a51ef49", "metadata": {}, "outputs": [], "source": [ "model_rf = RandomForestClassifier()" ] }, { "cell_type": "markdown", "id": "11bf5e15", "metadata": {}, "source": [ "# Training the model" ] }, { "cell_type": "code", "execution_count": 36, "id": "8c568b29", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "RandomForestClassifier()" ] }, "execution_count": 36, "metadata": {}, "output_type": "execute_result" } ], "source": [ "model_rf.fit(X,y)" ] }, { "cell_type": "markdown", "id": "bb844013", "metadata": {}, "source": [ "# Testing the model" ] }, { "cell_type": "code", "execution_count": 37, "id": "654580cb", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.9774509803921568" ] }, "execution_count": 37, "metadata": {}, "output_type": "execute_result" } ], "source": [ "y_predict_rf = model_rf.predict(x_test)\n", "as_rf = accuracy_score(y_test,y_predict_rf)\n", "as_rf" ] }, { "cell_type": "code", "execution_count": 38, "id": "afa6cdb1", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " precision recall f1-score support\n", "\n", " Flicker 0.97 1.00 0.99 170\n", " Harmonics 0.94 0.92 0.93 170\n", "Interruption 1.00 1.00 1.00 170\n", " Normal 1.00 1.00 1.00 170\n", " Sag 0.98 0.96 0.97 170\n", " Swell 0.97 0.98 0.97 170\n", "\n", " accuracy 0.98 1020\n", " macro avg 0.98 0.98 0.98 1020\n", "weighted avg 0.98 0.98 0.98 1020\n", "\n" ] } ], "source": [ "print(classification_report(y_test,y_predict_rf))" ] }, { "cell_type": "code", "execution_count": 39, "id": "cba6c72b", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[170, 0, 0, 0, 0, 0],\n", " [ 5, 157, 0, 0, 3, 5],\n", " [ 0, 0, 170, 0, 0, 0],\n", " [ 0, 0, 0, 170, 0, 0],\n", " [ 0, 6, 0, 0, 164, 0],\n", " [ 0, 4, 0, 0, 0, 166]])" ] }, "execution_count": 39, "metadata": {}, "output_type": "execute_result" } ], "source": [ "confusion_matrix(y_test,y_predict_rf)" ] }, { "cell_type": "markdown", "id": "80d38c0b", "metadata": {}, "source": [ "# Model Evaluation" ] }, { "cell_type": "code", "execution_count": 40, "id": "aa4afe29", "metadata": {}, "outputs": [], "source": [ "Accuracy_Score = [as_dt,as_rf,as_xgb]\n", "Models = ['Decision Tree', 'Random Forest','XG Boost']" ] }, { "cell_type": "code", "execution_count": 41, "id": "bae685ee", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "sn.barplot(Accuracy_Score, Models, color=\"r\")\n", "plt.xlabel('Accuracy Score')\n", "plt.title('Accuracy Score')\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "e59d07ca", "metadata": {}, "source": [ "Random Forest seems to have the highest accuracy score hence we go ahead with Random Forest algorithm." ] }, { "cell_type": "markdown", "id": "f20c8195", "metadata": {}, "source": [ "# Hyperparameter (using grid search)" ] }, { "cell_type": "code", "execution_count": 42, "id": "e513bf46", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Fitting 5 folds for each of 120 candidates, totalling 600 fits\n" ] }, { "data": { "text/plain": [ "GridSearchCV(cv=5, estimator=RandomForestClassifier(),\n", " param_grid={'max_depth': [10, 15, 14, 13, 12],\n", " 'n_estimators': [150, 160, 170, 180, 190, 200],\n", " 'random_state': [4, 5, 6, 7]},\n", " verbose=1)" ] }, "execution_count": 42, "metadata": {}, "output_type": "execute_result" } ], "source": [ "parameters = {'max_depth':[10,15,14,13,12],\n", " 'random_state': [4,5,6,7],\n", " 'n_estimators':[150,160,170,180,190,200]}\n", "\n", "grid = GridSearchCV(model_rf,parameters,cv=5,verbose=1)\n", "grid.fit(X,y)" ] }, { "cell_type": "code", "execution_count": 43, "id": "10a4aca4", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.8773607700142415" ] }, "execution_count": 43, "metadata": {}, "output_type": "execute_result" } ], "source": [ "grid.best_score_" ] }, { "cell_type": "code", "execution_count": 44, "id": "94bb569e", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'max_depth': 13, 'n_estimators': 190, 'random_state': 5}" ] }, "execution_count": 44, "metadata": {}, "output_type": "execute_result" } ], "source": [ "grid.best_params_" ] }, { "cell_type": "markdown", "id": "71b111fc", "metadata": {}, "source": [ "# Training Random Forest with best parameters" ] }, { "cell_type": "code", "execution_count": 45, "id": "0ee81152", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "RandomForestClassifier(max_depth=13, n_estimators=190, random_state=5)" ] }, "execution_count": 45, "metadata": {}, "output_type": "execute_result" } ], "source": [ "model_rf = RandomForestClassifier(n_estimators=190,max_depth=13,random_state=5)\n", "model_rf.fit(X,y)" ] }, { "cell_type": "markdown", "id": "77dd9b12", "metadata": {}, "source": [ "# Testing Random Forest with best parameters" ] }, { "cell_type": "code", "execution_count": 51, "id": "ed03903a", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.9892156862745098" ] }, "execution_count": 51, "metadata": {}, "output_type": "execute_result" } ], "source": [ "y_predict = model_rf.predict(x_test)\n", "accuracy_score(y_test,y_predict)" ] }, { "cell_type": "code", "execution_count": 52, "id": "96b24b5a", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " precision recall f1-score support\n", "\n", " Flicker 1.00 1.00 1.00 170\n", " Harmonics 0.94 1.00 0.97 170\n", "Interruption 1.00 1.00 1.00 170\n", " Normal 1.00 1.00 1.00 170\n", " Sag 1.00 0.96 0.98 170\n", " Swell 1.00 0.98 0.99 170\n", "\n", " accuracy 0.99 1020\n", " macro avg 0.99 0.99 0.99 1020\n", "weighted avg 0.99 0.99 0.99 1020\n", "\n" ] } ], "source": [ "print(classification_report(y_test,y_predict))" ] }, { "cell_type": "code", "execution_count": 53, "id": "9b77ef9f", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[170, 0, 0, 0, 0, 0],\n", " [ 0, 170, 0, 0, 0, 0],\n", " [ 0, 0, 170, 0, 0, 0],\n", " [ 0, 0, 0, 170, 0, 0],\n", " [ 0, 7, 0, 0, 163, 0],\n", " [ 0, 4, 0, 0, 0, 166]])" ] }, "execution_count": 53, "metadata": {}, "output_type": "execute_result" } ], "source": [ "confusion_matrix(y_test,y_predict)" ] }, { "cell_type": "code", "execution_count": null, "id": "596a373a", "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.8.8" } }, "nbformat": 4, "nbformat_minor": 5 }