{"cells":[{"metadata":{"trusted":true},"cell_type":"code","source":"## reference: https://www.kaggle.com/ipythonx/optimizing-metrics-out-of-fold-weights-ensemble","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"d629ff2d2480ee46fbb7e2d37f6b5fab8052498a","_cell_guid":"79c7e3d0-c299-4dcb-8224-4455121ee9b0","trusted":true},"cell_type":"code","source":"!ls ../input/melanoma-oof-and-sub","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"import pandas as pd, numpy as np\nfrom scipy.optimize import minimize\nfrom sklearn.metrics import roc_auc_score\nimport matplotlib.pyplot as plt\nimport random\n\n%matplotlib inline","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"np.random.seed(42)\nrandom.seed(42)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"oof_01  = pd.read_csv('../input/melanoma-oof-and-sub/oof_0.csv') \ntest_01 = pd.read_csv('../input/melanoma-oof-and-sub/sub_0.csv')\noof_01  = oof_01.sort_values(by=['image_name'],  \n                               ascending=True).reset_index(drop=True)\ntest_01 = test_01.sort_values(by=['image_name'],  \n                                ascending=True).reset_index(drop=True)\n\noof_02  = pd.read_csv('../input/melanoma-oof-and-sub/oof_100.csv') \ntest_02 = pd.read_csv('../input/melanoma-oof-and-sub/sub_100.csv')\noof_02  = oof_02.sort_values(by=['image_name'],  \n                               ascending=True).reset_index(drop=True)\ntest_02 = test_02.sort_values(by=['image_name'],  \n                                ascending=True).reset_index(drop=True)\n\noof_03  = pd.read_csv('../input/melanoma-oof-and-sub/oof_105.csv') \ntest_03 = pd.read_csv('../input/melanoma-oof-and-sub/sub_105.csv')\noof_03  = oof_03.sort_values(by=['image_name'],  \n                               ascending=True).reset_index(drop=True)\ntest_03 = test_03.sort_values(by=['image_name'],  \n                                ascending=True).reset_index(drop=True)\n\noof_04  = pd.read_csv('../input/melanoma-oof-and-sub/oof_108.csv') \ntest_04 = pd.read_csv('../input/melanoma-oof-and-sub/sub_108.csv')\noof_04  = oof_04.sort_values(by=['image_name'],  \n                               ascending=True).reset_index(drop=True)\ntest_04 = test_04.sort_values(by=['image_name'],  \n                                ascending=True).reset_index(drop=True)\n\noof_05  = pd.read_csv('../input/melanoma-oof-and-sub/oof_109.csv') \ntest_05 = pd.read_csv('../input/melanoma-oof-and-sub/sub_109.csv')\noof_05  = oof_05.sort_values(by=['image_name'],  \n                               ascending=True).reset_index(drop=True)\ntest_05 = test_05.sort_values(by=['image_name'],  \n                                ascending=True).reset_index(drop=True)\n\noof_06  = pd.read_csv('../input/melanoma-oof-and-sub/oof_11.csv') \ntest_06 = pd.read_csv('../input/melanoma-oof-and-sub/sub_11.csv')\noof_06  = oof_06.sort_values(by=['image_name'],  \n                               ascending=True).reset_index(drop=True)\ntest_06 = test_06.sort_values(by=['image_name'],  \n                                ascending=True).reset_index(drop=True)\n\noof_07  = pd.read_csv('../input/melanoma-oof-and-sub/oof_110.csv') \ntest_07 = pd.read_csv('../input/melanoma-oof-and-sub/sub_110.csv')\noof_07  = oof_07.sort_values(by=['image_name'],  \n                               ascending=True).reset_index(drop=True)\ntest_07 = test_07.sort_values(by=['image_name'],  \n                                ascending=True).reset_index(drop=True)\n\noof_08  = pd.read_csv('../input/melanoma-oof-and-sub/oof_111.csv') \ntest_08 = pd.read_csv('../input/melanoma-oof-and-sub/sub_111.csv')\noof_08  = oof_08.sort_values(by=['image_name'],  \n                               ascending=True).reset_index(drop=True)\ntest_08 = test_08.sort_values(by=['image_name'],  \n                                ascending=True).reset_index(drop=True)\n\noof_09  = pd.read_csv('../input/melanoma-oof-and-sub/oof_113.csv') \ntest_09 = pd.read_csv('../input/melanoma-oof-and-sub/sub_113.csv')\noof_09  = oof_09.sort_values(by=['image_name'],  \n                               ascending=True).reset_index(drop=True)\ntest_09 = test_09.sort_values(by=['image_name'],  \n                                ascending=True).reset_index(drop=True)\n\noof_10  = pd.read_csv('../input/melanoma-oof-and-sub/oof_116.csv') \ntest_10 = pd.read_csv('../input/melanoma-oof-and-sub/sub_116.csv')\noof_10  = oof_10.sort_values(by=['image_name'],  \n                               ascending=True).reset_index(drop=True)\ntest_10 = test_10.sort_values(by=['image_name'],  \n                                ascending=True).reset_index(drop=True)\n\noof_11  = pd.read_csv('../input/melanoma-oof-and-sub/oof_117.csv') \ntest_11 = pd.read_csv('../input/melanoma-oof-and-sub/sub_117.csv')\noof_11  = oof_11.sort_values(by=['image_name'],  \n                               ascending=True).reset_index(drop=True)\ntest_11 = test_11.sort_values(by=['image_name'],  \n                                ascending=True).reset_index(drop=True)\n\noof_12  = pd.read_csv('../input/melanoma-oof-and-sub/oof_12.csv') \ntest_12 = pd.read_csv('../input/melanoma-oof-and-sub/sub_12.csv')\noof_12  = oof_12.sort_values(by=['image_name'],  \n                               ascending=True).reset_index(drop=True)\ntest_12 = test_12.sort_values(by=['image_name'],  \n                                ascending=True).reset_index(drop=True)\n\noof_13  = pd.read_csv('../input/melanoma-oof-and-sub/oof_120.csv') \ntest_13 = pd.read_csv('../input/melanoma-oof-and-sub/sub_120.csv')\noof_13  = oof_13.sort_values(by=['image_name'],  \n                               ascending=True).reset_index(drop=True)\ntest_13 = test_13.sort_values(by=['image_name'],  \n                                ascending=True).reset_index(drop=True)\n\noof_14  = pd.read_csv('../input/melanoma-oof-and-sub/oof_121.csv') \ntest_14 = pd.read_csv('../input/melanoma-oof-and-sub/sub_121.csv')\noof_14  = oof_14.sort_values(by=['image_name'],  \n                               ascending=True).reset_index(drop=True)\ntest_14 = test_14.sort_values(by=['image_name'],  \n                                ascending=True).reset_index(drop=True)\n\noof_15  = pd.read_csv('../input/melanoma-oof-and-sub/oof_13.csv') \ntest_15 = pd.read_csv('../input/melanoma-oof-and-sub/sub_13.csv')\noof_15  = oof_15.sort_values(by=['image_name'],  \n                               ascending=True).reset_index(drop=True)\ntest_15 = test_15.sort_values(by=['image_name'],  \n                                ascending=True).reset_index(drop=True)\n\noof_16  = pd.read_csv('../input/melanoma-oof-and-sub/oof_15.csv') \ntest_16 = pd.read_csv('../input/melanoma-oof-and-sub/sub_15.csv')\noof_16  = oof_16.sort_values(by=['image_name'],  \n                               ascending=True).reset_index(drop=True)\ntest_16 = test_16.sort_values(by=['image_name'],  \n                                ascending=True).reset_index(drop=True)\n\n\noof_17  = pd.read_csv('../input/melanoma-oof-and-sub/oof_16.csv') \ntest_17 = pd.read_csv('../input/melanoma-oof-and-sub/sub_16.csv')\noof_17  = oof_17.sort_values(by=['image_name'],  \n                               ascending=True).reset_index(drop=True)\ntest_17 = test_17.sort_values(by=['image_name'],  \n                                ascending=True).reset_index(drop=True)\n\noof_18  = pd.read_csv('../input/melanoma-oof-and-sub/oof_2.csv') \ntest_18 = pd.read_csv('../input/melanoma-oof-and-sub/sub_2.csv')\noof_18  = oof_18.sort_values(by=['image_name'],  \n                               ascending=True).reset_index(drop=True)\ntest_18 = test_18.sort_values(by=['image_name'],  \n                                ascending=True).reset_index(drop=True)\n\noof_19  = pd.read_csv('../input/melanoma-oof-and-sub/oof_20.csv') \ntest_19 = pd.read_csv('../input/melanoma-oof-and-sub/sub_20.csv')\noof_19  = oof_19.sort_values(by=['image_name'],  \n                               ascending=True).reset_index(drop=True)\ntest_19 = test_19.sort_values(by=['image_name'],  \n                                ascending=True).reset_index(drop=True)\n\noof_20  = pd.read_csv('../input/melanoma-oof-and-sub/oof_24.csv') \ntest_20 = pd.read_csv('../input/melanoma-oof-and-sub/sub_24.csv')\noof_20  = oof_20.sort_values(by=['image_name'],  \n                               ascending=True).reset_index(drop=True)\ntest_20 = test_20.sort_values(by=['image_name'],  \n                                ascending=True).reset_index(drop=True)\n\noof_21  = pd.read_csv('../input/melanoma-oof-and-sub/oof_28.csv') \ntest_21 = pd.read_csv('../input/melanoma-oof-and-sub/sub_28.csv')\noof_21  = oof_21.sort_values(by=['image_name'],  \n                               ascending=True).reset_index(drop=True)\ntest_21 = test_21.sort_values(by=['image_name'],  \n                                ascending=True).reset_index(drop=True)\n\noof_22  = pd.read_csv('../input/melanoma-oof-and-sub/oof_30.csv') \ntest_22 = pd.read_csv('../input/melanoma-oof-and-sub/sub_30.csv')\noof_22  = oof_22.sort_values(by=['image_name'],  \n                               ascending=True).reset_index(drop=True)\ntest_22 = test_22.sort_values(by=['image_name'],  \n                                ascending=True).reset_index(drop=True)\n\noof_23  = pd.read_csv('../input/melanoma-oof-and-sub/oof_32.csv') \ntest_23 = pd.read_csv('../input/melanoma-oof-and-sub/sub_32.csv')\noof_23  = oof_23.sort_values(by=['image_name'],  \n                               ascending=True).reset_index(drop=True)\ntest_23 = test_23.sort_values(by=['image_name'],  \n                                ascending=True).reset_index(drop=True)\n\noof_24  = pd.read_csv('../input/melanoma-oof-and-sub/oof_33.csv') \ntest_24 = pd.read_csv('../input/melanoma-oof-and-sub/sub_33.csv')\noof_24  = oof_24.sort_values(by=['image_name'],  \n                               ascending=True).reset_index(drop=True)\ntest_24 = test_24.sort_values(by=['image_name'],  \n                                ascending=True).reset_index(drop=True)\n\noof_25  = pd.read_csv('../input/melanoma-oof-and-sub/oof_35.csv') \ntest_25 = pd.read_csv('../input/melanoma-oof-and-sub/sub_35.csv')\noof_25  = oof_25.sort_values(by=['image_name'],  \n                               ascending=True).reset_index(drop=True)\ntest_25 = test_25.sort_values(by=['image_name'],  \n                                ascending=True).reset_index(drop=True)\n\noof_26  = pd.read_csv('../input/melanoma-oof-and-sub/oof_384.csv') \ntest_26 = pd.read_csv('../input/melanoma-oof-and-sub/sub_384.csv')\noof_26  = oof_26.sort_values(by=['image_name'],  \n                               ascending=True).reset_index(drop=True)\ntest_26 = test_26.sort_values(by=['image_name'],  \n                                ascending=True).reset_index(drop=True)\n\noof_27  = pd.read_csv('../input/melanoma-oof-and-sub/oof_385.csv') \ntest_27 = pd.read_csv('../input/melanoma-oof-and-sub/sub_385.csv')\noof_27  = oof_27.sort_values(by=['image_name'],  \n                               ascending=True).reset_index(drop=True)\ntest_27 = test_27.sort_values(by=['image_name'],  \n                                ascending=True).reset_index(drop=True)\n\noof_28  = pd.read_csv('../input/melanoma-oof-and-sub/oof_4.csv') \ntest_28 = pd.read_csv('../input/melanoma-oof-and-sub/sub_4.csv')\noof_28  = oof_28.sort_values(by=['image_name'],  \n                               ascending=True).reset_index(drop=True)\ntest_28 = test_28.sort_values(by=['image_name'],  \n                                ascending=True).reset_index(drop=True)\n\noof_29  = pd.read_csv('../input/melanoma-oof-and-sub/oof_44.csv') \ntest_29 = pd.read_csv('../input/melanoma-oof-and-sub/sub_44.csv')\noof_29  = oof_29.sort_values(by=['image_name'],  \n                               ascending=True).reset_index(drop=True)\ntest_29 = test_29.sort_values(by=['image_name'],  \n                                ascending=True).reset_index(drop=True)\n\noof_30  = pd.read_csv('../input/melanoma-oof-and-sub/oof_54.csv') \ntest_30 = pd.read_csv('../input/melanoma-oof-and-sub/sub_54.csv')\noof_30  = oof_30.sort_values(by=['image_name'],  \n                               ascending=True).reset_index(drop=True)\ntest_30 = test_30.sort_values(by=['image_name'],  \n                                ascending=True).reset_index(drop=True)\n\noof_31  = pd.read_csv('../input/melanoma-oof-and-sub/oof_55.csv') \ntest_31 = pd.read_csv('../input/melanoma-oof-and-sub/sub_55.csv')\noof_31  = oof_31.sort_values(by=['image_name'],  \n                               ascending=True).reset_index(drop=True)\ntest_31 = test_31.sort_values(by=['image_name'],  \n                                ascending=True).reset_index(drop=True)\n\noof_32  = pd.read_csv('../input/melanoma-oof-and-sub/oof_56.csv') \ntest_32 = pd.read_csv('../input/melanoma-oof-and-sub/sub_56.csv')\noof_32  = oof_32.sort_values(by=['image_name'],  \n                               ascending=True).reset_index(drop=True)\ntest_32 = test_32.sort_values(by=['image_name'],  \n                                ascending=True).reset_index(drop=True)\n\noof_33  = pd.read_csv('../input/melanoma-oof-and-sub/oof_57.csv') \ntest_33 = pd.read_csv('../input/melanoma-oof-and-sub/sub_57.csv')\noof_33  = oof_33.sort_values(by=['image_name'],  \n                               ascending=True).reset_index(drop=True)\ntest_33 = test_33.sort_values(by=['image_name'],  \n                                ascending=True).reset_index(drop=True)\n\noof_34  = pd.read_csv('../input/melanoma-oof-and-sub/oof_58.csv') \ntest_34 = pd.read_csv('../input/melanoma-oof-and-sub/sub_58.csv')\noof_34  = oof_34.sort_values(by=['image_name'],  \n                               ascending=True).reset_index(drop=True)\ntest_34 = test_34.sort_values(by=['image_name'],  \n                                ascending=True).reset_index(drop=True)\n\noof_35  = pd.read_csv('../input/melanoma-oof-and-sub/oof_59.csv') \ntest_35 = pd.read_csv('../input/melanoma-oof-and-sub/sub_59.csv')\noof_35  = oof_35.sort_values(by=['image_name'],  \n                               ascending=True).reset_index(drop=True)\ntest_35 = test_35.sort_values(by=['image_name'],  \n                                ascending=True).reset_index(drop=True)\n\noof_36  = pd.read_csv('../input/melanoma-oof-and-sub/oof_6.csv') \ntest_36 = pd.read_csv('../input/melanoma-oof-and-sub/sub_6.csv')\noof_36  = oof_36.sort_values(by=['image_name'],  \n                               ascending=True).reset_index(drop=True)\ntest_36 = test_36.sort_values(by=['image_name'],  \n                                ascending=True).reset_index(drop=True)\n\noof_37  = pd.read_csv('../input/melanoma-oof-and-sub/oof_65.csv') \ntest_37 = pd.read_csv('../input/melanoma-oof-and-sub/sub_65.csv')\noof_37  = oof_37.sort_values(by=['image_name'],  \n                               ascending=True).reset_index(drop=True)\ntest_37 = test_37.sort_values(by=['image_name'],  \n                                ascending=True).reset_index(drop=True)\n\noof_38  = pd.read_csv('../input/melanoma-oof-and-sub/oof_67.csv') \ntest_38 = pd.read_csv('../input/melanoma-oof-and-sub/sub_67.csv')\noof_38  = oof_38.sort_values(by=['image_name'],  \n                               ascending=True).reset_index(drop=True)\ntest_38 = test_38.sort_values(by=['image_name'],  \n                                ascending=True).reset_index(drop=True)\n\noof_39  = pd.read_csv('../input/melanoma-oof-and-sub/oof_77.csv') \ntest_39 = pd.read_csv('../input/melanoma-oof-and-sub/sub_77.csv')\noof_39  = oof_39.sort_values(by=['image_name'],  \n                               ascending=True).reset_index(drop=True)\ntest_39 = test_39.sort_values(by=['image_name'],  \n                                ascending=True).reset_index(drop=True)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"blend_train = []\nblend_test = []\n\n# out of fold prediction\nblend_train.append(oof_01.pred)\nblend_train.append(oof_02.pred)\nblend_train.append(oof_03.pred)\nblend_train.append(oof_04.pred)\nblend_train.append(oof_05.pred)\nblend_train.append(oof_06.pred)\nblend_train.append(oof_07.pred)\nblend_train.append(oof_08.pred)\nblend_train.append(oof_09.pred)\nblend_train.append(oof_10.pred)\nblend_train.append(oof_11.pred)\nblend_train.append(oof_12.pred)\nblend_train.append(oof_13.pred)\nblend_train.append(oof_14.pred)\nblend_train.append(oof_15.pred)\nblend_train.append(oof_16.pred)\nblend_train.append(oof_17.pred)\nblend_train.append(oof_18.pred)\nblend_train.append(oof_19.pred)\nblend_train.append(oof_20.pred)\nblend_train.append(oof_21.pred)\nblend_train.append(oof_22.pred)\nblend_train.append(oof_23.pred)\nblend_train.append(oof_24.pred)\nblend_train.append(oof_25.pred)\nblend_train.append(oof_26.pred)\nblend_train.append(oof_27.pred)\nblend_train.append(oof_28.pred)\nblend_train.append(oof_29.pred)\nblend_train.append(oof_30.pred)\nblend_train.append(oof_31.pred)\nblend_train.append(oof_32.pred)\nblend_train.append(oof_33.pred)\nblend_train.append(oof_34.pred)\nblend_train.append(oof_35.pred)\nblend_train.append(oof_36.pred)\nblend_train.append(oof_37.pred)\nblend_train.append(oof_38.pred)\nblend_train.append(oof_39.pred)\nblend_train = np.array(blend_train)\n\n# submission scores\nblend_test.append(test_01.target)\nblend_test.append(test_02.target)\nblend_test.append(test_03.target)\nblend_test.append(test_04.target)\nblend_test.append(test_05.target)\nblend_test.append(test_06.target)\nblend_test.append(test_07.target)\nblend_test.append(test_08.target)\nblend_test.append(test_09.target)\nblend_test.append(test_10.target)\nblend_test.append(test_11.target)\nblend_test.append(test_12.target)\nblend_test.append(test_13.target)\nblend_test.append(test_14.target)\nblend_test.append(test_15.target)\nblend_test.append(test_16.target)\nblend_test.append(test_17.target)\nblend_test.append(test_18.target)\nblend_test.append(test_19.target)\nblend_test.append(test_20.target)\nblend_test.append(test_21.target)\nblend_test.append(test_22.target)\nblend_test.append(test_23.target)\nblend_test.append(test_24.target)\nblend_test.append(test_25.target)\nblend_test.append(test_26.target)\nblend_test.append(test_27.target)\nblend_test.append(test_28.target)\nblend_test.append(test_29.target)\nblend_test.append(test_30.target)\nblend_test.append(test_31.target)\nblend_test.append(test_32.target)\nblend_test.append(test_33.target)\nblend_test.append(test_34.target)\nblend_test.append(test_35.target)\nblend_test.append(test_36.target)\nblend_test.append(test_37.target)\nblend_test.append(test_38.target)\nblend_test.append(test_39.target)\nblend_test = np.array(blend_test)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"def roc_min_func(weights):\n    final_prediction = 0\n    for weight, prediction in zip(weights, blend_train):\n        final_prediction += weight * prediction\n    return roc_auc_score(np.array(oof_01.target), final_prediction)\n\nprint('\\n Finding Blending Weights ...')\nres_list = []\nweights_list = []\n\nfor k in range(1000):\n    #starting_values = np.random.uniform(size=len(blend_train))\n    starting_values = np.random.uniform(size=len(blend_train)) * 1/len(blend_train)\n    #bounds = [(0, 1)] * len(blend_train)\n    #bounds = [(0, 1/len(blend_train))] * len(blend_train)\n    bounds = [(0, 1/len(blend_train)) for _ in range(len(blend_train))]\n    \n    res = minimize(roc_min_func,\n                   starting_values,\n                   method='L-BFGS-B',\n                   bounds=bounds,\n                   options={'disp': False,\n                            'maxiter': 100000})\n    \n    res_list.append(res['fun'])\n    weights_list.append(res['x'])\n    \n    print('{iter}\\tScore: {score}\\tWeights: {weights}'.format(\n        iter=(k + 1),\n        score=res['fun'],\n        weights='\\t'.join([str(item) for item in res['x']])))\n\n    \n#bestSC   = np.min(res_list)\nbestSC = np.max(res_list)\n#bestWght = weights_list[np.argmin(res_list)]\nbestWght = weights_list[np.argmax(res_list)]\nweights  = bestWght\nblend_score = round(bestSC, 6)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"print('\\n Ensemble Score: {best_score}'.format(best_score=bestSC))\nprint('\\n Best Weights: {weights}'.format(weights=bestWght))\n\ntrain_prices = np.zeros(len(blend_train[0]))\ntest_prices  = np.zeros(len(blend_test[0]))\n\nprint('\\n Your final model:')\nfor k in range(len(blend_test)):\n    print(' %.6f * model-%d' % (weights[k], (k + 1)))\n    test_prices += blend_test[k] * weights[k]\n\nfor k in range(len(blend_train)):\n    train_prices += blend_train[k] * weights[k]","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"## with image and tabular kernel-based\ntest_01.target = (test_01.target.values*bestWght[0] + \n                 test_02.target.values*bestWght[1] +\n                 test_03.target.values*bestWght[2] +\n                 test_04.target.values*bestWght[3] +\n                 test_05.target.values*bestWght[4] +\n                 test_06.target.values*bestWght[5] +\n                 test_07.target.values*bestWght[6] +\n                 test_08.target.values*bestWght[7] +\n                 test_09.target.values*bestWght[8] +\n                 test_10.target.values*bestWght[9] +\n                 test_11.target.values*bestWght[10] +\n                 test_12.target.values*bestWght[11] +\n                 test_13.target.values*bestWght[12] +\n                 test_14.target.values*bestWght[13] +\n                 test_15.target.values*bestWght[14] +\n                 test_16.target.values*bestWght[15] +\n                 test_17.target.values*bestWght[16] +\n                 test_18.target.values*bestWght[17] +\n                 test_19.target.values*bestWght[18] +\n                 test_20.target.values*bestWght[19] +\n                 test_21.target.values*bestWght[20] +\n                 test_22.target.values*bestWght[21] +\n                 test_23.target.values*bestWght[22] +\n                 test_24.target.values*bestWght[23] +\n                 test_25.target.values*bestWght[24] +\n                 test_26.target.values*bestWght[25] +\n                 test_27.target.values*bestWght[26] +\n                 test_28.target.values*bestWght[27] +\n                 test_29.target.values*bestWght[28] +\n                 test_30.target.values*bestWght[29] +\n                 test_31.target.values*bestWght[30] +\n                 test_32.target.values*bestWght[31] +\n                 test_33.target.values*bestWght[32] +\n                 test_34.target.values*bestWght[33] +\n                 test_35.target.values*bestWght[34] +\n                 test_36.target.values*bestWght[35] +\n                 test_37.target.values*bestWght[36] +\n                 test_38.target.values*bestWght[37] +\n                 test_39.target.values*bestWght[38])/sum(bestWght)\n\ntest_01.to_csv('final_weighted_average_ensemble.csv', index=False)\ntest_01.head()","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}