great sharing! I checked the code and find in the last step(Merge.ipynb) the weight for three model are 0.1, 07, 0.4. Just curious about how did you decide the final weight?
# ncf['score'] = (ncf.score * 0.2 + lgb.score * 0.7 + xgb.score * 0.4)
# ncf.head()
merged_df['score'] = merged_df.ncf_score * 0.1 + merged_df.lgb_score * 0.7 + merged_df.xgb_score * 0.4
merged_df.head()