resolverkatla's picture
Update app.py
a2466a9 verified
raw
history blame
1.54 kB
import pandas as pd
import numpy as np
import gradio as gr
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import LabelEncoder
# Load dataset
df = pd.read_csv("titanic.csv")
df = df[["Pclass", "Sex", "Age", "SibSp", "Parch", "Fare", "Survived"]].dropna()
# Encode 'Sex'
df["Sex"] = LabelEncoder().fit_transform(df["Sex"]) # male=1, female=0
# Features & target
X = df.drop("Survived", axis=1)
y = df["Survived"]
# Train model
model = RandomForestClassifier(n_estimators=100, random_state=42)
model.fit(X, y)
# Prediction function
def predict_survival(pclass, sex, age, sibsp, parch, fare):
sex_encoded = 1 if sex == "male" else 0
input_data = np.array([[pclass, sex_encoded, age, sibsp, parch, fare]])
prediction = model.predict(input_data)[0]
return "βœ… Survived" if prediction == 1 else "❌ Did not survive"
# Gradio interface
iface = gr.Interface(
fn=predict_survival,
inputs=[
gr.Dropdown([1, 2, 3], label="Passenger Class"),
gr.Radio(["male", "female"], label="Sex"),
gr.Slider(0, 80, step=1, label="Age"),
gr.Slider(0, 10, step=1, label="Siblings/Spouses Aboard"),
gr.Slider(0, 10, step=1, label="Parents/Children Aboard"),
gr.Slider(0, 500, step=1, label="Fare"),
],
outputs="text",
title="🚒 Titanic Survival Predictor",
description="Enter passenger details to predict their survival on the Titanic."
)
if __name__ == "__main__":
iface.launch()