Skip to content
Snippets Groups Projects
house_prices_estimation_example_data.py 1.34 KiB
Newer Older
Picon Ruiz, Artzai's avatar
Picon Ruiz, Artzai committed
# -*- coding: utf-8 -*-

from tensorflow_core.python.keras.layers.core import Dense, Dropout
from tensorflow_core.python.keras.models import Sequential
from tensorflow_core.python.keras.optimizer_v2.adam import Adam

from datasets import load_house_dataset_data
from train_and_evaluation import evaluate_regression_model, train_model
import matplotlib.pyplot as plt

__author__ = 106360

def generate_simple_regression_model(input_shape):
    model = Sequential()
    model.add(Dense(16, input_dim=input_shape, activation="relu"))
    # model.add(Dropout(0.25))
    model.add(Dense(6, activation="relu"))
    # model.add(Dropout(0.25))
    model.add(Dense(1, activation="sigmoid"))

    return model


if __name__ == "__main__":
    (trainX,trainX_img, trainY, testX,testX_img,testY), normalizer = load_house_dataset_data(test_size=0.2,random_state=666)
    input_shape = trainX.shape[1]
    model = generate_simple_regression_model(input_shape)

    opt = Adam(lr=1e-3, decay=1e-3 / 200)
    model.compile(loss='mean_squared_error',metrics=['mean_absolute_percentage_error','mean_absolute_error','mean_squared_error'], optimizer=opt)
    model.summary()

    model = train_model(trainX, trainY, testX, testY,model,show_plot=True,epochs=500,batch_size=32)
    evaluate_regression_model(model,testX,testY,normalizer,show_plot=True)
    model.save('regression_model_data.h5')