In [1]:
import pandas as pd
import numpy as np
from keras.models import Sequential
from keras.layers import Dense, Dropout, Activation, LSTM
from keras.optimizers import SGD
from keras.callbacks import History
from keras.models import Sequential
from keras.layers import Dense, Dropout
from keras.layers import Embedding
from keras.layers import MaxPooling1D
%matplotlib inline
import matplotlib
import matplotlib.pyplot as plt
history = History()
history_testing = History()
In [2]:
df_init = df = pd.read_csv('maintenance_data.csv')
#Convert strings to discrete integers
try:
mymap = {'TeamA':1, 'TeamB':2, 'TeamC':3, 'Provider1':1, 'Provider2':2, 'Provider3':3, 'Provider4':4}
df = df.applymap(lambda s: mymap.get(s) if s in mymap else s)
except:
pass
X = df.drop('broken', axis=1).values
Y = df.broken.values[np.newaxis].T
df.head()
Out[2]:
In [3]:
model = Sequential()
model.add(Dense(64, activation='relu', input_dim=6))
model.add(Dropout(0.5))
model.add(Dense(64, activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(64, activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(2, activation='softmax'))
model.compile(optimizer='adam',
loss='sparse_categorical_crossentropy',
metrics=['accuracy'])
model.fit(X, Y, epochs=200, verbose=0, validation_split=0.15, callbacks=[history])
#Accuracy during training epochs
plt.plot(history.history['acc'])
plt.plot(history.history['val_acc'])
plt.title('Model Accuracy')
plt.ylabel('accuracy')
plt.xlabel('epoch')
plt.legend(['train', 'test'], loc='lower right')
plt.grid()
plt.show()
#Loss during training epochs
plt.plot(history.history['loss'])
plt.plot(history.history['val_loss'])
plt.title('Model Loss')
plt.ylabel('loss')
plt.xlabel('epoch')
plt.legend(['train', 'test'], loc='upper right')
plt.grid()
plt.show()
In [ ]:
In [ ]: