{"cells":[{"metadata":{"trusted":true},"cell_type":"code","source":"import numpy as np\nimport pandas as pd \nimport os \n\ndef MinMaxBestBaseStacking(input_folder, best_base, output_path):\n    sub_base = pd.read_csv(best_base)\n    all_files = os.listdir(input_folder)\n\n    # Read and concatenate submissions\n    outs = [pd.read_csv(os.path.join(input_folder, f), index_col=0) for f in all_files]\n    concat_sub = pd.concat(outs, axis=1)\n    cols = list(map(lambda x: \"target\" + str(x), range(len(concat_sub.columns))))\n    concat_sub.columns = cols\n    concat_sub.reset_index(inplace=True)\n\n    # get the data fields ready for stacking\n    concat_sub['is_iceberg_max'] = concat_sub.iloc[:, 1:6].max(axis=1)\n    concat_sub['is_iceberg_min'] = concat_sub.iloc[:, 1:6].min(axis=1)\n    concat_sub['is_iceberg_mean'] = concat_sub.iloc[:, 1:6].mean(axis=1)\n    concat_sub['is_iceberg_median'] = concat_sub.iloc[:, 1:6].median(axis=1)\n\n    # set up cutoff threshold for lower and upper bounds\n    cutoff_lo = 0.85\n    cutoff_hi = 0.17\n\n    concat_sub['is_iceberg_base'] = sub_base['target']\n    concat_sub['target'] = np.where(np.all(concat_sub.iloc[:, 1:6] > cutoff_lo, axis=1),\n                                        concat_sub['is_iceberg_max'],\n                                        np.where(np.all(concat_sub.iloc[:, 1:6] < cutoff_hi, axis=1),\n                                                 concat_sub['is_iceberg_min'],\n                                                 concat_sub['is_iceberg_base']))\n    concat_sub[['image_name', 'target']].to_csv(output_path,\n                                            index=False, float_format='%.12f')\n","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"MinMaxBestBaseStacking('../input/melanoma-ensemble-files/', '../input/melanoma-ensemble-files/blend_sub.csv', 'submission.csv')","execution_count":null,"outputs":[]}],"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"pygments_lexer":"ipython3","nbconvert_exporter":"python","version":"3.6.4","file_extension":".py","codemirror_mode":{"name":"ipython","version":3},"name":"python","mimetype":"text/x-python"}},"nbformat":4,"nbformat_minor":4}