{"cells":[{"metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","trusted":true},"cell_type":"code","source":"# This Python 3 environment comes with many helpful analytics libraries installed\n# It is defined by the kaggle/python docker image: https://github.com/kaggle/docker-python\n# For example, here's several helpful packages to load in \n\nimport numpy as np # linear algebra\nimport pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)\n\n# Input data files are available in the \"../input/\" directory.\n# For example, running this (by clicking run or pressing Shift+Enter) will list the files in the input directory\n\nimport os\nprint(os.listdir(\"../input\"))\n\nimport matplotlib.pyplot as plt\nimport seaborn as sns\nimport json\n\nimport xgboost as xgb\nimport lightgbm as lgb\n\nfrom sklearn.ensemble import (RandomForestClassifier, AdaBoostClassifier, \n                              GradientBoostingClassifier, ExtraTreesClassifier)\nfrom sklearn.svm import SVC\nfrom keras.models import Sequential\nfrom keras.layers import Dense, Activation\n# Any results you write to the current directory are saved as output.","execution_count":null,"outputs":[]},{"metadata":{"_cell_guid":"79c7e3d0-c299-4dcb-8224-4455121ee9b0","_uuid":"d629ff2d2480ee46fbb7e2d37f6b5fab8052498a","trusted":true},"cell_type":"code","source":"train = pd.read_csv(\"../input/train/train.csv\")\ntest = pd.read_csv(\"../input/test/test.csv\")\nbreeds = pd.read_csv(\"../input/breed_labels.csv\")\ncolors = pd.read_csv(\"../input/color_labels.csv\")\nstates = pd.read_csv(\"../input/state_labels.csv\")","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"992fbeb85a10ff8eb7fbf5789789d9261a1cfc6e"},"cell_type":"code","source":"train['Name'] = train['Name'].fillna('Unnamed')\ntest['Name'] = test['Name'].fillna('Unnamed')","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"c91812fc7b409d9aeea0ec8d572891fb3133f482"},"cell_type":"code","source":"train['No_name'] = 0\ntrain.loc[train['Name'] == 'Unnamed', 'No_name'] = 1\ntrain.loc[train['Name'] == 'No Name Yet', 'No_name'] = 1\ntest['No_name'] = 0\ntest.loc[test['Name'] == 'Unnamed', 'No_name'] = 1\ntest.loc[train['Name'] == 'No Name Yet', 'No_name'] = 1","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"532c0e0a6815e807ceaf2306e544ecde33eb3698"},"cell_type":"code","source":"train.head()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"efafb318092748f640b733d0713c635bd2543cf5"},"cell_type":"code","source":"train['Out_Age'] = 0\ntrain.loc[train['Age'] > 20, 'Out_Age'] = 1\ntest['Out_Age'] = 0\ntest.loc[test['Age'] > 20, 'Out_Age'] = 1","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"3694bc35b214f496f23e471ee49f44239f9bf734"},"cell_type":"code","source":"train['Pure_breed'] = 0\ntrain.loc[train['Breed2'] == 0, 'Pure_breed'] = 1\ntest['Pure_breed'] = 0\ntest.loc[test['Breed2'] == 0, 'Pure_breed'] = 1","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"62c031b7719fbb06d3b48404c8344ff300a0d59e"},"cell_type":"code","source":"train['BadName'] = 0\ntrain.loc[train['Name'].apply(lambda x: len(str(x))) < 3,'BadName']=1","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"004d3cb0574a243cc0feec4cd9a85dc169f09ce0"},"cell_type":"code","source":"test['BadName'] = 0\ntest.loc[test['Name'].apply(lambda x: len(str(x))) < 3,'BadName']=1","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"13fe41341365abe36b610c978ebf7abd6345b4cf"},"cell_type":"code","source":"train_id = train['PetID']\ndoc_sent_mag = []\ndoc_sent_score = []\nnf_count = 0\nfor pet in train_id:\n    try:\n        with open('../input/train_sentiment/' + pet + '.json', 'r') as f:\n            sentiment = json.load(f)\n        doc_sent_mag.append(sentiment['documentSentiment']['magnitude'])\n        doc_sent_score.append(sentiment['documentSentiment']['score'])\n    except FileNotFoundError:\n        nf_count += 1\n        doc_sent_mag.append(-1)\n        doc_sent_score.append(-1)\ntrain.loc[:, 'doc_sent_mag'] = doc_sent_mag\ntrain.loc[:, 'doc_sent_score'] = doc_sent_score","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"f4dbca08558db227d097f3757efd6fe870462f8a"},"cell_type":"code","source":"test_id = test['PetID']\ndoc_sent_mag = []\ndoc_sent_score = []\nnf_count = 0\nfor pet in test_id:\n    try:\n        with open('../input/test_sentiment/' + pet + '.json', 'r') as f:\n            sentiment = json.load(f)\n        doc_sent_mag.append(sentiment['documentSentiment']['magnitude'])\n        doc_sent_score.append(sentiment['documentSentiment']['score'])\n    except FileNotFoundError:\n        nf_count += 1\n        doc_sent_mag.append(-1)\n        doc_sent_score.append(-1)\n\ntest.loc[:, 'doc_sent_mag'] = doc_sent_mag\ntest.loc[:, 'doc_sent_score'] = doc_sent_score","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"49c6581308c95291082c4ccde6c56e48d44fccdc"},"cell_type":"code","source":"vertex_xs = []\nvertex_ys = []\nbounding_confidences = []\nbounding_importance_fracs = []\ndominant_blues = []\ndominant_greens = []\ndominant_reds = []\ndominant_pixel_fracs = []\ndominant_scores = []\nlabel_descriptions = []\nlabel_scores = []\nnf_count = 0\nnl_count = 0\nfor pet in train_id:\n    try:\n        with open('../input/train_metadata/' + pet + '-1.json', 'r') as f:\n            data = json.load(f)\n        vertex_x = data['cropHintsAnnotation']['cropHints'][0]['boundingPoly']['vertices'][2]['x']\n        vertex_xs.append(vertex_x)\n        vertex_y = data['cropHintsAnnotation']['cropHints'][0]['boundingPoly']['vertices'][2]['y']\n        vertex_ys.append(vertex_y)\n        bounding_confidence = data['cropHintsAnnotation']['cropHints'][0]['confidence']\n        bounding_confidences.append(bounding_confidence)\n        bounding_importance_frac = data['cropHintsAnnotation']['cropHints'][0].get('importanceFraction', -1)\n        bounding_importance_fracs.append(bounding_importance_frac)\n        dominant_blue = data['imagePropertiesAnnotation']['dominantColors']['colors'][0]['color']['blue']\n        dominant_blues.append(dominant_blue)\n        dominant_green = data['imagePropertiesAnnotation']['dominantColors']['colors'][0]['color']['green']\n        dominant_greens.append(dominant_green)\n        dominant_red = data['imagePropertiesAnnotation']['dominantColors']['colors'][0]['color']['red']\n        dominant_reds.append(dominant_red)\n        dominant_pixel_frac = data['imagePropertiesAnnotation']['dominantColors']['colors'][0]['pixelFraction']\n        dominant_pixel_fracs.append(dominant_pixel_frac)\n        dominant_score = data['imagePropertiesAnnotation']['dominantColors']['colors'][0]['score']\n        dominant_scores.append(dominant_score)\n        if data.get('labelAnnotations'):\n            label_description = data['labelAnnotations'][0]['description']\n            label_descriptions.append(label_description)\n            label_score = data['labelAnnotations'][0]['score']\n            label_scores.append(label_score)\n        else:\n            nl_count += 1\n            label_descriptions.append('nothing')\n            label_scores.append(-1)\n    except FileNotFoundError:\n        nf_count += 1\n        vertex_xs.append(-1)\n        vertex_ys.append(-1)\n        bounding_confidences.append(-1)\n        bounding_importance_fracs.append(-1)\n        dominant_blues.append(-1)\n        dominant_greens.append(-1)\n        dominant_reds.append(-1)\n        dominant_pixel_fracs.append(-1)\n        dominant_scores.append(-1)\n        label_descriptions.append('nothing')\n        label_scores.append(-1)\n\nprint(nf_count)\nprint(nl_count)\ntrain.loc[:, 'vertex_x'] = vertex_xs\ntrain.loc[:, 'vertex_y'] = vertex_ys\ntrain.loc[:, 'bounding_confidence'] = bounding_confidences\ntrain.loc[:, 'bounding_importance'] = bounding_importance_fracs\ntrain.loc[:, 'dominant_blue'] = dominant_blues\ntrain.loc[:, 'dominant_green'] = dominant_greens\ntrain.loc[:, 'dominant_red'] = dominant_reds\ntrain.loc[:, 'dominant_pixel_frac'] = dominant_pixel_fracs\ntrain.loc[:, 'dominant_score'] = dominant_scores\ntrain.loc[:, 'label_description'] = label_descriptions\ntrain.loc[:, 'label_score'] = label_scores\n\n\nvertex_xs = []\nvertex_ys = []\nbounding_confidences = []\nbounding_importance_fracs = []\ndominant_blues = []\ndominant_greens = []\ndominant_reds = []\ndominant_pixel_fracs = []\ndominant_scores = []\nlabel_descriptions = []\nlabel_scores = []\nnf_count = 0\nnl_count = 0\nfor pet in test_id:\n    try:\n        with open('../input/test_metadata/' + pet + '-1.json', 'r') as f:\n            data = json.load(f)\n        vertex_x = data['cropHintsAnnotation']['cropHints'][0]['boundingPoly']['vertices'][2]['x']\n        vertex_xs.append(vertex_x)\n        vertex_y = data['cropHintsAnnotation']['cropHints'][0]['boundingPoly']['vertices'][2]['y']\n        vertex_ys.append(vertex_y)\n        bounding_confidence = data['cropHintsAnnotation']['cropHints'][0]['confidence']\n        bounding_confidences.append(bounding_confidence)\n        bounding_importance_frac = data['cropHintsAnnotation']['cropHints'][0].get('importanceFraction', -1)\n        bounding_importance_fracs.append(bounding_importance_frac)\n        dominant_blue = data['imagePropertiesAnnotation']['dominantColors']['colors'][0]['color']['blue']\n        dominant_blues.append(dominant_blue)\n        dominant_green = data['imagePropertiesAnnotation']['dominantColors']['colors'][0]['color']['green']\n        dominant_greens.append(dominant_green)\n        dominant_red = data['imagePropertiesAnnotation']['dominantColors']['colors'][0]['color']['red']\n        dominant_reds.append(dominant_red)\n        dominant_pixel_frac = data['imagePropertiesAnnotation']['dominantColors']['colors'][0]['pixelFraction']\n        dominant_pixel_fracs.append(dominant_pixel_frac)\n        dominant_score = data['imagePropertiesAnnotation']['dominantColors']['colors'][0]['score']\n        dominant_scores.append(dominant_score)\n        if data.get('labelAnnotations'):\n            label_description = data['labelAnnotations'][0]['description']\n            label_descriptions.append(label_description)\n            label_score = data['labelAnnotations'][0]['score']\n            label_scores.append(label_score)\n        else:\n            nl_count += 1\n            label_descriptions.append('nothing')\n            label_scores.append(-1)\n    except FileNotFoundError:\n        nf_count += 1\n        vertex_xs.append(-1)\n        vertex_ys.append(-1)\n        bounding_confidences.append(-1)\n        bounding_importance_fracs.append(-1)\n        dominant_blues.append(-1)\n        dominant_greens.append(-1)\n        dominant_reds.append(-1)\n        dominant_pixel_fracs.append(-1)\n        dominant_scores.append(-1)\n        label_descriptions.append('nothing')\n        label_scores.append(-1)\n\nprint(nf_count)\ntest.loc[:, 'vertex_x'] = vertex_xs\ntest.loc[:, 'vertex_y'] = vertex_ys\ntest.loc[:, 'bounding_confidence'] = bounding_confidences\ntest.loc[:, 'bounding_importance'] = bounding_importance_fracs\ntest.loc[:, 'dominant_blue'] = dominant_blues\ntest.loc[:, 'dominant_green'] = dominant_greens\ntest.loc[:, 'dominant_red'] = dominant_reds\ntest.loc[:, 'dominant_pixel_frac'] = dominant_pixel_fracs\ntest.loc[:, 'dominant_score'] = dominant_scores\ntest.loc[:, 'label_description'] = label_descriptions\ntest.loc[:, 'label_score'] = label_scores","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"8332542e3fdb5fdc99e3e822e4e9b965e6156f29"},"cell_type":"code","source":"target=train['AdoptionSpeed']\ntrain=train.drop(['AdoptionSpeed'],axis=1)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"2bafc3b0e71a852e2a101a315baa076eed11a4b8"},"cell_type":"code","source":"df_train=train.drop(['Name','RescuerID','Description','PetID','label_description'],axis=1)\ndf_test=test.drop(['Name','RescuerID','Description','PetID','label_description'],axis=1)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"10a76d9fd43a1e6e2cd48dcfffc7dd5c5eb2c248"},"cell_type":"code","source":"len(df_train)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"dafed200231340331592768a235f1a09b8c28ce9"},"cell_type":"code","source":"df_train.dtypes","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"fb9cf68012ff4e49009b9c7936f59362fb293995"},"cell_type":"code","source":"#d=pd.concat([df_train,df_test])\n#d=pd.get_dummies(d)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"f0f418c4d78bddf7346dcd91c8d48186c37d766f"},"cell_type":"code","source":"#df_train=d.iloc[:14993]\n#df_test=d.iloc[14993:]","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"b397c46508c8c11a4cc4b63cb92397a677286e44"},"cell_type":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"e09115443db83a9a87e65e8c240c4f23537da7f8"},"cell_type":"code","source":"df_train.shape","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"73abf1ea4ddbdfb7921b46aa0e4c4a17f44473a6"},"cell_type":"code","source":"df_test.shape","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"8ed9b37120b475a053c2a6a92f3b8130f2b1d03b"},"cell_type":"code","source":"xg=xgb.XGBClassifier()\nxg.fit(df_train,target)\npred_xgb=xg.predict(df_test)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"fcfea6befdc8742da30142cf85bdee21d998c2f9"},"cell_type":"code","source":"rf=RandomForestClassifier()\nrf.fit(df_train,target)\npred_rf=rf.predict(df_test)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"119bbcc0b61a43efc88658990177450656d45b7b"},"cell_type":"code","source":"gb=lgb.LGBMClassifier()\ngb.fit(df_train,target)\npred_gb=gb.predict(df_test)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"33983f8f98ccca0c949931a608009eaff3b46263"},"cell_type":"code","source":"abc=AdaBoostClassifier()\nabc.fit(df_train,target)\npred_abc=abc.predict(df_test)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"d09e6f508f8ad4991f3f5f8ff794f2c435fc2ea8"},"cell_type":"code","source":"gbc=GradientBoostingClassifier()\ngbc.fit(df_train,target)\npred_gbc=gbc.predict(df_test)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"60a139b956aea2311f8582947da2cd2e9c66ac34"},"cell_type":"code","source":"etc=ExtraTreesClassifier()\netc.fit(df_train,target)\npred_etc=etc.predict(df_test)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"02c55378070c950bcc9b6771c424cf70918308c4"},"cell_type":"code","source":"svc=SVC()\nsvc.fit(df_train,target)\npred_svc=svc.predict(df_test)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"69f74911f837e942a07e2d8635eb47994f0feca5"},"cell_type":"code","source":"df=pd.DataFrame()\ndf['abc']=pred_abc\ndf['etc']=pred_etc\ndf['gb']=pred_gb\ndf['gbc']=pred_gbc\ndf['rf']=pred_rf\ndf['xgb']=pred_xgb\ndf['svc']=pred_svc\ndf.head()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"6c9083077bc14cea4b09f464fe4a855b07dcad29"},"cell_type":"code","source":"df.mode(axis=1)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"ff087d435ed1e9684eaafbdab8c2b64b60cdcc88"},"cell_type":"code","source":"submit=pd.DataFrame()\nsubmit['PetID']=test['PetID']\nsubmit['AdoptionSpeed']=df.mode(axis=1)[0].astype(int)\nsubmit.to_csv('submission.csv',index=False)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"2b3c78fbf348dc8e5cd37799cb13a616d3bc62f7"},"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}