test_features = transform(test_df)

add_missing_dummy_columns(test_features, model_columns)
test_features = test_features[model_columns]

test_prediction = pd.DataFrame(model.predict(test_features),
                               columns=['prediction'])
submission = Ids.merge(test_prediction,
                       how='left',
                       left_index=True,
                       right_index=True)
submission.to_csv('submission.csv')

# Try with ludwig
# train a model
#load a model
model = LudwigModel.load(
    "/Users/geoffrey.kip/Projects/ludwig/ludwig_models/results/experiment_run_1/model"
)

# obtain predictions
ludwig_predictions = model.predict(test_df)

#evaluate predictions
preds = np.where(predictions_probs[:, 1] >= 0.5, 1, 0)
print(accuracy_score(Y_test, preds))
print(confusion_matrix(Y_test, preds))
print(classification_report(Y_test, preds))

model.close()