|
| 1 | +# Import necessary libraries |
| 2 | +import numpy as np |
| 3 | +import pandas as pd |
| 4 | +from sklearn.linear_model import LogisticRegression |
| 5 | +from sklearn.model_selection import train_test_split |
| 6 | +from sklearn.metrics import accuracy_score |
| 7 | + |
| 8 | +# Load the dataset |
| 9 | +dataset = pd.read_csv('train.csv') |
| 10 | + |
| 11 | +# Data preprocessing |
| 12 | +dataset = dataset.drop(columns='Cabin', axis=1) |
| 13 | +dataset['Age'].fillna(dataset['Age'].mean(), inplace=True) |
| 14 | +dataset['Embarked'].fillna(dataset['Embarked'].mode()[0], inplace=True) |
| 15 | +dataset['Fare'].fillna(dataset['Fare'].mean(), inplace=True) # Add this line to handle missing Fare values |
| 16 | +dataset.replace({'Sex': {'male': 0, 'female': 1}, 'Embarked': {'S': 0, 'C': 1, 'Q': 2}}, inplace=True) |
| 17 | + |
| 18 | +# Define features (X) and target (y) |
| 19 | +X = dataset.drop(columns=['PassengerId', 'Name', 'Ticket', 'Survived'], axis=1) |
| 20 | +y = dataset['Survived'] |
| 21 | + |
| 22 | +# Splitting the dataset into training and testing sets |
| 23 | +X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) |
| 24 | + |
| 25 | +# Train the model |
| 26 | +model = LogisticRegression() |
| 27 | +model.fit(X_train, y_train) |
| 28 | + |
| 29 | +# Function to get user input and make predictions |
| 30 | +def predict_survival(): |
| 31 | + user_input = {} |
| 32 | + user_input['Pclass'] = int(input("Enter passenger class (1st, 2nd, or 3rd): ")) |
| 33 | + user_input['Sex'] = 1 if input("Enter passenger gender (Male/Female): ").lower() == 'female' else 0 |
| 34 | + user_input['Age'] = float(input("Enter passenger age: ")) |
| 35 | + user_input['SibSp'] = int(input("Enter number of siblings or spouses aboard: ")) |
| 36 | + user_input['Parch'] = int(input("Enter number of parents or children aboard: ")) |
| 37 | + user_input['Embarked'] = input("Enter port of embarkation (C = Cherbourg, Q = Queenstown, S = Southampton): ") |
| 38 | + user_input['Embarked'] = {'C': 1, 'Q': 2, 'S': 3}.get(user_input['Embarked'].upper(), 3) |
| 39 | + user_input['Fare'] = float(input("Enter passenger fare: ")) |
| 40 | + |
| 41 | + user_df = pd.DataFrame([user_input], columns=X.columns) |
| 42 | + |
| 43 | + |
| 44 | + prediction = model.predict(user_df) |
| 45 | + |
| 46 | + |
| 47 | + if prediction[0] == 1: |
| 48 | + print("The passenger is predicted to survive.") |
| 49 | + else: |
| 50 | + print("The passenger is predicted not to survive.") |
| 51 | + |
| 52 | + |
| 53 | + y_pred = model.predict(X_test) |
| 54 | + accuracy = accuracy_score(y_test, y_pred) |
| 55 | + print("Model Accuracy:", accuracy) |
| 56 | + |
| 57 | +predict_survival() |
| 58 | + |
0 commit comments