In [2]:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
%matplotlib inline
import warnings
warnings.filterwarnings('ignore')
%config InlineBackend.figure_format = 'retina'
In [3]:
data = pd.read_csv("https://raw.githubusercontent.com/uiuc-cse/data-fa14/gh-pages/data/iris.csv")
In [4]:
data.head()
Out[4]:
In [5]:
data.shape
Out[5]:
In [14]:
data.species.value_counts()
Out[14]:
In [15]:
map_output = {"setosa" :0, "versicolor":1, "virginica":2}
In [17]:
data.species = data.species.replace(map_output)
Import necessary modules¶
In [9]:
import keras
from keras.layers import Dense
from keras.models import Sequential
from keras.utils import to_categorical
In [7]:
n_cols = data.shape[1]
Set up the model¶
In [26]:
model = Sequential()
In [11]:
X = data.iloc[:,:-1]
In [12]:
X.head()
Out[12]:
Convert the target to categorical¶
In [18]:
y = to_categorical(data.iloc[:,-1])
Add layers¶
In [27]:
model.add(Dense(32, activation = "relu", input_shape = (4,)))
model.add(Dense(10, activation= "relu"))
Add output layer¶
In [28]:
model.add(Dense(3,activation = "softmax"))
Compile the model¶
In [29]:
model.compile(optimizer = "sgd", loss = "categorical_crossentropy", metrics = ["accuracy"])
Fit the model¶
In [33]:
model.fit(X.values,y, epochs=25)
Out[33]:
Evaluating model accuracy on validation dataset¶
In [62]:
model = Sequential()
model.add(Dense(32, activation = "relu", input_shape = (4,)))
model.add(Dense(10, activation= "relu"))
model.add(Dense(3,activation = "softmax"))
In [63]:
model.compile(optimizer = "sgd", loss = "categorical_crossentropy", metrics = ["accuracy"])
In [64]:
hist = model.fit(X.values, y, validation_split = 0.3, epochs=14)
Early stopping¶
In [78]:
from keras.callbacks import EarlyStopping
In [79]:
model = Sequential()
model.add(Dense(32, activation = "relu", input_shape = (4,)))
model.add(Dense(10, activation= "relu"))
model.add(Dense(3,activation = "softmax"))
In [80]:
model.compile(optimizer = "adam", loss = "categorical_crossentropy", metrics = ["accuracy"])
In [81]:
# Define early_stopping_monitor
early_stopping_monitor = EarlyStopping(patience = 15)
In [82]:
# Fit the model
model.fit(X.values, y, epochs = 100, validation_split = 0.3, callbacks = [early_stopping_monitor])
Out[82]:
In [84]:
hist.history
Out[84]:
No comments :
Post a Comment