{"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":"code","source":"import pandas as pd\nimport numpy  as np\n\nfrom sklearn import svm\nfrom sklearn import metrics","metadata":{"_uuid":"267116d17830c52e9c244ec991fef993729bd543","execution":{"iopub.status.busy":"2022-07-19T12:56:59.964675Z","iopub.execute_input":"2022-07-19T12:56:59.965022Z","iopub.status.idle":"2022-07-19T12:56:59.969283Z","shell.execute_reply.started":"2022-07-19T12:56:59.964980Z","shell.execute_reply":"2022-07-19T12:56:59.968514Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# Define parameters\nFCSV_TRAIN=\"/kaggle/input/titanic/train.csv\"\nFCSV_TESTX=\"/kaggle/input/titanic/test.csv\"\nFCSV_TESTY=\"/kaggle/input/titanic/gender_submission.csv\"\nY=\"Survived\"\nREMOVE=[\"PassengerId\",\"Name\",\"Sex\",\"Embarked\",\"Ticket\",\"Cabin\",\"Age\"]","metadata":{"_uuid":"57c42c3f121f793852e454cbb292c087d3893ad7","execution":{"iopub.status.busy":"2022-07-19T12:56:59.995423Z","iopub.execute_input":"2022-07-19T12:56:59.995751Z","iopub.status.idle":"2022-07-19T12:57:00.000972Z","shell.execute_reply.started":"2022-07-19T12:56:59.995692Z","shell.execute_reply":"2022-07-19T12:56:59.999977Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# Load training data from train.csv\ndata=pd.read_csv(FCSV_TRAIN)\ndata=pd.concat([data.drop(REMOVE,axis=1),pd.get_dummies(data['Sex']),      \\\n                                         pd.get_dummies(data['Embarked'])],axis=1)\ndata=data.drop(['female'],axis=1)\ndata=data.drop(['C']     ,axis=1)\ndata=data.dropna()\n\nx_train=data.drop([Y],axis=1)\ny_train=data[Y]\nx_train_ave=x_train.mean(axis=0)\ny_train_ave=y_train.mean(axis=0)\nx_train_std=x_train.std(axis=0,ddof=1)\ny_train_std=y_train.std(axis=0,ddof=1)","metadata":{"_uuid":"e4165a07d6ed57f756999a08ce9d432761fcbcb8","execution":{"iopub.status.busy":"2022-07-19T12:57:00.028995Z","iopub.execute_input":"2022-07-19T12:57:00.029292Z","iopub.status.idle":"2022-07-19T12:57:00.073178Z","shell.execute_reply.started":"2022-07-19T12:57:00.029240Z","shell.execute_reply":"2022-07-19T12:57:00.072458Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# Auto scaling training data with mean=0 and var=1 \nx_train['Pclass']=(x_train['Pclass']-x_train['Pclass'].mean(axis=0))/x_train['Pclass'].std(axis=0,ddof=1)\nx_train['Parch'] =(x_train['Parch'] -x_train['Parch'].mean(axis=0)) /x_train['Parch'].std(axis=0 ,ddof=1)\nx_train['SibSp'] =(x_train['SibSp'] -x_train['SibSp'].mean(axis=0)) /x_train['SibSp'].std(axis=0 ,ddof=1)\nx_train['Fare']  =(x_train['Fare']  -x_train['Fare'].mean(axis=0))  /x_train['Fare'].std(axis=0  ,ddof=1)","metadata":{"_uuid":"3688b56c157c7675b6fd5a3758dedcfe19ae3274","execution":{"iopub.status.busy":"2022-07-19T12:57:00.074233Z","iopub.execute_input":"2022-07-19T12:57:00.074627Z","iopub.status.idle":"2022-07-19T12:57:00.178256Z","shell.execute_reply.started":"2022-07-19T12:57:00.074585Z","shell.execute_reply":"2022-07-19T12:57:00.177513Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# Load test data from test.csv and gender_submission.csv\ndata_testx=pd.read_csv(FCSV_TESTX)\ndata_testy=pd.read_csv(FCSV_TESTY)\ndata_test=pd.concat([data_testy,data_testx],axis=1)\ndata_test=pd.concat([data_test.drop(REMOVE,axis=1),pd.get_dummies(data_test['Sex']),      \\\n                                                   pd.get_dummies(data_test['Embarked'])],axis=1)\ndata_test=data_test.drop(['female'],axis=1)\ndata_test=data_test.drop(['C'],axis=1)\ndata_test=data_test.dropna()\n\nx_test=data_test.drop(['Survived'],axis=1)\ny_test=data_test['Survived']","metadata":{"_uuid":"82f01ca6b2716b87f1d80db6d76c0af814c432b4","execution":{"iopub.status.busy":"2022-07-19T12:57:00.179220Z","iopub.execute_input":"2022-07-19T12:57:00.179792Z","iopub.status.idle":"2022-07-19T12:57:00.220387Z","shell.execute_reply.started":"2022-07-19T12:57:00.179745Z","shell.execute_reply":"2022-07-19T12:57:00.219595Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# Auto scaling test data with mean=0 and var=1 \nx_test['Pclass']=(x_test['Pclass']-x_train_ave['Pclass'])/x_train_std['Pclass']\nx_test['Parch'] =(x_test['Parch'] -x_train_ave['Parch']) /x_train_std['Parch']\nx_test['SibSp'] =(x_test['SibSp'] -x_train_ave['SibSp']) /x_train_std['SibSp']\nx_test['Fare']  =(x_test['Fare']  -x_train_ave['Fare'])  /x_train_std['Fare']","metadata":{"_uuid":"9527f4d7b877217d679758e0df3c60a94c5b2809","execution":{"iopub.status.busy":"2022-07-19T12:57:00.222839Z","iopub.execute_input":"2022-07-19T12:57:00.223425Z","iopub.status.idle":"2022-07-19T12:57:00.234511Z","shell.execute_reply.started":"2022-07-19T12:57:00.223343Z","shell.execute_reply":"2022-07-19T12:57:00.232858Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# We adopted the hyper parameter, p_c=64.0 in SVM with rbf kernel\n# See the link: https://www.kaggle.com/velbal/titanic-svm-with-grid-search\np_c=64.0\nprint(p_c)","metadata":{"_uuid":"48d6c85da6322aa760c3a5d08c18d7c280c97239","execution":{"iopub.status.busy":"2022-07-19T12:57:00.236074Z","iopub.execute_input":"2022-07-19T12:57:00.236671Z","iopub.status.idle":"2022-07-19T12:57:00.251679Z","shell.execute_reply.started":"2022-07-19T12:57:00.236615Z","shell.execute_reply":"2022-07-19T12:57:00.250941Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# Model construction with the optimized parameter: c\nmodel=svm.SVC(kernel='linear',C=p_c) \nmodel.fit(x_train,y_train)","metadata":{"_uuid":"61d0a325927d4fb70b415408b0299833735ac8f4","execution":{"iopub.status.busy":"2022-07-19T12:57:00.252661Z","iopub.execute_input":"2022-07-19T12:57:00.253028Z","iopub.status.idle":"2022-07-19T12:57:00.376915Z","shell.execute_reply.started":"2022-07-19T12:57:00.252989Z","shell.execute_reply":"2022-07-19T12:57:00.375958Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# Predicting training data with the model we have constructed \nyp_train=model.predict(x_train)\naccuracy=metrics.accuracy_score(y_train,yp_train)\nconfusin=metrics.confusion_matrix(y_train,yp_train)\nprint(accuracy)\nprint(confusin)","metadata":{"_uuid":"55108659945a3aba92512e03db5d66ea14ead313","execution":{"iopub.status.busy":"2022-07-19T12:57:00.379947Z","iopub.execute_input":"2022-07-19T12:57:00.380242Z","iopub.status.idle":"2022-07-19T12:57:00.396983Z","shell.execute_reply.started":"2022-07-19T12:57:00.380186Z","shell.execute_reply":"2022-07-19T12:57:00.395730Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# Predicting test data with the model we have constructed \nyp_test =model.predict(x_test)\naccuracy=metrics.accuracy_score(y_test,yp_test)\nconfusin=metrics.confusion_matrix(y_test,yp_test)\nprint(accuracy)\nprint(confusin)","metadata":{"_uuid":"24e484ed01e61e8053f7535a88894384465f8aba","execution":{"iopub.status.busy":"2022-07-19T12:57:00.398402Z","iopub.execute_input":"2022-07-19T12:57:00.398755Z","iopub.status.idle":"2022-07-19T12:57:00.409965Z","shell.execute_reply.started":"2022-07-19T12:57:00.398606Z","shell.execute_reply":"2022-07-19T12:57:00.409058Z"},"trusted":true},"execution_count":null,"outputs":[]}]}