{"cells":[{"metadata":{"_cell_guid":"79c7e3d0-c299-4dcb-8224-4455121ee9b0","_uuid":"d629ff2d2480ee46fbb7e2d37f6b5fab8052498a","trusted":true},"cell_type":"code","source":"import os\nprint(os.listdir(\"../input\"))","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"a7679b66f3e035db6e4e90703b2921cd63e7e7d8"},"cell_type":"code","source":"import pandas as pd\nimport csv","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"daeeac902631cb8fbb8ce320824ba4fd9b49f1f7"},"cell_type":"code","source":"sub_files = [\n                \"../input/ensemble-whale/whale1.csv\", \n                \"../input/ensemble-whale/whale2.csv\",\n               # \"../input/ensemble-whale/whale3.csv\",\n                #\"../input/ensemble-whale/whale4.csv\",\n               # \"../input/ensemble-whale/whale5.csv\",\n                \"../input/ensemble-whale/whale10.csv\",\n                \"../input/whale9/whale9.csv\"\n                 \n            ]\n\nsub_weight = [\n                0.842**2,            \n                0.855**2,\n                #0.824**2,\n                #0.822**2,\n                #0.805**2,\n                0.868**2,\n                0.867**2\n            ]","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"295317ec4ba69dcfcaa3a2479e7ce581eeeb6b40"},"cell_type":"code","source":"Hlabel = 'Image' \nHtarget = 'Id'\nnpt = 6\nplace_weights = {}\nfor i in range(npt):\n    place_weights[i] = ( 1 / (i + 1) )\n    \nprint(place_weights)\n\nlg = len(sub_files)\nsub = [None]*lg\nfor i, file in enumerate( sub_files ):\n   \n    print(\"Reading {}: w={} - {}\". format(i, sub_weight[i], file))\n    reader = csv.DictReader(open(file,\"r\"))\n    sub[i] = sorted(reader, key=lambda d: str(d[Hlabel]))\n\nout = open(\"whale_ensemble_3.csv\", \"w\", newline='')\nwriter = csv.writer(out)\nwriter.writerow([Hlabel,Htarget])\n\nfor p, row in enumerate(sub[0]):\n    target_weight = {}\n    for s in range(lg):\n        row1 = sub[s][p]\n        for ind, trgt in enumerate(row1[Htarget].split(' ')):\n            target_weight[trgt] = target_weight.get(trgt,0) + (place_weights[ind]*sub_weight[s])\n    tops_trgt = sorted(target_weight, key=target_weight.get, reverse=True)[:npt]\n    writer.writerow([row1[Hlabel], \" \".join(tops_trgt)])\nout.close()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"23467b2f306a20abcb92e40426820049a8fa8cdc"},"cell_type":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"1b195873b78cab9f682fdfb469063948230a89ba"},"cell_type":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"194164a67615de2c89f90c2c616e82d957d1091c"},"cell_type":"code","source":"","execution_count":null,"outputs":[]}],"metadata":{"kernelspec":{"display_name":"Python 3","language":"python","name":"python3"},"language_info":{"name":"python","version":"3.6.6","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"}},"nbformat":4,"nbformat_minor":1}