In [1]:
import keras
import numpy as np
import pandas as pd
from keras.layers import Input, Dense
from keras.models import Model, Sequential
In [2]:
df = pd.read_csv("../housing-conditions-in-copenhagen/data.csv",sep="\s+")
In [3]:
df.head()
Out[3]:
In [4]:
df.describe()
Out[4]:
In [5]:
df_new = pd.concat([df,pd.get_dummies(df["housing"],prefix="housing")],axis=1).drop(["housing"],axis=1)
df_new = pd.concat([df_new,pd.get_dummies(df["influence"],prefix="influence")],axis=1).drop(["influence"],axis=1)
df_new = pd.concat([df_new,pd.get_dummies(df["satisfaction"],prefix="satisfaction")],axis=1).drop(["satisfaction"],axis=1)
In [6]:
df_new["contact_with_neighbours"] = df_new["contact_with_neighbours"].map(lambda v: 0 if v == 1 else 1)
In [13]:
df_new.head()
Out[13]:
In [8]:
y = df_new["contact_with_neighbours"].values.reshape(-1,1)
X = df_new.drop(["contact_with_neighbours"], axis=1).values
In [9]:
y.shape, X.shape
Out[9]:
In [10]:
indices = np.arange(72)
np.random.shuffle(indices)
num_validation_samples = int(0.2*72)
y = y[indices]
X = X[indices]
X_train = X[:-num_validation_samples]
y_train = y[:-num_validation_samples]
X_val = X[-num_validation_samples:]
y_val = y[-num_validation_samples:]
In [11]:
X_train.shape,y_train.shape,X_val.shape, y_val.shape
Out[11]:
In [12]:
model = Sequential()
model.add(Dense(1,
activation='sigmoid',
input_dim=X.shape[1]))
rmsprop = keras.optimizers.RMSprop(lr=0.01)
model.compile(optimizer=rmsprop, loss='mse', metrics=['mse'])
early_stopping = keras.callbacks.EarlyStopping(monitor='val_loss', min_delta=0, patience=5, verbose=0, mode='auto')
model.fit(X,
y,
epochs=300,
validation_data=(X_val, y_val),
callbacks = [early_stopping])
Out[12]:
In [ ]: