# Exploring Hybrid-Multimodal Routing to Improve User Experience in Urban Trips
## 3 Evaluation Framework
### Data Reduction  
The proposed model analyzes trip-by-trip, every route option by requesting traffic data, trip fares, and route duration estimates through different APIs in real-time over the internet to assess the price, duration, lengths, and waiting times of trip segments. This analytic approach demands a long time to perform data collection and analysis. Thus, to have a feasible study case, we have a data reduction step that clusters mobility flows. This step aims to identify the city's main flows to perform the evaluation. The data reduction technique that is described below is general enough to be used in different datasets and for different purposes. The technique identifies trip Origin-Destination Mobility Flow Corridors (OD-MFC). This is accomplished by finding functional zones on the coordinates of the dataset and then computing the flows between these zones. It has two variants to adapt to different aspects of datasets. If the dataset has geographical coordinates (i.e., latitude and longitude), the  
Figure 2: Work flow to evaluate the impact of using hybrid-multimodal routes to replace taxi trips in New York. full version of the technique must be applied. However, there are plenty of datasets that are anonymized, only containing region ids where the departures and arrivals happened. For these datasets, a light version of the technique was developed. Both of the versions of the OD-MFC technique have three steps: (i) Split (pre-processing): divides the dataset into chunks by considering a division between hours, weekdays, date or other variants--we used the division \(\langle\)hour, weekday/weekend\(\rangle\), e.g., \(\langle\)19 h, weekend\(\rangle\), which describes the class with trips between 19 h and 20 h on Saturday and Sunday; (ii) Functional Region Identification: clusters the departures and arrivals of trips to identify the most relevant zones; (iii) Flow Accounting: is responsible for accounting the flows between those identified zones; and, (iv) Flow Classification: classifies the flows in trending (i.e., flows with a more relevant amount of trips) and secondary. The pre-processing step divides the dataset into smaller ones that capture the data seasonality. In our study, we defined this division by analyzing different shapes of distribution curves of the trips. Afterwards, the second step identifies the functional regions in the data (i.e., the most relevant zones). This is the single step in which the full and the light versions of the technique differ. For the full version, we use the HDBSCAN [20] clustering algorithm to identify the functional zones. This algorithm is widely adopted to cluster positional datasets containing noise. For the light version, the regions are already identified. Thus, all of the regions could be used in the analysis. The third step consists of accounting for the flows between regions. Each flow is described by the number of trips between two regions. Finally, the fourth step identifies the main flows. The classification technique was inspired by a similar strategy that was proposed to identify the EPS in the DBSCAN algorithm [16]. In their paper, the authors evaluate the k-nearest neighbor distance for all samples in the dataset and plot them sorted. This plot tends to form an exponential decay curve. Based on this technique, we created a that sorts the flows based on their magnitude and identifies the \"knee\" of the resulting curve. We use Equation (1), the Curvature for a Plane Curve [21] equation, to identify this \"knee\". \[\kappa=\frac{|y^{\prime\prime}|}{(1+y^{\prime 2})^{3/2}}. \tag{1}\]  
The function \(y\) is the curve that formed by the sorted flow magnitudes. This equation evaluates the magnitude of the curvature at a certain point in the curve. Because we are looking for the \"knee\" of the curvature, we must look for local maximum for \(\kappa\), i.e., \(\kappa^{\prime}=0\). A previously faced problem of this study [7] was that the curvature formed by real data was not a smooth curve.