{"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 \nimport numpy as np # linear algebra\nimport scipy as sp\nimport pandas as pd \nimport os\nprint(os.listdir(\"../input\"))\ntitanic = pd.read_csv(\"../input/train.csv\")\n# Any results you write to the current directory are saved as output","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"bede77b18a1cb315f8abc83059b66b37caec3618","scrolled":true},"cell_type":"code","source":"\nfrom sklearn.preprocessing import OneHotEncoder\nfrom sklearn.linear_model import LogisticRegression\nohe = OneHotEncoder()\n\n\n#This separates the cabin group into just the first letter, rather than the exact room number\ntitanic[\"CabinGroup\"] = titanic[\"Cabin\"].fillna(\"\").str[:1]\n#y values aka outputs: if they survived.\ny_train = titanic[\"Survived\"].values\n#x values: important values that can correlate to survival.\nX_numeric = titanic[[\"Age\", \"Fare\"]].fillna(0).values\n#adding class to the OHE.\nX_categorical = ohe.fit_transform(titanic[[\"Sex\",\"CabinGroup\",\"Pclass\"]].fillna(\"\").values)\nX_train = sp.hstack([X_numeric,X_categorical.todense()])\n\nprint(\"Training Data\")\nmodel = LogisticRegression()\nmodel.fit(X_train, y_train)\nmodel.score(X_train, y_train)\n#with training examples it records 80.2%\n\n\n#titanicTest = pd.read_csv(\"../input/test.csv\")\n\n#y_test = titanicTest[\"Survived\"].values\n#X_numericTest = titanicTest[[\"Age\", \"Fare\"]].fillna(0).values\n#X_categoricalTest = ohe.fit_transform(titanicTest[[\"Sex\"]].fillna(\"\").values)\n#X_trainTest = sp.hstack([X_numericTest,X_categoricalTest.todense()])\n#model = LogisticRegression()\n#model.fit(X_trainTest, y_trainTest)\n#model.score(X_trainTest, y_trainTest)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"388a6acaf211c4618c748c1c70b59d2d6fd99ed7","scrolled":false},"cell_type":"code","source":"from sklearn import compose, impute, pipeline, preprocessing\nfrom sklearn import linear_model\nfrom sklearn import neighbors\nknn_model = neighbors.KNeighborsClassifier(7)\nknn_model.fit(titanic[[\"Age\",\"Fare\",]].fillna(0), titanic[\"Survived\"])\n\nmodel = linear_model.LogisticRegression(solver=\"lbfgs\")\nmodel.fit(titanic[[\"Age\",\"Fare\"]].fillna(0), titanic[\"Survived\"])\n\nnumeric_features = [\"Age\", \"Fare\"]\ncategorical_features = [\"Pclass\", \"Sex\", \"Cabin\"]\n\nnumeric_transformer = pipeline.make_pipeline(\n  impute.SimpleImputer(strategy=\"median\"),\n  preprocessing.StandardScaler())\n\ncategorical_transformer = pipeline.make_pipeline(\n  impute.SimpleImputer(strategy=\"constant\", fill_value=\"NA\"),\n  preprocessing.OneHotEncoder(handle_unknown=\"ignore\"))\n\npreprocessor = compose.make_column_transformer(\n  (numeric_transformer, numeric_features),\n  (categorical_transformer, categorical_features))\n\npreprocessor.fit(titanic)\nX = preprocessor.transform(titanic)\ny = titanic[\"Survived\"]\n\nmodel.fit(X, y)\nknn_model.fit(X, y)\n\n{\"logreg\": model.score(X, y), \"knn\": knn_model.score(X, y)}\n\n#   TESTING  ######\n\nt_test = pd.read_csv(\"../input/test.csv\")\n\nXTEST = preprocessor.transform(t_test)\n\ny_pred = knn_model.predict(XTEST)\n\nknn_model.score(XTEST, y_pred)\n\nsubmission = pd.DataFrame({\"PassengerId\": t_test[\"PassengerId\"],\n    \"Survived\": y_pred})\nsubmission.to_csv(\"submission.csv\", index=False)\n\n\n","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}