praj2408's picture
Upload 393 files
644ef64 verified
raw
history blame
2.11 kB
from keras.models import Sequential
from tensorflow.keras.layers import Dense,Dropout
from tensorflow.keras.optimizers import Adam
from keras.callbacks import EarlyStopping,ReduceLROnPlateau,CSVLogger,ModelCheckpoint
import pandas as pd
data=pd.read_csv("C:/Users/U/Downloads/thyroid prediction in simple ann/thyroid_data.csv")
print(data.head())
print(data.isna().sum())
data.sex=data.sex.fillna(0)
print(data.head())
x=data.drop("binaryClass",axis=1)
y=data.binaryClass
from sklearn.model_selection import train_test_split
x_train,x_test,y_train,y_test=train_test_split(x,y,random_state=0,test_size=0.2)
print("x_train::{}".format(x_train.shape))
print("x_test::{}".format(x_test.shape))
print("y_train::{}".format(y_train.shape))
print("y_test::{}".format(y_test.shape))
from sklearn.preprocessing import StandardScaler
sc=StandardScaler()
x_train=sc.fit_transform(x_train)
x_test=sc.transform(x_test)
model=Sequential()
model.add(Dense(256,input_shape=[x.shape[1]],activation="relu"))
model.add(Dropout(0.4))
model.add(Dense(128,activation="relu"))
model.add(Dropout(0.3))
model.add(Dense(64,activation="relu"))
model.add(Dropout(0.2))
model.add(Dense(1,activation="sigmoid"))
print(model.summary())
model.compile(optimizer=Adam(),loss="binary_crossentropy",metrics=["accuracy"])
lrd = ReduceLROnPlateau(monitor = 'val_loss',patience = 20,verbose = 1,factor = 0.75,min_lr = 1e-10)
checkpoint=ModelCheckpoint("thyroid.h5",monitor='val_acc',verbose=1,save_best_only=True,mode="max")
early_stop=EarlyStopping(verbose=1,patience=20)
log_csv=CSVLogger("thyroid.csv",separator=",",append=False)
callback_list=[checkpoint,early_stop,log_csv,lrd]
model_main=model.fit(x=x_train,y=y_train,epochs=100,callbacks=callback_list, batch_size=64, validation_split=0.1)
print(model.evaluate(x_test,y_test))
y_pred=model.predict(x_test)
print(y_pred)
print(y_test)
print(y_pred[2])
from keras.models import load_model
model.save("thyroid.h5")
model=load_model("thyroid.h5")
model.predict(sc.transform([[42.1,0,0,0,0,0,0,0,12,34,43,0,0,0,0,0,1.00,132,1.00,1.00,109.0,1.0,0.88,.100,110.00,0.00,0,1]]))