{"cells":[{"metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","trusted":true},"cell_type":"code","source":"import pandas as pd\nimport matplotlib.pyplot as plt\nimport numpy as np","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":"6b31b42dab823bf80039cd7bba4f2f4563ad778d"},"cell_type":"markdown","source":"# 1.データ処理"},{"metadata":{"trusted":true,"_uuid":"79384076607c84e2f1d0e357528fe3ce8791a852"},"cell_type":"code","source":"#データ数、型の確認\ntrain.info()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"171c8f90e4b4f1bae62a14e8f116b96a7ce46da9"},"cell_type":"code","source":"# 欠損値NaNの確認\ntrain.isnull().sum()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"ca810ad85dd2b4c1b3bfd8b2b9fb97a04f7bf533"},"cell_type":"code","source":"test.isnull().sum()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"0091703cfb107fb93dee3d48a9d2955da2e39de8"},"cell_type":"code","source":"train.head()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"a88006c4af9f15557c7072a5913f7cd3fd2086eb"},"cell_type":"code","source":"test.head()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"56960ebb8ec18ba2bf4f549418aff441dfd898c9"},"cell_type":"code","source":"# Cabinの中身を確認\ntrain[\"Cabin\"].value_counts()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"125d74866acd7550bd9173dd27a72405ffcf1ecd"},"cell_type":"code","source":"# Embarkedの中身を確認\ntrain[\"Embarked\"].value_counts()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"4fab248847bd77a72d72f1bfd477d22954de34d4"},"cell_type":"code","source":"# Ticketの中身を確認\ntrain[\"Ticket\"].value_counts()","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"91a42a0fa143683a1a6bfd1f3504abb769aec5a4"},"cell_type":"markdown","source":"## 欠損値の処理"},{"metadata":{"trusted":true,"_uuid":"79458579cdcd370cba2c4cda0f09c3740a9245ae"},"cell_type":"code","source":"# Ageの穴埋め(中央値)\ntrain[\"Age\"] = train[\"Age\"].fillna(train[\"Age\"].median())\ntest[\"Age\"] = test[\"Age\"].fillna(test[\"Age\"].median())\n# Cabinは欠損値が多いため削除\ntrain.drop(\"Cabin\", axis=1, inplace=True)\ntest.drop(\"Cabin\", axis=1, inplace=True)\n# Embarkedは最頻値であるSを代入\ntrain[\"Embarked\"] = train[\"Embarked\"].fillna(\"S\")\n# Fareの穴埋め(中央値)\ntest[\"Fare\"] = test[\"Fare\"].fillna(test[\"Fare\"].median())","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"aca0472a01886b15959bfa6bcc29126a4ac5cce6"},"cell_type":"markdown","source":"## カテゴリカル変数の処理"},{"metadata":{"trusted":true,"_uuid":"610b09830b5054de690e11e77eb9f17482c9ee54"},"cell_type":"code","source":"train.head()","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"1f8ecf71d91fced2f881a6293250826f105c6ae8"},"cell_type":"markdown","source":"カテゴリカル変数は\"Name\",\"Sex\",\"Ticket\",\"Cabin\",\"Embarked\"の5つ"},{"metadata":{"trusted":true,"_uuid":"c17f06c54c352df1fb5fef04a10b246982669d1e"},"cell_type":"code","source":"print(f'[train]Nmaeのユニークな要素: {train[\"Name\"].nunique()}')\nprint(f'[test]Nmaeのユニークな要素: {test[\"Name\"].nunique()}')\nprint(f'[train]Sexのユニークな要素: {train[\"Sex\"].nunique()}')\nprint(f'[test]Sexのユニークな要素: {test[\"Sex\"].nunique()}')\nprint(f'[train]Ticketのユニークな要素: {train[\"Ticket\"].nunique()}')\nprint(f'[test]Ticketのユニークな要素: {test[\"Ticket\"].nunique()}')\nprint(f'[train]Embarkedのユニークな要素: {train[\"Embarked\"].nunique()}')\nprint(f'[test]Embarkedのユニークな要素: {test[\"Embarked\"].nunique()}')","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"3f83c876f83c121ff25321c4b4562747787306ea"},"cell_type":"code","source":"# Nameは今回扱わない(苗字から家族であることを判別するようなカーネルもある)\ntrain.drop(\"Name\", axis=1, inplace=True)\ntest.drop(\"Name\", axis=1, inplace=True)\n\n# ticketはユニークな要素が多いため(大変だから)削除\ntrain.drop(\"Ticket\", axis=1, inplace=True)\ntest.drop(\"Ticket\", axis=1, inplace=True)\n\n# Name以外は全てOne-Hot Encodingで処理する\ntrain = train.join(pd.get_dummies(train[\"Sex\"],prefix=\"sex\"))\ntest = test.join(pd.get_dummies(test[\"Sex\"],prefix=\"sex\"))\n\ntrain = train.join(pd.get_dummies(train[\"Embarked\"],prefix=\"emberk\"))\ntest = test.join(pd.get_dummies(test[\"Embarked\"],prefix=\"emberk\"))\n\n# 使用後のカテゴリカル変数の削除\ntrain.drop([\"Sex\", \"Embarked\"], axis=1, inplace=True)\ntest.drop([\"Sex\", \"Embarked\"], axis=1, inplace=True)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"ae81a274c77d075810b6da2b54d11b9f427fed18"},"cell_type":"code","source":"train.head()","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"3fba35e32792b06106f4ce02921ae0147619d806"},"cell_type":"markdown","source":"# 2.学習部"},{"metadata":{"trusted":true,"_uuid":"a78049b48c9cbd26d19952d12e5e110138db9b38"},"cell_type":"code","source":"# sklearn.ensembleの中からClassifierをインポート\nfrom sklearn.ensemble import AdaBoostClassifier\nfrom sklearn.ensemble import BaggingClassifier\nfrom sklearn.ensemble import ExtraTreesClassifier\nfrom sklearn.ensemble import GradientBoostingClassifier\nfrom sklearn.ensemble import RandomForestClassifier\nfrom sklearn.ensemble import VotingClassifier","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"3bcae7b3d18d7ed64e3873145868dbc7502eccd7"},"cell_type":"code","source":"# 目的変数と説明変数を分解する\nX_train = train.drop(\"Survived\", axis=1)\ny_train = train[\"Survived\"].values","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"4db55912ec12a0e5ea7be63c067828559f11c16a"},"cell_type":"markdown","source":"## AdaBoostClassifier"},{"metadata":{"trusted":true,"_uuid":"7f6c7750b00ce92d3c26e0ca1a9b7a31153625a8"},"cell_type":"code","source":"ada_clf = AdaBoostClassifier()","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"6c5b080111019c861227b49c3fede9e72ceb9ebf"},"cell_type":"markdown","source":"## BaggingClassifier"},{"metadata":{"trusted":true,"_uuid":"19bf217cbf0a56a78ad31e6b68b42b8e30316985"},"cell_type":"code","source":"bag_clf = BaggingClassifier()","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"4b9915158790805099c82f85f62104981dabf601"},"cell_type":"markdown","source":"## ExtraTreesClassifier"},{"metadata":{"trusted":true,"_uuid":"8b782b5dbd959cc21b109e396a930f42c13c17de"},"cell_type":"code","source":"et_clf = ExtraTreesClassifier()","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"a1705156193e7ba41fbc4d9620a3be7ee65c2a98"},"cell_type":"markdown","source":"## GradientBoostingClassifier"},{"metadata":{"trusted":true,"_uuid":"488f0aab366998807670810809cc922767d6ab78"},"cell_type":"code","source":"gb_clf = GradientBoostingClassifier()","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"508ffb9862e84d8b0f0c5b46f420f9a8874447f6"},"cell_type":"markdown","source":"## RandomForestClassifier"},{"metadata":{"trusted":true,"_uuid":"03537b1e496cad45957dd989c02c071e7cff24a8"},"cell_type":"code","source":"rf_clf = RandomForestClassifier()","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"055a07801a54b448afa82096b8bd18eef3895af1"},"cell_type":"markdown","source":"## VotingClassifier"},{"metadata":{"trusted":true,"_uuid":"562bd9303eb47ce7c11f398543fc81213a6b112a"},"cell_type":"code","source":"vote_clf = VotingClassifier(estimators=[('rf', rf_clf),\n                                        ('gb',gb_clf),\n                                        ('et',et_clf),\n                                        ('bag',bag_clf),\n                                        ('ada',ada_clf)\n                                        ])\nvote_clf = vote_clf.fit(X_train, y_train)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"1de3d27726c57078410408fb998f21d771db778a"},"cell_type":"code","source":"vote_pred = vote_clf.predict(test)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"d9d5ae6cb8d1165f1fc4261844cba0127a3f0798"},"cell_type":"code","source":"vote_submit = pd.DataFrame({\n        \"PassengerId\": test[\"PassengerId\"],\n        \"Survived\": vote_pred\n    })\nvote_submit.to_csv(\"vote.csv\", index=False)","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}