{"cells":[{"metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","trusted":true},"cell_type":"code","source":"import numpy as np\nimport pandas as pd","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"d629ff2d2480ee46fbb7e2d37f6b5fab8052498a","_cell_guid":"79c7e3d0-c299-4dcb-8224-4455121ee9b0","trusted":true},"cell_type":"code","source":"train = pd.read_csv('../input/siim-isic-melanoma-classification/train.csv')\ntest = pd.read_csv('../input/siim-isic-melanoma-classification/test.csv')\nsample = pd.read_csv('../input/siim-isic-melanoma-classification/sample_submission.csv')\ntrain_pred = pd.read_csv('../input/trainy/1.csv')\ntest_pred = pd.read_csv('../input/pytorch-5-fold-efficientnet-baseline/submission.csv')","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"train['sex'] = train['sex'].fillna('na')\ntrain['age_approx'] = train['age_approx'].fillna(0)\ntrain['anatom_site_general_challenge'] = train['anatom_site_general_challenge'].fillna('na')\n\ntest['sex'] = test['sex'].fillna('na')\ntest['age_approx'] = test['age_approx'].fillna(0)\ntest['anatom_site_general_challenge'] = test['anatom_site_general_challenge'].fillna('na')","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"train['y'] = train_pred['target']\ntest['y'] = test_pred['target']","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"train.head()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"test.head()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"from sklearn import preprocessing\nle = preprocessing.LabelEncoder()\n\ntrain.sex = le.fit_transform(train.sex)\ntrain.anatom_site_general_challenge = le.fit_transform(train.anatom_site_general_challenge)\ntest.sex = le.fit_transform(test.sex)\ntest.anatom_site_general_challenge = le.fit_transform(test.anatom_site_general_challenge)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"from sklearn.model_selection import StratifiedKFold\nfrom sklearn.metrics import roc_auc_score\n\nimport lightgbm as lgb\nimport catboost as ctb\n\nmodel1 = lgb.LGBMRegressor()\nmodel2 = ctb.CatBoostRegressor(eval_metric='AUC')","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"feature_names = ['sex','age_approx','anatom_site_general_challenge','y']\nycol = ['target']","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"test['target'] = 0\n\nkfold = StratifiedKFold(n_splits=5, shuffle=True, random_state=0)\nfor fold_id, (trn_idx, val_idx) in enumerate(kfold.split(train[feature_names], train[ycol])):\n    X_train = train.iloc[trn_idx][feature_names]\n    Y_train = train.iloc[trn_idx][ycol]\n\n    X_val = train.iloc[val_idx][feature_names]\n    Y_val = train.iloc[val_idx][ycol]\n\n    print('\\nFold_{} Training ================================\\n'.format(fold_id+1))\n\n    lgb_model = model1.fit(X_train,\n                          Y_train,\n                          eval_names=['train', 'valid'],\n                          eval_set=[(X_train, Y_train), (X_val, Y_val)],\n                          verbose=100,\n                          eval_metric='auc',\n                          early_stopping_rounds=100)\n\n    pred_test1 = lgb_model.predict(\n        test[feature_names], num_iteration=lgb_model.best_iteration_)\n    \n    ctb_model = model2.fit(X_train,\n                          Y_train,\n                          eval_set=[(X_train, Y_train), (X_val, Y_val)],\n                          verbose=100,\n                          early_stopping_rounds=100)\n\n    pred_test2 = ctb_model.predict(test[feature_names])\n    test['target'] += (pred_test1+pred_test2) / kfold.n_splits","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"test","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"sample.target = test.target","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"sample.to_csv('submission.csv',index=False)","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}