Import Numpy as Np
Import Numpy as Np
import pandas as pd
import matplotlib.pyplot as plt
df.isnull().sum()
df.info()
df.duplicated()
df.duplicated().sum()
y = np.array(df['Outcome'])
y = np.expand_dims(y,axis=1) # reshaping to 2d array
y[:5]
ax[i].set_xlabel(features[i])
ax[i].set_ylabel(target)
ax[i].legend()
scaler = StandardScaler()
x_train_norm = scaler.fit_transform(x_train)
x_cv_norm = scaler.transform(x_cv)
x_test_norm = scaler.transform(x_test)
joblib.dump(scaler, 'scaler.joblib')
def build_models():
model_1 = Sequential([
Dense(units=20, activation='relu', kernel_regularizer = l2(0.01),
name='L1'), # using Ridge regularization
Dense(units=10, activation='relu', kernel_regularizer = l2(0.01),
name='L2'),
Dense(units=1, activation='linear', kernel_regularizer = l2(0.01),
name='L3')
], name = 'model_1')
model_2 = Sequential([
Dense(units=25, activation='relu', kernel_regularizer = l2(0.01),
name='L1'),
Dense(units=15, activation='relu', kernel_regularizer = l2(0.01),
name='L2'),
Dense(units=1, activation='linear', kernel_regularizer = l2(0.01),
name='L3')
], name = 'model_2')
model_3 = Sequential([
Dense(units=20, activation='relu', kernel_regularizer = l2(0.01),
name='L1'),
Dense(units=12, activation='relu', kernel_regularizer = l2(0.01),
name='L2'),
Dense(units=12, activation='relu', kernel_regularizer = l2(0.01),
name='L3'),
Dense(units=1, activation='linear', kernel_regularizer = l2(0.01),
name='L4')
], name = 'model_3')
model_4 = Sequential([
Dense(units=32, activation='relu', kernel_regularizer = l2(0.01),
name='L1'),
Dense(units=16, activation='relu', kernel_regularizer = l2(0.01),
name='L2'),
Dense(units=8, activation='relu', kernel_regularizer = l2(0.01),
name='L3'),
Dense(units=4, activation='relu', kernel_regularizer = l2(0.01),
name='L4'),
Dense(units=12, activation='relu', kernel_regularizer = l2(0.01),
name='L5'),
Dense(units=1, activation='linear', kernel_regularizer = l2(0.01),
name='L6')
], name = 'model_4')
return model_list
print(f'training... {model.name}')
model.fit(
x_train, y_train,
epochs=200,
verbose=0 # not displaying training progress
)
threshold = 0.5
model_index = np.argmin(val_error_list)
models[model_index].name
best_model = models[model_index]
best_model.summary()
yhat = best_model.predict(x_test)
yhat_sigmoid = tf.nn.sigmoid(yhat)
yhat = np.where(yhat_sigmoid >= threshold, 1, 0)
test_error = yhat != y_test
test_error = np.mean(test_error)
print(f'Test error = {test_error}')
accuracy_score(yhat, y_test)
tf.keras.models.save_model(best_model,'model.h5')
nn_model = tf.keras.models.load_model('model.h5')
saved_scaler = joblib.load('scaler.joblib')
print('Enter the following data:\n')
x_input = []
for i in range(len(features)):
print(features[i])
x_i = float(input())
x_input.append(x_i)