Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save vishwanath79/f3ee494c4aba300baf4bb1475f3421c8 to your computer and use it in GitHub Desktop.
Save vishwanath79/f3ee494c4aba300baf4bb1475f3421c8 to your computer and use it in GitHub Desktop.
#%%
import numpy as np
import pandas as pd
data = pd.read_csv("preprocessed_data.csv")
data = data.sample(frac=1)
train_size = int(0.8 * len(data))
features = data.drop(columns=["Price"])
targets= data["Price"]
X_train, X_test = features.values[:train_size, :], features.values[train_size:,:]
y_train, y_test = targets.values[:train_size], targets.values[train_size:]
corr = data.corr()
cmap = sns.diverging_palette(250,10, as_cmap=True)
plt.figure(figsize=(40,80))
sns.heatmap(corr[["Price"]], cmap=cmap, vmax=3, square=True,linewidths=.5, cbar_kws={"shrink": .5}, annot=True)
import tensorflow as tf
model = tf.keras.models.Sequential([tf.keras.layers.Dense(1024, activation=tf.nn.leaky_relu),
tf.keras.layers.Dropout(0.5),
tf.keras.layers.Dense(512,activation=tf.nn.leaky_relu),
tf.keras.layers.Dropout(0.5),
tf.keras.layers.Dense(1,activation='sigmoid')
])
adam_optimizer = tf.keras.optimizers.Adam()
#fix weights per req
class_weight = {0: weight_for_A, 1:weight_for_B}
model.compile(optimizer=adam_optimizer, loss='binary_crossentropy', metrics=[
tf.keras.metrics.TruePositives(name='tp'),
tf.keras.metrics.FalsePositives(name='fp'),
tf.keras.metrics.TrueNegatives(name='tn'),
tf.keras.metrics.FalseNegatives(name='fn'),
tf.keras.metrics.TruePositives(name='tp'),
tf.keras.metrics.BinaryAccuracy(name='accuracy'),
tf.keras.metrics.Precision(name='precision'),
tf.keras.metrics.Recall(name='recall'),
tf.keras.metrics.AUC(name='auc'),
from keras.callbacks import EarlyStopping, ModelCheckpoint
save_early_callback =EarlyStopping(monitor='val_loss', patience=5)
save_best_callback = ModelCheckpoint('content/model-{epoch:02d}-{accuracy:.2f}.f5', save_best_only=True, save_weights_only=True)
model.fit(X_train,y_train, batch_size=64, class_weight=class_weight,validation_split=0.1,epochs=50, callbacks=[save_early_callback,save_best_callback])
model.evaluate(X_test,y_test)
np.round(model.predict(X_test))
#save as f5 if permission errors
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment