Artificial Intelligence and Machine Learning
ISBN 9788119221196

Highlights

Notes

  

Chapter 9: Study of Bagging Algorithm

Random Forest ◀◀◀

import pandas as pd

import numpy as np

from sklearn.datasets import load_digits

dig = load_digits()

import matplotlib.pyplot as pl

pl.gray()

for i in range(4):

 pl.matshow(dig.images[i])

dig.data[:3]

ds = pd.DataFrame(dig.data)

ds.head()

ds[‘target’] = dig.target

from sklearn.model_selection import train_test_split

X_train, X_test, y_train, y_test = train_test_split(ds.drop([‘target’], axis = ‘columns’), dig.target, test_size=0.2)

y_test

from sklearn.ensemble import RandomForestClassifier

rfmodel = RandomForestClassifier(n_estimators = 30)

rfmodel.fit(X_train, y_train)

RandomForestClassifier(n_estimators=30)

rfmodel.score(X_test, y_test)

0.9638888888888889

# Draw heatmap and confusion metrix

y_pred = rfmodel.predict(X_test)

y_pred

from sklearn.metrics import confusion_matrix

cf_matrix = confusion_matrix(y_test, y_pred)

cf_matrix

import seaborn as sns

sns.heatmap(cf_matrix, annot = True)

sns.heatmap(cf_matrix, annot = True, cmap = ‘Blues’, linewidths = 1)

Decision Tree classifier ◀◀◀

import pandas as pd

ds = pd.read_csv(“IrisNew.csv”)

ds.head()

X = ds.iloc[:,1:5]

y = ds.iloc[:,5]

from sklearn.model_selection import train_test_split

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3) # 70% training and 30% test

from sklearn.tree import DecisionTreeClassifier

dt_classifier = DecisionTreeClassifier()

dt_classifier.fit(X_train, y_train)

DecisionTreeClassifier()

y_pred = dt_classifier.predict(X_test)

from sklearn.metrics import confusion_matrix, accuracy_score

cf = confusion_matrix(y_test, y_pred)

cf

ac = accuracy_score(y_test, y_pred)

ac

0.9111111111111111

Bagging classifier ◀◀◀

import pandas as pd

ds = pd.read_csv(“IrisNew.csv”)

ds.head()

X = ds.iloc[:,1:5]

y = ds.iloc[:,5]

from sklearn.model_selection import train_test_split

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3) # 70% training and 30% test

from sklearn.ensemble import BaggingClassifier

bagclassifier = BaggingClassifier()

bagclassifier.fit(X_train, y_train)

BaggingClassifier()

y_pred = bagclassifier.predict(X_test)

from sklearn.metrics import confusion_matrix, accuracy_score

bag_cs = confusion_matrix(y_test, y_pred)

bag_cs

bag_ac = accuracy_score(y_test, y_pred)

bag_ac

0.9333333333333333

import pickle

with open(‘bagModelIris.pkl’,’wb’) as file:

 pickle.dump(bagclassifier, file)

import flask

from flask import Flask, request

model_bagging = pickle.load(open(‘bagModelIris.pkl’,’rb’))

app = Flask(__name__)

# Two parts (base address + route address)

@app.route(‘/’, methods = [‘GET’,’POST’])

def main():

 return “Begging Flask API Development”

@app.route(‘/classify’, methods = [‘GET’])

def classify():

 if flask.request.method == ‘GET’:

  SepalLengthCm = request.args.get(‘sl’)

  SepalWidthCm = request.args.get(‘sw’)

  PetalLengthCm = request.args.get(‘pl’)

  PetalWidthCm = request.args.get(‘pw’)

  prediction = model_bagging.predict([[SepalLengthCm, SepalWidthCm, PetalLengthCm, PetalWidthCm]])

  return ‘Class of species is ‘+str(prediction)

if __name__ == ‘__main__’:

app.run()

Testing using Postman