Skip to main content

Multiple Classification using Iris Dataset

Multiple Classification using Iris Dataset ; this dataset is come in built in sklearn library.

Here we have got three classes of Iris flower; you can read fully article using dataset['DESCR']

Although you can read comments for better understanding or you can just copy it.



# %%  Import libraries

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

# %%  Load dataset

from sklearn.datasets import load_iris

dataset = load_iris()
print(dataset.keys())

# %%  Assign the dataset to features and outputs

x = dataset.data
y = dataset.target

print(x.shape , y.shape)

# %%  Data Spliting

from sklearn.model_selection import train_test_split

x_train, x_test, y_train, y_test = train_test_split(x,y, test_size=0.2, random_state=0)

# %%  Import tensorflow keras libraries

from keras.models import Sequential
from keras.layers import Dense

# %%  Making Nueral network Architecture 

model = Sequential()  # intializing the model

# Here only one or two dense layer is enough
model.add(Dense(4, input_shape=(4,), activation='relu')) # (4,) because we need one
 row of all of four columns 
model.add(Dense(8, activation='relu')) 
# Last layer using Softmax for multiple classification
model.add(Dense(3, activation='softmax')) # dense 3 because here is three categories

# %%  Compiling and fitting model

model.compile(
   optimizer='adam',
   loss='sparse_categorical_crossentropy',
   metrics=['accuracy']

model.fit(x_train, y_train, batch_size=10, epochs=100)

# %%  Prediction

y_pred = model.predict(x_test)

y_pred_class = np.argmax(y_pred, axis=1)

# %%

from sklearn.metrics import classification_report, confusion_matrix

cr = classification_report(y_test, y_pred_class)
cm = confusion_matrix(y_test, y_pred_class)

print(cr)
print(cm)

# %%  Accuracy

Accuracy = np.round((cm[0,0] + cm[1,1] + cm[2,2])*100 / len(y_pred_class))
print(Accuracy)
# %%  Heatmap visualization

plt.imshow(cm, cmap='hot')
# %%

Comments