Keras Regression Models

Notes on learning about Keras Regression Models:

# !pip install numpy==2.0.2
# !pip install pandas==2.2.2
# !pip install tensorflow_cpu==2.18.0

import os
os.environ['TF_ENABLE_ONEDNN_OPTS'] = '0'
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'

import pandas as pd
import numpy as np
import keras
import warnings

from keras.models import Sequential
from keras.layers import Dense
from keras.layers import Input


warnings.simplefilter('ignore', FutureWarning)

filepath='https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/DL0101EN/labs/data/concrete_data.csv'
concrete_data = pd.read_csv(filepath)

# take a look at the data
concrete_data.head()

concrete_data.shape # (1030, 9)

# take a look at the data
concrete_data.describe()
# check for missing values
concrete_data.isnull().sum()

# all columns except Strength which is what we will predict
concrete_data_columns = concrete_data.columns
predictors = concrete_data[concrete_data_columns[concrete_data_columns != 'Strength']] # all columns except Strength
target = concrete_data['Strength'] # Strength column

# sanity check
predictors.head()
target.head()

# normalize the data
predictors_norm = (predictors - predictors.mean()) / predictors.std()
predictors_norm.head()

n_cols = predictors_norm.shape[1] # number of predictors

# Create our model
def regression_model():
    model = Sequential()
    model.add(Input(shape=(n_cols,)))
    model.add(Dense(50, activation='relu'))
    model.add(Dense(50, activation='relu'))
    model.add(Dense(1))
    model.compile(optimizer='adam', loss='mean_squared_error')
    return model
    
model = regression_model()
model.fit(predictors_norm, target, validation_split=0.3, epochs=100, verbose=2)