Using classifier models from the scikit-learn machine learning library and jupyter notebooks, the best solution has an accuracy of 0.775.
Code examples
Feature engineering
# fill missing age with median age for each titletrain['Age'].fillna(train.groupby('Title')['Age'].transform('median'), inplace=True)
test['Age'].fillna(test.groupby('Title')['Age'].transform('median'), inplace=True)