{"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_minor":4,"nbformat":4,"cells":[{"cell_type":"markdown","source":"Importing the Libraries","metadata":{}},{"cell_type":"code","source":"import numpy as np\nimport pandas as pd\nfrom sklearn.impute import SimpleImputer\nfrom sklearn import preprocessing\nfrom sklearn.preprocessing import StandardScaler\nfrom sklearn.ensemble import RandomForestClassifier","metadata":{"execution":{"iopub.status.busy":"2022-07-06T10:12:53.195697Z","iopub.execute_input":"2022-07-06T10:12:53.196774Z","iopub.status.idle":"2022-07-06T10:12:53.202323Z","shell.execute_reply.started":"2022-07-06T10:12:53.196670Z","shell.execute_reply":"2022-07-06T10:12:53.201069Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"Importing the training data","metadata":{}},{"cell_type":"code","source":"mydata = pd.read_csv('../input/titanic/train.csv')\nmydata.info()\nmydata.isnull().sum() ","metadata":{"execution":{"iopub.status.busy":"2022-07-06T10:12:53.258325Z","iopub.execute_input":"2022-07-06T10:12:53.259237Z","iopub.status.idle":"2022-07-06T10:12:53.289997Z","shell.execute_reply.started":"2022-07-06T10:12:53.259190Z","shell.execute_reply":"2022-07-06T10:12:53.288512Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"**Taking care of missing data for age**","metadata":{}},{"cell_type":"code","source":"imputer = SimpleImputer(missing_values=np.nan, strategy='mean')\nimputer.fit(mydata[['Age']])\nmydata[['Age']] = imputer.transform(mydata[['Age']])","metadata":{"execution":{"iopub.status.busy":"2022-07-06T10:12:53.312505Z","iopub.execute_input":"2022-07-06T10:12:53.313310Z","iopub.status.idle":"2022-07-06T10:12:53.327820Z","shell.execute_reply.started":"2022-07-06T10:12:53.313263Z","shell.execute_reply":"2022-07-06T10:12:53.326470Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"**Taking care of missing data for embarked city & Creating dummy variables for embarked city**","metadata":{}},{"cell_type":"code","source":"imputer = SimpleImputer(missing_values=np.nan, strategy='most_frequent')\nimputer.fit(mydata[['Embarked']])\nmydata[['Embarked']] = imputer.transform(mydata[['Embarked']])\n\nemb=pd.get_dummies(mydata['Embarked'])\nmydata = pd.concat([mydata, emb], axis=1, join='inner')","metadata":{"execution":{"iopub.status.busy":"2022-07-06T10:12:53.358528Z","iopub.execute_input":"2022-07-06T10:12:53.359193Z","iopub.status.idle":"2022-07-06T10:12:53.374421Z","shell.execute_reply.started":"2022-07-06T10:12:53.359158Z","shell.execute_reply":"2022-07-06T10:12:53.373091Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"**Encoding Sex**","metadata":{}},{"cell_type":"code","source":"sex=pd.get_dummies(mydata['Sex'])\nmydata=pd.concat([mydata, sex], axis=1, join='inner')\nmydata.head()","metadata":{"execution":{"iopub.status.busy":"2022-07-06T10:12:53.436354Z","iopub.execute_input":"2022-07-06T10:12:53.437017Z","iopub.status.idle":"2022-07-06T10:12:53.469372Z","shell.execute_reply.started":"2022-07-06T10:12:53.436960Z","shell.execute_reply":"2022-07-06T10:12:53.468370Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"**Creatin an additional parameter for traveling alone**","metadata":{}},{"cell_type":"code","source":"alone = []\npar=mydata['Parch']; sib=mydata['SibSp']\nfor i in range(0, len(mydata['PassengerId'])):\n    if (par[i]+sib[i]==0)==True:\n        alone.append(1)\n    else:\n        alone.append(0)\nalone= pd.DataFrame(alone, columns =['Alone'])\nmydata = pd.concat([mydata, alone], axis=1, join='inner')","metadata":{"execution":{"iopub.status.busy":"2022-07-06T10:12:53.471122Z","iopub.execute_input":"2022-07-06T10:12:53.473144Z","iopub.status.idle":"2022-07-06T10:12:53.497874Z","shell.execute_reply.started":"2022-07-06T10:12:53.473088Z","shell.execute_reply":"2022-07-06T10:12:53.496564Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"**Making survival the last column in the dataframe**","metadata":{}},{"cell_type":"code","source":"surv= mydata['Survived']\ndel mydata['Survived']\nsurv = pd.DataFrame(surv, columns =['Survived'])\nmydata = pd.concat([mydata, surv], axis=1, join='inner')\nmydata.info()","metadata":{"execution":{"iopub.status.busy":"2022-07-06T10:12:53.502757Z","iopub.execute_input":"2022-07-06T10:12:53.503770Z","iopub.status.idle":"2022-07-06T10:12:53.528853Z","shell.execute_reply.started":"2022-07-06T10:12:53.503699Z","shell.execute_reply":"2022-07-06T10:12:53.527553Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"**Uploading the test data**","metadata":{}},{"cell_type":"code","source":"tdata=pd.read_csv('../input/titanic/test.csv')\ntdata.info()\ntdata.isnull().sum()","metadata":{"execution":{"iopub.status.busy":"2022-07-06T10:12:53.531128Z","iopub.execute_input":"2022-07-06T10:12:53.531883Z","iopub.status.idle":"2022-07-06T10:12:53.558892Z","shell.execute_reply.started":"2022-07-06T10:12:53.531836Z","shell.execute_reply":"2022-07-06T10:12:53.557716Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"**Taking care of missing data for age & fare**","metadata":{}},{"cell_type":"code","source":"imputer = SimpleImputer(missing_values=np.nan, strategy='mean')\nimputer.fit(tdata[['Age']])\ntdata[['Age']] = imputer.transform(tdata[['Age']])\nimputer.fit(tdata[['Fare']])\ntdata[['Fare']] = imputer.transform(tdata[['Fare']])","metadata":{"execution":{"iopub.status.busy":"2022-07-06T10:12:53.561058Z","iopub.execute_input":"2022-07-06T10:12:53.562222Z","iopub.status.idle":"2022-07-06T10:12:53.586090Z","shell.execute_reply.started":"2022-07-06T10:12:53.562166Z","shell.execute_reply":"2022-07-06T10:12:53.584980Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"**Creating dummy variables for embarked city**","metadata":{}},{"cell_type":"code","source":"emb=pd.get_dummies(tdata['Embarked'])\ntdata=pd.concat([tdata, emb], axis=1, join='inner')","metadata":{"execution":{"iopub.status.busy":"2022-07-06T10:12:53.587427Z","iopub.execute_input":"2022-07-06T10:12:53.587994Z","iopub.status.idle":"2022-07-06T10:12:53.602993Z","shell.execute_reply.started":"2022-07-06T10:12:53.587960Z","shell.execute_reply":"2022-07-06T10:12:53.601838Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"**Encoding Sex**","metadata":{}},{"cell_type":"code","source":"sex=pd.get_dummies(tdata['Sex'])\ntdata=pd.concat([tdata, sex], axis=1, join='inner')\n\ntdata.head()","metadata":{"execution":{"iopub.status.busy":"2022-07-06T10:12:53.605412Z","iopub.execute_input":"2022-07-06T10:12:53.606222Z","iopub.status.idle":"2022-07-06T10:12:53.637216Z","shell.execute_reply.started":"2022-07-06T10:12:53.606182Z","shell.execute_reply":"2022-07-06T10:12:53.635912Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"**Creating an additional parameter for traveling alone**","metadata":{}},{"cell_type":"code","source":"alone = []\npar=tdata['Parch']; sib=tdata['SibSp']\nfor i in range(0, len(tdata['PassengerId'])):\n    if (par[i]+sib[i]==0)==True:\n        alone.append(1)\n    else:\n        alone.append(0)\nalone= pd.DataFrame(alone, columns =['Alone'])\ntdata = pd.concat([tdata, alone], axis=1, join='inner')","metadata":{"execution":{"iopub.status.busy":"2022-07-06T10:12:53.638924Z","iopub.execute_input":"2022-07-06T10:12:53.639463Z","iopub.status.idle":"2022-07-06T10:12:53.654093Z","shell.execute_reply.started":"2022-07-06T10:12:53.639429Z","shell.execute_reply":"2022-07-06T10:12:53.652983Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"**Removing the columns that won't be used**","metadata":{}},{"cell_type":"code","source":"pass_id=tdata['PassengerId']\nmydata=mydata.drop(['PassengerId','Name', 'Sex', 'Embarked', 'Ticket', 'Cabin'], axis = 1)\ntdata=tdata.drop(['PassengerId','Name','Sex','Embarked', 'Ticket', 'Cabin'], axis = 1)\nmydata.info()\ntdata.info()","metadata":{"execution":{"iopub.status.busy":"2022-07-06T10:12:53.655633Z","iopub.execute_input":"2022-07-06T10:12:53.656392Z","iopub.status.idle":"2022-07-06T10:12:53.684673Z","shell.execute_reply.started":"2022-07-06T10:12:53.656353Z","shell.execute_reply":"2022-07-06T10:12:53.683816Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"**Creating the arrays for training data & Feature scaling**","metadata":{}},{"cell_type":"code","source":"#prepare the x and y training data\nX_train = mydata.iloc[:, :-1].values\ny_train = mydata.iloc[:, -1].values\n\n#feature scaling \nsc = StandardScaler()\nX_train[:, [1,2,3,4]] = sc.fit_transform(X_train[:, [1,2,3,4]])\n\n#prepare x_test\nX_test=tdata.iloc[:, :].values\n\n#feature scaling \nsc = StandardScaler()\nX_test[:, [1,2,3,4]] = sc.fit_transform(X_test[:, [1,2,3,4]])","metadata":{"execution":{"iopub.status.busy":"2022-07-06T10:12:53.686479Z","iopub.execute_input":"2022-07-06T10:12:53.687025Z","iopub.status.idle":"2022-07-06T10:12:53.698794Z","shell.execute_reply.started":"2022-07-06T10:12:53.686992Z","shell.execute_reply":"2022-07-06T10:12:53.697817Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"**Training the random forest model**","metadata":{}},{"cell_type":"code","source":"classifier = RandomForestClassifier(n_estimators=100,criterion='entropy',random_state=1)\nclassifier.fit(X_train, y_train)","metadata":{"execution":{"iopub.status.busy":"2022-07-06T10:12:53.700153Z","iopub.execute_input":"2022-07-06T10:12:53.700660Z","iopub.status.idle":"2022-07-06T10:12:53.958972Z","shell.execute_reply.started":"2022-07-06T10:12:53.700629Z","shell.execute_reply":"2022-07-06T10:12:53.957920Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"**Predicting the results**","metadata":{}},{"cell_type":"code","source":"y_pred = classifier.predict(X_test)\nprint(np.concatenate((y_pred.reshape(len(y_pred),1))))","metadata":{"execution":{"iopub.status.busy":"2022-07-06T10:12:53.961247Z","iopub.execute_input":"2022-07-06T10:12:53.961594Z","iopub.status.idle":"2022-07-06T10:12:53.992857Z","shell.execute_reply.started":"2022-07-06T10:12:53.961564Z","shell.execute_reply":"2022-07-06T10:12:53.991936Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"final_surv = pd.DataFrame(y_pred, columns = ['Survived'])\nfinal = pd.concat([pass_id, final_surv], axis=1, join='inner')\nfinal.to_csv(r'./Submission.csv', index=False)","metadata":{"execution":{"iopub.status.busy":"2022-07-06T10:13:17.453198Z","iopub.execute_input":"2022-07-06T10:13:17.454211Z","iopub.status.idle":"2022-07-06T10:13:17.463271Z","shell.execute_reply.started":"2022-07-06T10:13:17.454167Z","shell.execute_reply":"2022-07-06T10:13:17.462155Z"},"trusted":true},"execution_count":null,"outputs":[]}]}