Spaces:
Sleeping
Sleeping
| import gradio as gr | |
| import pandas as pd | |
| from sklearn.model_selection import train_test_split | |
| from sklearn.metrics import r2_score | |
| from xgboost import XGBRegressor | |
| # Load dataset | |
| data = pd.read_csv('uber.csv') | |
| data = data.drop('cars_available', axis=1) | |
| # Features and target | |
| X = data.drop('price_usd', axis=1) | |
| Y = data['price_usd'] | |
| # Train-test split | |
| Xtrain, Xtest, Ytrain, Ytest = train_test_split(X, Y, test_size=0.2) | |
| # Train model | |
| xgb = XGBRegressor() | |
| xgb.fit(Xtrain, Ytrain) | |
| # Evaluate model (just printing in logs, not in interface) | |
| output = xgb.predict(Xtest) | |
| score = r2_score(Ytest, output) | |
| print("R² Score:", score) | |
| # Gradio prediction function | |
| def predict_price(rain, distance, time, traffic): | |
| user_data = [[rain, distance, time, traffic]] | |
| predicted_price = xgb.predict(user_data)[0] | |
| return f"Predicted Uber Price: ${predicted_price:,.2f}" | |
| # Gradio Interface | |
| interface = gr.Interface( | |
| fn=predict_price, | |
| inputs=[ | |
| gr.Slider(1, 10, step=1, label="Rain (1-10)", value=5), | |
| gr.Number(label="Distance (km)", value=10), | |
| gr.Slider(1, 24, step=1, label="Time (Hour of Day)", value=12), | |
| gr.Slider(1, 10, step=1, label="Traffic (1-10)", value=5), | |
| ], | |
| outputs=gr.Textbox(label="Prediction"), | |
| title="Uber Price Prediction", | |
| description="Enter ride details to predict Uber price using XGBoost." | |
| ) | |
| # Launch app | |
| if __name__ == "__main__": | |
| interface.launch(share=True) |