#apply a dense neural network to Kaggle Titanic dataset
import tensorflow as tf
#conda create -n tensorflow_env tensorflow / n'a pas marche mais la ligne suivante a suffi
#conda activate tensorflow_env
#conda install -c anaconda pandas 
import pandas as pd
def print_length(x,label="this data frame"):
    print(label + " has " + str(len(x)) + " lines of data. ")
    print(x.info())
    print(x.head())

data_path = "../data/"
df = pd.read_csv(data_path+"train.csv", index_col=0)
print_length(df,"titanic train data train.csv")
n_sample = 1#we take every n_sample item
df = df[::n_sample]
y_train = df['K'].values
df.drop(['K'], axis=1, inplace=True)
x_train = df.iloc[:,:].values
x_test, y_test = x_train, y_train
model = tf.keras.models.Sequential([
  tf.keras.layers.Dense(10, activation=tf.nn.relu),
  tf.keras.layers.Dense(100, activation=tf.nn.relu),
  tf.keras.layers.Dropout(0.2),
  tf.keras.layers.Dense(1, activation=tf.nn.softmax)
])
model.compile(optimizer='adam',
              loss='mean_absolute_error',
              metrics=['accuracy'])

model.fit(x_train, y_train, epochs=100, validation_split = 0.2)
model.evaluate(x_test, y_test)
