{"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\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.csv\")\ntest = pd.read_csv(\"../input/test.csv\")","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"0ce3f3a7e3730b62618f19273a5794f40bcd5e3d"},"cell_type":"markdown","source":"## Exploratory data analysis"},{"metadata":{"trusted":true,"_uuid":"09d5c91ded09f51425660852a6003c1b342af584"},"cell_type":"code","source":"train.head()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"44da94b14973d049f79a37aea1afaf79d9acf4cb"},"cell_type":"code","source":"test.head()","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"df6f0367b1787a16ab4e2ae9a0998d1cd5fad388"},"cell_type":"markdown","source":"* Survived  : 생존, 죽음\n* Pclass : 티켓 클래스 0 - 죽음, 1 - 생존\n* Sex : 성별\n* Age : 나이\n* SibSp : 함께 탑승한 형제와 배우자의 수\n* Parch : 함께 탑승한 부모, 아이의 수\n* Ticket : 티켓 번호\n* Fare : 탑승료\n* Carbin : 객실 번호\n* embared : 탑승 항구 C - Cherbourg, Q - Queenstown, S - Southampton"},{"metadata":{"trusted":true,"_uuid":"c2e7c0a46865a4732432e29261f9cddc0a7161fb"},"cell_type":"code","source":"train.shape","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"0c4b0aaa0af36da31945d8ef0598cf757290017f"},"cell_type":"code","source":"test.shape","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"adb1d5c8cc25e19d8a5a68d41a07741594e05789"},"cell_type":"code","source":"train.info()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"2bc99ddd369492caa53211a5b0630b172744e39d"},"cell_type":"code","source":"test.info()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"735c593d453b9f6c05fe53d6bac97c36891685bd"},"cell_type":"code","source":"#데이터 셋에서 null항목 확인\ntrain.isnull().sum()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"1b0851ea94774ab9da596abde420627a497ff240"},"cell_type":"code","source":"#데이터 셋에서 null항목 확인\ntest.isnull().sum()","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"9c1d2261856c4c7f75b4965e8fad7d065d19d961"},"cell_type":"markdown","source":"## Visualization for seaborn"},{"metadata":{"trusted":true,"_uuid":"4c53d4fcebdf26ba1e7f99b6c335b23162717b5b"},"cell_type":"code","source":"import matplotlib.pyplot as plt\n%matplotlib inline\nimport seaborn as sns\nsns.set() # setting seaborn default for plots","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"12e94f727b44af29e8084fc17f199bb30b3c92b0"},"cell_type":"markdown","source":"### Bar Chart\n*  Pclass\n* Sex\n* SibSp ( # of siblings and spouse)\n*  Parch ( # of parents and children)\n* Embarked\n* Cabin"},{"metadata":{"trusted":true,"_uuid":"1ecab5a7c26b8f5e70de0a20d854f624ab901bfb"},"cell_type":"code","source":"#Bar Chart 함수\n#항목을 넣으면, 해당 항목에 대한 Survived or Dead에 대한 Bar Chart 보여줌\ndef bar_chart(feature):\n    survived = train[train['Survived']==1][feature].value_counts()\n    dead = train[train['Survived']==0][feature].value_counts()\n    df = pd.DataFrame([survived,dead])\n    df.index = ['Survived','Dead']\n    df.plot(kind='bar',stacked=True, figsize=(10,5))","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"42830727e3cdae387bc59abecb4fcbff8992bcc7"},"cell_type":"code","source":"bar_chart('Sex')","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"f45a85186fbc045097a1dd1a9d065e75c0954712"},"cell_type":"markdown","source":"* 여자가 남자보다 살아남은 비율이 높다. = 남자가 많이 죽었다."},{"metadata":{"trusted":true,"_uuid":"5b48e2d3ff64f796d1e96d8e7022190fa9fe0ac4"},"cell_type":"code","source":"bar_chart('Pclass')","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"047599c80e398f0854d5bdf881c2be1c138100ca"},"cell_type":"markdown","source":"* 1등급 클래스의 사람들은 보다 많이 생존했다.\n* 3등급 클래스의 사람들은 보다 많이 죽었다.\n* -> 클래스가 생존에 영향이 있다?"},{"metadata":{"trusted":true,"_uuid":"70cff19bebe95d482f4ea35366457927c1119d5b"},"cell_type":"code","source":"bar_chart('SibSp')","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"7940fbff1619f622ece91e7afaf9e80de70a9ab1"},"cell_type":"code","source":"bar_chart('Parch')","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"53331d8fbe4cfb46be32b5930a144f74f6f21023"},"cell_type":"markdown","source":"* SibSp과 Parch 는 비슷한 경향을 보인다."},{"metadata":{"trusted":true,"_uuid":"d7a74912e3ad82a9c0b3369afe83f7e2bad606c4"},"cell_type":"code","source":"bar_chart('Embarked')","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"ee865419a07311ba437d098db443ba69c373278c"},"cell_type":"markdown","source":"## Feature engineering"},{"metadata":{"trusted":true,"_uuid":"caf9952c66fd5d67166296923e58eb617c54ece0"},"cell_type":"code","source":"train.head()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"cb675afeed437e5c93f02a82e183ba93cb4f3d97"},"cell_type":"code","source":"from IPython.display import Image\nImage(url= \"https://static1.squarespace.com/static/5006453fe4b09ef2252ba068/t/5090b249e4b047ba54dfd258/1351660113175/TItanic-Survival-Infographic.jpg?format=1500w\")","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"8cb9f644b97e7fdf0848c92d9e2ff016728c9776"},"cell_type":"markdown","source":"### Name"},{"metadata":{"trusted":true,"_uuid":"201f88bb4094502beb4aeec172d9ff9aacd60cca"},"cell_type":"code","source":"train_test_data = [train, test] # combining train and test dataset\n\nfor dataset in train_test_data:\n    dataset['Title'] = dataset['Name'].str.extract(' ([A-Za-z]+)\\.', expand=False)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"1f86ce2c9f870424f2b7050101a9d617d2ba0179"},"cell_type":"code","source":"train['Title'].value_counts()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"67688aa6129957119978625693ed1dfcbac075cd"},"cell_type":"code","source":"test['Title'].value_counts()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"03b3d95a627930a764f971b952deaaa92ec5bf89"},"cell_type":"code","source":"title_mapping = {\"Mr\": 0, \"Miss\": 1, \"Mrs\": 2, \n                 \"Master\": 3, \"Dr\": 3, \"Rev\": 3, \"Col\": 3, \"Major\": 3, \"Mlle\": 3,\"Countess\": 3,\n                 \"Ms\": 3, \"Lady\": 3, \"Jonkheer\": 3, \"Don\": 3, \"Dona\" : 3, \"Mme\": 3,\"Capt\": 3,\"Sir\": 3 }\nfor dataset in train_test_data:\n    dataset['Title'] = dataset['Title'].map(title_mapping)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"8d5f63be996f8af1e0e1e1d32542898ee91e12c8"},"cell_type":"code","source":"train.head()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"d84d7faf4c84a0abe9d147095ebff5ee059be3a5"},"cell_type":"code","source":"test.head()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"caa856415de8d0bfc84bdfabca646de40dcaa026"},"cell_type":"code","source":"bar_chart('Title')","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"e2debe2497fc06f2535872d585771a3ab84ad514"},"cell_type":"code","source":"# delete unnecessary feature from dataset\ntrain.drop('Name', axis=1, inplace=True)\ntest.drop('Name', axis=1, inplace=True)","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"e25af028bce026913fe7f4ba1baefc9e94bad7f0"},"cell_type":"markdown","source":"### Sex\n* male = 0\n* female = 1"},{"metadata":{"trusted":true,"_uuid":"ef980fc6748ea85033ccbb9009c2e622757e04b8"},"cell_type":"code","source":"sex_mapping = {\"male\": 0, \"female\": 1}\nfor dataset in train_test_data:\n    dataset['Sex'] = dataset['Sex'].map(sex_mapping)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"708a1246db7cb193493c82d8b27667227ac381a4"},"cell_type":"code","source":"bar_chart('Sex')","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"d727f955888aaf23535d5e0ca26258778dada06f"},"cell_type":"markdown","source":"### Age"},{"metadata":{"trusted":true,"_uuid":"3dec1d7ac670fd59c24ff440462ebb8333345e1e"},"cell_type":"code","source":"# fill missing age with median age for each title (Mr, Mrs, Miss, Others)\ntrain[\"Age\"].fillna(train.groupby(\"Title\")[\"Age\"].transform(\"median\"), inplace=True)\ntest[\"Age\"].fillna(test.groupby(\"Title\")[\"Age\"].transform(\"median\"), inplace=True)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"1d1c2d2f953914e72eddc9c989767ab25b8c6a2f"},"cell_type":"code","source":"train.groupby(\"Title\")[\"Age\"].transform(\"median\")","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"618a44d6958bae3ba553a2cfd11d7ab0f3a05dec"},"cell_type":"code","source":"facet = sns.FacetGrid(train, hue=\"Survived\",aspect=4)\nfacet.map(sns.kdeplot,'Age',shade= True)\nfacet.set(xlim=(0, train['Age'].max()))\nfacet.add_legend()\n \nplt.show()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"87bcaffbec41d006a12308f43e417c2ed31c00ef"},"cell_type":"code","source":"facet = sns.FacetGrid(train, hue=\"Survived\",aspect=4)\nfacet.map(sns.kdeplot,'Age',shade= True)\nfacet.set(xlim=(0, train['Age'].max()))\nfacet.add_legend()\nplt.xlim(0, 20)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"f26a33444b09b521bed68b27ba690410c7eb1935"},"cell_type":"code","source":"facet = sns.FacetGrid(train, hue=\"Survived\",aspect=4)\nfacet.map(sns.kdeplot,'Age',shade= True)\nfacet.set(xlim=(0, train['Age'].max()))\nfacet.add_legend()\nplt.xlim(20, 30)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"3816e15ddeaeaed700191573f11afb3ce07ac720"},"cell_type":"code","source":"facet = sns.FacetGrid(train, hue=\"Survived\",aspect=4)\nfacet.map(sns.kdeplot,'Age',shade= True)\nfacet.set(xlim=(0, train['Age'].max()))\nfacet.add_legend()\nplt.xlim(30, 40)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"b056029f8190a0a5eb7dc44e72aabb0313731d3b"},"cell_type":"code","source":"facet = sns.FacetGrid(train, hue=\"Survived\",aspect=4)\nfacet.map(sns.kdeplot,'Age',shade= True)\nfacet.set(xlim=(0, train['Age'].max()))\nfacet.add_legend()\nplt.xlim(40, 60)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"4146b4159ac1d083a3a20f7aa61e848aba110ea1"},"cell_type":"code","source":"facet = sns.FacetGrid(train, hue=\"Survived\",aspect=4)\nfacet.map(sns.kdeplot,'Age',shade= True)\nfacet.set(xlim=(0, train['Age'].max()))\nfacet.add_legend()\nplt.xlim(40, 60)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"661e92b951b4ddecc2aa0325b1a77485bbe1e36a"},"cell_type":"code","source":"facet = sns.FacetGrid(train, hue=\"Survived\",aspect=4)\nfacet.map(sns.kdeplot,'Age',shade= True)\nfacet.set(xlim=(0, train['Age'].max()))\nfacet.add_legend()\nplt.xlim(60)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"621616fb2b4db5d2fc3ad2d475ab5f4f3f0e1601"},"cell_type":"code","source":"train.info()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"3887e9096c258914a4379d162ed6c28814441014"},"cell_type":"code","source":"test.info()","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"781bd1e2c71838d11183fcfadfb89c261a42bcf7"},"cell_type":"markdown","source":"* feature vector map:\n* child: 0\n* young: 1\n* adult: 2\n* mid-age: 3\n* senior: 4"},{"metadata":{"trusted":true,"_uuid":"9b4c50e527aa1eacfaa1bd1dbc9f5bd24b54ec11"},"cell_type":"code","source":"for dataset in train_test_data:\n    dataset.loc[ dataset['Age'] <= 16, 'Age'] = 0,\n    dataset.loc[(dataset['Age'] > 16) & (dataset['Age'] <= 26), 'Age'] = 1,\n    dataset.loc[(dataset['Age'] > 26) & (dataset['Age'] <= 36), 'Age'] = 2,\n    dataset.loc[(dataset['Age'] > 36) & (dataset['Age'] <= 62), 'Age'] = 3,\n    dataset.loc[ dataset['Age'] > 62, 'Age'] = 4","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"61f1831d463107bd416cb3b7407798f6a5b96c30"},"cell_type":"code","source":"train.head()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"410b8c63d0e9d6a803a5525f0980847bf098aeab"},"cell_type":"code","source":"bar_chart('Age')","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"a9fa929bbf3bdb990d968d9b7ec6173ec0a7e79f"},"cell_type":"markdown","source":"### Embarked"},{"metadata":{"trusted":true,"_uuid":"89174b058711c11142ba60f8f37fb01d50131f01"},"cell_type":"code","source":"Pclass1 = train[train['Pclass']==1]['Embarked'].value_counts()\nPclass2 = train[train['Pclass']==2]['Embarked'].value_counts()\nPclass3 = train[train['Pclass']==3]['Embarked'].value_counts()\ndf = pd.DataFrame([Pclass1, Pclass2, Pclass3])\ndf.index = ['1st class','2nd class', '3rd class']\ndf.plot(kind='bar',stacked=True, figsize=(10,5))","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"e51af73e3096c6d6a037b3ac7ddd42e1c7052dc8"},"cell_type":"markdown","source":"* S 도시에서 탑승한 사람들이 압도적으로 많기 때문에 Embarked가 없는 경우 S로 대체"},{"metadata":{"trusted":true,"_uuid":"2b59044a9e10a26e47471a9d9b2612972696dc7e"},"cell_type":"code","source":"for dataset in train_test_data:\n    dataset['Embarked'] = dataset['Embarked'].fillna('S')","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"00b3516e2add9f2e21ffe17e99cdb0b4eb4b0361"},"cell_type":"code","source":"train.head()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"becacebb86e79861197cbab3c4a5083b8d1eb481"},"cell_type":"code","source":"embarked_mapping = {\"S\": 0, \"C\": 1, \"Q\": 2}\nfor dataset in train_test_data:\n    dataset['Embarked'] = dataset['Embarked'].map(embarked_mapping)","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"a739ac317529230081574a5eb202da1ccc4ad910"},"cell_type":"markdown","source":"### Fare"},{"metadata":{"trusted":true,"_uuid":"8f225a9da506a8800bb0c6c6c617a5fac23f1ff4"},"cell_type":"code","source":"# fill missing Fare with median fare for each Pclass\ntrain[\"Fare\"].fillna(train.groupby(\"Pclass\")[\"Fare\"].transform(\"median\"), inplace=True)\ntest[\"Fare\"].fillna(test.groupby(\"Pclass\")[\"Fare\"].transform(\"median\"), inplace=True)\ntrain.head(50)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"8e85b590338a74adb34a241f1b43e9750af9cfb6"},"cell_type":"code","source":"facet = sns.FacetGrid(train, hue=\"Survived\",aspect=4)\nfacet.map(sns.kdeplot,'Fare',shade= True)\nfacet.set(xlim=(0, train['Fare'].max()))\nfacet.add_legend()\n \nplt.show()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"77428e09acfb35b9800b8d215eb1aa1ec5912ad8"},"cell_type":"code","source":"facet = sns.FacetGrid(train, hue=\"Survived\",aspect=4)\nfacet.map(sns.kdeplot,'Fare',shade= True)\nfacet.set(xlim=(0, train['Fare'].max()))\nfacet.add_legend()\nplt.xlim(0, 20)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"8bac2d2799f86a33dc098dd759dd95a88d284da3"},"cell_type":"code","source":"facet = sns.FacetGrid(train, hue=\"Survived\",aspect=4)\nfacet.map(sns.kdeplot,'Fare',shade= True)\nfacet.set(xlim=(0, train['Fare'].max()))\nfacet.add_legend()\nplt.xlim(0, 30)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"f423799db1953aa82e69227cb36ec46901566647"},"cell_type":"code","source":"facet = sns.FacetGrid(train, hue=\"Survived\",aspect=4)\nfacet.map(sns.kdeplot,'Fare',shade= True)\nfacet.set(xlim=(0, train['Fare'].max()))\nfacet.add_legend()\nplt.xlim(0)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"795889dad055cf778113a26d89293897ecc193aa"},"cell_type":"code","source":"for dataset in train_test_data:\n    dataset.loc[ dataset['Fare'] <= 17, 'Fare'] = 0,\n    dataset.loc[(dataset['Fare'] > 17) & (dataset['Fare'] <= 30), 'Fare'] = 1,\n    dataset.loc[(dataset['Fare'] > 30) & (dataset['Fare'] <= 100), 'Fare'] = 2,\n    dataset.loc[ dataset['Fare'] > 100, 'Fare'] = 3","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"5d3197674b7c81ba7ece903383afdc4236fcfbd6"},"cell_type":"code","source":"train.head()","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"3cdf17e31daeb465d41b3d0c4f5378e7d471fcd4"},"cell_type":"markdown","source":"### Cabin"},{"metadata":{"trusted":true,"_uuid":"bac7ba00d382899910edbc053e5ecf32362df4aa"},"cell_type":"code","source":"train.Cabin.value_counts()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"c6aaee179aac465ab3de4ee4ebb6d79e0db38cbf"},"cell_type":"code","source":"for dataset in train_test_data:\n    dataset['Cabin'] = dataset['Cabin'].str[:1]","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"675f361c1e37b15eccac34827e81b1296855af09"},"cell_type":"code","source":"Pclass1 = train[train['Pclass']==1]['Cabin'].value_counts()\nPclass2 = train[train['Pclass']==2]['Cabin'].value_counts()\nPclass3 = train[train['Pclass']==3]['Cabin'].value_counts()\ndf = pd.DataFrame([Pclass1, Pclass2, Pclass3])\ndf.index = ['1st class','2nd class', '3rd class']\ndf.plot(kind='bar',stacked=True, figsize=(10,5))","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"0268a6e95b2e25910a31e63d2e574e4fb112d2aa"},"cell_type":"code","source":"cabin_mapping = {\"A\": 0, \"B\": 0.4, \"C\": 0.8, \"D\": 1.2, \"E\": 1.6, \"F\": 2, \"G\": 2.4, \"T\": 2.8}\nfor dataset in train_test_data:\n    dataset['Cabin'] = dataset['Cabin'].map(cabin_mapping)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"0f17efc43ce5db514b88dc7a461002f325df017e"},"cell_type":"code","source":"# fill missing Fare with median fare for each Pclass\ntrain[\"Cabin\"].fillna(train.groupby(\"Pclass\")[\"Cabin\"].transform(\"median\"), inplace=True)\ntest[\"Cabin\"].fillna(test.groupby(\"Pclass\")[\"Cabin\"].transform(\"median\"), inplace=True)","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"066b6390c8dcc72e8e6e26e599a962d5c08ef8b1"},"cell_type":"markdown","source":"### FamilySize"},{"metadata":{"trusted":true,"_uuid":"b59bcc1328c3e34014b70e10ec664b5cf18b6399"},"cell_type":"code","source":"train[\"FamilySize\"] = train[\"SibSp\"] + train[\"Parch\"] + 1\ntest[\"FamilySize\"] = test[\"SibSp\"] + test[\"Parch\"] + 1","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"f401e0b2bd0b3e70b395e2798bd8358a89904963"},"cell_type":"code","source":"facet = sns.FacetGrid(train, hue=\"Survived\",aspect=4)\nfacet.map(sns.kdeplot,'FamilySize',shade= True)\nfacet.set(xlim=(0, train['FamilySize'].max()))\nfacet.add_legend()\nplt.xlim(0)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"d1ac22a06669ffa1761c991babd04ab8487dcdcc"},"cell_type":"code","source":"family_mapping = {1: 0, 2: 0.4, 3: 0.8, 4: 1.2, 5: 1.6, 6: 2, 7: 2.4, 8: 2.8, 9: 3.2, 10: 3.6, 11: 4}\nfor dataset in train_test_data:\n    dataset['FamilySize'] = dataset['FamilySize'].map(family_mapping)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"040ce94b473bd7f781ecb2aba8992cc2f76fe387"},"cell_type":"code","source":"train.head()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"3bba667e0c32ac63117164d9cd5eefeb23e7e720"},"cell_type":"code","source":"test.head()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"5e6ec98ec0dbc961fcfb7f544c04ffdaff6d71e4"},"cell_type":"code","source":"features_drop = ['Ticket', 'SibSp', 'Parch']\ntrain = train.drop(features_drop, axis=1)\ntest = test.drop(features_drop, axis=1)\ntrain = train.drop(['PassengerId'], axis=1)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"ff5c24ca864599593770faed3943950e1d71e7b1"},"cell_type":"code","source":"train_data = train.drop('Survived', axis=1)\ntarget = train['Survived']\n\ntrain_data.shape, target.shape","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"4cae1dbafa3f3297b223ef7130ef5833f112b94e"},"cell_type":"code","source":"train_data.head(10)","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"702d9b1ec42f1d3a0880f881a9b10592cb96b3c0"},"cell_type":"markdown","source":"## Modelling"},{"metadata":{"trusted":true,"_uuid":"3ef3cf1f02970ba6fe8cae3239166c87b7851489"},"cell_type":"code","source":"# Importing Classifier Modules\nfrom sklearn.neighbors import KNeighborsClassifier\nfrom sklearn.tree import DecisionTreeClassifier\nfrom sklearn.ensemble import RandomForestClassifier\nfrom sklearn.naive_bayes import GaussianNB\nfrom sklearn.svm import SVC\n\nimport numpy as np","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"e7f9b11bdd88893273ce25a62115dbf6b568f310"},"cell_type":"code","source":"train.info()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"cb64688db24ce5b7bb30ebaa8292cd5113738e01"},"cell_type":"code","source":"from sklearn.model_selection import KFold\nfrom sklearn.model_selection import cross_val_score\nk_fold = KFold(n_splits=10, shuffle=True, random_state=0)","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"01cc718de8b8809aacd242afbcb4e2a7c61d1d99"},"cell_type":"markdown","source":"### KNN"},{"metadata":{"trusted":true,"_uuid":"c0fd791343f46c0b91cd7e441e2804a2ebd238c3"},"cell_type":"code","source":"clf = KNeighborsClassifier(n_neighbors = 13)\nscoring = 'accuracy'\nscore = cross_val_score(clf, train_data, target, cv=k_fold, n_jobs=1, scoring=scoring)\nprint(score)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"4f0f892ff3b6a0cef56fd874f4b5277f079727e4"},"cell_type":"code","source":"# kNN Score\nround(np.mean(score)*100, 2)","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"ff2c15113c04b917bd969b7b3bfda072112cb785"},"cell_type":"markdown","source":"### Decision Tree"},{"metadata":{"trusted":true,"_uuid":"3499869cdc8d184e16edf3dd1af100d7a6a1dc1b"},"cell_type":"code","source":"clf = DecisionTreeClassifier()\nscoring = 'accuracy'\nscore = cross_val_score(clf, train_data, target, cv=k_fold, n_jobs=1, scoring=scoring)\nprint(score)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"a3702baa0335374b28792ac0148fc38be919360f"},"cell_type":"code","source":"# decision tree Score\nround(np.mean(score)*100, 2)","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"53893e7c0070b5379e582c2004f75f5c9b610fbe"},"cell_type":"markdown","source":"### Random Forest"},{"metadata":{"trusted":true,"_uuid":"7a03b75bfa92405c85a588b97ab28153ec976293"},"cell_type":"code","source":"clf = RandomForestClassifier(n_estimators=13)\nscoring = 'accuracy'\nscore = cross_val_score(clf, train_data, target, cv=k_fold, n_jobs=1, scoring=scoring)\nprint(score)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"b805b2d8f571680bf1a68cd4aa79996528ee807e"},"cell_type":"code","source":"# Random Forest Score\nround(np.mean(score)*100, 2)","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"c4a608fa89022b88039e57ca0f8470dcc61cfb29"},"cell_type":"markdown","source":"### Naive Bayes"},{"metadata":{"trusted":true,"_uuid":"91bdd707c49d77cf145a0cccb7df90d32e0d4973"},"cell_type":"code","source":"clf = GaussianNB()\nscoring = 'accuracy'\nscore = cross_val_score(clf, train_data, target, cv=k_fold, n_jobs=1, scoring=scoring)\nprint(score)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"bf9f618f17e887b8dca2b373da9a40977cef122f"},"cell_type":"code","source":"# Naive Bayes Score\nround(np.mean(score)*100, 2)","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"2e5026446460324575c009a13bea604fc5887b45"},"cell_type":"markdown","source":"### SVN"},{"metadata":{"trusted":true,"_uuid":"2e57882e4926075e88385f2168358bce1bb0e0ca"},"cell_type":"code","source":"clf = SVC()\nscoring = 'accuracy'\nscore = cross_val_score(clf, train_data, target, cv=k_fold, n_jobs=1, scoring=scoring)\nprint(score)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"22d39eac5c595d9eb85786fdbc77ebf18d2104e9"},"cell_type":"code","source":"round(np.mean(score)*100,2)","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"0c52206858a6b0f265e779f4d68efecb7b3db1a2"},"cell_type":"markdown","source":"## Testing"},{"metadata":{"trusted":true,"_uuid":"4d2317a81ba46cac22f6aa0e30321581352fcd46"},"cell_type":"code","source":"clf = SVC()\nclf.fit(train_data, target)\n\ntest_data = test.drop(\"PassengerId\", axis=1).copy()\nprediction = clf.predict(test_data)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"453d89d5c84b374673e592e3b48c844afd6f7dd2"},"cell_type":"code","source":"import collections, numpy\n\ncollections.Counter(prediction)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"130f2c2c79714a3f1327efdc3cc76998b5b82c42"},"cell_type":"code","source":"submission = pd.DataFrame({\n        \"PassengerId\": test[\"PassengerId\"],\n        \"Survived\": prediction\n    })\n\nsubmission.to_csv('submission.csv', index=False)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"844d87559988461808ca5768b3f27a5be4bfb47c"},"cell_type":"code","source":"submission = pd.read_csv('submission.csv')\nsubmission.head()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"b49f9e4e024ffe2d763be121b64c7e6b6d53c3e9"},"cell_type":"code","source":"import os\nprint(os.listdir(\"../working\"))","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"3f9054c53c980304d1e6d644aa6bea94e23a0081"},"cell_type":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"617e11aba52006ccd31729b82d7928dd5a58c866"},"cell_type":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"4c69b00dd2d1780c67702654eb9fba685081539b"},"cell_type":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"6ef8079a12851a215b949499b3991a6f0af7a250"},"cell_type":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"d60ae32217808aea9bead76e0a4d33bdae7a9cb7"},"cell_type":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"c8ed5fbee5a63fbbe3538d3ed5d0797f687ebf23"},"cell_type":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"6c6696909b12f52956ea0d3a13924f6e3559f507"},"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}