GitHub Actions commited on
Commit Β·
7ea5672
0
Parent(s):
π Deploying to Hugging Face Space: RidePricingInsightEngine
Browse files- EDA.ipynb +0 -0
- Model_Selection.ipynb +0 -0
- README.md +75 -0
- Studying effect of data on parameters and performance.ipynb +0 -0
- app.py +904 -0
- best_model.joblib +0 -0
- best_model.pkl +0 -0
- create_repo.py +7 -0
- data/dynamic-pricing-dataset.zip +0 -0
- data/dynamic_pricing.csv +1001 -0
- deploy.py +11 -0
- dev_notebooks/EDA.ipynb +0 -0
- dev_notebooks/Model_Selection.ipynb +0 -0
- dev_notebooks/Studying effect of data on parameters and performance.ipynb +0 -0
- requirements.txt +7 -0
EDA.ipynb
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
Model_Selection.ipynb
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
README.md
ADDED
|
@@ -0,0 +1,75 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
---
|
| 2 |
+
title: RidePricingInsightEngine
|
| 3 |
+
emoji: π
|
| 4 |
+
colorFrom: blue
|
| 5 |
+
colorTo: green
|
| 6 |
+
sdk: gradio
|
| 7 |
+
sdk_version: "5.22.0"
|
| 8 |
+
app_file: app.py
|
| 9 |
+
pinned: false
|
| 10 |
+
license: mit
|
| 11 |
+
short_description: ML-powered ride fare prediction using regression
|
| 12 |
+
---
|
| 13 |
+
|
| 14 |
+
# Dynamic Ride Pricing Optimization
|
| 15 |
+
|
| 16 |
+
## π Overview
|
| 17 |
+
|
| 18 |
+
This project presents a machine learning-based solution for **ride fare prediction and optimization**, using a rich synthetic dataset of historical ride data. By analyzing real-time supply-demand conditions and customer attributes, the system aims to help ride-sharing platforms implement **data-driven dynamic pricing strategies**.
|
| 19 |
+
|
| 20 |
+
## π Dataset
|
| 21 |
+
|
| 22 |
+
- **Source**: [Dynamic Pricing Dataset (Kaggle)](https://www.kaggle.com/datasets/arashnic/dynamic-pricing-dataset)
|
| 23 |
+
- **Description**: A **synthetic dataset** designed for ride-sharing fare prediction. Features include:
|
| 24 |
+
- Number of Riders / Drivers
|
| 25 |
+
- Location Category
|
| 26 |
+
- Loyalty Status
|
| 27 |
+
- Number of Past Rides
|
| 28 |
+
- Ratings
|
| 29 |
+
- Booking Time
|
| 30 |
+
- Vehicle Type
|
| 31 |
+
- Expected Ride Duration
|
| 32 |
+
- Historical Cost of Ride
|
| 33 |
+
|
| 34 |
+
## π Problem Statement
|
| 35 |
+
|
| 36 |
+
The objective is to identify which features most influence ride fares and approximate pricing behavior through various **regression models**. This includes:
|
| 37 |
+
- Finding key predictors for optimal fare setting.
|
| 38 |
+
- Estimating price sensitivity across rider and supply characteristics.
|
| 39 |
+
- Offering recommendations for **dynamic fare adjustments** in real time.
|
| 40 |
+
|
| 41 |
+
## π§ Model & Features
|
| 42 |
+
|
| 43 |
+
- **Regression-based modeling** (e.g., Linear, Ridge, XGBoost)
|
| 44 |
+
- **Final model**: Huber Regressor with non-zero intercept β robust to outliers, encouraging sparse feature usage
|
| 45 |
+
- **Feature selection pipeline** to reduce unnecessary variables
|
| 46 |
+
- **Price approximation engine** that generalizes across different booking conditions
|
| 47 |
+
- **Gradio-powered UI** for hands-on exploration
|
| 48 |
+
|
| 49 |
+
## π οΈ Tools and Libraries
|
| 50 |
+
|
| 51 |
+
- **Python**
|
| 52 |
+
- **Scikit-learn**, **XGBoost**
|
| 53 |
+
- **Pandas**, **NumPy**
|
| 54 |
+
- **Gradio** for app deployment
|
| 55 |
+
- **Plotly** for interactive visualization
|
| 56 |
+
|
| 57 |
+
## π§ͺ How to Run Locally
|
| 58 |
+
|
| 59 |
+
```bash
|
| 60 |
+
git clone https://github.com/Sharma-Pranav/Portfolio.git
|
| 61 |
+
cd Portfolio/projects/DynamicPricingOptimization
|
| 62 |
+
pip install -r requirements.txt
|
| 63 |
+
python app.py
|
| 64 |
+
```
|
| 65 |
+
|
| 66 |
+
## π Results
|
| 67 |
+
|
| 68 |
+
- Clear insights into **fare-driving features** like rider demand, loyalty, and time of day.
|
| 69 |
+
- **Huber Regressor** outperformed others due to robustness and minimal feature reliance.
|
| 70 |
+
- **Optimal pricing zones** visualized for strategic recommendations.
|
| 71 |
+
- Portable deployment for teams to simulate and iterate pricing strategies.
|
| 72 |
+
|
| 73 |
+
---
|
| 74 |
+
|
| 75 |
+
> β¨ Developed by **Pranav Sharma** | π Hugging Face Space: [`RidePricingInsightEngine`](https://huggingface.co/spaces/PranavSharma/RidePricingInsightEngine)
|
Studying effect of data on parameters and performance.ipynb
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
app.py
ADDED
|
@@ -0,0 +1,904 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import os
|
| 2 |
+
import numpy as np
|
| 3 |
+
import pandas as pd
|
| 4 |
+
from joblib import dump
|
| 5 |
+
import warnings
|
| 6 |
+
from sklearn.linear_model import LinearRegression, Lasso, Ridge, ElasticNet, HuberRegressor
|
| 7 |
+
from sklearn.ensemble import RandomForestRegressor, GradientBoostingRegressor, AdaBoostRegressor
|
| 8 |
+
from sklearn.utils.estimator_checks import check_estimator
|
| 9 |
+
from sklearn.utils.metaestimators import available_if
|
| 10 |
+
from sklearn.exceptions import NotFittedError
|
| 11 |
+
from sklearn.neighbors import KNeighborsRegressor
|
| 12 |
+
from sklearn.svm import SVR, LinearSVR
|
| 13 |
+
from sklearn.tree import DecisionTreeRegressor
|
| 14 |
+
# from xgboost import XGBRegressor
|
| 15 |
+
# from lightgbm import LGBMRegressor
|
| 16 |
+
from sklearn.model_selection import train_test_split, GridSearchCV
|
| 17 |
+
from sklearn.metrics import mean_absolute_error, r2_score
|
| 18 |
+
import plotly.graph_objects as go
|
| 19 |
+
from huggingface_hub import Repository, HfApi, DatasetCardData
|
| 20 |
+
from skops.card import Card
|
| 21 |
+
import pickle
|
| 22 |
+
from pathlib import Path
|
| 23 |
+
from tempfile import mkdtemp
|
| 24 |
+
from skops import hub_utils
|
| 25 |
+
from pathlib import Path
|
| 26 |
+
from tempfile import mkdtemp
|
| 27 |
+
from joblib import dump
|
| 28 |
+
import pickle
|
| 29 |
+
import pandas as pd
|
| 30 |
+
|
| 31 |
+
# print(os.getcwd())
|
| 32 |
+
# Initialize repository
|
| 33 |
+
User = "PranavSharma"
|
| 34 |
+
repo_name = "dynamic-pricing-model"
|
| 35 |
+
repo_url = f"https://huggingface.co/{User}/{repo_name}"
|
| 36 |
+
|
| 37 |
+
from skops.card import Card
|
| 38 |
+
import gradio as gr
|
| 39 |
+
|
| 40 |
+
# Suppress warnings for cleaner output
|
| 41 |
+
warnings.filterwarnings("ignore")
|
| 42 |
+
|
| 43 |
+
# Configuration variables for paths and parameters
|
| 44 |
+
DATA_PATH = os.path.join("data", "dynamic_pricing.csv")
|
| 45 |
+
|
| 46 |
+
# Utility function to check if a file exists
|
| 47 |
+
def check_file_exists(file_path):
|
| 48 |
+
"""
|
| 49 |
+
Check if a file exists at the given path.
|
| 50 |
+
|
| 51 |
+
Parameters
|
| 52 |
+
----------
|
| 53 |
+
file_path : str
|
| 54 |
+
Path to the file.
|
| 55 |
+
|
| 56 |
+
Raises
|
| 57 |
+
------
|
| 58 |
+
FileNotFoundError
|
| 59 |
+
If the file does not exist.
|
| 60 |
+
"""
|
| 61 |
+
if not os.path.exists(file_path):
|
| 62 |
+
raise FileNotFoundError(f"File not found: {file_path}")
|
| 63 |
+
|
| 64 |
+
# Load and preprocess the dataset
|
| 65 |
+
def load_data():
|
| 66 |
+
"""
|
| 67 |
+
Load and preprocess the dataset by performing one-hot encoding
|
| 68 |
+
on categorical variables.
|
| 69 |
+
|
| 70 |
+
Returns
|
| 71 |
+
-------
|
| 72 |
+
tuple
|
| 73 |
+
A tuple containing the processed dataset and the list of boolean columns.
|
| 74 |
+
"""
|
| 75 |
+
check_file_exists(DATA_PATH)
|
| 76 |
+
data = pd.read_csv(DATA_PATH)
|
| 77 |
+
data = data.sample(frac=1, random_state=42) # Shuffle the data
|
| 78 |
+
categorical_columns = data.select_dtypes(include=["object"]).columns
|
| 79 |
+
data = pd.get_dummies(data, columns=categorical_columns, drop_first=True)
|
| 80 |
+
bool_columns = [col for col in data.columns if data[col].dropna().value_counts().index.isin([0, 1]).all()]
|
| 81 |
+
return data, bool_columns
|
| 82 |
+
|
| 83 |
+
# Compute default values and feature types for Gradio inputs
|
| 84 |
+
def compute_defaults_and_types(X, bool_columns):
|
| 85 |
+
defaults = {}
|
| 86 |
+
types = {}
|
| 87 |
+
for column in X.columns:
|
| 88 |
+
if column in bool_columns:
|
| 89 |
+
defaults[column] = 0
|
| 90 |
+
types[column] = "Categorical (One-hot)"
|
| 91 |
+
else:
|
| 92 |
+
defaults[column] = X[column].mean()
|
| 93 |
+
types[column] = "Numerical"
|
| 94 |
+
return defaults, types
|
| 95 |
+
|
| 96 |
+
# Generate a scatter plot for Expected_Ride_Duration vs Historical_Cost_of_Ride
|
| 97 |
+
def duration_vs_cost_plot(data):
|
| 98 |
+
fig = go.Figure()
|
| 99 |
+
fig.add_trace(go.Scatter(
|
| 100 |
+
x=data["Expected_Ride_Duration"],
|
| 101 |
+
y=data["Historical_Cost_of_Ride"],
|
| 102 |
+
mode="markers",
|
| 103 |
+
marker=dict(size=8, color="rgba(99, 110, 250, 0.7)", line=dict(width=1, color="rgba(99, 110, 250, 1)")),
|
| 104 |
+
name="Data Points"
|
| 105 |
+
))
|
| 106 |
+
fig.update_layout(
|
| 107 |
+
title=dict(text="Expected Ride Duration vs Historical Ride Cost", font=dict(size=18)),
|
| 108 |
+
xaxis=dict(title="Expected Ride Duration (minutes)", gridcolor="lightgray"),
|
| 109 |
+
yaxis=dict(title="Historical Ride Cost ($)", gridcolor="lightgray"),
|
| 110 |
+
template="plotly_white"
|
| 111 |
+
)
|
| 112 |
+
return fig
|
| 113 |
+
|
| 114 |
+
# Generate MAE and RΒ² plots with GridSearchCV
|
| 115 |
+
def performance_plots_with_gridsearch(results):
|
| 116 |
+
X_train = results["X_train"]
|
| 117 |
+
y_train = results["y_train"]
|
| 118 |
+
X_test = results["X_test"]
|
| 119 |
+
y_test = results["y_test"]
|
| 120 |
+
train_sizes = np.linspace(50, len(X_train), 10, dtype=int)
|
| 121 |
+
|
| 122 |
+
mae_scores = []
|
| 123 |
+
r2_scores = []
|
| 124 |
+
|
| 125 |
+
param_grid = {"alpha": np.logspace(-4, 0, 10)}
|
| 126 |
+
|
| 127 |
+
for train_size in train_sizes:
|
| 128 |
+
X_train_sub = X_train.iloc[:train_size]
|
| 129 |
+
y_train_sub = y_train.iloc[:train_size]
|
| 130 |
+
|
| 131 |
+
grid_search = GridSearchCV(
|
| 132 |
+
Lasso(fit_intercept=False),
|
| 133 |
+
param_grid,
|
| 134 |
+
scoring="neg_mean_absolute_error",
|
| 135 |
+
cv=5
|
| 136 |
+
)
|
| 137 |
+
grid_search.fit(X_train_sub, y_train_sub)
|
| 138 |
+
best_model = grid_search.best_estimator_
|
| 139 |
+
|
| 140 |
+
y_pred = best_model.predict(X_test)
|
| 141 |
+
mae_scores.append(mean_absolute_error(y_test, y_pred))
|
| 142 |
+
r2_scores.append(r2_score(y_test, y_pred))
|
| 143 |
+
|
| 144 |
+
mae_fig = go.Figure()
|
| 145 |
+
mae_fig.add_trace(go.Scatter(
|
| 146 |
+
x=train_sizes,
|
| 147 |
+
y=mae_scores,
|
| 148 |
+
mode="lines+markers",
|
| 149 |
+
marker=dict(size=6, color="blue"),
|
| 150 |
+
line=dict(width=2, color="blue"),
|
| 151 |
+
name="MAE"
|
| 152 |
+
))
|
| 153 |
+
mae_fig.update_layout(
|
| 154 |
+
title="Effect of Training Size on MAE (with GridSearchCV)",
|
| 155 |
+
xaxis_title="Training Size",
|
| 156 |
+
yaxis_title="Mean Absolute Error (MAE)",
|
| 157 |
+
template="plotly_white"
|
| 158 |
+
)
|
| 159 |
+
|
| 160 |
+
r2_fig = go.Figure()
|
| 161 |
+
r2_fig.add_trace(go.Scatter(
|
| 162 |
+
x=train_sizes,
|
| 163 |
+
y=r2_scores,
|
| 164 |
+
mode="lines+markers",
|
| 165 |
+
marker=dict(size=6, color="green"),
|
| 166 |
+
line=dict(width=2, color="green"),
|
| 167 |
+
name="RΒ²"
|
| 168 |
+
))
|
| 169 |
+
r2_fig.update_layout(
|
| 170 |
+
title="Effect of Training Size on RΒ² (with GridSearchCV)",
|
| 171 |
+
xaxis_title="Training Size",
|
| 172 |
+
yaxis_title="RΒ² Score",
|
| 173 |
+
template="plotly_white"
|
| 174 |
+
)
|
| 175 |
+
|
| 176 |
+
return mae_fig, r2_fig
|
| 177 |
+
|
| 178 |
+
# Generate coefficient progression plot with tracking
|
| 179 |
+
# Generate coefficient progression plot with tracking
|
| 180 |
+
def coefficients_progression_plot_with_tracking(results):
|
| 181 |
+
X_train = results["X_train"]
|
| 182 |
+
y_train = results["y_train"]
|
| 183 |
+
train_sizes = np.linspace(50, len(X_train), 10, dtype=int)
|
| 184 |
+
|
| 185 |
+
coefficients_progress = []
|
| 186 |
+
feature_names = results["feature_names"]
|
| 187 |
+
|
| 188 |
+
param_grid = {"alpha": np.logspace(-4, 0, 10)}
|
| 189 |
+
|
| 190 |
+
for train_size in train_sizes:
|
| 191 |
+
X_train_sub = X_train.iloc[:train_size]
|
| 192 |
+
y_train_sub = y_train.iloc[:train_size]
|
| 193 |
+
|
| 194 |
+
grid_search = GridSearchCV(
|
| 195 |
+
Lasso(fit_intercept=False),
|
| 196 |
+
param_grid,
|
| 197 |
+
scoring="neg_mean_absolute_error",
|
| 198 |
+
cv=5
|
| 199 |
+
)
|
| 200 |
+
grid_search.fit(X_train_sub, y_train_sub)
|
| 201 |
+
best_model = grid_search.best_estimator_
|
| 202 |
+
|
| 203 |
+
coefficients_progress.append(best_model.coef_)
|
| 204 |
+
|
| 205 |
+
coefficients_array = np.array(coefficients_progress)
|
| 206 |
+
|
| 207 |
+
fig = go.Figure()
|
| 208 |
+
for idx, feature in enumerate(feature_names):
|
| 209 |
+
fig.add_trace(go.Scatter(
|
| 210 |
+
x=train_sizes,
|
| 211 |
+
y=coefficients_array[:, idx],
|
| 212 |
+
mode="lines+markers",
|
| 213 |
+
name=feature,
|
| 214 |
+
line=dict(width=2),
|
| 215 |
+
marker=dict(size=6, opacity=0.8)
|
| 216 |
+
))
|
| 217 |
+
fig.update_layout(
|
| 218 |
+
title="Coefficient Progression with Training Size (Tracking)",
|
| 219 |
+
xaxis_title="Training Size",
|
| 220 |
+
yaxis_title="Coefficient Value",
|
| 221 |
+
template="plotly_white",
|
| 222 |
+
height=700, # Increased height for better vertical visibility
|
| 223 |
+
legend=dict(
|
| 224 |
+
orientation="h", # Horizontal legend
|
| 225 |
+
y=-0.3, # Position legend below the plot
|
| 226 |
+
x=0.5,
|
| 227 |
+
xanchor="center"
|
| 228 |
+
)
|
| 229 |
+
)
|
| 230 |
+
return fig
|
| 231 |
+
|
| 232 |
+
|
| 233 |
+
# New function to evaluate multiple linear models using GridSearchCV
|
| 234 |
+
def train_linear_models_with_gridsearch(X_train, y_train, X_test, y_test):
|
| 235 |
+
"""
|
| 236 |
+
Train and evaluate multiple linear models using GridSearchCV and compare their performance.
|
| 237 |
+
|
| 238 |
+
Parameters
|
| 239 |
+
----------
|
| 240 |
+
X_train : pd.DataFrame
|
| 241 |
+
Training feature set.
|
| 242 |
+
y_train : pd.Series
|
| 243 |
+
Training target variable.
|
| 244 |
+
X_test : pd.DataFrame
|
| 245 |
+
Testing feature set.
|
| 246 |
+
y_test : pd.Series
|
| 247 |
+
Testing target variable.
|
| 248 |
+
|
| 249 |
+
Returns
|
| 250 |
+
-------
|
| 251 |
+
dict
|
| 252 |
+
A dictionary containing the best model, its parameters, and performance metrics.
|
| 253 |
+
"""
|
| 254 |
+
models = {
|
| 255 |
+
"Lasso": {
|
| 256 |
+
"model": Lasso(fit_intercept=False),
|
| 257 |
+
"param_grid": {"alpha": [0.001, 0.01, 0.1, 1]},
|
| 258 |
+
},
|
| 259 |
+
"Ridge": {
|
| 260 |
+
"model": Ridge(fit_intercept=False),
|
| 261 |
+
"param_grid": {"alpha": [0.001, 0.01, 0.1, 1]},
|
| 262 |
+
},
|
| 263 |
+
"ElasticNet": {
|
| 264 |
+
"model": ElasticNet(fit_intercept=False),
|
| 265 |
+
"param_grid": {
|
| 266 |
+
"alpha": [0.001, 0.01, 0.1, 1],
|
| 267 |
+
"l1_ratio": [0.2, 0.5, 0.8],
|
| 268 |
+
},
|
| 269 |
+
},
|
| 270 |
+
"LinearRegression": {
|
| 271 |
+
"model": LinearRegression(fit_intercept=False),
|
| 272 |
+
"param_grid": {}, # No hyperparameters for tuning
|
| 273 |
+
},
|
| 274 |
+
"HuberRegressor": {
|
| 275 |
+
"model": HuberRegressor(fit_intercept=False),
|
| 276 |
+
"param_grid": {"epsilon": [1.2, 1.5], "alpha": [0.001, 0.01]},
|
| 277 |
+
},
|
| 278 |
+
"KNeighborsRegressor": {
|
| 279 |
+
"model": KNeighborsRegressor(),
|
| 280 |
+
"param_grid": {"n_neighbors": [3, 5, 7], "weights": ["uniform", "distance"]},
|
| 281 |
+
},
|
| 282 |
+
"DecisionTreeRegressor": {
|
| 283 |
+
"model": DecisionTreeRegressor(),
|
| 284 |
+
"param_grid": {
|
| 285 |
+
"max_depth": [None, 10, 20],
|
| 286 |
+
"min_samples_split": [2, 5],
|
| 287 |
+
"min_samples_leaf": [1, 2],
|
| 288 |
+
},
|
| 289 |
+
},
|
| 290 |
+
"RandomForestRegressor": {
|
| 291 |
+
"model": RandomForestRegressor(random_state=42),
|
| 292 |
+
"param_grid": {
|
| 293 |
+
"n_estimators": [50, 100],
|
| 294 |
+
"max_depth": [10, 20, None],
|
| 295 |
+
"min_samples_split": [2, 5],
|
| 296 |
+
},
|
| 297 |
+
},
|
| 298 |
+
"GradientBoostingRegressor": {
|
| 299 |
+
"model": GradientBoostingRegressor(random_state=42),
|
| 300 |
+
"param_grid": {
|
| 301 |
+
"n_estimators": [50, 100],
|
| 302 |
+
"learning_rate": [0.05, 0.1],
|
| 303 |
+
"max_depth": [3, 5],
|
| 304 |
+
},
|
| 305 |
+
},
|
| 306 |
+
"AdaBoostRegressor": {
|
| 307 |
+
"model": AdaBoostRegressor(random_state=42),
|
| 308 |
+
"param_grid": {
|
| 309 |
+
"n_estimators": [50, 100],
|
| 310 |
+
"learning_rate": [0.05, 0.1],
|
| 311 |
+
},
|
| 312 |
+
},
|
| 313 |
+
"SVR": {
|
| 314 |
+
"model": SVR(),
|
| 315 |
+
"param_grid": {
|
| 316 |
+
"C": [0.1, 1],
|
| 317 |
+
"epsilon": [0.01, 0.1],
|
| 318 |
+
"kernel": ["linear", "rbf"],
|
| 319 |
+
},
|
| 320 |
+
},
|
| 321 |
+
"LinearSVR": {
|
| 322 |
+
"model": LinearSVR(random_state=42),
|
| 323 |
+
"param_grid": {"C": [0.1, 1]},
|
| 324 |
+
},
|
| 325 |
+
}
|
| 326 |
+
|
| 327 |
+
results = []
|
| 328 |
+
best_model = None
|
| 329 |
+
best_result = None
|
| 330 |
+
for name, config in models.items():
|
| 331 |
+
try:
|
| 332 |
+
grid_search = GridSearchCV(
|
| 333 |
+
config["model"],
|
| 334 |
+
config["param_grid"],
|
| 335 |
+
scoring="neg_mean_absolute_error",
|
| 336 |
+
cv=5
|
| 337 |
+
)
|
| 338 |
+
grid_search.fit(X_train, y_train)
|
| 339 |
+
|
| 340 |
+
# Predictions and evaluation
|
| 341 |
+
y_pred = grid_search.best_estimator_.predict(X_test)
|
| 342 |
+
mae = mean_absolute_error(y_test, y_pred)
|
| 343 |
+
r2 = r2_score(y_test, y_pred)
|
| 344 |
+
|
| 345 |
+
# Collect results
|
| 346 |
+
results.append({
|
| 347 |
+
"model": name,
|
| 348 |
+
"best_params": grid_search.best_params_,
|
| 349 |
+
"mae": mae,
|
| 350 |
+
"r2": r2,
|
| 351 |
+
"best_estimator": grid_search.best_estimator_,
|
| 352 |
+
})
|
| 353 |
+
|
| 354 |
+
except Exception as e:
|
| 355 |
+
print(f"Error training model {name}: {e}")
|
| 356 |
+
|
| 357 |
+
# Identify the best model based on MAE
|
| 358 |
+
if results:
|
| 359 |
+
best_result = min(results, key=lambda x: x["mae"])
|
| 360 |
+
best_model = best_result["best_estimator"]
|
| 361 |
+
|
| 362 |
+
return {
|
| 363 |
+
"results": results,
|
| 364 |
+
"best_model_name": best_result["model"] if best_result else None,
|
| 365 |
+
"best_model_metrics": best_result if best_result else None,
|
| 366 |
+
"best_model": best_model, # Return the best model directly
|
| 367 |
+
}
|
| 368 |
+
|
| 369 |
+
def train_model():
|
| 370 |
+
original_data = pd.read_csv(DATA_PATH)
|
| 371 |
+
data, bool_columns = load_data()
|
| 372 |
+
X = data.drop("Historical_Cost_of_Ride", axis=1)
|
| 373 |
+
y = data["Historical_Cost_of_Ride"]
|
| 374 |
+
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
|
| 375 |
+
|
| 376 |
+
# Get the best linear model and top results
|
| 377 |
+
linear_model_results = train_linear_models_with_gridsearch(X_train, y_train, X_test, y_test)
|
| 378 |
+
best_model_name = linear_model_results["best_model_name"]
|
| 379 |
+
best_model_metrics = linear_model_results["best_model_metrics"]
|
| 380 |
+
top_models = linear_model_results["results"] # Get all models' results
|
| 381 |
+
best_model = linear_model_results["best_model"]
|
| 382 |
+
y_pred = best_model.predict(X_test)
|
| 383 |
+
mae = mean_absolute_error(y_test, y_pred)
|
| 384 |
+
r2 = r2_score(y_test, y_pred)
|
| 385 |
+
|
| 386 |
+
feature_names = X_train.columns
|
| 387 |
+
coefficients = best_model.coef_
|
| 388 |
+
|
| 389 |
+
useful_features = [(feature, coef) for feature, coef in zip(feature_names, coefficients) if coef != 0]
|
| 390 |
+
not_useful_features = [feature for feature, coef in zip(feature_names, coefficients) if coef == 0]
|
| 391 |
+
|
| 392 |
+
equation_terms = [f"*{coef:.4f}* Γ *{feature}*" for feature, coef in useful_features]
|
| 393 |
+
regression_equation = " + ".join(equation_terms)
|
| 394 |
+
regression_equation = "Cost of Ride = " + regression_equation
|
| 395 |
+
|
| 396 |
+
actual_vs_pred_plot = actual_vs_predicted_plot(y_test, y_pred)
|
| 397 |
+
useful_features_formatted = "\n".join(
|
| 398 |
+
[f"- {feature}: {coef:.4f}" for feature, coef in useful_features]
|
| 399 |
+
)
|
| 400 |
+
not_useful_features_formatted = "\n".join(
|
| 401 |
+
[f"- {feature}" for feature in not_useful_features]
|
| 402 |
+
)
|
| 403 |
+
|
| 404 |
+
default_values, types = compute_defaults_and_types(X_train, bool_columns)
|
| 405 |
+
|
| 406 |
+
scatter_plot = duration_vs_cost_plot(original_data)
|
| 407 |
+
|
| 408 |
+
# Generate a DataFrame for the top 10 models
|
| 409 |
+
top_models_sorted = sorted(top_models, key=lambda x: x['mae'])[:10]
|
| 410 |
+
top_models_df = pd.DataFrame.from_records(
|
| 411 |
+
[
|
| 412 |
+
{
|
| 413 |
+
"Rank": idx + 1,
|
| 414 |
+
"Model": result["model"],
|
| 415 |
+
"MAE": f"{result['mae']:.4f}",
|
| 416 |
+
"RΒ²": f"{result['r2']:.4f}",
|
| 417 |
+
"Best Params": result["best_params"],
|
| 418 |
+
}
|
| 419 |
+
for idx, result in enumerate(top_models_sorted)
|
| 420 |
+
]
|
| 421 |
+
)
|
| 422 |
+
top_models_html = top_models_df.to_html(index=False, border=0, classes="table table-striped")
|
| 423 |
+
|
| 424 |
+
return {
|
| 425 |
+
"X_train": X_train,
|
| 426 |
+
"y_train": y_train,
|
| 427 |
+
"X_test": X_test,
|
| 428 |
+
"y_test": y_test,
|
| 429 |
+
"y_pred": y_pred,
|
| 430 |
+
"feature_names": feature_names,
|
| 431 |
+
"coefficients": coefficients,
|
| 432 |
+
"mae": mae,
|
| 433 |
+
"r2": r2,
|
| 434 |
+
"best_model_name": best_model_name,
|
| 435 |
+
"best_model_metrics": best_model_metrics,
|
| 436 |
+
"best_model": best_model,
|
| 437 |
+
"regression_equation": regression_equation,
|
| 438 |
+
"scatter_plot": scatter_plot,
|
| 439 |
+
"useful_features": useful_features_formatted,
|
| 440 |
+
"not_useful_features": not_useful_features_formatted,
|
| 441 |
+
"top_models_html": top_models_html, # Include HTML table here
|
| 442 |
+
"default_values": default_values,
|
| 443 |
+
"feature_types": types,
|
| 444 |
+
"original_data_html": original_data.head(3).to_html(classes="table table-striped"),
|
| 445 |
+
"original_data": original_data,
|
| 446 |
+
"actual_vs_predicted_plot": actual_vs_pred_plot
|
| 447 |
+
|
| 448 |
+
}
|
| 449 |
+
|
| 450 |
+
def process_features_with_values(feature_string):
|
| 451 |
+
"""Cleans and splits the feature string, retaining both feature names and values."""
|
| 452 |
+
if not feature_string:
|
| 453 |
+
return []
|
| 454 |
+
feature_string = feature_string.strip()
|
| 455 |
+
formatted_features = []
|
| 456 |
+
for item in feature_string.split("-"):
|
| 457 |
+
if not item.strip():
|
| 458 |
+
continue
|
| 459 |
+
if item.strip().replace(".", "", 1).isdigit(): # Check if the item is a float
|
| 460 |
+
if formatted_features:
|
| 461 |
+
formatted_features[-1] = formatted_features[-1].strip() + ": " + item.strip() + "\n"
|
| 462 |
+
else:
|
| 463 |
+
formatted_features.append(" ".join(item.split()) + "\n") # Clean extra spaces and add
|
| 464 |
+
return formatted_features
|
| 465 |
+
|
| 466 |
+
def process_features_without_values(feature_string):
|
| 467 |
+
"""Cleans and splits the feature string, keeping only feature names."""
|
| 468 |
+
if not feature_string:
|
| 469 |
+
return []
|
| 470 |
+
feature_string = feature_string.strip()
|
| 471 |
+
return [
|
| 472 |
+
item.split(":")[0].strip() + "\n" # Keep only the feature name before ":"
|
| 473 |
+
for item in feature_string.split("-")
|
| 474 |
+
if item.strip()
|
| 475 |
+
]
|
| 476 |
+
|
| 477 |
+
def actual_vs_predicted_plot(y_actual, y_pred):
|
| 478 |
+
"""
|
| 479 |
+
Create a scatter plot for Actual vs Predicted values.
|
| 480 |
+
|
| 481 |
+
Parameters
|
| 482 |
+
----------
|
| 483 |
+
y_actual : array-like
|
| 484 |
+
Actual target values.
|
| 485 |
+
y_pred : array-like
|
| 486 |
+
Predicted target values.
|
| 487 |
+
|
| 488 |
+
Returns
|
| 489 |
+
-------
|
| 490 |
+
go.Figure
|
| 491 |
+
A Plotly scatter plot.
|
| 492 |
+
"""
|
| 493 |
+
fig = go.Figure()
|
| 494 |
+
|
| 495 |
+
# Add scatter points
|
| 496 |
+
fig.add_trace(go.Scatter(
|
| 497 |
+
x=y_actual,
|
| 498 |
+
y=y_pred,
|
| 499 |
+
mode="markers",
|
| 500 |
+
marker=dict(size=8, color="rgba(99, 110, 250, 0.7)", line=dict(width=1)),
|
| 501 |
+
name="Actual vs Predicted"
|
| 502 |
+
))
|
| 503 |
+
|
| 504 |
+
# Add ideal reference line
|
| 505 |
+
min_val = min(min(y_actual), min(y_pred))
|
| 506 |
+
max_val = max(max(y_actual), max(y_pred))
|
| 507 |
+
fig.add_trace(go.Scatter(
|
| 508 |
+
x=[min_val, max_val],
|
| 509 |
+
y=[min_val, max_val],
|
| 510 |
+
mode="lines",
|
| 511 |
+
line=dict(dash="dash", color="gray"),
|
| 512 |
+
name="Ideal Line"
|
| 513 |
+
))
|
| 514 |
+
|
| 515 |
+
# Update layout
|
| 516 |
+
fig.update_layout(
|
| 517 |
+
title="Actual vs Predicted Values",
|
| 518 |
+
xaxis_title="Actual Values",
|
| 519 |
+
yaxis_title="Predicted Values",
|
| 520 |
+
template="plotly_white"
|
| 521 |
+
)
|
| 522 |
+
fig.add_annotation(
|
| 523 |
+
x=max_val,
|
| 524 |
+
y=max_val,
|
| 525 |
+
text="Ideal Line (y=x)",
|
| 526 |
+
showarrow=True,
|
| 527 |
+
arrowhead=2
|
| 528 |
+
)
|
| 529 |
+
return fig
|
| 530 |
+
|
| 531 |
+
|
| 532 |
+
def train_model_button():
|
| 533 |
+
"""
|
| 534 |
+
Train the model and return all relevant outputs for display.
|
| 535 |
+
Save a model card documenting the results using skops 0.10.0.
|
| 536 |
+
Push the model and card to Hugging Face Hub.
|
| 537 |
+
"""
|
| 538 |
+
|
| 539 |
+
# Train the model and get the results
|
| 540 |
+
comprehensive_interface.trained_model = train_model()
|
| 541 |
+
results = comprehensive_interface.trained_model
|
| 542 |
+
|
| 543 |
+
# Extract results
|
| 544 |
+
mae = results["mae"]
|
| 545 |
+
r2 = results["r2"]
|
| 546 |
+
scatter_plot = results["scatter_plot"]
|
| 547 |
+
regression_equation = results["regression_equation"]
|
| 548 |
+
coefficients = results["coefficients"] # NumPy array of coefficient values
|
| 549 |
+
feature_names = results["feature_names"] # Ensure feature names are provided
|
| 550 |
+
coefficients_plot = coefficients_progression_plot_with_tracking(results)
|
| 551 |
+
mae_plot, r2_plot = performance_plots_with_gridsearch(results)
|
| 552 |
+
original_data_html = results["original_data_html"]
|
| 553 |
+
original_data = results["original_data"]
|
| 554 |
+
actual_vs_pred_plot = results["actual_vs_predicted_plot"]
|
| 555 |
+
|
| 556 |
+
feature_importance_text = (
|
| 557 |
+
f"### Useful Features:\n"
|
| 558 |
+
+ "".join(
|
| 559 |
+
[
|
| 560 |
+
f"- {feature}: {coef:.4f} "
|
| 561 |
+
f"(e.g., a unit increase in {feature} affects the cost by ${coef:.2f})\n"
|
| 562 |
+
for feature, coef in zip(
|
| 563 |
+
results["useful_features"].splitlines(),
|
| 564 |
+
[float(line.split(":")[1]) for line in results["useful_features"].splitlines()]
|
| 565 |
+
)
|
| 566 |
+
]
|
| 567 |
+
)
|
| 568 |
+
+ "\n\n### Non-Useful Features:\n"
|
| 569 |
+
+ "".join([f"- {feature}\n" for feature in results["not_useful_features"].splitlines()])
|
| 570 |
+
)
|
| 571 |
+
|
| 572 |
+
# Save the best model using joblib
|
| 573 |
+
model_path = "best_model.joblib"
|
| 574 |
+
dump(results["best_model"], model_path)
|
| 575 |
+
|
| 576 |
+
# Initialize a temporary repository
|
| 577 |
+
local_repo = mkdtemp(prefix="skops-")
|
| 578 |
+
|
| 579 |
+
# Save the model as a pickle file
|
| 580 |
+
pkl_name = "best_model.pkl"
|
| 581 |
+
with open(pkl_name, mode="wb") as f:
|
| 582 |
+
pickle.dump(results["best_model"], f)
|
| 583 |
+
|
| 584 |
+
# Initialize repository for Hugging Face Hub
|
| 585 |
+
hub_utils.init(
|
| 586 |
+
model=pkl_name,
|
| 587 |
+
requirements=["scikit-learn"],
|
| 588 |
+
dst=local_repo,
|
| 589 |
+
task="tabular-regression",
|
| 590 |
+
data=original_data,
|
| 591 |
+
)
|
| 592 |
+
|
| 593 |
+
# Prepare coefficients table
|
| 594 |
+
coefficients_text = ""#"### Model Coefficients:\n\n"
|
| 595 |
+
coefficients_text += "| Feature | Coefficient |\n|---------|-------------|\n"
|
| 596 |
+
coefficients_text += "\n".join(
|
| 597 |
+
[f"| {feature} | {value:.4f} |" for feature, value in zip(feature_names, coefficients)]
|
| 598 |
+
)
|
| 599 |
+
|
| 600 |
+
# Prepare hyperparameters
|
| 601 |
+
hyperparameters = results["best_model"].get_params()
|
| 602 |
+
|
| 603 |
+
hyperparameters_text = "### Hyperparameters:\n\n"
|
| 604 |
+
hyperparameters_text += "\n".join([f"- {param}: {value}" for param, value in hyperparameters.items()])
|
| 605 |
+
|
| 606 |
+
# Convert Plotly plot to an inline image for Markdown
|
| 607 |
+
actual_vs_pred_plot_path = Path(local_repo) / "actual_vs_predicted.png"
|
| 608 |
+
actual_vs_pred_plot.write_image(str(actual_vs_pred_plot_path), format="png", scale=2)
|
| 609 |
+
|
| 610 |
+
# Embed image in Markdown with a description
|
| 611 |
+
actual_vs_pred_plot_md = (
|
| 612 |
+
#"### Actual vs Predicted Plot\n\n"
|
| 613 |
+
"The following plot shows the relationship between the actual and predicted values. "
|
| 614 |
+
"The closer the points are to the diagonal line, the better the predictions. "
|
| 615 |
+
"The dashed line represents the ideal case where predictions perfectly match the actual values.\n\n"
|
| 616 |
+
""
|
| 617 |
+
)
|
| 618 |
+
|
| 619 |
+
# Create and save the model card
|
| 620 |
+
metadata = DatasetCardData(
|
| 621 |
+
language=["en"],
|
| 622 |
+
license="apache-2.0",
|
| 623 |
+
annotations_creators=["machine-generated"],
|
| 624 |
+
language_creators=["found"],
|
| 625 |
+
multilinguality="monolingual",
|
| 626 |
+
size_categories="10K<n<100K",
|
| 627 |
+
source_datasets=["original"],
|
| 628 |
+
task_categories=["regression"],
|
| 629 |
+
task_ids=["dynamic-pricing"],
|
| 630 |
+
pretty_name="Dynamic Pricing Model",
|
| 631 |
+
)
|
| 632 |
+
card = Card(model=pkl_name, metadata=metadata)
|
| 633 |
+
model_description = (
|
| 634 |
+
"This is a regression model trained on the Dynamic Pricing Dataset. "
|
| 635 |
+
"It was optimized using grid search with multiple hyperparameters."
|
| 636 |
+
)
|
| 637 |
+
card.add(
|
| 638 |
+
**{
|
| 639 |
+
"Model description": model_description,
|
| 640 |
+
"Model description/Intended uses & limitations": (
|
| 641 |
+
"This regression model is designed to predict the cost of rides based on various features such as expected ride duration, "
|
| 642 |
+
"number of drivers, and time of booking.\n\n"
|
| 643 |
+
"**Intended Uses**:\n"
|
| 644 |
+
"- **Dynamic Pricing Analysis**: Helps optimize pricing strategies for ride-hailing platforms.\n"
|
| 645 |
+
"- **Demand Forecasting**: Supports business decisions by estimating cost trends based on ride-specific parameters.\n\n"
|
| 646 |
+
"**Limitations**:\n"
|
| 647 |
+
"- **Feature Dependence**: The model's accuracy is highly dependent on the input features provided.\n"
|
| 648 |
+
"- **Dataset Specificity**: Performance may degrade if applied to datasets with significantly different distributions.\n"
|
| 649 |
+
"- **Outlier Sensitivity**: Predictions can be affected by extreme values in the dataset."
|
| 650 |
+
),
|
| 651 |
+
"Model description/Training Procedure": "The model was trained using grid search to optimize hyperparameters. Cross-validation (5-fold) was performed to ensure robust evaluation. The best model was selected based on the lowest Mean Absolute Error (MAE) on the validation set.",
|
| 652 |
+
#"Hyperparameters": hyperparameters_text,
|
| 653 |
+
"Model description/Evaluation Results/Model Coefficients": coefficients_text,
|
| 654 |
+
"Model description/Evaluation Results/Regression Equation": regression_equation,
|
| 655 |
+
"Model description/Evaluation Results/Actual vs Predicted": (
|
| 656 |
+
actual_vs_pred_plot_md + "\n\n"
|
| 657 |
+
"The scatter plot above shows the predicted values against the actual values. The dashed line represents the ideal predictions "
|
| 658 |
+
"where the predicted values are equal to the actual values."
|
| 659 |
+
),
|
| 660 |
+
"Model description/Evaluation Results": (
|
| 661 |
+
"The model achieved the following results on the test set:\n"
|
| 662 |
+
f"- **Mean Absolute Error (MAE)**: {mae}\n"
|
| 663 |
+
f"- **RΒ² Score**: {r2}\n\n"
|
| 664 |
+
"### Key Insights:\n"
|
| 665 |
+
"- Longer ride durations increase costs significantly, which may justify adding a surcharge for long-distance rides.\n"
|
| 666 |
+
"- Evening bookings reduce costs, potentially indicating lower demand during these hours.\n"
|
| 667 |
+
"- The model's accuracy is dependent on high-quality feature data.\n"
|
| 668 |
+
|
| 669 |
+
"\nRefer to the plots and tables for detailed performance insights."
|
| 670 |
+
),
|
| 671 |
+
"How to Get Started with the Model": (
|
| 672 |
+
"To use this model:\n"
|
| 673 |
+
"1. **Install Dependencies**: Ensure `scikit-learn` and `pandas` are installed in your environment.\n"
|
| 674 |
+
"2. **Load the Model**: Download the saved model file and load it using `joblib`:\n"
|
| 675 |
+
" ```python\n"
|
| 676 |
+
" from joblib import load\n"
|
| 677 |
+
" model = load('best_model.joblib')\n"
|
| 678 |
+
" ```\n"
|
| 679 |
+
"3. **Prepare Input Features**: Create a DataFrame with the required input features in the same format as the training dataset.\n"
|
| 680 |
+
"4. **Make Predictions**: Use the `predict` method to generate predictions:\n"
|
| 681 |
+
" ```python\n"
|
| 682 |
+
" predictions = model.predict(input_features)\n"
|
| 683 |
+
" ```"
|
| 684 |
+
),
|
| 685 |
+
"Model Card Authors": "This model card was written by **Pranav Sharma**.",
|
| 686 |
+
"Model Card Contact": "For inquiries or feedback, you can contact the author via **[GitHub](https://github.com/PranavSharma)**.",
|
| 687 |
+
"Citation": (
|
| 688 |
+
"If you use this model, please cite it as follows:\n"
|
| 689 |
+
"```\n"
|
| 690 |
+
"@model{pranav_sharma_dynamic_pricing_model_2025,\n"
|
| 691 |
+
" author = {Pranav Sharma},\n"
|
| 692 |
+
" title = {Dynamic Pricing Model},\n"
|
| 693 |
+
" year = {2025},\n"
|
| 694 |
+
" version = {1.0.0},\n"
|
| 695 |
+
" url = {https://huggingface.co/PranavSharma/dynamic-pricing-model}\n"
|
| 696 |
+
"}\n"
|
| 697 |
+
"```"
|
| 698 |
+
),
|
| 699 |
+
}
|
| 700 |
+
)
|
| 701 |
+
|
| 702 |
+
|
| 703 |
+
card_path = Path(local_repo) / "README.md"
|
| 704 |
+
card.save(card_path)
|
| 705 |
+
print("Model card saved as README.md")
|
| 706 |
+
|
| 707 |
+
# Push model and card to Hugging Face Hub
|
| 708 |
+
try:
|
| 709 |
+
hub_utils.push(
|
| 710 |
+
repo_id=f"{User}/{repo_name}",
|
| 711 |
+
source=local_repo,
|
| 712 |
+
commit_message="Pushing model and README files to the repo!",
|
| 713 |
+
create_remote=True,
|
| 714 |
+
)
|
| 715 |
+
print("Model and card pushed to Hugging Face Hub.")
|
| 716 |
+
except Exception as e:
|
| 717 |
+
print(f"Failed to push to Hugging Face Hub: {e}")
|
| 718 |
+
|
| 719 |
+
# Return outputs for display in Gradio
|
| 720 |
+
return (
|
| 721 |
+
"Model trained successfully and pushed to Hugging Face Hub!",
|
| 722 |
+
scatter_plot,
|
| 723 |
+
regression_equation,
|
| 724 |
+
mae_plot,
|
| 725 |
+
r2_plot,
|
| 726 |
+
coefficients_plot,
|
| 727 |
+
actual_vs_pred_plot, # New output added
|
| 728 |
+
results["top_models_html"],
|
| 729 |
+
original_data_html,
|
| 730 |
+
feature_importance_text,
|
| 731 |
+
)
|
| 732 |
+
|
| 733 |
+
|
| 734 |
+
|
| 735 |
+
# Updated prediction functionality to ensure other outputs are consistent
|
| 736 |
+
def use_trained_model_button(*inputs):
|
| 737 |
+
"""
|
| 738 |
+
Use the existing trained model for predictions and return relevant outputs.
|
| 739 |
+
"""
|
| 740 |
+
if "trained_model" not in comprehensive_interface.__dict__:
|
| 741 |
+
return "No trained model found. Please train the model first.", None, None, None, None, None, None, None, None
|
| 742 |
+
|
| 743 |
+
results = comprehensive_interface.trained_model
|
| 744 |
+
|
| 745 |
+
if any(inputs):
|
| 746 |
+
user_inputs = list(inputs)
|
| 747 |
+
try:
|
| 748 |
+
custom_prediction = results["best_model"].predict([user_inputs])[0]
|
| 749 |
+
prediction_result = f"Custom Prediction: {custom_prediction:.2f}"
|
| 750 |
+
except NotFittedError:
|
| 751 |
+
prediction_result = "Trained model is not properly fitted. Please train the model again."
|
| 752 |
+
else:
|
| 753 |
+
prediction_result = "No custom input provided."
|
| 754 |
+
|
| 755 |
+
scatter_plot = results["scatter_plot"]
|
| 756 |
+
regression_equation = results["regression_equation"]
|
| 757 |
+
coefficients_plot = coefficients_progression_plot_with_tracking(results)
|
| 758 |
+
mae_plot, r2_plot = performance_plots_with_gridsearch(results)
|
| 759 |
+
original_data_html = results["original_data_html"]
|
| 760 |
+
top_models_html = results["top_models_html"]
|
| 761 |
+
feature_importance = (
|
| 762 |
+
f"### Useful Features:\n {results['useful_features']}\n\n"
|
| 763 |
+
f"### Non-Useful Features:\n {results['not_useful_features']}"
|
| 764 |
+
)
|
| 765 |
+
|
| 766 |
+
return (
|
| 767 |
+
prediction_result,
|
| 768 |
+
scatter_plot,
|
| 769 |
+
regression_equation,
|
| 770 |
+
mae_plot,
|
| 771 |
+
r2_plot,
|
| 772 |
+
coefficients_plot,
|
| 773 |
+
f"<h3>Top 10 Models</h3>{top_models_html}",
|
| 774 |
+
f"<h3>Original Dataset</h3>{original_data_html}",
|
| 775 |
+
feature_importance,
|
| 776 |
+
)
|
| 777 |
+
|
| 778 |
+
# Comprehensive interface function
|
| 779 |
+
def comprehensive_interface(*inputs):
|
| 780 |
+
if "trained_model" not in comprehensive_interface.__dict__:
|
| 781 |
+
comprehensive_interface.trained_model = train_model()
|
| 782 |
+
|
| 783 |
+
results = comprehensive_interface.trained_model
|
| 784 |
+
scatter_plot = results["scatter_plot"]
|
| 785 |
+
regression_equation = results["regression_equation"]
|
| 786 |
+
coefficients_plot = coefficients_progression_plot_with_tracking(results)
|
| 787 |
+
mae_plot, r2_plot = performance_plots_with_gridsearch(results)
|
| 788 |
+
original_data_html = results["original_data_html"]
|
| 789 |
+
top_models_html = results["top_models_html"]
|
| 790 |
+
|
| 791 |
+
# Ensure useful and non-useful features are properly formatted
|
| 792 |
+
useful_features = results.get("useful_features", "")
|
| 793 |
+
not_useful_features = results.get("not_useful_features", "")
|
| 794 |
+
|
| 795 |
+
# Process useful features (retain values) and non-useful features (omit values)
|
| 796 |
+
useful_features = process_features_with_values("".join(useful_features))
|
| 797 |
+
not_useful_features = process_features_without_values("".join(not_useful_features))
|
| 798 |
+
|
| 799 |
+
# Create feature importance display
|
| 800 |
+
feature_importance = (
|
| 801 |
+
f"### Useful Features:\n " + "".join(useful_features) + "\n\n"
|
| 802 |
+
f"### Non-Useful Features:\n " + "".join(not_useful_features)
|
| 803 |
+
)
|
| 804 |
+
|
| 805 |
+
# Prediction logic
|
| 806 |
+
if any(inputs):
|
| 807 |
+
user_inputs = list(inputs)
|
| 808 |
+
custom_prediction = results["best_model"].predict([user_inputs])[0]
|
| 809 |
+
prediction_result = f"Custom Prediction: {custom_prediction:.2f}"
|
| 810 |
+
else:
|
| 811 |
+
prediction_result = "No custom input provided."
|
| 812 |
+
|
| 813 |
+
return (
|
| 814 |
+
prediction_result, # Return only the prediction for the prediction output
|
| 815 |
+
scatter_plot,
|
| 816 |
+
regression_equation,
|
| 817 |
+
mae_plot,
|
| 818 |
+
r2_plot,
|
| 819 |
+
coefficients_plot,
|
| 820 |
+
f"<h3>Top 10 Models</h3>{top_models_html}",
|
| 821 |
+
f"<h3>Original Dataset</h3>{original_data_html}",
|
| 822 |
+
feature_importance, # Include feature importance in the outputs
|
| 823 |
+
)
|
| 824 |
+
|
| 825 |
+
# Generate Gradio inputs dynamically
|
| 826 |
+
def generate_gradio_inputs():
|
| 827 |
+
results = train_model()
|
| 828 |
+
inputs = []
|
| 829 |
+
for feature, default in results["default_values"].items():
|
| 830 |
+
feature_type = results["feature_types"][feature]
|
| 831 |
+
inputs.append(gr.Number(label=f"{feature} ({feature_type}, e.g., {default})", value=default))
|
| 832 |
+
return inputs
|
| 833 |
+
# Layout with proper updates for all outputs
|
| 834 |
+
with gr.Blocks() as demo:
|
| 835 |
+
gr.Markdown("# Dynamic Pricing Model - Comprehensive Analysis")
|
| 836 |
+
gr.Markdown(
|
| 837 |
+
"Train a range of regression models, view metrics, selection of best models, coefficients, and make custom predictions."
|
| 838 |
+
)
|
| 839 |
+
|
| 840 |
+
# Outputs Section (Top)
|
| 841 |
+
with gr.Row():
|
| 842 |
+
with gr.Column():
|
| 843 |
+
scatter_plot_output = gr.Plot(label="Scatter Plot")
|
| 844 |
+
original_data_output = gr.HTML(label="Original Dataset")
|
| 845 |
+
top_models_output = gr.HTML(label="Top 10 Models")
|
| 846 |
+
with gr.Column():
|
| 847 |
+
actual_vs_predicted_output = gr.Plot(label="Actual vs Predicted Plot")
|
| 848 |
+
mae_plot_output = gr.Plot(label="MAE Plot")
|
| 849 |
+
r2_plot_output = gr.Plot(label="RΒ² Plot")
|
| 850 |
+
|
| 851 |
+
with gr.Column():
|
| 852 |
+
coeff_plot_output = gr.Plot(label="Coefficient Progression")
|
| 853 |
+
regression_eq_output = gr.Textbox(label="Regression Equation")
|
| 854 |
+
output_feat_importance = gr.Textbox(label="Feature Importance (Useful vs Non-Useful)")
|
| 855 |
+
|
| 856 |
+
# Inputs Section
|
| 857 |
+
gr.Markdown("### Input Features")
|
| 858 |
+
inputs = generate_gradio_inputs()
|
| 859 |
+
with gr.Row():
|
| 860 |
+
input_fields = [input for input in inputs]
|
| 861 |
+
with gr.Row():
|
| 862 |
+
train_button = gr.Button("Train Model")
|
| 863 |
+
predict_button = gr.Button("Use Trained Model for Prediction")
|
| 864 |
+
|
| 865 |
+
# Predictions Section (Below Inputs)
|
| 866 |
+
with gr.Row():
|
| 867 |
+
prediction_output = gr.Textbox(label="Result")
|
| 868 |
+
|
| 869 |
+
# Connect training button
|
| 870 |
+
train_button.click(
|
| 871 |
+
fn=train_model_button,
|
| 872 |
+
inputs=[],
|
| 873 |
+
outputs=[
|
| 874 |
+
prediction_output,
|
| 875 |
+
scatter_plot_output,
|
| 876 |
+
regression_eq_output,
|
| 877 |
+
mae_plot_output,
|
| 878 |
+
r2_plot_output,
|
| 879 |
+
coeff_plot_output,
|
| 880 |
+
actual_vs_predicted_output, # New output
|
| 881 |
+
top_models_output,
|
| 882 |
+
original_data_output,
|
| 883 |
+
output_feat_importance,
|
| 884 |
+
],
|
| 885 |
+
)
|
| 886 |
+
|
| 887 |
+
# Connect prediction button
|
| 888 |
+
predict_button.click(
|
| 889 |
+
fn=use_trained_model_button,
|
| 890 |
+
inputs=input_fields,
|
| 891 |
+
outputs=[
|
| 892 |
+
prediction_output,
|
| 893 |
+
scatter_plot_output,
|
| 894 |
+
regression_eq_output,
|
| 895 |
+
mae_plot_output,
|
| 896 |
+
r2_plot_output,
|
| 897 |
+
coeff_plot_output,
|
| 898 |
+
top_models_output,
|
| 899 |
+
original_data_output,
|
| 900 |
+
output_feat_importance,
|
| 901 |
+
],
|
| 902 |
+
)
|
| 903 |
+
|
| 904 |
+
demo.launch()
|
best_model.joblib
ADDED
|
Binary file (1.4 kB). View file
|
|
|
best_model.pkl
ADDED
|
Binary file (1.02 kB). View file
|
|
|
create_repo.py
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
from huggingface_hub import HfApi
|
| 2 |
+
|
| 3 |
+
repo_name = "dynamic-pricing-model"
|
| 4 |
+
api = HfApi()
|
| 5 |
+
|
| 6 |
+
# Create a new repository
|
| 7 |
+
api.create_repo(repo_id=repo_name, repo_type="model", exist_ok=False)
|
data/dynamic-pricing-dataset.zip
ADDED
|
Binary file (22.3 kB). View file
|
|
|
data/dynamic_pricing.csv
ADDED
|
@@ -0,0 +1,1001 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
Number_of_Riders,Number_of_Drivers,Location_Category,Customer_Loyalty_Status,Number_of_Past_Rides,Average_Ratings,Time_of_Booking,Vehicle_Type,Expected_Ride_Duration,Historical_Cost_of_Ride
|
| 2 |
+
90,45,Urban,Silver,13,4.47,Night,Premium,90,284.25727302188227
|
| 3 |
+
58,39,Suburban,Silver,72,4.06,Evening,Economy,43,173.87475274940766
|
| 4 |
+
42,31,Rural,Silver,0,3.99,Afternoon,Premium,76,329.7954689622466
|
| 5 |
+
89,28,Rural,Regular,67,4.31,Afternoon,Premium,134,470.2012317513198
|
| 6 |
+
78,22,Rural,Regular,74,3.77,Afternoon,Economy,149,579.6814223640141
|
| 7 |
+
59,35,Urban,Silver,83,3.51,Night,Economy,128,339.9553606047221
|
| 8 |
+
93,43,Suburban,Regular,44,4.41,Afternoon,Premium,16,104.06154127359153
|
| 9 |
+
62,39,Rural,Gold,83,3.59,Afternoon,Premium,47,235.81186355604996
|
| 10 |
+
79,14,Rural,Silver,71,3.74,Evening,Economy,128,501.4125174833056
|
| 11 |
+
42,6,Rural,Silver,21,3.85,Night,Premium,128,398.99336457061025
|
| 12 |
+
86,17,Urban,Regular,99,4.69,Morning,Economy,167,669.2986264658781
|
| 13 |
+
60,38,Rural,Gold,15,4.14,Evening,Premium,144,414.9901047325251
|
| 14 |
+
24,8,Rural,Gold,50,4.12,Morning,Economy,164,490.41072171830416
|
| 15 |
+
36,24,Suburban,Silver,88,4.22,Night,Premium,83,296.24287599192223
|
| 16 |
+
63,13,Rural,Regular,74,4.95,Afternoon,Premium,102,327.0888648717375
|
| 17 |
+
39,12,Urban,Silver,30,4.51,Afternoon,Premium,140,445.1368684239125
|
| 18 |
+
38,28,Rural,Silver,35,3.93,Afternoon,Premium,54,244.5361718306458
|
| 19 |
+
46,14,Suburban,Silver,21,4.71,Afternoon,Economy,15,47.31430863361691
|
| 20 |
+
33,7,Suburban,Gold,49,4.31,Evening,Premium,22,129.8082629093964
|
| 21 |
+
31,7,Suburban,Silver,24,4.82,Evening,Premium,87,382.9481103198511
|
| 22 |
+
96,45,Urban,Regular,6,4.95,Afternoon,Premium,11,82.77279318243978
|
| 23 |
+
22,11,Suburban,Silver,79,4.48,Night,Economy,15,64.07117255500656
|
| 24 |
+
74,16,Rural,Regular,6,3.97,Morning,Economy,139,390.6687658288554
|
| 25 |
+
24,12,Urban,Regular,10,3.6,Evening,Premium,45,212.16652497375455
|
| 26 |
+
48,19,Suburban,Gold,72,3.81,Night,Premium,65,235.65813370551408
|
| 27 |
+
56,13,Rural,Regular,36,4.81,Evening,Economy,162,406.5574980533908
|
| 28 |
+
72,33,Rural,Gold,66,4.39,Morning,Premium,30,182.4744270596517
|
| 29 |
+
97,75,Urban,Silver,76,4.7,Night,Economy,158,652.617297300081
|
| 30 |
+
62,33,Suburban,Regular,39,3.91,Evening,Premium,129,403.22709836941993
|
| 31 |
+
57,38,Suburban,Silver,54,4.1,Night,Premium,131,537.7848594528473
|
| 32 |
+
25,7,Suburban,Silver,13,3.99,Morning,Premium,81,286.13145256368455
|
| 33 |
+
75,56,Suburban,Gold,94,4.79,Evening,Premium,153,485.0546633356366
|
| 34 |
+
39,9,Urban,Gold,39,4.64,Afternoon,Premium,48,171.0859835160851
|
| 35 |
+
35,24,Suburban,Gold,73,3.76,Evening,Premium,105,485.8784537318511
|
| 36 |
+
68,32,Suburban,Regular,34,3.58,Morning,Economy,77,294.7328864777875
|
| 37 |
+
96,43,Rural,Silver,97,3.68,Morning,Premium,91,392.83872040801793
|
| 38 |
+
28,11,Suburban,Gold,52,4.33,Afternoon,Premium,94,456.1809467866996
|
| 39 |
+
25,15,Rural,Gold,65,4.88,Evening,Premium,101,502.52932078734773
|
| 40 |
+
28,6,Suburban,Regular,2,4.29,Morning,Economy,89,244.21766165291973
|
| 41 |
+
73,17,Rural,Regular,14,4.81,Evening,Premium,170,634.7265312250814
|
| 42 |
+
36,18,Urban,Silver,88,3.73,Night,Premium,92,345.40676830595487
|
| 43 |
+
56,10,Urban,Silver,55,4.5,Night,Economy,45,151.15212964816465
|
| 44 |
+
97,81,Suburban,Regular,52,4.56,Evening,Economy,125,530.7599938912294
|
| 45 |
+
63,9,Rural,Regular,89,3.87,Afternoon,Premium,166,482.85016419959805
|
| 46 |
+
78,33,Urban,Silver,35,4.46,Morning,Premium,116,355.9595074862448
|
| 47 |
+
29,10,Suburban,Regular,25,3.77,Afternoon,Economy,91,303.9609626071891
|
| 48 |
+
73,33,Suburban,Silver,60,3.88,Night,Premium,161,514.8771742414517
|
| 49 |
+
94,29,Urban,Regular,67,3.59,Evening,Premium,96,361.13235495172165
|
| 50 |
+
54,28,Suburban,Silver,83,4.49,Night,Economy,32,80.26246462184758
|
| 51 |
+
67,6,Rural,Gold,15,3.53,Night,Economy,123,420.6239113101238
|
| 52 |
+
23,8,Urban,Silver,27,4.73,Afternoon,Economy,117,520.8926706123274
|
| 53 |
+
70,14,Urban,Silver,16,4.3,Morning,Economy,53,183.07579104191225
|
| 54 |
+
20,10,Rural,Silver,70,4.92,Evening,Economy,65,190.13746358777752
|
| 55 |
+
95,84,Suburban,Gold,18,3.86,Afternoon,Premium,112,522.3021028701461
|
| 56 |
+
43,16,Urban,Silver,40,4.89,Night,Premium,106,410.6863449474928
|
| 57 |
+
97,55,Suburban,Silver,94,4.62,Evening,Premium,150,584.9958711291002
|
| 58 |
+
32,20,Rural,Silver,44,3.55,Night,Economy,68,301.62262644973293
|
| 59 |
+
95,25,Suburban,Regular,72,4.16,Morning,Premium,128,413.5870840445325
|
| 60 |
+
47,15,Urban,Gold,14,4.84,Night,Economy,89,273.11810461931896
|
| 61 |
+
25,11,Rural,Silver,33,3.85,Night,Economy,94,247.1745626508575
|
| 62 |
+
37,22,Rural,Regular,76,4.72,Afternoon,Economy,69,213.44325079724317
|
| 63 |
+
59,39,Suburban,Gold,49,3.78,Morning,Premium,98,295.79438015283176
|
| 64 |
+
42,20,Urban,Silver,88,4.64,Night,Premium,29,145.0698091748401
|
| 65 |
+
53,11,Rural,Regular,2,3.5,Afternoon,Premium,81,297.0186264188845
|
| 66 |
+
79,64,Rural,Regular,91,4.57,Night,Economy,164,666.6870291344428
|
| 67 |
+
59,23,Urban,Gold,41,4.97,Evening,Premium,91,449.54563391452524
|
| 68 |
+
40,29,Urban,Regular,72,4.3,Afternoon,Economy,147,624.9860100296204
|
| 69 |
+
76,40,Suburban,Silver,77,4.17,Morning,Economy,28,96.03520851587072
|
| 70 |
+
41,26,Urban,Regular,96,3.91,Night,Economy,169,637.7593915947267
|
| 71 |
+
83,14,Urban,Regular,80,4.77,Night,Premium,64,295.5887110300315
|
| 72 |
+
44,17,Rural,Regular,15,4.0,Evening,Economy,98,353.33854512223814
|
| 73 |
+
91,73,Urban,Gold,61,4.39,Night,Economy,15,62.25429041832141
|
| 74 |
+
54,16,Suburban,Regular,8,4.5,Afternoon,Premium,67,266.0685899337195
|
| 75 |
+
59,37,Rural,Silver,86,4.67,Night,Premium,95,340.1282671016029
|
| 76 |
+
72,43,Suburban,Gold,28,4.87,Afternoon,Economy,132,443.25815535245397
|
| 77 |
+
47,9,Rural,Gold,49,4.44,Evening,Economy,96,265.05527443495566
|
| 78 |
+
32,22,Rural,Silver,49,4.65,Night,Economy,60,221.43438547917532
|
| 79 |
+
45,13,Rural,Regular,96,4.84,Night,Economy,112,393.2308288248255
|
| 80 |
+
72,45,Urban,Silver,82,4.42,Night,Premium,40,151.58040412487964
|
| 81 |
+
56,15,Urban,Gold,34,4.72,Night,Premium,78,313.9950046053331
|
| 82 |
+
42,22,Rural,Silver,67,3.81,Afternoon,Premium,82,366.1515260551269
|
| 83 |
+
52,14,Suburban,Silver,87,3.54,Afternoon,Premium,98,425.97356882411634
|
| 84 |
+
81,23,Urban,Gold,39,4.3,Evening,Economy,143,359.0531279855558
|
| 85 |
+
77,25,Rural,Regular,70,4.27,Afternoon,Premium,52,260.34417984860374
|
| 86 |
+
27,6,Urban,Gold,2,4.42,Night,Economy,86,320.30170917475425
|
| 87 |
+
74,34,Rural,Regular,18,4.66,Morning,Premium,140,454.49212153190336
|
| 88 |
+
92,69,Urban,Silver,88,4.69,Afternoon,Economy,18,45.11502370436019
|
| 89 |
+
77,34,Rural,Gold,33,4.13,Night,Premium,48,223.66211429318122
|
| 90 |
+
66,6,Rural,Regular,23,4.2,Evening,Economy,45,173.1577542620492
|
| 91 |
+
77,39,Urban,Regular,23,4.29,Morning,Economy,167,592.240499627505
|
| 92 |
+
35,16,Urban,Regular,31,4.75,Afternoon,Premium,113,379.3078104185831
|
| 93 |
+
48,38,Rural,Gold,40,3.7,Evening,Premium,80,360.71117031918743
|
| 94 |
+
61,18,Rural,Gold,84,3.93,Evening,Premium,58,203.49261837786295
|
| 95 |
+
71,21,Suburban,Silver,82,4.88,Afternoon,Premium,126,553.5451307734787
|
| 96 |
+
95,7,Rural,Gold,40,4.68,Evening,Economy,95,283.46644254307614
|
| 97 |
+
76,44,Suburban,Gold,20,3.56,Afternoon,Premium,105,435.14534513079855
|
| 98 |
+
32,13,Suburban,Regular,21,4.64,Afternoon,Economy,156,685.7681264991488
|
| 99 |
+
49,30,Rural,Silver,57,4.83,Evening,Economy,154,630.8608868741742
|
| 100 |
+
38,17,Urban,Silver,92,4.41,Afternoon,Premium,138,546.1568747653598
|
| 101 |
+
92,35,Suburban,Regular,46,4.72,Morning,Economy,45,115.35700254441713
|
| 102 |
+
40,29,Suburban,Silver,26,4.26,Night,Economy,152,404.0498951423794
|
| 103 |
+
55,42,Suburban,Silver,24,4.49,Afternoon,Economy,45,156.03832988580584
|
| 104 |
+
58,34,Rural,Gold,19,4.55,Morning,Premium,131,501.26295506529306
|
| 105 |
+
34,5,Urban,Regular,26,4.85,Evening,Premium,152,562.4369764527329
|
| 106 |
+
70,47,Suburban,Silver,3,3.66,Morning,Premium,53,216.80247508698307
|
| 107 |
+
51,24,Rural,Gold,25,4.68,Afternoon,Premium,16,120.09069016935676
|
| 108 |
+
88,56,Rural,Regular,11,4.36,Afternoon,Economy,60,221.1576532597614
|
| 109 |
+
25,8,Suburban,Silver,83,3.53,Evening,Economy,121,492.7012709061221
|
| 110 |
+
34,19,Rural,Regular,51,4.2,Night,Premium,166,754.2344800100251
|
| 111 |
+
40,15,Urban,Regular,90,3.62,Night,Premium,42,211.52772882563164
|
| 112 |
+
26,7,Suburban,Gold,58,4.91,Afternoon,Economy,161,460.75927538572495
|
| 113 |
+
81,42,Suburban,Regular,88,4.14,Afternoon,Economy,47,164.10747354764283
|
| 114 |
+
80,56,Suburban,Gold,63,4.57,Night,Premium,43,213.6962129956236
|
| 115 |
+
64,19,Rural,Gold,86,4.68,Night,Premium,171,732.9893961300692
|
| 116 |
+
45,18,Rural,Gold,68,4.07,Morning,Economy,136,350.6012026111729
|
| 117 |
+
84,49,Urban,Regular,32,4.25,Night,Premium,53,192.8798062051633
|
| 118 |
+
34,16,Urban,Silver,47,4.12,Evening,Economy,93,294.11580585015537
|
| 119 |
+
67,32,Suburban,Regular,40,4.47,Afternoon,Premium,13,82.52418774801069
|
| 120 |
+
93,23,Suburban,Silver,34,4.23,Evening,Premium,125,386.16906941399594
|
| 121 |
+
100,51,Urban,Silver,56,3.58,Night,Economy,89,310.9003272621974
|
| 122 |
+
35,22,Suburban,Gold,15,4.23,Morning,Premium,120,373.96284065200393
|
| 123 |
+
36,13,Rural,Silver,31,4.71,Night,Economy,71,221.55110013131713
|
| 124 |
+
28,18,Suburban,Regular,100,3.7,Afternoon,Economy,127,531.1127009643968
|
| 125 |
+
21,9,Urban,Gold,10,3.88,Morning,Premium,108,324.9426389036563
|
| 126 |
+
26,15,Urban,Regular,35,5.0,Morning,Premium,161,493.4068923175674
|
| 127 |
+
97,21,Suburban,Regular,59,3.87,Evening,Premium,174,778.6333560141928
|
| 128 |
+
26,15,Urban,Silver,10,3.71,Morning,Premium,171,720.1572085631501
|
| 129 |
+
91,56,Urban,Gold,17,4.66,Night,Economy,10,38.23523523879646
|
| 130 |
+
65,48,Rural,Silver,12,4.37,Afternoon,Premium,140,573.5891064527985
|
| 131 |
+
88,28,Urban,Gold,22,4.99,Night,Premium,154,682.016246966075
|
| 132 |
+
82,13,Suburban,Gold,32,3.58,Night,Economy,148,516.4367273015673
|
| 133 |
+
65,40,Urban,Silver,48,3.59,Evening,Economy,121,492.51960241928145
|
| 134 |
+
41,6,Urban,Silver,56,4.32,Night,Economy,11,49.234784001519046
|
| 135 |
+
85,36,Rural,Silver,64,4.32,Evening,Economy,152,506.6928860981053
|
| 136 |
+
35,13,Rural,Silver,80,3.8,Afternoon,Economy,93,304.3133394836575
|
| 137 |
+
83,29,Urban,Silver,78,4.42,Afternoon,Premium,23,111.179341237614
|
| 138 |
+
91,31,Urban,Regular,12,4.39,Night,Economy,39,163.21458328772866
|
| 139 |
+
44,28,Rural,Regular,31,4.92,Night,Premium,132,402.85698948061395
|
| 140 |
+
96,12,Suburban,Gold,15,4.97,Night,Economy,90,289.2351908680133
|
| 141 |
+
77,46,Suburban,Regular,97,4.2,Afternoon,Premium,25,150.53929481479082
|
| 142 |
+
91,80,Rural,Gold,74,4.74,Night,Economy,46,194.93555934032696
|
| 143 |
+
93,42,Rural,Silver,75,4.66,Morning,Economy,160,674.6485035775572
|
| 144 |
+
41,9,Rural,Silver,73,3.51,Morning,Economy,150,551.5572340398235
|
| 145 |
+
61,44,Suburban,Regular,69,4.54,Afternoon,Economy,52,132.2147645898824
|
| 146 |
+
83,10,Urban,Gold,28,3.91,Afternoon,Economy,23,70.11182411078714
|
| 147 |
+
59,22,Rural,Regular,79,4.38,Morning,Premium,93,346.2847096470098
|
| 148 |
+
42,31,Suburban,Gold,62,4.95,Night,Premium,13,102.04473025177862
|
| 149 |
+
81,16,Suburban,Regular,73,4.89,Night,Economy,125,494.1401793052489
|
| 150 |
+
72,19,Rural,Gold,89,4.74,Morning,Premium,45,183.658314681842
|
| 151 |
+
43,9,Rural,Silver,2,4.12,Morning,Economy,126,436.5576476487414
|
| 152 |
+
74,33,Urban,Silver,82,4.13,Afternoon,Economy,10,31.362081322241885
|
| 153 |
+
68,45,Rural,Silver,65,4.19,Evening,Economy,112,323.4791093139413
|
| 154 |
+
36,13,Urban,Silver,84,4.88,Evening,Premium,140,505.3840569466695
|
| 155 |
+
51,5,Urban,Gold,0,4.59,Afternoon,Premium,92,320.8576215627125
|
| 156 |
+
63,23,Urban,Silver,48,4.09,Evening,Economy,49,214.5660524456202
|
| 157 |
+
96,29,Urban,Regular,84,3.65,Night,Economy,176,758.5015334295354
|
| 158 |
+
94,59,Suburban,Regular,84,4.38,Morning,Premium,175,665.7295341217325
|
| 159 |
+
74,32,Suburban,Regular,2,4.7,Evening,Premium,38,171.06636292972274
|
| 160 |
+
91,13,Rural,Silver,32,3.6,Morning,Premium,160,647.3526381087524
|
| 161 |
+
69,12,Suburban,Regular,42,4.34,Afternoon,Premium,158,608.1282399929386
|
| 162 |
+
51,20,Rural,Silver,57,3.68,Night,Economy,67,246.92292493661097
|
| 163 |
+
45,17,Rural,Gold,10,4.93,Night,Premium,148,430.06653050329265
|
| 164 |
+
92,34,Suburban,Regular,98,3.99,Night,Economy,140,396.63875270925445
|
| 165 |
+
69,36,Suburban,Gold,55,4.74,Morning,Economy,109,436.0114486061054
|
| 166 |
+
56,14,Suburban,Silver,30,3.67,Night,Economy,48,202.9454568505992
|
| 167 |
+
43,26,Rural,Regular,59,4.91,Afternoon,Economy,175,731.7816872483901
|
| 168 |
+
86,48,Urban,Silver,37,4.15,Night,Economy,84,216.05054809363546
|
| 169 |
+
61,34,Urban,Gold,82,3.99,Night,Premium,10,83.86835620425342
|
| 170 |
+
50,36,Suburban,Gold,18,4.61,Night,Economy,145,572.2420492964254
|
| 171 |
+
73,34,Urban,Regular,95,4.31,Morning,Premium,21,118.8070474355678
|
| 172 |
+
76,7,Urban,Gold,76,4.35,Morning,Economy,72,245.8935711917164
|
| 173 |
+
87,41,Urban,Regular,87,4.36,Night,Economy,87,387.1117403297744
|
| 174 |
+
53,33,Rural,Regular,40,3.8,Morning,Premium,139,507.9505746530285
|
| 175 |
+
71,8,Suburban,Silver,57,3.68,Night,Economy,75,249.30297460101602
|
| 176 |
+
32,5,Rural,Gold,80,3.55,Night,Economy,14,45.91711193197189
|
| 177 |
+
91,30,Suburban,Gold,34,3.69,Afternoon,Economy,96,424.6120578300381
|
| 178 |
+
47,37,Suburban,Gold,64,3.75,Morning,Economy,31,85.97357530080251
|
| 179 |
+
23,13,Rural,Silver,42,4.55,Night,Economy,87,328.9669925908357
|
| 180 |
+
57,20,Rural,Regular,92,3.74,Morning,Economy,53,172.62943414987132
|
| 181 |
+
48,17,Suburban,Silver,2,4.09,Evening,Economy,85,261.9435328532634
|
| 182 |
+
22,5,Urban,Gold,39,4.92,Evening,Economy,56,199.0416803252397
|
| 183 |
+
60,19,Urban,Silver,37,4.22,Evening,Economy,68,232.28345491474454
|
| 184 |
+
94,42,Rural,Regular,0,4.23,Morning,Premium,36,185.311838106628
|
| 185 |
+
43,6,Suburban,Silver,34,4.4,Morning,Premium,24,153.76143970087224
|
| 186 |
+
97,18,Suburban,Regular,53,4.25,Night,Premium,26,126.4771352873347
|
| 187 |
+
47,17,Rural,Silver,7,4.8,Morning,Economy,173,609.5038276051239
|
| 188 |
+
39,28,Urban,Silver,72,3.76,Afternoon,Premium,87,287.1624375675698
|
| 189 |
+
50,39,Suburban,Regular,94,3.81,Evening,Premium,139,406.32480651562713
|
| 190 |
+
35,17,Urban,Regular,78,4.4,Evening,Premium,61,249.03711265544786
|
| 191 |
+
28,8,Suburban,Regular,69,3.86,Evening,Premium,175,620.9016915662245
|
| 192 |
+
51,32,Rural,Regular,98,4.44,Morning,Premium,51,267.0607016773296
|
| 193 |
+
54,12,Suburban,Silver,84,4.98,Evening,Premium,172,715.7547930992089
|
| 194 |
+
65,10,Urban,Regular,77,4.36,Afternoon,Economy,170,430.385487919734
|
| 195 |
+
61,26,Rural,Gold,21,3.85,Morning,Premium,126,604.273047008686
|
| 196 |
+
46,9,Suburban,Silver,67,4.22,Evening,Premium,47,243.5250631593867
|
| 197 |
+
73,50,Urban,Regular,7,4.22,Night,Economy,45,176.2144067384048
|
| 198 |
+
86,49,Urban,Regular,99,3.51,Night,Economy,130,471.4796320940979
|
| 199 |
+
75,7,Suburban,Gold,100,4.13,Morning,Economy,134,453.3769493913552
|
| 200 |
+
39,29,Suburban,Silver,12,4.24,Evening,Economy,97,251.10730645744061
|
| 201 |
+
33,6,Rural,Gold,90,4.81,Night,Premium,139,521.8019208244536
|
| 202 |
+
40,29,Suburban,Silver,6,4.94,Night,Premium,71,346.4926515319707
|
| 203 |
+
54,35,Suburban,Silver,66,4.4,Night,Economy,77,234.0714535105622
|
| 204 |
+
53,26,Urban,Gold,54,4.6,Night,Premium,52,184.02445130071476
|
| 205 |
+
81,34,Urban,Silver,98,3.55,Afternoon,Premium,164,554.8869659163038
|
| 206 |
+
45,20,Urban,Regular,80,4.73,Morning,Economy,63,192.61977241404603
|
| 207 |
+
20,9,Urban,Silver,77,3.91,Evening,Economy,89,227.796524806166
|
| 208 |
+
47,22,Rural,Silver,11,4.8,Afternoon,Premium,119,416.601648993299
|
| 209 |
+
33,18,Urban,Gold,90,3.61,Evening,Premium,146,671.7128294096442
|
| 210 |
+
78,57,Rural,Silver,5,4.82,Morning,Premium,127,552.6397714448676
|
| 211 |
+
26,12,Rural,Silver,9,3.75,Afternoon,Economy,115,321.37240510655704
|
| 212 |
+
62,21,Rural,Regular,61,4.57,Night,Economy,56,215.4338699200544
|
| 213 |
+
84,59,Suburban,Silver,67,4.27,Morning,Premium,164,758.9961232252967
|
| 214 |
+
49,8,Urban,Regular,1,4.06,Afternoon,Premium,157,694.4247148756359
|
| 215 |
+
34,22,Suburban,Gold,34,3.64,Morning,Economy,176,617.3632185255483
|
| 216 |
+
49,30,Rural,Silver,86,3.62,Afternoon,Premium,69,328.63536897966003
|
| 217 |
+
83,50,Rural,Regular,7,3.66,Evening,Premium,100,376.3000600585162
|
| 218 |
+
88,5,Urban,Silver,89,3.59,Night,Economy,27,70.20380336705749
|
| 219 |
+
90,71,Suburban,Gold,88,3.84,Morning,Economy,167,451.6848649701074
|
| 220 |
+
65,5,Rural,Silver,24,3.54,Night,Economy,119,301.40392677127403
|
| 221 |
+
73,28,Urban,Silver,22,4.57,Afternoon,Economy,53,153.39607111804412
|
| 222 |
+
85,62,Suburban,Silver,54,3.78,Morning,Economy,114,339.66230419418656
|
| 223 |
+
65,27,Rural,Gold,62,3.54,Night,Premium,162,733.4425366578176
|
| 224 |
+
74,42,Urban,Gold,88,3.5,Evening,Economy,77,203.8363809804033
|
| 225 |
+
41,7,Rural,Gold,68,4.3,Evening,Premium,66,284.5088586099128
|
| 226 |
+
79,23,Urban,Gold,88,3.88,Night,Economy,164,492.11345835908634
|
| 227 |
+
53,7,Urban,Silver,64,4.55,Night,Premium,10,86.19117981050438
|
| 228 |
+
35,14,Urban,Silver,74,5.0,Night,Premium,175,727.8809447636283
|
| 229 |
+
53,40,Rural,Gold,79,3.66,Evening,Premium,30,158.65264164620277
|
| 230 |
+
36,23,Urban,Silver,42,4.66,Morning,Economy,14,44.52503661261306
|
| 231 |
+
38,25,Urban,Regular,2,4.24,Morning,Premium,128,452.4258268814717
|
| 232 |
+
52,36,Rural,Silver,1,4.52,Morning,Premium,36,152.64047921471024
|
| 233 |
+
91,64,Suburban,Regular,26,4.56,Morning,Premium,96,420.2245689053783
|
| 234 |
+
87,5,Urban,Silver,59,4.32,Night,Economy,42,151.35930066309265
|
| 235 |
+
96,20,Suburban,Gold,88,3.6,Evening,Premium,71,242.27196569085137
|
| 236 |
+
83,59,Urban,Gold,8,4.85,Morning,Economy,31,119.0485543701777
|
| 237 |
+
48,23,Rural,Gold,0,4.46,Afternoon,Economy,174,472.56954081275165
|
| 238 |
+
65,19,Suburban,Silver,24,4.59,Evening,Economy,96,334.6493506052282
|
| 239 |
+
79,29,Suburban,Silver,0,4.86,Morning,Economy,127,406.08552566041345
|
| 240 |
+
100,22,Suburban,Silver,45,4.23,Night,Premium,141,551.365137615676
|
| 241 |
+
73,63,Suburban,Silver,25,4.19,Afternoon,Economy,129,534.0181945871103
|
| 242 |
+
79,67,Rural,Gold,56,4.01,Evening,Premium,151,501.2363000548165
|
| 243 |
+
88,55,Rural,Regular,56,4.0,Night,Premium,26,159.60691863182956
|
| 244 |
+
76,34,Suburban,Silver,10,4.92,Morning,Economy,103,359.8010509571677
|
| 245 |
+
49,30,Suburban,Silver,80,3.74,Night,Economy,85,348.6695624527248
|
| 246 |
+
100,64,Rural,Regular,7,4.89,Night,Premium,115,490.50407597042386
|
| 247 |
+
87,26,Rural,Gold,63,4.2,Morning,Premium,118,485.683239513509
|
| 248 |
+
22,5,Rural,Silver,93,4.85,Evening,Economy,99,424.9275101964327
|
| 249 |
+
21,11,Rural,Silver,23,3.76,Afternoon,Economy,12,40.442890652890384
|
| 250 |
+
93,57,Suburban,Regular,34,4.89,Morning,Premium,80,258.424915281181
|
| 251 |
+
28,15,Rural,Gold,90,4.25,Night,Premium,177,511.92939099380595
|
| 252 |
+
97,7,Urban,Silver,22,3.74,Afternoon,Premium,147,441.74670095471794
|
| 253 |
+
48,12,Urban,Silver,51,4.63,Night,Premium,32,175.5180543386476
|
| 254 |
+
70,37,Urban,Silver,10,3.65,Night,Premium,168,658.5834276725151
|
| 255 |
+
78,12,Rural,Silver,99,4.3,Afternoon,Economy,95,299.2909931126892
|
| 256 |
+
25,7,Rural,Regular,24,3.85,Evening,Premium,144,494.8027992189699
|
| 257 |
+
24,9,Urban,Gold,6,4.05,Afternoon,Premium,69,223.51901195083735
|
| 258 |
+
92,37,Rural,Silver,7,4.92,Morning,Premium,103,434.57105082121734
|
| 259 |
+
43,33,Rural,Gold,16,4.01,Morning,Premium,159,630.4284012724294
|
| 260 |
+
96,23,Urban,Gold,8,4.23,Morning,Premium,90,445.1254111184949
|
| 261 |
+
88,46,Rural,Gold,35,4.89,Afternoon,Premium,72,361.98552095653855
|
| 262 |
+
83,43,Suburban,Regular,20,3.59,Morning,Economy,63,267.28219711727195
|
| 263 |
+
50,29,Urban,Regular,2,4.81,Morning,Economy,143,518.9547629602604
|
| 264 |
+
97,75,Urban,Regular,15,4.94,Afternoon,Economy,163,575.4934491747886
|
| 265 |
+
84,24,Suburban,Regular,39,4.08,Afternoon,Economy,86,349.4432162449335
|
| 266 |
+
68,40,Suburban,Silver,58,4.64,Morning,Premium,68,279.2349662242834
|
| 267 |
+
77,30,Urban,Regular,99,4.7,Evening,Premium,179,689.7483154802385
|
| 268 |
+
82,67,Urban,Regular,13,4.43,Afternoon,Economy,33,88.76294359232648
|
| 269 |
+
21,8,Suburban,Gold,37,3.71,Evening,Premium,171,621.7963494961118
|
| 270 |
+
75,24,Rural,Regular,44,3.79,Night,Premium,72,307.621949405299
|
| 271 |
+
61,9,Urban,Gold,74,3.98,Evening,Premium,32,172.41053126646165
|
| 272 |
+
90,13,Suburban,Regular,24,3.73,Afternoon,Economy,126,444.2453020895959
|
| 273 |
+
100,21,Suburban,Regular,20,3.52,Night,Premium,163,556.8967118375435
|
| 274 |
+
93,31,Suburban,Gold,13,3.58,Afternoon,Premium,101,355.3245754797394
|
| 275 |
+
92,14,Urban,Silver,57,3.73,Morning,Premium,133,474.99773906008016
|
| 276 |
+
61,12,Rural,Gold,59,4.72,Afternoon,Premium,178,581.9712306098094
|
| 277 |
+
53,12,Suburban,Gold,79,3.6,Night,Premium,154,663.4393972369916
|
| 278 |
+
55,21,Urban,Regular,20,3.56,Night,Premium,134,519.469492374694
|
| 279 |
+
57,45,Rural,Gold,78,4.43,Afternoon,Premium,112,397.6919501475396
|
| 280 |
+
34,8,Suburban,Silver,51,4.09,Afternoon,Premium,130,388.1122298927073
|
| 281 |
+
50,11,Suburban,Silver,19,4.87,Morning,Economy,144,591.1000759572743
|
| 282 |
+
35,22,Rural,Silver,82,3.79,Afternoon,Economy,174,586.7988633141081
|
| 283 |
+
43,14,Suburban,Regular,1,3.53,Night,Premium,134,648.9097429236178
|
| 284 |
+
50,25,Suburban,Silver,19,4.32,Night,Economy,176,746.3391324597457
|
| 285 |
+
55,19,Urban,Regular,64,4.34,Morning,Premium,129,555.0976877626003
|
| 286 |
+
93,67,Urban,Silver,21,4.88,Night,Premium,87,417.91314129158997
|
| 287 |
+
94,69,Urban,Silver,86,4.12,Morning,Premium,18,97.80093621671637
|
| 288 |
+
70,60,Urban,Regular,57,4.05,Afternoon,Premium,43,193.08911199878557
|
| 289 |
+
36,25,Suburban,Regular,61,3.64,Night,Economy,132,492.4640116460618
|
| 290 |
+
37,9,Suburban,Silver,73,4.8,Morning,Economy,124,408.81562882076287
|
| 291 |
+
68,46,Urban,Gold,8,4.21,Afternoon,Economy,116,364.16179480772485
|
| 292 |
+
77,15,Suburban,Regular,47,4.47,Morning,Economy,66,228.64349787316
|
| 293 |
+
27,12,Suburban,Silver,64,4.7,Evening,Economy,149,667.9464280068869
|
| 294 |
+
90,56,Suburban,Silver,61,4.38,Night,Premium,91,410.34270896598935
|
| 295 |
+
46,23,Suburban,Regular,19,4.92,Afternoon,Economy,169,710.4192641684332
|
| 296 |
+
96,80,Urban,Regular,47,3.77,Morning,Economy,70,177.20306582722415
|
| 297 |
+
80,6,Rural,Silver,43,4.81,Night,Economy,24,74.32837977574499
|
| 298 |
+
80,31,Suburban,Silver,91,4.61,Evening,Premium,127,392.30276005302534
|
| 299 |
+
64,25,Suburban,Silver,85,4.46,Afternoon,Premium,37,168.61019430479575
|
| 300 |
+
57,42,Rural,Silver,36,3.59,Afternoon,Premium,167,587.2581373063812
|
| 301 |
+
52,7,Rural,Silver,57,4.82,Night,Economy,180,563.9803272683639
|
| 302 |
+
69,56,Urban,Regular,73,4.02,Night,Premium,116,352.3474982568331
|
| 303 |
+
67,54,Suburban,Regular,53,3.67,Morning,Economy,110,415.3075369486595
|
| 304 |
+
25,7,Rural,Silver,13,4.07,Afternoon,Premium,60,204.215843297379
|
| 305 |
+
80,35,Rural,Regular,29,4.49,Night,Economy,79,319.6520700676685
|
| 306 |
+
73,6,Suburban,Silver,5,4.03,Night,Premium,71,362.05333073474793
|
| 307 |
+
24,6,Urban,Regular,65,4.29,Afternoon,Premium,106,387.47553780901916
|
| 308 |
+
37,14,Rural,Gold,18,4.36,Evening,Economy,85,348.8532987245396
|
| 309 |
+
27,6,Rural,Regular,74,4.75,Afternoon,Premium,157,732.2985126943609
|
| 310 |
+
23,11,Urban,Regular,11,4.86,Afternoon,Economy,133,343.6721333865543
|
| 311 |
+
42,8,Rural,Gold,12,4.79,Morning,Premium,166,599.7162532373392
|
| 312 |
+
74,39,Urban,Silver,11,3.65,Morning,Economy,173,484.75453888236336
|
| 313 |
+
68,30,Urban,Regular,28,4.69,Night,Premium,134,581.1514565564086
|
| 314 |
+
59,9,Suburban,Silver,30,4.83,Afternoon,Economy,140,603.3651642705413
|
| 315 |
+
89,75,Rural,Silver,76,4.39,Evening,Economy,110,369.8546414878244
|
| 316 |
+
81,35,Suburban,Regular,45,4.11,Night,Economy,174,708.8801421484817
|
| 317 |
+
33,8,Suburban,Regular,74,4.52,Morning,Premium,56,205.83755050869485
|
| 318 |
+
75,28,Urban,Gold,49,4.46,Night,Economy,163,684.5607033083106
|
| 319 |
+
87,48,Suburban,Silver,95,4.73,Morning,Economy,162,453.2541298779704
|
| 320 |
+
56,37,Suburban,Silver,96,3.83,Afternoon,Premium,130,412.5848379812361
|
| 321 |
+
75,32,Urban,Silver,20,3.69,Evening,Premium,96,440.4442377359072
|
| 322 |
+
99,54,Rural,Silver,96,3.77,Afternoon,Premium,61,241.64071137767894
|
| 323 |
+
33,16,Rural,Regular,81,4.08,Afternoon,Premium,50,201.29253189374313
|
| 324 |
+
41,28,Rural,Gold,89,4.47,Evening,Premium,45,220.05114029296504
|
| 325 |
+
55,19,Suburban,Silver,74,3.51,Morning,Economy,173,702.9134159653358
|
| 326 |
+
93,51,Rural,Silver,12,4.98,Morning,Premium,90,431.42166025583447
|
| 327 |
+
54,35,Urban,Silver,11,4.49,Afternoon,Premium,96,466.8626810645626
|
| 328 |
+
34,20,Urban,Gold,21,4.15,Morning,Premium,158,445.1263611668488
|
| 329 |
+
86,18,Suburban,Silver,61,4.3,Afternoon,Premium,126,441.6378571357946
|
| 330 |
+
85,27,Suburban,Gold,8,4.11,Night,Premium,157,669.5210116683382
|
| 331 |
+
74,5,Suburban,Regular,80,3.63,Night,Economy,134,354.3852115042604
|
| 332 |
+
63,53,Rural,Gold,33,4.33,Afternoon,Economy,175,489.7125242986789
|
| 333 |
+
55,13,Suburban,Silver,45,3.71,Morning,Premium,40,222.56858200356248
|
| 334 |
+
100,66,Suburban,Gold,27,3.53,Evening,Premium,106,412.2556067980849
|
| 335 |
+
51,27,Urban,Gold,86,3.82,Evening,Premium,152,472.21573527678265
|
| 336 |
+
37,10,Urban,Silver,33,4.86,Afternoon,Economy,44,179.93988033973832
|
| 337 |
+
99,71,Suburban,Gold,3,4.63,Morning,Premium,100,308.9111533232364
|
| 338 |
+
54,24,Rural,Silver,85,3.79,Evening,Economy,102,306.3142432341152
|
| 339 |
+
30,7,Rural,Gold,57,4.27,Morning,Premium,69,224.46487829301583
|
| 340 |
+
84,56,Urban,Silver,71,4.56,Evening,Premium,15,101.07378646994937
|
| 341 |
+
49,14,Suburban,Silver,55,4.43,Morning,Premium,131,633.4966221375331
|
| 342 |
+
86,10,Urban,Silver,98,4.8,Morning,Economy,18,62.87509273644356
|
| 343 |
+
48,24,Rural,Gold,17,3.98,Afternoon,Economy,29,92.03104706108972
|
| 344 |
+
67,18,Urban,Silver,78,3.81,Morning,Premium,22,106.73589264143021
|
| 345 |
+
100,16,Rural,Gold,96,3.65,Night,Premium,163,560.6703257140985
|
| 346 |
+
79,7,Rural,Silver,31,4.82,Night,Economy,100,322.9000694955284
|
| 347 |
+
99,9,Rural,Silver,33,4.98,Afternoon,Economy,110,292.33936093553586
|
| 348 |
+
34,24,Urban,Silver,3,4.41,Morning,Economy,97,242.75171700488073
|
| 349 |
+
54,21,Urban,Silver,23,4.44,Evening,Premium,136,442.7796305981407
|
| 350 |
+
77,43,Suburban,Regular,73,4.07,Afternoon,Premium,131,505.54671645728143
|
| 351 |
+
80,21,Urban,Regular,85,4.21,Morning,Premium,146,474.9171617926677
|
| 352 |
+
74,54,Urban,Regular,16,4.35,Afternoon,Premium,147,617.434678434942
|
| 353 |
+
57,38,Urban,Regular,31,3.97,Morning,Premium,64,294.85536994650215
|
| 354 |
+
97,66,Urban,Silver,90,3.6,Evening,Premium,150,717.467322019467
|
| 355 |
+
52,14,Suburban,Gold,97,4.83,Evening,Premium,66,266.9772170141728
|
| 356 |
+
51,37,Rural,Regular,34,4.64,Afternoon,Economy,100,383.3711770715268
|
| 357 |
+
87,52,Urban,Gold,15,3.57,Night,Economy,66,266.4336179135411
|
| 358 |
+
91,42,Suburban,Silver,76,4.96,Morning,Economy,86,336.39439243010713
|
| 359 |
+
85,34,Rural,Regular,66,4.59,Morning,Premium,163,764.8593556145701
|
| 360 |
+
57,21,Rural,Silver,28,4.93,Night,Economy,141,588.6941797749441
|
| 361 |
+
28,8,Urban,Regular,67,3.78,Afternoon,Premium,58,305.24266766473113
|
| 362 |
+
58,30,Urban,Regular,32,4.14,Night,Economy,75,256.37380365626416
|
| 363 |
+
31,9,Rural,Gold,18,4.42,Morning,Premium,114,461.0193485856391
|
| 364 |
+
27,11,Suburban,Gold,88,4.5,Evening,Premium,144,581.7472844259253
|
| 365 |
+
90,75,Urban,Gold,88,4.1,Afternoon,Economy,106,472.5465909334413
|
| 366 |
+
54,8,Suburban,Regular,41,3.89,Morning,Economy,168,573.4835718398938
|
| 367 |
+
23,9,Suburban,Silver,50,3.84,Evening,Premium,34,192.38502219616436
|
| 368 |
+
94,64,Urban,Regular,62,4.87,Night,Economy,166,744.0359811402852
|
| 369 |
+
86,20,Suburban,Silver,51,3.75,Morning,Premium,110,412.25746306035046
|
| 370 |
+
79,55,Suburban,Regular,91,4.39,Morning,Economy,48,189.56056497077722
|
| 371 |
+
73,13,Urban,Regular,93,3.95,Night,Economy,90,357.0434721850994
|
| 372 |
+
74,23,Urban,Regular,45,4.07,Morning,Premium,99,417.1740953777763
|
| 373 |
+
26,11,Urban,Gold,10,4.22,Morning,Premium,69,314.84471031916905
|
| 374 |
+
99,30,Urban,Regular,74,4.21,Morning,Premium,160,629.9546011362719
|
| 375 |
+
80,42,Urban,Gold,85,4.22,Night,Economy,131,473.56175400354476
|
| 376 |
+
78,35,Rural,Regular,5,4.35,Evening,Premium,100,317.88095784682014
|
| 377 |
+
63,6,Urban,Gold,29,4.79,Evening,Premium,24,132.49921949173307
|
| 378 |
+
25,8,Rural,Regular,30,4.44,Night,Economy,115,430.78585097815426
|
| 379 |
+
100,50,Urban,Regular,20,4.14,Evening,Economy,127,350.2265835541767
|
| 380 |
+
46,8,Urban,Silver,32,4.81,Afternoon,Economy,112,466.42747932165264
|
| 381 |
+
59,29,Urban,Regular,90,4.3,Night,Economy,145,651.7303890276737
|
| 382 |
+
21,11,Rural,Gold,18,4.2,Morning,Premium,49,266.34807324582846
|
| 383 |
+
64,7,Rural,Silver,48,4.67,Evening,Economy,64,266.38537677090085
|
| 384 |
+
52,22,Suburban,Gold,72,3.6,Morning,Premium,101,303.803226426852
|
| 385 |
+
100,56,Suburban,Silver,67,4.2,Evening,Economy,169,461.9661913503604
|
| 386 |
+
83,72,Rural,Regular,25,4.62,Night,Premium,45,201.0575405594342
|
| 387 |
+
89,10,Rural,Silver,36,4.12,Afternoon,Premium,13,94.21444738997974
|
| 388 |
+
100,37,Rural,Silver,47,4.7,Afternoon,Economy,142,546.8574476673242
|
| 389 |
+
71,7,Urban,Gold,31,4.83,Morning,Premium,60,292.74683013160404
|
| 390 |
+
94,26,Suburban,Regular,0,3.94,Afternoon,Premium,40,150.90603765991335
|
| 391 |
+
52,23,Urban,Regular,41,4.23,Evening,Economy,134,534.90663340905
|
| 392 |
+
27,15,Urban,Silver,31,4.95,Afternoon,Economy,103,315.2654030422818
|
| 393 |
+
88,62,Urban,Regular,62,4.82,Afternoon,Economy,162,601.2360266422271
|
| 394 |
+
48,38,Suburban,Silver,64,4.97,Night,Premium,152,701.4695729515377
|
| 395 |
+
53,35,Suburban,Regular,1,3.67,Morning,Premium,88,392.0078846224547
|
| 396 |
+
31,12,Suburban,Gold,34,4.7,Night,Economy,105,331.8375249153692
|
| 397 |
+
56,34,Suburban,Silver,1,4.56,Afternoon,Economy,121,307.5259290756184
|
| 398 |
+
48,35,Rural,Gold,47,4.26,Morning,Economy,26,68.27174499943663
|
| 399 |
+
93,66,Suburban,Silver,22,3.91,Night,Economy,180,765.4397485645513
|
| 400 |
+
49,18,Rural,Silver,62,4.92,Afternoon,Economy,62,168.36628924698923
|
| 401 |
+
72,33,Rural,Gold,63,4.25,Evening,Economy,132,351.77361896852636
|
| 402 |
+
62,11,Suburban,Gold,37,4.23,Morning,Premium,71,363.3457529659053
|
| 403 |
+
39,15,Suburban,Regular,53,4.6,Evening,Premium,38,201.71467628332167
|
| 404 |
+
67,56,Urban,Gold,49,4.22,Afternoon,Premium,23,121.43999901863725
|
| 405 |
+
88,15,Urban,Regular,39,4.51,Afternoon,Economy,137,598.7750233051204
|
| 406 |
+
29,16,Urban,Silver,75,4.11,Morning,Premium,80,371.1242881043308
|
| 407 |
+
100,24,Urban,Silver,88,4.49,Night,Economy,56,173.66696747925593
|
| 408 |
+
98,43,Suburban,Gold,62,4.98,Morning,Economy,130,538.5185280064754
|
| 409 |
+
35,10,Rural,Gold,40,3.54,Night,Economy,75,281.9625670059949
|
| 410 |
+
58,14,Rural,Gold,10,3.77,Morning,Economy,95,258.01445968829404
|
| 411 |
+
22,7,Urban,Gold,53,4.43,Morning,Premium,98,476.20199615360343
|
| 412 |
+
84,37,Suburban,Regular,94,3.83,Night,Economy,28,124.64550323605347
|
| 413 |
+
91,14,Suburban,Silver,19,4.78,Night,Premium,19,111.11271494112725
|
| 414 |
+
56,29,Urban,Gold,67,4.49,Afternoon,Economy,125,421.8171879075184
|
| 415 |
+
97,21,Rural,Regular,36,3.72,Evening,Premium,23,134.0510144913575
|
| 416 |
+
57,47,Urban,Gold,26,3.8,Morning,Economy,30,132.4032477391118
|
| 417 |
+
94,27,Suburban,Silver,100,3.6,Night,Premium,172,547.9814624298182
|
| 418 |
+
84,6,Suburban,Gold,24,3.74,Morning,Economy,68,281.96824577029594
|
| 419 |
+
40,11,Rural,Silver,1,4.24,Night,Premium,35,182.46632143825187
|
| 420 |
+
65,36,Suburban,Silver,20,4.39,Night,Premium,87,313.7742265682814
|
| 421 |
+
35,22,Urban,Silver,28,4.88,Afternoon,Premium,116,422.8866610257602
|
| 422 |
+
40,30,Urban,Regular,67,4.03,Evening,Premium,143,529.6967147126813
|
| 423 |
+
61,45,Urban,Silver,6,4.99,Evening,Economy,10,25.993449448411635
|
| 424 |
+
50,14,Urban,Gold,98,3.52,Night,Premium,109,351.5699575243088
|
| 425 |
+
98,25,Suburban,Silver,30,4.76,Afternoon,Economy,60,154.68715967826247
|
| 426 |
+
54,37,Suburban,Regular,41,4.69,Afternoon,Premium,16,106.59208227583191
|
| 427 |
+
37,13,Rural,Regular,31,4.66,Afternoon,Economy,35,132.1665679180113
|
| 428 |
+
78,41,Urban,Silver,12,4.99,Afternoon,Economy,22,76.224961221763
|
| 429 |
+
84,21,Rural,Gold,88,3.5,Afternoon,Economy,146,598.9400399823005
|
| 430 |
+
44,32,Suburban,Silver,51,4.2,Afternoon,Premium,168,563.1508995670627
|
| 431 |
+
25,11,Urban,Silver,92,3.91,Night,Economy,115,310.1546162756803
|
| 432 |
+
38,13,Urban,Gold,38,4.46,Evening,Premium,28,145.13756861567325
|
| 433 |
+
85,25,Urban,Silver,21,4.03,Morning,Economy,73,323.5576857599395
|
| 434 |
+
31,13,Suburban,Gold,87,4.04,Evening,Economy,11,31.565676162125193
|
| 435 |
+
67,6,Rural,Regular,25,4.45,Evening,Premium,31,144.46263762346956
|
| 436 |
+
77,11,Rural,Silver,70,3.82,Night,Premium,63,252.49304710208094
|
| 437 |
+
32,11,Suburban,Silver,30,3.53,Afternoon,Premium,32,146.51277441611944
|
| 438 |
+
71,30,Rural,Regular,60,4.83,Evening,Premium,156,501.801349985356
|
| 439 |
+
65,38,Urban,Regular,13,4.77,Morning,Premium,132,610.7325514755008
|
| 440 |
+
64,29,Urban,Silver,66,3.79,Night,Premium,37,194.26239936468434
|
| 441 |
+
48,38,Urban,Silver,45,4.17,Afternoon,Economy,87,318.2101259853132
|
| 442 |
+
76,42,Rural,Gold,95,3.93,Morning,Economy,180,512.6251102173163
|
| 443 |
+
76,53,Urban,Regular,77,3.67,Afternoon,Premium,179,555.8919187631545
|
| 444 |
+
71,14,Suburban,Silver,8,4.44,Night,Economy,76,242.15886076969633
|
| 445 |
+
76,9,Urban,Silver,64,4.16,Evening,Economy,10,41.40499127744981
|
| 446 |
+
51,14,Rural,Gold,16,3.51,Night,Premium,30,180.88655372559683
|
| 447 |
+
88,38,Rural,Gold,29,3.73,Evening,Premium,167,537.8971058809161
|
| 448 |
+
60,24,Rural,Gold,5,3.79,Afternoon,Premium,154,556.6629286327259
|
| 449 |
+
73,55,Rural,Regular,55,4.2,Afternoon,Economy,52,158.5563431447304
|
| 450 |
+
23,10,Urban,Silver,80,3.88,Afternoon,Economy,22,59.4454065021933
|
| 451 |
+
74,27,Suburban,Silver,51,3.75,Morning,Premium,111,334.1449975015087
|
| 452 |
+
49,6,Suburban,Gold,18,4.41,Night,Premium,148,443.7750198288772
|
| 453 |
+
31,8,Rural,Gold,7,3.57,Night,Economy,35,145.24203735141535
|
| 454 |
+
57,46,Rural,Regular,42,4.39,Morning,Economy,56,210.6317666138125
|
| 455 |
+
64,19,Suburban,Regular,35,4.02,Afternoon,Economy,39,152.22919256822726
|
| 456 |
+
86,76,Suburban,Regular,84,4.99,Night,Economy,149,612.446726848697
|
| 457 |
+
54,28,Suburban,Regular,73,3.56,Morning,Premium,51,250.28588237277452
|
| 458 |
+
85,37,Rural,Gold,10,3.76,Night,Premium,61,309.08254473187293
|
| 459 |
+
58,15,Rural,Regular,14,4.76,Night,Premium,12,94.1609176991503
|
| 460 |
+
96,27,Rural,Gold,21,4.37,Night,Premium,57,243.93730652889337
|
| 461 |
+
58,31,Suburban,Silver,32,4.87,Evening,Premium,85,331.19305388667465
|
| 462 |
+
77,45,Suburban,Silver,88,4.16,Morning,Economy,151,595.2312211886215
|
| 463 |
+
93,73,Rural,Regular,78,3.81,Night,Premium,106,465.962681649944
|
| 464 |
+
44,11,Rural,Regular,56,3.83,Afternoon,Premium,18,104.75201005936663
|
| 465 |
+
20,10,Rural,Regular,54,4.12,Morning,Premium,168,784.0551260339382
|
| 466 |
+
70,40,Suburban,Regular,9,3.77,Evening,Economy,130,382.9299378688001
|
| 467 |
+
42,12,Rural,Gold,92,4.5,Afternoon,Economy,123,319.2967130915861
|
| 468 |
+
87,33,Rural,Regular,53,4.15,Evening,Economy,143,640.1373391067773
|
| 469 |
+
70,43,Suburban,Gold,47,4.31,Morning,Economy,57,243.49338538510452
|
| 470 |
+
61,15,Urban,Gold,29,4.49,Afternoon,Economy,32,135.005874109167
|
| 471 |
+
71,36,Suburban,Silver,69,4.37,Morning,Economy,110,392.9639432866157
|
| 472 |
+
81,33,Suburban,Regular,41,4.93,Afternoon,Premium,162,617.2885000560723
|
| 473 |
+
87,64,Rural,Silver,69,4.55,Evening,Premium,65,310.7883994951958
|
| 474 |
+
85,65,Suburban,Regular,73,4.65,Afternoon,Premium,165,770.0708908209459
|
| 475 |
+
91,65,Urban,Regular,40,3.58,Evening,Economy,141,373.50470759834695
|
| 476 |
+
83,57,Rural,Silver,80,4.6,Night,Premium,172,814.4195559447121
|
| 477 |
+
64,10,Suburban,Gold,75,3.61,Morning,Premium,155,473.34669329802574
|
| 478 |
+
69,22,Rural,Silver,25,4.41,Night,Premium,74,266.76777889406367
|
| 479 |
+
37,12,Rural,Silver,15,3.73,Evening,Economy,142,369.36165888010754
|
| 480 |
+
93,28,Urban,Silver,63,3.9,Evening,Economy,38,111.72394123957052
|
| 481 |
+
66,49,Rural,Gold,42,4.56,Afternoon,Economy,124,429.94835612457183
|
| 482 |
+
47,36,Rural,Silver,100,4.2,Morning,Economy,103,414.77830030238334
|
| 483 |
+
71,30,Rural,Regular,45,4.16,Evening,Premium,53,227.1825700126456
|
| 484 |
+
58,19,Urban,Silver,47,3.97,Evening,Economy,77,247.44200182010414
|
| 485 |
+
100,18,Suburban,Silver,50,4.89,Morning,Premium,51,213.8232968736634
|
| 486 |
+
94,28,Urban,Regular,59,4.45,Night,Economy,173,652.5878909594384
|
| 487 |
+
49,6,Rural,Silver,23,4.65,Night,Premium,69,289.6463054085282
|
| 488 |
+
42,7,Rural,Gold,90,3.67,Evening,Economy,32,123.76246932604701
|
| 489 |
+
79,63,Urban,Gold,56,4.66,Evening,Premium,70,292.5906288976858
|
| 490 |
+
59,5,Rural,Gold,17,4.97,Evening,Premium,143,440.93951077757487
|
| 491 |
+
54,7,Urban,Regular,91,3.75,Night,Economy,97,298.3226183929867
|
| 492 |
+
60,6,Rural,Silver,65,4.76,Morning,Economy,168,629.2044295696749
|
| 493 |
+
26,13,Suburban,Silver,4,3.63,Night,Premium,123,441.99619244539696
|
| 494 |
+
90,10,Rural,Silver,59,4.44,Morning,Premium,147,691.5012905566776
|
| 495 |
+
34,12,Suburban,Silver,38,4.18,Afternoon,Economy,24,106.94859059241989
|
| 496 |
+
80,34,Suburban,Silver,84,3.8,Night,Economy,174,561.4385219871201
|
| 497 |
+
21,7,Rural,Regular,58,4.31,Morning,Premium,75,328.45835687553256
|
| 498 |
+
97,71,Suburban,Silver,52,4.32,Evening,Economy,36,133.38738314122594
|
| 499 |
+
64,7,Suburban,Regular,92,4.58,Evening,Premium,16,114.69920213131519
|
| 500 |
+
47,34,Rural,Gold,16,4.38,Evening,Premium,46,237.14338896943258
|
| 501 |
+
44,28,Rural,Gold,30,3.93,Evening,Premium,42,157.10657171647188
|
| 502 |
+
21,9,Suburban,Gold,13,4.01,Evening,Economy,127,431.251597706785
|
| 503 |
+
57,37,Urban,Gold,59,3.92,Evening,Economy,159,585.8075881778408
|
| 504 |
+
62,5,Rural,Silver,51,4.4,Afternoon,Economy,160,647.204374917644
|
| 505 |
+
25,6,Urban,Gold,60,3.91,Evening,Premium,145,559.578839787104
|
| 506 |
+
92,33,Suburban,Silver,70,3.69,Evening,Premium,46,173.1505322724627
|
| 507 |
+
38,7,Rural,Gold,46,3.79,Night,Economy,78,198.17046750812375
|
| 508 |
+
99,31,Urban,Silver,0,3.54,Morning,Economy,50,192.7088692483722
|
| 509 |
+
35,7,Rural,Regular,65,4.19,Night,Economy,65,165.0758241756551
|
| 510 |
+
30,13,Urban,Gold,53,3.68,Night,Premium,124,379.4680328899806
|
| 511 |
+
28,6,Urban,Gold,53,4.48,Night,Premium,148,461.10955384851616
|
| 512 |
+
59,47,Rural,Silver,73,3.54,Night,Economy,75,234.5672445982206
|
| 513 |
+
24,13,Urban,Silver,50,4.26,Night,Premium,141,540.0620306756346
|
| 514 |
+
21,6,Suburban,Regular,15,3.81,Evening,Premium,80,318.84150331304255
|
| 515 |
+
84,54,Suburban,Silver,59,4.98,Afternoon,Premium,43,196.31514152174805
|
| 516 |
+
100,50,Urban,Silver,83,4.91,Morning,Premium,173,622.4914304114809
|
| 517 |
+
30,11,Urban,Silver,99,4.96,Evening,Economy,83,349.6745279402746
|
| 518 |
+
45,35,Rural,Regular,0,4.58,Afternoon,Premium,41,206.1473318707726
|
| 519 |
+
53,35,Urban,Gold,35,3.92,Afternoon,Premium,166,635.9330544824535
|
| 520 |
+
65,41,Rural,Gold,51,3.57,Night,Premium,48,251.1121418065252
|
| 521 |
+
93,6,Rural,Silver,85,4.47,Night,Economy,107,324.098767437868
|
| 522 |
+
28,5,Rural,Regular,69,4.49,Morning,Premium,132,425.4887347951667
|
| 523 |
+
38,8,Urban,Silver,78,3.57,Night,Economy,114,470.2690237026412
|
| 524 |
+
25,6,Urban,Regular,69,4.45,Evening,Premium,94,398.051725971793
|
| 525 |
+
76,23,Rural,Regular,64,3.57,Night,Premium,115,564.9317250247195
|
| 526 |
+
22,7,Suburban,Gold,73,4.91,Morning,Premium,73,238.31899146487595
|
| 527 |
+
40,5,Rural,Silver,17,4.55,Afternoon,Economy,72,184.95522562926732
|
| 528 |
+
89,16,Suburban,Regular,27,4.86,Afternoon,Economy,161,624.305615960136
|
| 529 |
+
31,21,Suburban,Silver,77,4.83,Afternoon,Economy,107,389.3845083155804
|
| 530 |
+
92,45,Rural,Silver,59,4.23,Morning,Premium,121,574.8939389332888
|
| 531 |
+
58,32,Urban,Gold,92,4.59,Afternoon,Premium,111,517.9444619823878
|
| 532 |
+
58,20,Rural,Silver,42,3.51,Evening,Economy,125,527.1792011771714
|
| 533 |
+
36,7,Suburban,Regular,26,4.35,Morning,Economy,59,201.49683080394217
|
| 534 |
+
66,40,Rural,Regular,93,4.86,Evening,Economy,153,627.0167510146084
|
| 535 |
+
76,54,Urban,Regular,58,4.05,Evening,Economy,74,218.6251778894482
|
| 536 |
+
55,23,Urban,Gold,46,4.58,Afternoon,Premium,150,654.676536309137
|
| 537 |
+
21,8,Urban,Regular,57,4.78,Night,Premium,84,293.5602166445157
|
| 538 |
+
61,45,Rural,Gold,42,4.25,Afternoon,Economy,102,421.98526198279467
|
| 539 |
+
72,62,Suburban,Regular,48,3.82,Evening,Economy,126,553.7408048680613
|
| 540 |
+
65,18,Rural,Gold,65,4.01,Morning,Economy,111,330.62430999065225
|
| 541 |
+
20,8,Rural,Silver,27,4.99,Morning,Economy,83,261.4451502998812
|
| 542 |
+
22,7,Suburban,Silver,16,4.1,Night,Economy,147,520.0637873298249
|
| 543 |
+
72,49,Suburban,Gold,15,4.34,Night,Premium,19,117.63327810103034
|
| 544 |
+
42,30,Urban,Regular,26,4.79,Afternoon,Economy,138,493.0149508584995
|
| 545 |
+
100,54,Suburban,Regular,91,4.59,Night,Premium,61,203.11329573964892
|
| 546 |
+
87,32,Suburban,Silver,38,4.76,Afternoon,Economy,114,421.7762985074602
|
| 547 |
+
36,8,Urban,Gold,47,4.07,Afternoon,Economy,77,305.00888586073415
|
| 548 |
+
70,38,Urban,Silver,99,4.19,Morning,Economy,76,317.77188818101894
|
| 549 |
+
41,7,Urban,Gold,4,4.15,Night,Economy,83,364.9140560714328
|
| 550 |
+
59,40,Rural,Gold,64,4.72,Night,Economy,157,398.3194964103068
|
| 551 |
+
33,14,Urban,Regular,38,4.89,Morning,Economy,127,461.30601206640824
|
| 552 |
+
70,26,Urban,Silver,15,3.67,Night,Premium,70,358.2348071386952
|
| 553 |
+
45,7,Rural,Regular,87,4.35,Evening,Economy,74,224.30710676256516
|
| 554 |
+
98,71,Suburban,Regular,83,4.55,Morning,Economy,139,558.3815496134125
|
| 555 |
+
75,63,Urban,Gold,42,4.55,Evening,Premium,138,660.4425622593634
|
| 556 |
+
100,34,Rural,Gold,33,4.75,Night,Economy,156,537.4486716625657
|
| 557 |
+
76,23,Urban,Silver,53,3.94,Evening,Economy,117,480.104370355134
|
| 558 |
+
32,12,Urban,Silver,69,3.68,Morning,Economy,55,162.28310451017555
|
| 559 |
+
35,23,Suburban,Gold,58,3.78,Afternoon,Economy,164,638.0445145215127
|
| 560 |
+
30,16,Suburban,Gold,89,3.63,Afternoon,Economy,142,420.1110979571745
|
| 561 |
+
75,56,Urban,Regular,66,3.69,Evening,Premium,22,124.49060049402551
|
| 562 |
+
25,6,Rural,Regular,23,3.95,Morning,Premium,55,235.27811761739352
|
| 563 |
+
88,16,Suburban,Gold,26,4.18,Morning,Economy,32,127.33149010162907
|
| 564 |
+
43,26,Rural,Silver,69,4.9,Evening,Economy,107,391.0269903920518
|
| 565 |
+
39,20,Rural,Silver,97,4.25,Morning,Economy,121,319.54301971048153
|
| 566 |
+
77,63,Suburban,Gold,72,4.56,Morning,Economy,113,380.28537076152844
|
| 567 |
+
41,14,Suburban,Silver,59,4.72,Morning,Premium,49,179.62342246641472
|
| 568 |
+
51,20,Rural,Silver,97,4.8,Morning,Economy,130,452.112640122952
|
| 569 |
+
30,10,Suburban,Gold,86,4.95,Evening,Economy,149,565.6691466337952
|
| 570 |
+
29,8,Urban,Gold,52,4.68,Afternoon,Premium,121,402.15587758232147
|
| 571 |
+
21,5,Rural,Gold,8,4.44,Afternoon,Premium,159,689.8421599513094
|
| 572 |
+
50,15,Suburban,Regular,62,4.51,Night,Economy,83,307.64692809302676
|
| 573 |
+
61,42,Rural,Gold,11,3.72,Night,Economy,52,186.5262770863605
|
| 574 |
+
67,5,Suburban,Silver,81,4.53,Morning,Premium,14,91.06777716361007
|
| 575 |
+
73,22,Suburban,Regular,26,4.99,Night,Economy,33,143.8549860520897
|
| 576 |
+
35,18,Urban,Gold,27,3.82,Morning,Economy,158,553.837359075948
|
| 577 |
+
96,58,Urban,Silver,25,3.61,Morning,Economy,85,336.56848365859423
|
| 578 |
+
38,28,Urban,Gold,8,4.83,Morning,Economy,29,95.02020685904614
|
| 579 |
+
75,28,Urban,Gold,6,4.02,Evening,Premium,171,575.0117219060105
|
| 580 |
+
57,26,Suburban,Silver,92,4.11,Afternoon,Premium,58,264.675747588135
|
| 581 |
+
36,10,Rural,Gold,65,3.54,Night,Economy,53,185.61792391524813
|
| 582 |
+
73,27,Rural,Gold,98,3.97,Evening,Economy,57,251.1556502722435
|
| 583 |
+
68,29,Rural,Gold,51,3.99,Evening,Economy,110,299.689056274687
|
| 584 |
+
25,9,Rural,Gold,11,3.58,Night,Economy,31,92.65681121424487
|
| 585 |
+
97,25,Urban,Regular,95,4.91,Night,Premium,101,332.2293764400841
|
| 586 |
+
30,7,Rural,Regular,85,3.74,Evening,Economy,44,184.11208970364285
|
| 587 |
+
83,7,Suburban,Gold,24,4.9,Morning,Premium,24,124.58177445441441
|
| 588 |
+
27,5,Rural,Gold,2,4.3,Evening,Economy,22,60.98181721983856
|
| 589 |
+
58,21,Suburban,Gold,72,4.14,Afternoon,Economy,10,35.88598786056829
|
| 590 |
+
32,15,Urban,Gold,67,3.76,Evening,Premium,23,132.12301879164062
|
| 591 |
+
76,8,Urban,Gold,40,4.68,Afternoon,Economy,157,561.5796822292014
|
| 592 |
+
21,9,Suburban,Regular,38,4.54,Morning,Economy,179,546.3787898746884
|
| 593 |
+
47,37,Urban,Gold,53,4.69,Night,Economy,41,147.4597413359118
|
| 594 |
+
33,20,Suburban,Regular,97,4.13,Morning,Premium,169,668.8922140357987
|
| 595 |
+
92,66,Rural,Silver,26,3.56,Evening,Economy,19,62.06928479024478
|
| 596 |
+
24,7,Rural,Silver,34,3.51,Afternoon,Premium,111,477.7411361723483
|
| 597 |
+
75,9,Rural,Gold,71,4.06,Night,Economy,150,411.00576542458884
|
| 598 |
+
89,76,Urban,Gold,35,4.8,Night,Premium,177,650.2985711974341
|
| 599 |
+
67,20,Urban,Regular,42,4.13,Evening,Economy,68,243.22861759627588
|
| 600 |
+
61,23,Suburban,Silver,51,4.73,Evening,Premium,150,680.9330686248741
|
| 601 |
+
80,67,Rural,Regular,80,4.74,Night,Economy,147,432.30725774113824
|
| 602 |
+
66,15,Suburban,Gold,62,4.59,Night,Economy,161,720.729944900258
|
| 603 |
+
39,12,Suburban,Regular,54,3.77,Morning,Premium,176,510.4543750320455
|
| 604 |
+
46,22,Urban,Regular,9,4.33,Morning,Economy,128,522.7974318549136
|
| 605 |
+
89,74,Rural,Silver,41,4.89,Morning,Premium,115,432.16279228896633
|
| 606 |
+
60,16,Urban,Gold,56,4.33,Night,Premium,126,382.4570671338528
|
| 607 |
+
58,13,Rural,Regular,99,3.62,Morning,Premium,106,351.43931589566165
|
| 608 |
+
68,16,Urban,Silver,93,4.44,Morning,Premium,154,510.19578633034166
|
| 609 |
+
45,19,Suburban,Silver,71,3.72,Night,Economy,121,313.92644056486665
|
| 610 |
+
91,61,Suburban,Gold,100,4.88,Night,Economy,101,372.22982195105925
|
| 611 |
+
39,12,Urban,Regular,70,4.02,Morning,Premium,66,314.46800852423786
|
| 612 |
+
97,9,Rural,Gold,58,4.32,Evening,Premium,142,491.5779538643877
|
| 613 |
+
42,18,Suburban,Silver,39,3.94,Afternoon,Economy,128,527.1558943563921
|
| 614 |
+
27,15,Urban,Gold,11,3.77,Evening,Economy,111,432.849396942834
|
| 615 |
+
67,48,Rural,Regular,94,4.3,Evening,Premium,168,544.6027807887253
|
| 616 |
+
69,51,Urban,Regular,75,3.57,Night,Premium,136,470.18271352951473
|
| 617 |
+
69,47,Urban,Regular,65,4.22,Night,Economy,18,53.5391040086766
|
| 618 |
+
93,18,Suburban,Gold,34,3.54,Afternoon,Economy,80,352.0685727015968
|
| 619 |
+
84,74,Suburban,Regular,7,4.4,Afternoon,Premium,101,396.3698341114785
|
| 620 |
+
96,48,Urban,Gold,41,4.39,Morning,Economy,130,367.7829980600229
|
| 621 |
+
30,13,Suburban,Gold,72,4.18,Night,Premium,113,352.9356730761453
|
| 622 |
+
60,48,Suburban,Regular,15,4.06,Morning,Economy,78,339.1055825696459
|
| 623 |
+
72,39,Urban,Regular,39,3.77,Night,Premium,115,347.8959667426787
|
| 624 |
+
31,13,Suburban,Regular,82,4.63,Morning,Economy,108,469.25091359186484
|
| 625 |
+
71,13,Rural,Silver,60,4.3,Night,Premium,62,213.84302012030327
|
| 626 |
+
91,61,Rural,Silver,86,4.44,Morning,Premium,129,567.5392184514062
|
| 627 |
+
91,60,Rural,Gold,2,3.53,Evening,Premium,107,492.17901322228107
|
| 628 |
+
32,6,Urban,Silver,13,4.75,Afternoon,Economy,53,173.88747446193491
|
| 629 |
+
23,10,Suburban,Gold,47,4.84,Evening,Economy,125,418.10682439062094
|
| 630 |
+
61,47,Suburban,Silver,100,4.58,Night,Premium,157,658.3040013013618
|
| 631 |
+
57,40,Urban,Regular,78,3.62,Afternoon,Economy,171,764.5953413909641
|
| 632 |
+
89,70,Suburban,Gold,86,4.51,Afternoon,Economy,90,384.20929197567284
|
| 633 |
+
64,45,Rural,Gold,22,3.96,Night,Premium,118,404.6018875393623
|
| 634 |
+
91,29,Urban,Regular,82,3.73,Afternoon,Premium,90,446.81702579708536
|
| 635 |
+
91,53,Suburban,Gold,67,4.56,Night,Economy,50,158.1067231747087
|
| 636 |
+
69,37,Suburban,Regular,47,4.39,Evening,Premium,60,284.2362895344896
|
| 637 |
+
71,61,Suburban,Regular,79,3.85,Afternoon,Economy,147,591.2989763287625
|
| 638 |
+
38,7,Rural,Silver,28,3.85,Evening,Economy,12,36.00027803358747
|
| 639 |
+
100,32,Suburban,Regular,67,3.94,Evening,Premium,162,581.1370845965885
|
| 640 |
+
65,51,Suburban,Gold,97,4.81,Night,Premium,144,588.1367698544636
|
| 641 |
+
73,38,Urban,Regular,91,4.23,Evening,Premium,86,400.2673330229722
|
| 642 |
+
56,25,Suburban,Regular,87,3.73,Evening,Premium,172,575.4102708388258
|
| 643 |
+
75,55,Rural,Silver,80,4.7,Morning,Economy,69,190.9788526811355
|
| 644 |
+
97,21,Urban,Regular,43,3.79,Afternoon,Premium,106,398.1593839328215
|
| 645 |
+
94,71,Rural,Regular,48,4.73,Night,Premium,169,770.8733244527833
|
| 646 |
+
53,22,Urban,Silver,28,4.99,Afternoon,Premium,64,211.0820229741896
|
| 647 |
+
81,8,Rural,Silver,78,4.8,Afternoon,Premium,141,618.4288567281086
|
| 648 |
+
47,34,Rural,Silver,87,3.53,Morning,Premium,170,739.2271199769044
|
| 649 |
+
80,48,Suburban,Regular,13,4.44,Night,Economy,35,128.7410738814351
|
| 650 |
+
75,55,Rural,Gold,54,4.73,Night,Premium,145,584.4917299915722
|
| 651 |
+
89,12,Urban,Silver,42,4.73,Afternoon,Economy,102,328.31398217312767
|
| 652 |
+
30,13,Rural,Gold,8,4.1,Afternoon,Economy,94,274.68037544392655
|
| 653 |
+
64,5,Rural,Gold,91,4.34,Evening,Premium,21,108.24304354274079
|
| 654 |
+
55,29,Suburban,Gold,92,4.85,Morning,Economy,44,181.78093960037765
|
| 655 |
+
94,76,Suburban,Gold,26,4.7,Morning,Premium,94,405.317954516569
|
| 656 |
+
53,28,Urban,Gold,6,3.67,Evening,Economy,178,775.7916851510323
|
| 657 |
+
29,7,Suburban,Regular,68,3.98,Morning,Economy,114,289.1296809487768
|
| 658 |
+
29,17,Urban,Silver,76,3.61,Morning,Economy,166,674.132847635612
|
| 659 |
+
75,42,Suburban,Silver,38,4.25,Afternoon,Economy,146,479.11995337350106
|
| 660 |
+
74,53,Suburban,Regular,60,3.93,Night,Economy,162,676.4404324115253
|
| 661 |
+
89,75,Urban,Silver,10,4.91,Evening,Economy,16,54.449538186289914
|
| 662 |
+
29,13,Suburban,Gold,44,4.29,Evening,Premium,87,267.7404170012178
|
| 663 |
+
40,20,Rural,Silver,45,4.42,Evening,Premium,130,445.4842486108808
|
| 664 |
+
79,11,Urban,Regular,1,4.35,Night,Premium,45,210.25675967194184
|
| 665 |
+
98,87,Urban,Gold,87,4.28,Afternoon,Premium,170,603.8458024755097
|
| 666 |
+
95,76,Urban,Regular,74,4.39,Night,Economy,118,464.9915827255092
|
| 667 |
+
79,13,Rural,Gold,67,4.05,Evening,Premium,151,514.9363491532515
|
| 668 |
+
38,22,Suburban,Regular,18,4.17,Night,Premium,121,450.5387531372676
|
| 669 |
+
83,41,Suburban,Silver,48,3.64,Evening,Economy,176,741.3443926126964
|
| 670 |
+
59,24,Suburban,Regular,40,4.0,Afternoon,Premium,147,631.6312970255759
|
| 671 |
+
51,11,Suburban,Regular,72,3.62,Afternoon,Economy,16,71.21364105240121
|
| 672 |
+
64,46,Rural,Silver,51,5.0,Evening,Premium,29,144.60138253530263
|
| 673 |
+
30,6,Rural,Regular,93,3.81,Evening,Economy,129,505.92196882791006
|
| 674 |
+
60,15,Suburban,Regular,95,4.84,Afternoon,Economy,180,726.3339146351499
|
| 675 |
+
75,51,Rural,Regular,17,4.83,Afternoon,Premium,79,283.41327875852477
|
| 676 |
+
25,15,Suburban,Regular,88,4.68,Afternoon,Premium,31,148.18648820169864
|
| 677 |
+
46,31,Suburban,Gold,67,3.53,Morning,Economy,61,158.59209307103367
|
| 678 |
+
48,11,Urban,Regular,86,3.55,Night,Economy,15,57.89462608061131
|
| 679 |
+
51,6,Rural,Gold,64,4.57,Morning,Economy,34,142.5577269374603
|
| 680 |
+
68,23,Suburban,Gold,96,4.77,Morning,Economy,105,359.128113102171
|
| 681 |
+
89,8,Suburban,Silver,18,3.83,Morning,Economy,121,407.5520587692045
|
| 682 |
+
84,55,Suburban,Regular,1,4.47,Afternoon,Economy,146,487.3991192361553
|
| 683 |
+
50,8,Rural,Regular,25,3.8,Evening,Premium,13,89.61312852216915
|
| 684 |
+
99,40,Urban,Gold,26,4.83,Evening,Premium,151,510.65807823975956
|
| 685 |
+
21,9,Urban,Gold,91,4.82,Morning,Economy,47,171.6271185714875
|
| 686 |
+
53,19,Suburban,Silver,54,3.84,Evening,Economy,132,520.5653406452625
|
| 687 |
+
60,16,Urban,Gold,68,4.23,Night,Economy,108,458.09632680451597
|
| 688 |
+
32,22,Suburban,Silver,9,4.68,Night,Premium,135,530.1491563778454
|
| 689 |
+
51,25,Rural,Regular,21,4.43,Evening,Premium,38,200.2582591219043
|
| 690 |
+
22,5,Urban,Regular,75,4.39,Night,Premium,19,128.0167601925525
|
| 691 |
+
21,7,Rural,Regular,6,4.96,Afternoon,Premium,180,836.1164185613576
|
| 692 |
+
55,21,Rural,Silver,49,4.59,Morning,Economy,111,471.08905188849826
|
| 693 |
+
42,31,Rural,Gold,32,4.75,Night,Economy,12,50.6401755820817
|
| 694 |
+
86,26,Rural,Silver,31,3.69,Afternoon,Economy,85,263.1611767019543
|
| 695 |
+
48,18,Rural,Silver,60,4.47,Afternoon,Premium,124,524.1655595085831
|
| 696 |
+
82,65,Urban,Gold,43,4.8,Night,Premium,112,330.2265438250878
|
| 697 |
+
63,48,Rural,Regular,88,4.09,Morning,Economy,70,212.74075193712682
|
| 698 |
+
44,24,Urban,Regular,83,3.61,Night,Economy,13,48.928952535474146
|
| 699 |
+
39,18,Suburban,Gold,78,4.21,Afternoon,Economy,165,734.3951190125542
|
| 700 |
+
23,7,Rural,Gold,98,4.35,Morning,Economy,76,281.33950234360725
|
| 701 |
+
31,7,Rural,Silver,27,4.73,Morning,Premium,141,476.28985780068655
|
| 702 |
+
44,7,Rural,Regular,55,3.66,Night,Premium,103,490.34215832141894
|
| 703 |
+
23,5,Urban,Gold,92,3.71,Night,Economy,105,363.44477590272385
|
| 704 |
+
63,46,Urban,Silver,36,4.59,Morning,Economy,18,49.83993575677632
|
| 705 |
+
25,15,Urban,Gold,15,4.18,Morning,Premium,176,516.8295590439432
|
| 706 |
+
27,11,Rural,Regular,1,4.34,Night,Economy,99,262.6864663772181
|
| 707 |
+
57,28,Urban,Gold,27,4.58,Afternoon,Economy,107,423.5098573724167
|
| 708 |
+
83,26,Suburban,Gold,77,3.62,Night,Premium,74,373.97563575919594
|
| 709 |
+
80,5,Suburban,Regular,53,3.67,Evening,Premium,48,184.24294467848267
|
| 710 |
+
50,40,Rural,Silver,61,4.7,Evening,Premium,73,319.11098294212263
|
| 711 |
+
84,8,Rural,Gold,21,4.63,Night,Economy,172,549.2008068168793
|
| 712 |
+
90,54,Rural,Regular,1,3.59,Afternoon,Premium,87,427.8571629452071
|
| 713 |
+
28,9,Urban,Silver,68,4.82,Evening,Premium,43,164.316390505398
|
| 714 |
+
97,64,Rural,Silver,62,3.52,Morning,Premium,152,638.1340201838489
|
| 715 |
+
99,22,Suburban,Silver,7,4.4,Morning,Economy,39,131.44358716419623
|
| 716 |
+
96,53,Rural,Regular,58,4.28,Afternoon,Economy,21,55.6373707994896
|
| 717 |
+
88,69,Rural,Gold,89,3.6,Evening,Premium,107,467.92749485577286
|
| 718 |
+
53,17,Rural,Silver,78,4.03,Afternoon,Premium,26,120.24719290813758
|
| 719 |
+
28,14,Rural,Silver,77,3.58,Afternoon,Economy,98,374.65518279544045
|
| 720 |
+
59,21,Rural,Regular,97,3.6,Afternoon,Premium,67,269.44414015954374
|
| 721 |
+
50,27,Suburban,Gold,100,4.22,Morning,Premium,173,685.6696935694298
|
| 722 |
+
89,8,Urban,Gold,40,3.59,Morning,Premium,151,528.0024896243917
|
| 723 |
+
83,34,Urban,Silver,96,4.71,Evening,Premium,176,812.0729938599545
|
| 724 |
+
73,14,Urban,Gold,28,4.31,Evening,Economy,29,118.97305838669006
|
| 725 |
+
76,35,Suburban,Regular,8,4.89,Afternoon,Premium,138,406.5899107855241
|
| 726 |
+
56,35,Rural,Silver,33,3.97,Morning,Economy,47,134.77582951421903
|
| 727 |
+
40,20,Rural,Regular,11,4.4,Afternoon,Economy,83,343.79851998722387
|
| 728 |
+
27,6,Urban,Silver,92,3.73,Night,Premium,125,460.28376247761025
|
| 729 |
+
32,7,Urban,Regular,79,4.05,Morning,Economy,83,306.390461217286
|
| 730 |
+
48,24,Urban,Silver,35,4.2,Night,Premium,51,251.42113940871516
|
| 731 |
+
71,41,Urban,Gold,31,3.81,Afternoon,Premium,140,614.63671317069
|
| 732 |
+
53,6,Rural,Silver,74,4.12,Night,Economy,76,231.1651667910225
|
| 733 |
+
87,44,Rural,Silver,61,3.87,Evening,Premium,16,117.76366453355409
|
| 734 |
+
36,16,Urban,Regular,82,4.62,Afternoon,Premium,72,253.4912438007839
|
| 735 |
+
39,20,Rural,Gold,71,4.11,Morning,Economy,111,404.59839918890424
|
| 736 |
+
91,81,Rural,Gold,15,4.68,Evening,Premium,20,135.1772701347079
|
| 737 |
+
31,18,Urban,Regular,46,4.86,Night,Economy,128,360.8585507409454
|
| 738 |
+
94,67,Suburban,Silver,34,4.64,Night,Premium,64,231.32631847732358
|
| 739 |
+
83,18,Urban,Gold,12,4.98,Morning,Economy,81,286.40929438543196
|
| 740 |
+
34,9,Urban,Silver,65,4.69,Afternoon,Premium,107,508.7118174567975
|
| 741 |
+
32,6,Rural,Gold,75,4.47,Morning,Premium,154,721.7212691270341
|
| 742 |
+
22,7,Urban,Gold,15,3.53,Evening,Premium,180,552.2693747461685
|
| 743 |
+
49,20,Rural,Silver,52,4.74,Afternoon,Premium,162,510.62689141008207
|
| 744 |
+
61,38,Urban,Silver,95,3.5,Night,Economy,164,415.9794524398186
|
| 745 |
+
21,9,Urban,Gold,48,4.4,Afternoon,Premium,152,660.0597080304599
|
| 746 |
+
40,18,Urban,Silver,16,4.59,Afternoon,Premium,157,644.0445755475266
|
| 747 |
+
22,6,Urban,Silver,82,4.3,Morning,Premium,172,710.884313751738
|
| 748 |
+
34,11,Suburban,Gold,66,4.59,Morning,Economy,134,478.20015364109577
|
| 749 |
+
56,31,Rural,Silver,9,4.79,Afternoon,Premium,167,744.4180991800615
|
| 750 |
+
93,36,Urban,Gold,60,4.63,Afternoon,Economy,111,478.7697584495512
|
| 751 |
+
38,9,Suburban,Gold,57,4.26,Morning,Premium,16,104.0560727191975
|
| 752 |
+
76,26,Suburban,Silver,74,4.18,Evening,Premium,159,486.18392763702786
|
| 753 |
+
47,24,Suburban,Silver,11,3.62,Night,Premium,148,657.0936874279021
|
| 754 |
+
64,10,Urban,Silver,62,4.98,Evening,Economy,38,96.3007413779792
|
| 755 |
+
56,10,Rural,Gold,28,3.8,Afternoon,Economy,144,609.9082747031204
|
| 756 |
+
44,25,Rural,Silver,32,4.43,Night,Premium,154,502.1012063441772
|
| 757 |
+
34,6,Rural,Regular,11,3.75,Morning,Economy,179,465.719058488387
|
| 758 |
+
45,18,Suburban,Silver,70,3.84,Night,Economy,122,308.43591786214927
|
| 759 |
+
31,7,Rural,Regular,22,4.88,Afternoon,Premium,172,806.0212701919081
|
| 760 |
+
95,28,Rural,Regular,34,4.48,Evening,Economy,163,576.9675719994219
|
| 761 |
+
82,59,Rural,Regular,39,3.5,Night,Premium,67,284.2944207006542
|
| 762 |
+
95,38,Urban,Silver,39,3.71,Afternoon,Premium,97,478.3662772118347
|
| 763 |
+
27,12,Suburban,Silver,1,4.93,Evening,Economy,41,119.4823999754907
|
| 764 |
+
94,23,Suburban,Regular,71,4.15,Night,Premium,154,532.5097779421501
|
| 765 |
+
66,15,Urban,Silver,88,4.21,Evening,Premium,65,291.9008795114952
|
| 766 |
+
40,6,Rural,Gold,37,4.75,Afternoon,Premium,148,707.8553931548287
|
| 767 |
+
56,27,Suburban,Silver,62,4.74,Evening,Premium,129,435.71545381085645
|
| 768 |
+
54,6,Suburban,Gold,48,4.26,Morning,Economy,154,504.0841142440527
|
| 769 |
+
46,15,Suburban,Silver,96,4.69,Morning,Premium,116,497.3770093020007
|
| 770 |
+
65,16,Suburban,Silver,82,3.62,Evening,Premium,146,460.8002858653508
|
| 771 |
+
96,48,Urban,Gold,11,4.19,Night,Economy,79,272.4960775620536
|
| 772 |
+
47,9,Suburban,Gold,88,4.06,Night,Economy,93,246.9535423209308
|
| 773 |
+
20,7,Urban,Silver,55,4.43,Night,Economy,153,482.74220750160924
|
| 774 |
+
94,57,Suburban,Regular,13,4.04,Afternoon,Economy,60,205.49575958337198
|
| 775 |
+
52,30,Suburban,Silver,25,3.67,Night,Economy,142,531.6062153403296
|
| 776 |
+
71,6,Suburban,Gold,48,4.05,Afternoon,Economy,157,550.9983736824666
|
| 777 |
+
46,8,Rural,Gold,39,3.97,Evening,Premium,123,396.9586997774456
|
| 778 |
+
53,40,Urban,Regular,13,3.79,Night,Economy,118,318.2115758092651
|
| 779 |
+
26,11,Urban,Regular,97,3.64,Morning,Economy,141,427.05506120680275
|
| 780 |
+
100,46,Suburban,Gold,74,3.74,Afternoon,Economy,171,448.31285347772814
|
| 781 |
+
74,38,Urban,Regular,95,5.0,Evening,Economy,167,455.4083398759809
|
| 782 |
+
53,5,Rural,Gold,100,4.46,Night,Premium,33,179.17081970350634
|
| 783 |
+
75,63,Urban,Gold,24,4.18,Afternoon,Economy,29,104.18588264010207
|
| 784 |
+
44,9,Suburban,Regular,54,4.2,Morning,Premium,13,91.67748868757226
|
| 785 |
+
76,60,Suburban,Regular,81,3.6,Evening,Premium,72,264.08573637935564
|
| 786 |
+
88,18,Suburban,Silver,80,4.83,Evening,Economy,109,424.65693227127065
|
| 787 |
+
54,35,Rural,Gold,95,4.98,Evening,Premium,61,218.9504185416184
|
| 788 |
+
49,30,Urban,Regular,7,3.97,Afternoon,Premium,77,248.17033364227854
|
| 789 |
+
25,8,Urban,Silver,11,4.0,Afternoon,Economy,109,422.4367392307234
|
| 790 |
+
36,18,Suburban,Gold,15,4.21,Afternoon,Economy,86,280.5240756909656
|
| 791 |
+
42,25,Suburban,Silver,44,4.99,Morning,Premium,122,565.9834811108678
|
| 792 |
+
29,14,Rural,Gold,2,4.69,Night,Premium,180,828.2131345744126
|
| 793 |
+
52,16,Urban,Silver,63,4.13,Morning,Economy,49,132.84680584297232
|
| 794 |
+
37,6,Rural,Gold,59,4.73,Evening,Economy,20,86.17345483820148
|
| 795 |
+
91,17,Rural,Gold,21,4.84,Afternoon,Premium,149,545.3868063047398
|
| 796 |
+
29,8,Rural,Silver,79,4.26,Morning,Premium,133,531.0619846358322
|
| 797 |
+
62,45,Rural,Regular,87,4.74,Afternoon,Premium,20,108.6023564641184
|
| 798 |
+
69,7,Urban,Regular,51,4.56,Afternoon,Premium,103,462.66304412150464
|
| 799 |
+
32,14,Suburban,Silver,80,3.56,Afternoon,Premium,80,254.9510771161675
|
| 800 |
+
78,31,Urban,Gold,6,3.78,Evening,Premium,64,271.0126649576171
|
| 801 |
+
53,10,Rural,Silver,10,3.58,Evening,Economy,168,424.48842846396354
|
| 802 |
+
60,50,Suburban,Silver,54,4.57,Afternoon,Premium,38,151.77728650517233
|
| 803 |
+
97,58,Urban,Gold,1,4.11,Morning,Premium,83,383.07490640970946
|
| 804 |
+
87,77,Urban,Gold,12,3.56,Night,Premium,11,97.78450586126135
|
| 805 |
+
74,20,Rural,Silver,68,4.36,Night,Economy,32,119.59407325541466
|
| 806 |
+
90,58,Urban,Gold,1,4.7,Afternoon,Premium,21,126.57277068445282
|
| 807 |
+
21,8,Rural,Regular,69,4.24,Afternoon,Premium,176,829.5343798843528
|
| 808 |
+
70,35,Urban,Silver,35,4.9,Night,Premium,108,418.815349545453
|
| 809 |
+
37,7,Suburban,Regular,1,3.92,Evening,Economy,62,233.21310275336953
|
| 810 |
+
30,11,Rural,Gold,93,3.56,Night,Premium,155,701.141472496938
|
| 811 |
+
64,22,Urban,Regular,26,4.24,Evening,Premium,115,388.72966746525947
|
| 812 |
+
40,23,Urban,Silver,6,3.96,Night,Economy,178,528.60807288888
|
| 813 |
+
28,18,Urban,Gold,100,3.62,Afternoon,Premium,92,382.03843862699455
|
| 814 |
+
85,19,Rural,Gold,17,3.69,Morning,Economy,164,587.331264277609
|
| 815 |
+
92,77,Urban,Gold,100,4.26,Night,Economy,47,167.7398193291184
|
| 816 |
+
93,56,Suburban,Regular,56,4.65,Evening,Premium,86,304.8360144837103
|
| 817 |
+
36,25,Rural,Regular,26,3.57,Afternoon,Economy,122,354.1540979676975
|
| 818 |
+
94,50,Suburban,Regular,88,4.95,Night,Premium,49,250.4603273046531
|
| 819 |
+
27,8,Rural,Gold,48,4.18,Afternoon,Economy,167,495.2197782062817
|
| 820 |
+
86,41,Rural,Regular,96,4.5,Morning,Premium,68,301.5483736351267
|
| 821 |
+
22,11,Rural,Regular,39,4.63,Evening,Economy,101,433.03454356764814
|
| 822 |
+
95,56,Rural,Silver,86,3.79,Morning,Premium,147,671.4712089285143
|
| 823 |
+
99,89,Urban,Silver,63,4.84,Afternoon,Economy,16,49.71329085631081
|
| 824 |
+
22,8,Rural,Regular,4,4.84,Morning,Economy,122,408.12976999912195
|
| 825 |
+
100,85,Suburban,Silver,59,4.46,Evening,Economy,110,329.4837131421355
|
| 826 |
+
61,38,Rural,Silver,100,4.34,Evening,Premium,78,383.3178042225475
|
| 827 |
+
33,18,Suburban,Gold,7,4.01,Night,Economy,105,313.06815696851334
|
| 828 |
+
39,22,Rural,Gold,63,3.87,Evening,Premium,170,706.6896358975697
|
| 829 |
+
37,5,Urban,Silver,75,3.88,Evening,Premium,26,142.6153122038585
|
| 830 |
+
95,53,Suburban,Silver,6,4.01,Afternoon,Premium,158,708.8224028092762
|
| 831 |
+
28,6,Suburban,Gold,54,4.03,Afternoon,Premium,168,593.065918046481
|
| 832 |
+
66,17,Urban,Gold,84,4.47,Night,Economy,139,604.3834014812801
|
| 833 |
+
60,11,Suburban,Gold,18,4.29,Evening,Economy,26,100.2582627032478
|
| 834 |
+
94,34,Suburban,Gold,99,4.54,Afternoon,Premium,155,685.7612504810801
|
| 835 |
+
63,12,Urban,Silver,54,4.47,Evening,Premium,140,446.41301231617626
|
| 836 |
+
38,8,Suburban,Silver,59,4.44,Night,Premium,75,291.107936848218
|
| 837 |
+
35,21,Suburban,Silver,13,4.14,Morning,Premium,36,193.64239387562827
|
| 838 |
+
83,64,Suburban,Gold,78,4.01,Evening,Economy,109,304.52612995371493
|
| 839 |
+
62,14,Rural,Silver,33,4.23,Morning,Premium,85,386.83493329476596
|
| 840 |
+
88,48,Urban,Gold,52,4.52,Night,Economy,92,230.83258579661484
|
| 841 |
+
68,11,Rural,Silver,89,3.66,Evening,Economy,93,333.9106726820272
|
| 842 |
+
84,64,Urban,Regular,34,4.13,Evening,Premium,99,353.8098038704909
|
| 843 |
+
40,10,Urban,Regular,60,3.87,Night,Premium,79,293.19813425701705
|
| 844 |
+
93,20,Urban,Regular,38,4.78,Afternoon,Premium,144,447.08306884380795
|
| 845 |
+
57,44,Urban,Gold,78,3.53,Evening,Economy,153,584.888884974888
|
| 846 |
+
67,16,Suburban,Gold,24,4.52,Evening,Premium,150,488.1872511532145
|
| 847 |
+
68,16,Urban,Silver,91,4.49,Night,Economy,77,246.7577555097292
|
| 848 |
+
38,22,Urban,Gold,60,3.6,Morning,Premium,104,312.1731588463509
|
| 849 |
+
49,28,Urban,Silver,61,3.9,Evening,Premium,172,576.281119337865
|
| 850 |
+
98,59,Urban,Regular,55,4.6,Morning,Economy,100,381.391205400882
|
| 851 |
+
47,9,Suburban,Gold,38,4.06,Morning,Economy,141,543.7702542024564
|
| 852 |
+
27,11,Urban,Regular,97,4.78,Evening,Premium,137,472.5224037960476
|
| 853 |
+
59,29,Urban,Regular,68,4.4,Night,Premium,88,286.05897011629656
|
| 854 |
+
56,20,Urban,Regular,74,4.05,Evening,Economy,25,88.95619552388446
|
| 855 |
+
50,39,Urban,Gold,62,3.95,Morning,Premium,135,646.9811778631195
|
| 856 |
+
93,37,Urban,Gold,37,4.75,Night,Economy,76,292.9246564000302
|
| 857 |
+
46,22,Rural,Regular,97,3.51,Morning,Economy,100,395.76984681374796
|
| 858 |
+
56,19,Suburban,Silver,16,4.46,Evening,Premium,86,279.6798100890559
|
| 859 |
+
37,16,Suburban,Gold,8,4.5,Evening,Economy,46,192.50297743378897
|
| 860 |
+
85,58,Urban,Regular,85,4.1,Night,Premium,92,351.77029329216225
|
| 861 |
+
27,7,Urban,Regular,89,3.6,Morning,Premium,120,555.4019371049674
|
| 862 |
+
44,16,Rural,Silver,31,3.96,Night,Premium,122,395.3781570382596
|
| 863 |
+
75,51,Suburban,Regular,68,3.65,Afternoon,Premium,66,261.5103067801241
|
| 864 |
+
21,11,Urban,Gold,46,3.84,Morning,Economy,103,397.5648404411393
|
| 865 |
+
42,29,Suburban,Silver,67,4.59,Morning,Premium,153,735.2764383329761
|
| 866 |
+
25,15,Suburban,Silver,100,4.9,Night,Premium,94,289.4570095389695
|
| 867 |
+
67,46,Suburban,Regular,92,4.72,Morning,Economy,32,97.67500136492319
|
| 868 |
+
29,6,Suburban,Silver,24,4.37,Afternoon,Economy,50,197.46392160702553
|
| 869 |
+
100,70,Urban,Gold,42,4.9,Night,Premium,167,762.8822843495781
|
| 870 |
+
37,10,Suburban,Gold,27,4.26,Afternoon,Economy,143,512.44939271165
|
| 871 |
+
31,14,Urban,Gold,37,4.3,Night,Premium,103,484.4661863877365
|
| 872 |
+
49,12,Suburban,Silver,30,4.37,Afternoon,Premium,84,353.01840875622844
|
| 873 |
+
42,19,Rural,Regular,56,4.84,Evening,Premium,144,539.7316715337728
|
| 874 |
+
61,5,Rural,Regular,48,4.15,Morning,Economy,29,114.16365482248573
|
| 875 |
+
24,7,Suburban,Gold,85,4.36,Night,Economy,169,521.4080460440558
|
| 876 |
+
20,10,Rural,Regular,18,4.28,Evening,Premium,123,450.3878805106937
|
| 877 |
+
22,9,Urban,Silver,36,4.51,Evening,Premium,10,82.69156896202661
|
| 878 |
+
98,87,Suburban,Regular,59,4.26,Afternoon,Economy,13,34.57409278115731
|
| 879 |
+
30,14,Urban,Silver,64,4.45,Afternoon,Economy,147,535.1718879088473
|
| 880 |
+
32,13,Urban,Regular,75,4.56,Evening,Premium,111,333.4011668412356
|
| 881 |
+
22,12,Urban,Silver,49,4.88,Night,Premium,35,179.8388198801664
|
| 882 |
+
62,8,Urban,Silver,13,4.2,Night,Premium,65,241.9912178461052
|
| 883 |
+
51,27,Urban,Gold,8,4.31,Night,Economy,92,369.38039240192876
|
| 884 |
+
85,74,Suburban,Regular,82,3.92,Evening,Premium,177,704.3001292247022
|
| 885 |
+
28,9,Urban,Silver,26,3.95,Night,Premium,114,466.9720738288303
|
| 886 |
+
93,70,Suburban,Silver,21,3.81,Evening,Economy,12,41.12164471941277
|
| 887 |
+
36,9,Suburban,Silver,53,4.46,Night,Premium,127,404.02979977887577
|
| 888 |
+
80,22,Rural,Gold,17,4.4,Morning,Economy,141,423.75441798529033
|
| 889 |
+
60,24,Rural,Regular,18,4.16,Morning,Premium,45,165.72466245477892
|
| 890 |
+
97,45,Urban,Silver,90,3.71,Morning,Premium,151,578.8213877560842
|
| 891 |
+
53,14,Suburban,Silver,24,3.99,Afternoon,Premium,161,707.4493979183783
|
| 892 |
+
79,22,Rural,Silver,53,3.96,Evening,Premium,126,542.8095730212775
|
| 893 |
+
44,24,Urban,Silver,55,4.08,Afternoon,Premium,137,513.9900766589533
|
| 894 |
+
34,12,Suburban,Regular,3,4.83,Night,Premium,62,298.3556200090825
|
| 895 |
+
55,12,Urban,Silver,96,4.66,Morning,Premium,48,183.2701656673754
|
| 896 |
+
49,29,Suburban,Regular,35,4.8,Evening,Premium,160,468.3069201504469
|
| 897 |
+
72,54,Rural,Regular,68,3.85,Afternoon,Economy,74,220.4983368386397
|
| 898 |
+
72,27,Urban,Gold,76,3.97,Morning,Premium,70,265.94661511348426
|
| 899 |
+
99,6,Suburban,Gold,49,4.32,Afternoon,Economy,113,311.4894374116108
|
| 900 |
+
21,10,Rural,Regular,22,4.42,Morning,Economy,151,647.8477765247827
|
| 901 |
+
50,25,Urban,Silver,89,4.74,Afternoon,Economy,107,383.9141419544756
|
| 902 |
+
61,35,Rural,Silver,4,4.77,Morning,Premium,115,557.916185756397
|
| 903 |
+
24,5,Rural,Silver,57,4.96,Night,Premium,70,228.7960083986281
|
| 904 |
+
31,17,Rural,Silver,71,4.46,Evening,Premium,55,237.76862211931405
|
| 905 |
+
35,20,Suburban,Regular,62,3.55,Afternoon,Economy,117,297.0874038526085
|
| 906 |
+
74,30,Urban,Regular,97,3.9,Evening,Economy,179,794.3231511066332
|
| 907 |
+
94,61,Urban,Regular,12,4.95,Evening,Premium,133,563.8497971641384
|
| 908 |
+
44,11,Rural,Silver,31,3.92,Afternoon,Premium,110,339.2870734791633
|
| 909 |
+
84,37,Urban,Gold,3,3.83,Evening,Premium,69,248.94765537056492
|
| 910 |
+
27,12,Suburban,Regular,39,4.51,Morning,Premium,55,279.2686999169939
|
| 911 |
+
59,36,Suburban,Regular,43,3.74,Evening,Premium,25,145.04223833476908
|
| 912 |
+
82,20,Urban,Regular,59,3.99,Night,Premium,45,241.82595645073621
|
| 913 |
+
24,10,Urban,Gold,24,4.09,Morning,Premium,97,430.60985477056624
|
| 914 |
+
84,67,Suburban,Regular,48,4.87,Night,Economy,81,219.99370680056552
|
| 915 |
+
52,9,Suburban,Regular,24,4.19,Morning,Economy,102,366.7282586383836
|
| 916 |
+
38,12,Rural,Silver,44,4.85,Evening,Economy,110,356.8814026432877
|
| 917 |
+
26,12,Urban,Regular,80,4.27,Afternoon,Economy,134,441.4714772887345
|
| 918 |
+
61,39,Suburban,Regular,82,4.49,Morning,Premium,46,230.1431447581205
|
| 919 |
+
87,41,Rural,Gold,97,4.27,Afternoon,Premium,37,158.89198003545
|
| 920 |
+
98,46,Suburban,Gold,55,4.71,Evening,Economy,173,766.9193242115463
|
| 921 |
+
24,13,Urban,Silver,54,4.09,Morning,Economy,161,466.72298223301004
|
| 922 |
+
44,8,Urban,Gold,43,3.82,Night,Economy,86,233.50662384935427
|
| 923 |
+
71,59,Urban,Regular,71,4.47,Evening,Economy,31,104.1037337805616
|
| 924 |
+
91,59,Urban,Silver,68,4.77,Night,Economy,15,38.33576819209958
|
| 925 |
+
32,14,Urban,Gold,75,4.49,Night,Economy,177,761.0167600703148
|
| 926 |
+
79,24,Urban,Silver,0,4.26,Evening,Economy,82,284.8625062809567
|
| 927 |
+
73,27,Urban,Regular,55,4.27,Morning,Premium,50,216.06019585156733
|
| 928 |
+
32,16,Rural,Silver,80,4.78,Morning,Economy,11,39.37370119886104
|
| 929 |
+
22,10,Rural,Silver,5,4.44,Morning,Premium,129,471.7821019342959
|
| 930 |
+
35,19,Urban,Silver,45,4.99,Afternoon,Economy,159,508.6730024657942
|
| 931 |
+
24,10,Suburban,Regular,79,4.3,Night,Economy,24,95.11851081754354
|
| 932 |
+
67,31,Rural,Gold,64,3.62,Night,Economy,169,735.1444900755255
|
| 933 |
+
100,73,Urban,Silver,95,3.98,Night,Premium,100,456.60307303079816
|
| 934 |
+
66,16,Urban,Silver,94,4.52,Morning,Economy,34,122.24187517858557
|
| 935 |
+
96,36,Urban,Regular,57,4.06,Evening,Premium,139,599.8171406236374
|
| 936 |
+
60,8,Urban,Regular,68,4.84,Morning,Premium,144,438.5186068324803
|
| 937 |
+
92,31,Rural,Silver,54,3.91,Night,Premium,148,516.1330392078827
|
| 938 |
+
92,49,Urban,Silver,9,4.23,Evening,Premium,89,397.4831040703401
|
| 939 |
+
56,37,Urban,Silver,27,4.12,Afternoon,Premium,68,317.8400260939533
|
| 940 |
+
88,71,Rural,Regular,42,4.87,Afternoon,Premium,109,330.78364034759613
|
| 941 |
+
87,47,Rural,Silver,6,4.54,Morning,Premium,162,743.3166378180009
|
| 942 |
+
85,6,Suburban,Gold,92,4.11,Afternoon,Economy,73,274.17127731249116
|
| 943 |
+
98,54,Rural,Regular,34,4.57,Evening,Premium,113,462.4075929220183
|
| 944 |
+
28,14,Rural,Regular,24,4.2,Afternoon,Economy,147,533.0802632142761
|
| 945 |
+
36,9,Suburban,Silver,22,3.51,Night,Premium,37,143.2178421949143
|
| 946 |
+
20,8,Suburban,Silver,38,4.82,Night,Premium,155,574.9456425421428
|
| 947 |
+
94,36,Rural,Regular,41,4.57,Morning,Economy,76,215.74176164066196
|
| 948 |
+
94,82,Suburban,Gold,48,4.92,Morning,Premium,20,129.7685299495176
|
| 949 |
+
70,7,Urban,Regular,13,4.09,Afternoon,Economy,117,321.0007657787772
|
| 950 |
+
90,71,Suburban,Regular,37,3.51,Morning,Premium,32,172.59277503910292
|
| 951 |
+
42,10,Urban,Silver,56,4.01,Night,Premium,95,455.20978516158993
|
| 952 |
+
44,18,Suburban,Gold,88,3.67,Night,Premium,50,199.83974409069756
|
| 953 |
+
60,16,Suburban,Regular,28,3.91,Evening,Economy,105,281.0970650985199
|
| 954 |
+
26,5,Rural,Silver,7,4.75,Afternoon,Premium,140,413.54800185803066
|
| 955 |
+
79,13,Rural,Regular,6,4.63,Afternoon,Economy,38,134.09432585149492
|
| 956 |
+
26,8,Rural,Gold,65,3.58,Night,Premium,89,378.50396161301137
|
| 957 |
+
62,7,Urban,Silver,2,4.71,Morning,Premium,28,162.05358553352147
|
| 958 |
+
42,16,Rural,Gold,33,3.63,Morning,Economy,166,513.1161277813304
|
| 959 |
+
57,16,Urban,Regular,0,3.95,Afternoon,Economy,97,308.6385554813678
|
| 960 |
+
33,13,Rural,Gold,34,4.78,Morning,Economy,66,239.08854651007988
|
| 961 |
+
22,10,Rural,Regular,26,4.97,Morning,Economy,170,562.1650160715976
|
| 962 |
+
67,44,Urban,Regular,27,4.69,Morning,Economy,129,467.0198948894929
|
| 963 |
+
62,15,Suburban,Silver,15,4.28,Night,Economy,73,327.43334173812747
|
| 964 |
+
95,49,Rural,Regular,92,4.27,Night,Premium,99,332.0936161256213
|
| 965 |
+
61,36,Urban,Silver,72,4.64,Night,Premium,109,457.0853188522962
|
| 966 |
+
48,12,Rural,Silver,25,4.26,Night,Economy,180,552.8162271192283
|
| 967 |
+
93,59,Rural,Regular,30,4.11,Afternoon,Premium,89,281.0521288708149
|
| 968 |
+
59,18,Urban,Gold,67,3.86,Morning,Economy,98,288.3451530321269
|
| 969 |
+
95,73,Urban,Regular,20,3.59,Evening,Premium,138,666.8242060496077
|
| 970 |
+
71,33,Suburban,Regular,4,4.88,Evening,Premium,109,436.0192372930386
|
| 971 |
+
20,7,Suburban,Gold,71,3.83,Morning,Premium,51,248.22030676592635
|
| 972 |
+
23,7,Urban,Gold,96,3.97,Afternoon,Premium,165,493.2338839519256
|
| 973 |
+
80,69,Suburban,Silver,94,4.44,Night,Economy,74,291.5110820764234
|
| 974 |
+
58,10,Urban,Gold,51,4.27,Night,Premium,138,459.0606514814432
|
| 975 |
+
71,25,Urban,Gold,72,4.46,Evening,Economy,169,603.9358824371426
|
| 976 |
+
69,26,Rural,Gold,48,4.28,Evening,Premium,175,502.6040622268877
|
| 977 |
+
89,54,Suburban,Gold,48,4.38,Afternoon,Economy,24,74.78832688768996
|
| 978 |
+
84,62,Urban,Silver,52,4.61,Afternoon,Economy,29,126.23081147979764
|
| 979 |
+
98,61,Urban,Silver,91,4.28,Night,Economy,95,319.94237960548924
|
| 980 |
+
95,25,Urban,Gold,26,3.62,Morning,Economy,81,207.61291922267668
|
| 981 |
+
79,29,Rural,Silver,29,4.22,Night,Economy,99,304.74417790488224
|
| 982 |
+
82,10,Urban,Silver,97,4.43,Night,Economy,177,481.7658793191911
|
| 983 |
+
87,5,Rural,Gold,6,3.76,Evening,Economy,28,83.3353748167845
|
| 984 |
+
83,35,Rural,Gold,3,4.32,Night,Premium,116,513.6451022177532
|
| 985 |
+
47,9,Rural,Regular,5,4.81,Night,Premium,178,561.374877548703
|
| 986 |
+
34,7,Urban,Silver,54,4.71,Night,Premium,149,516.51117285383
|
| 987 |
+
26,13,Rural,Regular,14,4.19,Morning,Economy,174,666.4286805847338
|
| 988 |
+
88,7,Rural,Gold,11,3.64,Night,Premium,130,573.2085393656391
|
| 989 |
+
57,26,Rural,Regular,92,3.8,Evening,Premium,67,283.79792515074917
|
| 990 |
+
45,17,Rural,Silver,67,4.7,Afternoon,Economy,15,66.78323718712389
|
| 991 |
+
82,26,Urban,Gold,35,4.71,Morning,Economy,114,289.2390324634591
|
| 992 |
+
54,39,Rural,Gold,88,4.59,Evening,Economy,42,147.42638660593482
|
| 993 |
+
95,24,Suburban,Gold,79,3.5,Afternoon,Economy,130,552.2304431046015
|
| 994 |
+
63,31,Suburban,Silver,2,3.81,Evening,Premium,160,632.5601419476765
|
| 995 |
+
43,18,Urban,Gold,58,4.22,Evening,Economy,156,494.74525748477635
|
| 996 |
+
33,14,Suburban,Regular,87,4.81,Evening,Premium,17,118.98653335805044
|
| 997 |
+
33,23,Urban,Gold,24,4.21,Morning,Premium,11,91.38952597435123
|
| 998 |
+
84,29,Urban,Regular,92,4.55,Morning,Premium,94,424.15598670174626
|
| 999 |
+
44,6,Suburban,Gold,80,4.13,Night,Premium,40,157.36483032789283
|
| 1000 |
+
53,27,Suburban,Regular,78,3.63,Night,Premium,58,279.09504825213924
|
| 1001 |
+
78,63,Rural,Gold,14,4.21,Afternoon,Economy,147,655.065105532243
|
deploy.py
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import os
|
| 2 |
+
from huggingface_hub import Repository
|
| 3 |
+
|
| 4 |
+
repo = Repository(
|
| 5 |
+
local_dir='.',
|
| 6 |
+
clone_from='PranavSharma/RidePricingInsightEngine',
|
| 7 |
+
use_auth_token=os.getenv('HUGGINGFACE_TOKEN')
|
| 8 |
+
)
|
| 9 |
+
repo.git_add(auto_lfs_track=True)
|
| 10 |
+
repo.git_commit(commit_message='Automated deployment')
|
| 11 |
+
repo.git_push()
|
dev_notebooks/EDA.ipynb
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
dev_notebooks/Model_Selection.ipynb
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
dev_notebooks/Studying effect of data on parameters and performance.ipynb
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
requirements.txt
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
gradio
|
| 2 |
+
scikit-learn
|
| 3 |
+
pandas
|
| 4 |
+
numpy
|
| 5 |
+
skops
|
| 6 |
+
plotly
|
| 7 |
+
kaleido
|