Patent Publication Number: US-11378411-B2

Title: Method and system for utilizing a trip history to predict a destination

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
     This application is a continuation of U.S. application Ser. No. 15/441,689 filed Feb. 24, 2017, now U.S. Pat. No. 10,578,451, which claims foreign priority benefits under 35 U.S.C. § 119(a)-(d) to European patent application number EP 16158691.2, filed Mar. 4, 2016, both of which are incorporated by reference herein in their entireties. 
    
    
     TECHNICAL FIELD 
     The present disclosure relates to a method for utilizing a trip history, which method is performed by a system being comprised in a navigation device on-board a vehicle during a trip from an original position to a destination. The disclosure further relates to a system for utilizing a trip history, a destination prediction system and a vehicle comprising the system. 
     BACKGROUND 
     Nowadays, huge amounts of location-based data are being shared through the cellular networks with GPS receivers in car navigation systems. The availability of such data opens up new research areas in pattern analysis and data mining. Analyzing individual driving/mobility-patterns from logged GPS data have found a wide range of applications, such as path or destination prediction, real time traffic volume estimation, city planning, energy consumption optimization, etc. In these systems, predictive models are constructed mainly based on statistical properties of data given that it follows some regularity patterns. The patterns can be inferred by analyzing driving history, including routes from origins to destinations. 
     The current driving route and destination prediction methods are using the history of driving GPS data which can also be connected with additional metadata, e.g. describing characteristics of trip such as driver-id, number of passengers, time-of-say, day-of-week. 
     However, existing methods may have some drawbacks. Sometimes, statistical properties of data are ignored. That is, the absolute value of predefined observations is used for prediction. Hence, there will be no prediction if the current observation does not totally match the history. In addition, conditions for each person and also between different individuals are weighted equally, which poses another problem. For example, let&#39;s consider both time-of-day and day-of-week as two conditions used in the prediction. Both of the conditions could be useful in predicting destinations which are visited based on regular patterns, such as work; however, for many other destinations, e.g. grocery store, it is hard to find such a regularity both in time and day. Hence, the predictability of the model will be reduced if the prior information is not modelled properly and the conditions are equally weighted for all destinations. Additional issue with the existing methods is that they are not flexible in adding or removing features or prior information. And to adapt it with new features, the algorithm should be re-trained again for all recorded data. 
     SUMMARY 
     The object of the present disclosure is to overcome or ameliorate at least one of the disadvantages of the prior art, or to provide a useful alternative. 
     The object above may be achieved by the subject-matter of claim  1 . Embodiments are set forth in the appended dependent claims, in the following description and in the drawings. 
     Thus, according to the disclosure there is provided a method for utilizing a trip history. The method is performed by a system comprised in a navigation device on-board an vehicle during a trip from an original position to a destination. The method comprises the steps of a) determining by means of a positioning determining unit the original position of the navigation device, b) comparing the original position to a mapping database covering at least the trip, c) determining a road segment of the mapping database associated to the determined original position, d) determining by means of the positioning determining unit a current position of the navigation device during the trip, e) comparing the current position to the mapping database covering at least the trip, f) determining a road segment of the mapping database associated to the determined current position, g) setting the determined road segment as a link of the trip, h) repeating steps e)-g) until the destination is reached, i) determining by means of the positioning determining unit the destination, j) comparing the destination to the mapping database, k) determining a road segment of the mapping database associated to the determined destination, l) representing the trip as a series of connected links between the original position and the destination, each link corresponding to a road segment of the mapping database. 
     The method for utilizing a trip history as disclosed herein describes a method suitable for data collection to be used for destination prediction in a vehicle. The method may be performed by a system, e.g. the system for utilizing a trip history as disclosed herein, which is comprised in a navigation device. The navigation device may be comprised in the vehicle. Alternatively, or as a complement, the navigation device may be a separate mobile device, which can be placed and used in the vehicle. 
     The original position, also called the origin, defines where the trip starts. It may be a parking lot, e.g. outside a home of the user of the vehicle, a place of work, a school, a shop, a mall, a sport facility or an entertainment facility. 
     The destination defines where the trip ends. Correspondingly to the original position, it may be a parking lot, e.g. outside a home of the user of the vehicle, a place of work, a school, a shop, a shopping mall, a sport facility or an entertainment facility. 
     A trip is supposed to be ended, when the vehicle has been standing still for a preselected time, e.g. 5 minutes. This may be decided by means of the positioning determining unit. As an alternative, or a complement, a trip may be supposed to be ended when the ignition of the vehicle is turned off. 
     The positioning determining unit may use a satellite positioning system, such as GPS, i.e. Global Positioning System. 
     The mapping database comprises information about roads at least in an area, in which the trip is taking place. The mapping database may also comprise additional information about possible destinations, such as residential areas, places of work, schools, shops, shopping malls, sports facilities and/or entertainment facilities. The mapping database may cover a city, a county or a country. A plurality of mapping databases may be combined with each other. The information of the database may be stored on a computer-readable medium to be used in the vehicle, or the information of the mapping database may be stored in a central location and transmitted to the navigation device. 
     However, with the method as disclosed herein, the mapping database is mainly used as source for a road graph map, and thus the additional information mentioned above may be dispensed with. The method may thus be carried out, although there is no available information about the physical meaning of a place. The road graph map may be utilized to provide information about the density of the road graphs, which can help to understand the density of that location. The concept of density is then used for the destination clustering. That means that the destinations, which are nearby, may be grouped together and the closeness measure may be related to the density of the road graph. Purely as an example, for an area, which has low density, it may be assumed that at that place there is a possibility to park at larger distance from a specific destination. This is further explained in the article “Clustering Driving Destinations Using a Modified DBSCAN Algorithm with Locally Defined Map-Based Thresholds”, G. Panahandeh and N. Akerblom, in Proc. of Computational Multi Physics, Multi Scales and Multi Big Data in Transport Modeling, Simulation and Optimization (CM3), 2015. 
     In steps c, f and k the mapping database, e.g. the road graph map, is used to determine a road segment, which fits with the determined position. The road segment is associated to the determined position. If the fit is not exact, the closest road segment may be selected. 
     When the trip is ongoing, a current position is determined, which is compared to the mapping database and a road segment is associated to the determined current position. Thereafter the road segment is set as a link of the trip. 
     A road comprises one or more road segments, following after each other along the road. The road segment may e.g. extend between two intersections of the road being used as nodes. See the below description of nodes for further examples. However, also a road or a portion of a road having no intersections may be divided into road segments. The division may depend on the structure of the mapping database and may e.g. relate to an interspace given in meters. A link as utilized in the method described herein corresponds to a road segment. The link may further comprise information about the running direction for vehicles on that road segment. 
     As mentioned above, the road segments are used as links, such that the link corresponds to a road segment. The links may be represented in a road graph representation of the route used during the trip. This may be done by using a model, in which each unit of the road graph representation is represented with a link between two nodes. The position of the nodes is taken from the mapping database. The link may extend between two intersections of a road system or between an intersection and a possible original position or destination, such as a house in a residential area, a place of work, a school, a shop, a shopping mall, a sport facility or an entertainment facility. 
     Nodes can represent: roads intersecting at the same vertical level; a change in an attribute information in the mapping database, e.g. a name change of the road, a bridge or a tunnel; an intersection with a cartographic feature, such as an administrative border or park; the geographic perimeter of a database; and the end of a link. 
     How detailed the node is defined may depend on the resolution of mapping database. Moreover, different mapping databases may use different nodes. 
     As used herein the term intersection comprises any road-crossing or branching-off, wherein it is possible to select between two or more alternative roads. The intersection may be two roads crossing, i.e. intersecting, at about 90 degrees. However, the angle may also be different from 90 degrees, such as e.g. a highway exit, a Y-crossing or a T-crossing. 
     Two or more determined positions may be associated to the same road segment or link, if no node has been passed, since the last link was determined. 
     When the trip continues, one current position is determined after the other, forming a series of determined positions and thereby also a series of connected links. 
     Once the destination is reached, the trip is represented as the series of connected links, which links were passed during the trip. As mentioned above, the series of links may be represented as a road graph representation. 
     The method as described herein may also be performed for at least one other trip having another original position, another destination and/or utilizing other roads. 
     When going between two defined positions, there may sometimes be alternative routes. For example, going from the same original position to the same destination, may be regarded as another trip, if an alternative route was taken. 
     The method as described herein may be performed for at least one trip being performed at another trip characteristic than a first trip, e.g. regarding time of day, day of week, time duration of trip, season, number of passengers, fuel level and/or battery level. In this case, the route may be the same as being used before, but at least one trip characteristic may have been changed. 
     The method may comprise storing trip data, e.g. in a hash table, as data sets. The storing step may be performed stepwise in parallel to any one of the steps a- 1  mentioned above, i.e. when making the trip, or it may be performed after step  1 , i.e. when the trip is finished. 
     A data set of the trip data may comprise information of the original position, the destination and the series of connected links between the original position and/or the destination. The method as described herein is then used for collecting trip data. 
     A hash table structure is a data structure suitable for an associative array implementation. The hash table supports insertion, deletion, and search in average-case constant time which provides an efficient way of mapping and accessing data. Its data structure is similar to a table structure in which each entry has a key. In the method as described herein, it makes sense to use a hash table with the links as hash keys, where the hash values are the connected links and destinations. Furthermore, it makes sense to use a hash table with origins as key and destinations from each origin as hash values. 
     The data set of the trip data may also comprise information about a number of times a certain trip has been performed. Thereby frequently used routes will have a higher number. 
     The trip data may also comprise information about a trip characteristic, e.g. regarding time of day, day of week, time duration of trip, season, number of passengers, fuel level and/or battery level. In other words, trip characteristics are parameters describing characteristics of a trip, also referred to as prior information. Data of one or more trip characteristics may be stored. In the method as described herein, the trip characteristics may be stored in a hash table with origins as key and destinations from each origin as hash values, the trip characteristics being stored along with destinations as hash values. 
     Preferably, it is possible to add a new trip characteristic also after data collection has started. Data having been collected before the new trip characteristic was added may then be associated with a default value for the added new trip characteristic. 
     Once data has been collected, the stored trip data may be used for destination prediction. The method may then comprise associating a probability for a next link and a destination given a current link, wherein the probability is based on the stored trip data. The predicted destination is selected from destinations of the stored trip data. 
     Statistical models, such as probabilistic Bayesian models, may be employed to analyse stored trip data. Moreover, a probabilistic model of prior information, i.e. trip characteristics, may be used in the Bayesian framework. In other words, probabilistic models, such as Bayesian modls, in which statistical properties of prior information are considered in the prediction, may be employed. Taking into account the statistical properties of prior information in the destination prediction improves the performance of the prediction. 
     The method may comprise updating the probability during a trip, for which trip the destination is predicted. For example, assume an intersection, from which there are at least two different roads leading to at least two different possible destination, and one of the two roads is selected by the user of the vehicle, then the probability for a destination, which is reached by the non-selected road, may be set to zero, and the probabilities for the remaining possible destinations may be updated accordingly. 
     When an ongoing trip is associated with at least one hitherto unobserved trip characteristic, e.g. regarding time of day, day of week, time duration of trip, season, number of passengers, fuel level and/or battery level, existing data sets of the stored trip data may be utilized by applying weight factors. Thereby, stored data sets having trip characteristics being close to the hitherto unobserved trip characteristic may have a greater weight than stored data sets having trip characteristics being far from the hitherto unobserved trip characteristic. 
     Purely as an example: Assume a user usually going from home to work at 8.00 o&#39;clock every week day, goes home in the afternoon and then goes from home to a shopping mall at about 17.00 on Mondays and Thursday. Then, if the user on a week day leaves home at 8.30, which is a hitherto unobserved time of the day, the work may be given a high weight, while the shopping mall may be given a low weight. 
     The method may comprise storing trip data associated to an individual user. The user is normally the same person as the driver. However, it would also be possible that the vehicle is a partially automated, semi-automated or fully automated vehicle, in which case the user may not be driving the vehicle. In a partially automated vehicle or a semi-automated vehicle, a driver of the vehicle performs some of the driving functions, while the vehicle autonomously performs other functions. If the vehicle is fully automated, the vehicle autonomously performs the driving functions, at least for a temporary period of time. A vehicle may be arranged to be able to change between driving manually, partially automated, semi-automated and/or fully automated. 
     The stored trip data may also comprise at least one operation parameter of the vehicle, such as velocity, orientation, gas pedal opening rate, brake pressure, steering angle. 
     The method may comprise the possibility to remove at least one of the data sets of the stored trip data if irrelevant. Purely as an example, data may become irrelevant if the user e.g. moves to a new home, changes place of work or school and/or switches to a new shop thereby no longer buying in the old shop. The irrelevant trip data may be gradually phased out, e.g. if it is observed that a specific trip is no longer being performed. The relevancy may be determined by determining the periodicity of driving to that destination. 
     According to the disclosure there is also provided a system for utilizing a trip history, the trip going from an original position to a destination. The system comprises: a positioning determining unit for determining a position passed during the trip, a unit for comparing the determined position to a mapping database covering at least the trip and for determining a road segment of the mapping database associated to the determined position and for setting the determined road segment as a link of the trip,—a storage unit for storing trip data, e.g. in a hash table, as data sets, a data set of the trip data at least comprising information of original position, destination and/or a series of connected links between the original position and the destination. 
     The system for utilizing a trip history is adapted to perform the method as described herein. 
     The system may be comprised in a destination prediction system, which also comprises a unit for predicting the destination based on the stored trip data. 
     According to the disclosure there is also provided a vehicle comprising the system for utilizing a trip history as disclosed herein and/or the destination prediction system. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       The present disclosure will hereinafter be further explained by means of non-limiting examples with reference to the appended drawings wherein: 
         FIGS. 1 a - c    illustrate methods for utilizing a trip history according to the disclosure; 
         FIG. 2  is a schematic illustration of a system for utilizing a trip history according to the disclosure; 
         FIG. 3 a    shows the Bayesian graphical model of equation (2); 
         FIG. 3 b    shows a graph representation of destination probability; 
         FIG. 3 c    shows a graph representation of destination probability for multiple destinations; 
         FIG. 4  shows a graph representation of next link probability; 
         FIG. 5  shows a graphical representation of the proposed Bayesian model with multiple priors; 
         FIGS. 6 a - b    show the histogram of two attributes, time-of-day distribution and weekdays distribution, of destination  3  for data represented in Table 1; 
         FIG. 7  shows a test dataset; 
         FIG. 8  shows the probability matrix for the test data in  FIG. 7 ; 
         FIGS. 9 a - c    show a comparison between DBSCAN and ML-DBSCAN for a sample dataset. (a) DBSCAN, ε=100 m. (b) DBSCAN, ε=200 m. (c) ML-DBSCAN; 
         FIG. 10  shows a hash table with origins as key and destinations from each origin as hash values; and 
         FIG. 11  shows a hash table in which links are selected as keys and their corresponding next links and destinations as hash value. 
     
    
    
     It should be noted that the appended drawings are not necessarily drawn to scale and that the dimensions of some features of the present disclosure may have been exaggerated for the sake of clarity. 
     DETAILED DESCRIPTION 
     As required, detailed embodiments are disclosed herein. However, it is to be understood that the disclosed embodiments are merely exemplary and that various and alternative forms may be employed. The figures are not necessarily to scale. Some features may be exaggerated or minimized to show details of particular components. Therefore, specific structural and functional details disclosed herein are not to be interpreted as limiting, but merely as a representative basis for teaching one skilled in the art. 
     The disclosure will, in the following, be exemplified by embodiments. It should however be realized that the embodiments are included in order to explain principles of the disclosure and not to limit the scope of the disclosure, defined by the appended claims. Details from two or more of the embodiments may be combined with each other. 
       FIG. 1 a    illustrates a method according to the disclosure. The method comprises the steps of  110 : determining by means of a positioning determining unit the original position of the navigation device,  120 : comparing the original position to a mapping database covering at least the trip,  130 : determining a road of the mapping database associated to the determined original position,  140 : determining by means of the positioning determining unit a current position of the navigation device during the trip,  150 : comparing the current position to the mapping database,  160 : determining a road of the mapping database associated to the determined current position,  170 : setting a road segment of the determined road as a link of the trip,  180 : repeating steps  140 - 170  until the destination is reached,  190 : determining by means of the positioning determining unit the destination,  200 : comparing the destination to the mapping database,  210 : determining a road of the mapping database associated to the determined destination,  220 : representing the trip as a series of connected links between the original position and the destination, each link corresponding to a road of the mapping database. 
     The method may be performed by a system  500  for utilizing a trip history as described in conjunction with  FIG. 2  below, which system is comprised in a navigation device. The navigation device may be comprised in the vehicle. Alternatively, or as a complement, the navigation device may be a separate mobile device, which can be placed and used in the vehicle. 
       FIG. 1 b    illustrates another method according to the disclosure. The method of  FIG. 1 b    includes the steps of  FIG. 1 a   . It further comprises a step  300  of storing trip data, e.g. in a hash table, as data sets. The storing step  300  may be performed stepwise in parallel to any one of the steps  110 - 220  mentioned above, i.e. when making the trip, or it may be performed after step  220  of  FIG. 1 a   , as is illustrated in  FIG. 1 b   , i.e. when the trip is finished. 
     A data set of the trip data may comprise information of the original position, the destination and the series of connected links between the original position and/or the destination. The method as described herein is then used for collecting trip data. 
     The data set of the trip data may also comprise information about a number of times a certain trip has been performed. Thereby frequently used routes will have a higher number. 
     The trip data may also comprise information about a trip characteristic, e.g. regarding time of day, day of week, time duration of trip, season, number of passengers, fuel level and/or battery level. One or more trip characteristics may be stored. 
     Preferably, it is possible to add a new trip characteristic also after data collection has started. Data, having been collected before the new trip characteristic was added, may then be associated with a default value for the added new trip characteristic. 
       FIG. 1 c    illustrates yet another method according to the disclosure. The method of  FIG. 1 c    includes the steps of  FIG. 1 b   . It further comprises a step  400  of associating a probability for a next link and a destination given a current link, wherein the probability is based on the stored trip data. Once data has been collected, the stored trip data may be used for destination prediction. The predicted destination is selected from destinations of the stored trip data. 
     The method may, as an option, comprise a step  410  of updating the probability during a trip, for which trip the destination is predicted. For example, assume an intersection, from which there are at least two different roads leading to at least two different possible destination, and one of the two roads is selected by the user of the vehicle, then the probability for a destination, which is reached by the non-selected road, may be set to zero, and the probabilities for the remaining possible destinations may be updated accordingly. 
       FIG. 2  schematically illustrates a system  500  for utilizing a trip history, the trip going from an original position to a destination. The system  500  comprises—a positioning determining unit  510  for determining a position passed during the trip,—a unit  520  for comparing the determined position to a mapping database covering at least the trip and for determining a road segment of the mapping database associated to the determined position and for setting the determined road segment as a link of the trip,—a storage unit  530  for storing trip data, e.g. in a hash table, as data sets, a data set of the trip data at least comprising information of original position, destination and/or a series of connected links between the original position and the destination. 
     The system  500  for utilizing a trip history is adapted to perform the method as described herein. 
     The system may be comprised in a destination prediction system, which also comprises a unit  540  for predicting the destination based on the stored trip data. 
     Those skilled in the art will appreciate that the system  500 , position determining unit  510 , comparing unit  520 , storage unit  530 , predicting unit  540 , and/or any other unit, system, device or module described herein may comprise, in whole or in part, a combination of analog and digital circuits and/or one or more processors configured with appropriate software and/or firmware, e.g. stored in a memory, that when executed by the one or more processors perform the functions and/or operations described herein. One or more of such processors, as well as the other digital hardware, may be included in a single ASIC (Application-Specific Integrated Circuitry), or several processors and various digital hardware may be distributed among several separate components, whether individually packaged or assembled into a SoC (System-on-a-Chip). Furthermore, the system  500 , position determining unit  510 , comparing unit  520 , storage unit  530 , predicting unit  540 , and/or any other unit, system, device or module described herein may for instance be implemented in one or several arbitrary nodes comprised in the vehicle. In that regard, such a node may comprise an electronic control unit (ECU) or any suitable electronic device, which may be a main or central node 
     EXAMPLE 
     In the following example an embodiment of the disclosure disclosed herein is described. The example illustrates a way of performing the method for utilizing a trip history according to the disclosure. The example further describes a prediction method, as is also disclosed herein, and a system for utilizing a trip history and for estimating a driver&#39;s intended route and destination. 
     1 Background 
     In this example, a practical prediction method and system for estimating driver&#39;s intended route and destination is described. Probabilistic Bayesian models are employed to analyse history of driving for individuals in this example. Furthermore, data attributes are GPS traces captured during trips. The proposed probabilistic model is built up in the road graph level which is associated with its corresponding destination/origin and additional data describing characteristics of each trip. Moreover, a new clustering algorithm to group stationary GPS traces, collected prior end of trips, into destination clusters, is proposed. By clustering destinations, overfitting the predictive model for multiple destinations corresponding to same physical location is avoided. The proposed clustering method captures well diversity of GPS coordinates in parking lots that can vary substantially between narrow and wide depending on characteristic of each destination. Low computational complexity, flexibility, and simplicity of the proposed algorithms that can be adapted and trained with time series data are the main advantages of the both predictive and clustering methods in this example. 
     2 Introduction 
     Shortly summarized, existing methods do not fulfil the following requirements of having a flexible prediction method: 1) handling missing data and using statistical models for the prior information rather than directly using the observations 2) adjusting the weights for different conditions to improve the model predictability 3) being adaptable for sequentially increasing data. 
     Despite large similarities in trajectories when driving from an origin to a destination, diversity of parking locations can vary depending on vicinity of parking lots for different destinations. Therefore, grouping end-of-trip locations is a primary step for driving data analysis, especially when constructing destination-dependent probabilistic models. In this example, it is proposed a method to cluster GPS data corresponding to driving destinations, the resulted clusters associated with trajectories are then used to enhance the prediction process. To the best of our knowledge, there are no records of looking into simultaneous destination clustering and prediction. 
     The focus of this example is to develop a practical route and destination prediction method by utilizing history of logged GPS data for individual drivers. Data analysis and model training are performed on GPS traces captured sequentially over time and additional data describing trip characteristics. For each trip, first the end location is detected, then it will be either added to one of the existing destination clusters or generate a new cluster. For this trip, the road-mapped GPS traces and other metadata are analyzed to update the training model which is used to predict the most probable route and destinations at each segment of the route during driving. 
     The key contributions of this example are summarized in the following: 
     Short range route and destination prediction by analyzing history of driving for individuals. A Bayesian model is constructed which uses history of GPS trajectories and additional parameters describing characteristics of each trip, referred as prior information. The model is flexible in having different prior information such as origin, driver id, number of passengers, time-of-day, day-of-week, and so on. In contrast to the existing methods in which the statistical properties of prior information are ignored, a probabilistic approach to take into account prior information in the Bayesian framework is proposed. 
     The proposed solution can be adapted to use the sequentially increasing data and can handle missing data, in contrary to machine learning algorithms using batch data, to learn the model parameters from the available dataset. 
     To characterize the parking lot diversities at each destination, a new clustering algorithm which is adapted according to the density of the street grid around each parking location is proposed. Thereby capturing inherent differences between driver destinations in disparate areas, e.g. urban, residential or commercial zones. This way, data distribution for each destination is concentrated which results in less computational time and less memory consumption when predicting and storing data. 
     3 System Model 
     The data attributes are GPS signals collected from portable GPS receivers installed in the car. To abstract away working with noisy GPS data, the road graph representation of the mapping database is used for the analysis. For this, GPS data are matched to the mapping database, which results in road graph representations of the routes. In this model each unit of the road graph is represented with a link between two nodes. To enhance from the node level to link, the two node-ids are assigned in the direction of travel to each link. For example, a physical link (in a two-way) street between node a and b is represented with ab or ba depending on direction of travel. 
     Herein, origin is denoted by o and destination by g. A trip is defined with sequence of links, 1, which are identified with unique ids. Each trip starts with ignition on event at a GPS location corresponding to origin-cluster, o, and ends with ignition off event at a GPS location corresponding to destination cluster, g. 
     The purpose of the analysis is to predict intended route and destination for individual drivers. The prediction is based on analyzing history of driving. Given the nature of the problem and the properties of the dataset, Bayesian statistics are used for data modelling and analysis. The basic concept of Bayesian statistics is the Bayes&#39; theorem, 
     P(a|b)P(a)=P(b|a)P(a) for two variables. This can be extended for marginal distribution of three parameters, as
 
 P ( a,b|c )= P ( a|b,c ) P ( b|c ).  (1)
 
     Following (1), the conditional probability of next link l x  and destination g given the current link l is represented as
 
 P ( l   x   ,g|l )= P ( l   x   |g,l ) P ( g|l ).  (2)
 
     Herein, probabilistic graphical models are used to demonstrate dependency in structure between random variables. The simplicity in visualizing probabilistic models offers a powerful tool to represent dependencies and conditional independence in complicated models. In a probabilistic graphical model each node represents a random variable, and edges between the nodes (links) represent probabilistic dependencies among corresponding random variables.  FIG. 3 a    shows the Bayesian graphical model of equation (2). In the compact representation N repeated nodes are replaced with a single node in a plate, in which the number of nodes is indicated inside the plate, see  FIG. 3   c.    
     4 Route and Destination Prediction 
     The basic of the proposed approach is Markov model and follows first order Markov chain process. The prediction problem is defined as follows: given the history of driving (GPS trajectories from origins to destinations) and the current location of car, what is the next probable route and destination? That is, the state prediction is done for the destination g and next link l x  in the road graph and the observations are the current link l and additional metadata describing trip characteristic. Thereby only observations at the origin are considered, which observations can include for instance the location of origin, number of passengers in the car, or time of travel. For the sake of representation in this section, these types of prior information are represented by o. Given the preceding clarifications, the problem can be rephrased as a solution for P(g|l,o) and P(l x |l,o). As mentioned before, in existing solutions either the prior information is totally ignored or history of data is recorded for each pair of &lt;l,o&gt;. Therefore, the link observations are restricted to the origin. In this case, increasing parameters in prior without having sufficient observation, which can support the current observation, will decrease the predictability of the model. In this example, a Bayesian model is introduced, in which statistical properties of priors are considered in the prediction. 
     4.1 P(g|l,o) 
     In the probabilistic model, it is assumed that the current link and origin are independent given the final destination (i.e., P(l,o|g)=P(l|g)P(o|g)). This makes sense in reality, since the choice of driving to the current route is mainly affected by the choice of destination, this will additionally avoid zero probability when a link to a destination is not observed from current origin, e.g., choice of driver in selecting alternative routes to a destination that were not taken before. This way, it is possible to count on the probability of driving to an observed destination from an origin when driving in a link which was not in the collection of &lt;l,o&gt;⇒g but it has been in the collection of l⇒g. Based on this assumption and from the Bayes theorem, the transition probability to a destination given the origin and the current link can be written as 
     
       
         
           
             
               
                 
                   
                     
                       
                         
                           
                             given 
                             ⁢ 
                             
                                 
                             
                             ⁢ 
                             that 
                             ⁢ 
                             
                                 
                             
                             ⁢ 
                             
                               P 
                               ⁡ 
                               
                                 ( 
                                 
                                   l 
                                   , 
                                   
                                     o 
                                     ❘ 
                                     g 
                                   
                                 
                                 ) 
                               
                             
                           
                           = 
                           
                             
                               
                                 P 
                                 ⁡ 
                                 
                                   ( 
                                   
                                     l 
                                     ❘ 
                                     g 
                                   
                                   ) 
                                 
                               
                               ⁢ 
                               P 
                               ⁢ 
                               
                                 ( 
                                 
                                   o 
                                   ❘ 
                                   g 
                                 
                                 ) 
                               
                             
                             ⇒ 
                           
                         
                       
                     
                     
                       
                         
                           
                             multiplying 
                             ⁢ 
                             
                                 
                             
                             ⁢ 
                             by 
                             ⁢ 
                             
                                 
                             
                             ⁢ 
                             
                               
                                 P 
                                 ⁡ 
                                 
                                   ( 
                                   g 
                                   ) 
                                 
                               
                               
                                 P 
                                 ⁡ 
                                 
                                   ( 
                                   g 
                                   ) 
                                 
                               
                             
                           
                           ⇒ 
                         
                       
                     
                     
                       
                         
                           from 
                           ⁢ 
                           
                               
                           
                           ⁢ 
                           the 
                           ⁢ 
                           
                               
                           
                           ⁢ 
                           Bayes 
                           ⁢ 
                           
                               
                           
                           ⁢ 
                           theory 
                         
                       
                     
                   
                   ⁢ 
                   
                     
                       
                         
                           
                             P 
                             ⁡ 
                             
                               ( 
                               
                                 
                                   g 
                                   ❘ 
                                   l 
                                 
                                 , 
                                 o 
                               
                               ) 
                             
                           
                           = 
                             
                           ⁢ 
                           
                             
                               
                                 P 
                                 ⁡ 
                                 
                                   ( 
                                   
                                     l 
                                     , 
                                     
                                       o 
                                       ❘ 
                                       g 
                                     
                                   
                                   ) 
                                 
                               
                               ⁢ 
                               
                                 P 
                                 ⁡ 
                                 
                                   ( 
                                   g 
                                   ) 
                                 
                               
                             
                             
                               P 
                               ⁡ 
                               
                                 ( 
                                 
                                   l 
                                   , 
                                   o 
                                 
                                 ) 
                               
                             
                           
                         
                       
                     
                     
                       
                         
                           = 
                             
                           ⁢ 
                           
                             
                               
                                 P 
                                 ⁡ 
                                 
                                   ( 
                                   
                                     l 
                                     ❘ 
                                     g 
                                   
                                   ) 
                                 
                               
                               ⁢ 
                               
                                 P 
                                 ⁡ 
                                 
                                   ( 
                                   
                                     o 
                                     ❘ 
                                     g 
                                   
                                   ) 
                                 
                               
                               ⁢ 
                               
                                 P 
                                 ⁡ 
                                 
                                   ( 
                                   g 
                                   ) 
                                 
                               
                             
                             
                               P 
                               ⁡ 
                               
                                 ( 
                                 
                                   l 
                                   , 
                                   o 
                                 
                                 ) 
                               
                             
                           
                         
                       
                     
                     
                       
                         
                           = 
                             
                           ⁢ 
                           
                             
                               
                                 P 
                                 ⁡ 
                                 
                                   ( 
                                   
                                     l 
                                     ❘ 
                                     g 
                                   
                                   ) 
                                 
                               
                               ⁢ 
                               
                                 P 
                                 ⁡ 
                                 
                                   ( 
                                   g 
                                   ) 
                                 
                               
                               ⁢ 
                               P 
                               ⁢ 
                               
                                 ( 
                                 
                                   o 
                                   ❘ 
                                   g 
                                 
                                 ) 
                               
                               ⁢ 
                               
                                 P 
                                 ⁡ 
                                 
                                   ( 
                                   g 
                                   ) 
                                 
                               
                             
                             
                               
                                 P 
                                 ⁡ 
                                 
                                   ( 
                                   
                                     l 
                                     , 
                                     o 
                                   
                                   ) 
                                 
                               
                               ⁢ 
                               
                                 P 
                                 ⁡ 
                                 
                                   ( 
                                   g 
                                   ) 
                                 
                               
                             
                           
                         
                       
                     
                     
                       
                         
                           = 
                             
                           ⁢ 
                           
                             
                               
                                 P 
                                 ⁡ 
                                 
                                   ( 
                                   
                                     g 
                                     ❘ 
                                     l 
                                   
                                   ) 
                                 
                               
                               ⁢ 
                               
                                 P 
                                 ⁡ 
                                 
                                   ( 
                                   l 
                                   ) 
                                 
                               
                               ⁢ 
                               
                                 P 
                                 ⁡ 
                                 
                                   ( 
                                   
                                     g 
                                     ❘ 
                                     o 
                                   
                                   ) 
                                 
                               
                               ⁢ 
                               
                                 P 
                                 ⁡ 
                                 
                                   ( 
                                   o 
                                   ) 
                                 
                               
                             
                             
                               
                                 P 
                                 ⁡ 
                                 
                                   ( 
                                   
                                     l 
                                     , 
                                     o 
                                   
                                   ) 
                                 
                               
                               ⁢ 
                               
                                 P 
                                 ⁡ 
                                 
                                   ( 
                                   g 
                                   ) 
                                 
                               
                             
                           
                         
                       
                     
                     
                       
                         
                           = 
                             
                           ⁢ 
                           
                             
                               
                                 
                                   P 
                                   ⁡ 
                                   
                                     ( 
                                     l 
                                     ) 
                                   
                                 
                                 ⁢ 
                                 
                                   P 
                                   ⁡ 
                                   
                                     ( 
                                     o 
                                     ) 
                                   
                                 
                               
                               
                                 P 
                                 ⁡ 
                                 
                                   ( 
                                   
                                     l 
                                     , 
                                     o 
                                   
                                   ) 
                                 
                               
                             
                             ⁢ 
                             
                               
                                 P 
                                 ⁢ 
                                 
                                   ( 
                                   
                                     g 
                                     ❘ 
                                     l 
                                   
                                   ) 
                                 
                                 ⁢ 
                                 
                                   P 
                                   ⁡ 
                                   
                                     ( 
                                     
                                       g 
                                       ❘ 
                                       o 
                                     
                                     ) 
                                   
                                 
                               
                               
                                 P 
                                 ⁡ 
                                 
                                   ( 
                                   g 
                                   ) 
                                 
                               
                             
                           
                         
                       
                     
                     
                       
                         
                           ∝ 
                             
                           ⁢ 
                           
                             
                               
                                 P 
                                 ⁢ 
                                 
                                   ( 
                                   
                                     g 
                                     ❘ 
                                     l 
                                   
                                   ) 
                                 
                                 ⁢ 
                                 
                                   P 
                                   ⁡ 
                                   
                                     ( 
                                     
                                       g 
                                       ❘ 
                                       o 
                                     
                                     ) 
                                   
                                 
                               
                               
                                 P 
                                 ⁡ 
                                 
                                   ( 
                                   g 
                                   ) 
                                 
                               
                             
                             . 
                           
                         
                       
                     
                   
                 
               
               
                 
                   ( 
                   3 
                   ) 
                 
               
             
           
         
       
     
     The equality in (3) holds under using a normalization factor. Assuming a uniform distribution for destination, 
                 g   ∈       {       g   1     ,     g   2     ,   …   ⁢           ,     g   N       }     ⇒     P   ⁡     (     g   i     )           =     1   N       ,         
equation 3 can be written as
 
     
       
         
           
             
               
                 
                   
                     
                       
                         
                           P 
                           ⁡ 
                           
                             ( 
                             
                               
                                 g 
                                 ❘ 
                                 l 
                               
                               , 
                               o 
                             
                             ) 
                           
                         
                         = 
                           
                         ⁢ 
                         
                           
                             
                               P 
                               ⁢ 
                               
                                 ( 
                                 
                                   g 
                                   ❘ 
                                   l 
                                 
                                 ) 
                               
                               ⁢ 
                               
                                 P 
                                 ⁡ 
                                 
                                   ( 
                                   
                                     g 
                                     ❘ 
                                     o 
                                   
                                   ) 
                                 
                               
                             
                             
                               P 
                               ⁡ 
                               
                                 ( 
                                 g 
                                 ) 
                               
                             
                           
                           
                             
                               ∑ 
                               i 
                             
                             ⁢ 
                             
                               
                                 
                                   P 
                                   ⁡ 
                                   
                                     ( 
                                     
                                       
                                         g 
                                         i 
                                       
                                       ❘ 
                                       l 
                                     
                                     ) 
                                   
                                 
                                 ⁢ 
                                 
                                   P 
                                   ⁡ 
                                   
                                     ( 
                                     
                                       
                                         g 
                                         i 
                                       
                                       ❘ 
                                       o 
                                     
                                     ) 
                                   
                                 
                               
                               
                                 P 
                                 ⁡ 
                                 
                                   ( 
                                   
                                     g 
                                     i 
                                   
                                   ) 
                                 
                               
                             
                           
                         
                       
                     
                   
                   
                     
                       
                         = 
                           
                         ⁢ 
                         
                           
                             
                               P 
                               ⁡ 
                               
                                 ( 
                                 
                                   g 
                                   i 
                                 
                                 ) 
                               
                             
                             
                               P 
                               ⁡ 
                               
                                 ( 
                                 g 
                                 ) 
                               
                             
                           
                           ⁢ 
                           
                             
                               P 
                               ⁢ 
                               
                                 ( 
                                 
                                   g 
                                   ❘ 
                                   l 
                                 
                                 ) 
                               
                               ⁢ 
                               
                                 P 
                                 ⁡ 
                                 
                                   ( 
                                   
                                     g 
                                     ❘ 
                                     o 
                                   
                                   ) 
                                 
                               
                             
                             
                               
                                 ∑ 
                                 i 
                               
                               ⁢ 
                               
                                 
                                   P 
                                   ⁡ 
                                   
                                     ( 
                                     
                                       
                                         g 
                                         i 
                                       
                                       ❘ 
                                       l 
                                     
                                     ) 
                                   
                                 
                                 ⁢ 
                                 
                                   P 
                                   ⁡ 
                                   
                                     ( 
                                     
                                       
                                         g 
                                         i 
                                       
                                       ❘ 
                                       o 
                                     
                                     ) 
                                   
                                 
                               
                             
                           
                         
                       
                     
                   
                   
                     
                       
                         = 
                           
                         ⁢ 
                         
                           
                             
                               P 
                               ⁢ 
                               
                                 ( 
                                 
                                   g 
                                   ❘ 
                                   l 
                                 
                                 ) 
                               
                               ⁢ 
                               
                                 P 
                                 ⁡ 
                                 
                                   ( 
                                   
                                     g 
                                     ❘ 
                                     o 
                                   
                                   ) 
                                 
                               
                             
                             
                               
                                 ∑ 
                                 i 
                               
                               ⁢ 
                               
                                 
                                   P 
                                   ⁡ 
                                   
                                     ( 
                                     
                                       
                                         g 
                                         i 
                                       
                                       ❘ 
                                       l 
                                     
                                     ) 
                                   
                                 
                                 ⁢ 
                                 
                                   P 
                                   ⁡ 
                                   
                                     ( 
                                     
                                       
                                         g 
                                         i 
                                       
                                       ❘ 
                                       o 
                                     
                                     ) 
                                   
                                 
                               
                             
                           
                           . 
                         
                       
                     
                   
                 
               
               
                 
                   ( 
                   4 
                   ) 
                 
               
             
           
         
       
     
     The proposed graphical model for destination prediction is given in  FIG. 3 b    and  FIG. 3   c.    
     4.1 P(lx|l,o) 
     The transition probability to the next link is not only a function of history of driving but also it depends on destination. To impose the transition probability of destinations to the possible connected link, the probability of transition to the next link over the destinations is marginalized. That is, the probability of transition to the next link l x , given the origin o and the current link l is written as 
                           P   ⁡     (         l   x     ❘   l     ,   o     )       =       ⁢       ∑   i     ⁢           ⁢     P   ⁡     (       l   x     ,       g   i     ❘   l     ,   o     )                       =       ⁢       ∑   i     ⁢           ⁢       P   ⁡     (         l   x     ❘     g   i       ,   l   ,   o     )       ⁢     P   ⁡     (         g   i     ❘   l     ,   o     )             ,                 (   5   )               
which is marginalized for all the destinations from link l followed by l x . P(g i |l,o) is the transition probability to destination g i  given the origin and the current link, calculated according to 4. Considering the graphical representation of this model in  FIG. 4  (between the origin, destination, current link, and next link) equation (5) is rewritten as
 
                       P   ⁡     (         l   x     ❘   l     ,   o     )       =       ∑   i     ⁢           ⁢       P   ⁡     (         l   x     ❘     g   i       ,   l     )       ⁢     P   ⁡     (         g   i     ❘   l     ,   o     )             ,           (   6   )               
that is, if g i  is known, o does not add any information to l x  and can be omitted.
 
     To leverage from other statistical properties of data at origin, a separate model which is being updated for each origin-destination pair together with corresponding meta data, e.g., driver id, time-of-day, day-of-week, number of passengers, and etc. is used; see Section 5 for details. 
     4.3 Data Storage 
     For data storage, a hash table structure is used that is a data structure suitable for an associative array implementation. The hash table supports insertion, deletion, and search in average-case constant time which provides an efficient way of mapping and accessing data. Its data structure is similar to table structure in which each entry has a key. In this implementation data attributes are sequence of links to a destination, hence, it makes sense to use links as hash keys where the hash values are the connected links and destinations. Given the probabilistic model illustrated in  FIG. 4 , the two following tables are proposed: 
     A hash table with origins as key and destinations from each origin as hash values, Table 1, is shown in  FIG. 10 . Additional statistical properties can also be stored along with destinations. 
     A hash table in which links are selected as keys and their corresponding next links and destinations as hash value, Table 2, is shown in  FIG. 11 . 
     The hash values are stored in table format which let the values to be updated and fields to be added. Each variable in a table can have a different data type and size with the one restriction that each variable have the same number of rows. Given the proposed two hash table, all data historic required for predictions are efficiently summarized in the tables. 
     5 Prior Probability 
     The proposed prediction model in Section 3 uses only the prior information regarding origin. However, other prior information is also available at the time of travel which can be used to enhance the prediction performance. The proposed prediction model is the basic model when considering only origin as prior. In this case, it is possible to calculate the probability of traveling to each destination from the given origin by dividing number of times the destination is visited to the total number of destinations from that origin. The problem becomes more complicated when other data attributes are considered in the origin. For instance, calculating the probability of going to each destination given the current time and number of passengers. 
     An alternative solution of using additional factors in predicting driver route and destination uses an algorithm in which the conditions were deterministically imposed into the problem (classical method). That is for each detected condition, the data was stored separately; and for prediction only data which was matched with the current condition would be used. However, the results are not necessarily better when including additional factors when the model is deterministic. In this case, not all the stored data are informative and the variable importance (the contribution of each variable to the model) is calculated based on the density of data for each condition. To leverage from external information describing trip characteristics, a new model which take into account the probabilistic model of this information is proposed in this example. That is a statistical model is built up indicating the probability of current condition being in previously observed conditions. For that, different clustering methods were evaluated, such as SVM (support vector machine), bagging, random trees, and random forest. Given the characteristics of the data in this example and advantages of random forest, it was decided to choose random forest as the clustering candidate [1]. 
     In data mining the idea is all about automating the process of searching for patterns in the data. To find out which pattern is of interest for this example, which data attribute that has the highest information gain for this example has to be found. Random forests provide a measure of predictor relative importance by measuring the damage that would be done to predictive models with no access to true values of a given variable. In the dataset of this example, there are different attributes which can have significant influences when predicting the destination, such as time of departure, day of week, driver, number of passenger, fuel level, and so on. The proposed clustering solution is not dependent in number of parameters and is generalized for arbitrary factors. The Bayesian graphical representation of this predictive model is illustrated in  FIG. 5 . 
     To better understand the concept of random forest, the following examples may be considered. Table 3 reports destinations driven from home, for a single driver during 6 months with 300 trips. For destination  3  (the second most visited location), the histogram of two attributes (time-of-day and day-of-week) are plotted in  FIG. 6 a    and  FIG. 6 b   . In  FIG. 6 a   , trip started between 6 and 10 is denoted by 610, between 10 and 15 with 1015, between 15 and 18 with 1518, and between 18 and 24 with 1824. In  FIG. 6 b   , weekend is denoted by 0 and working days by 1. The random forest classifier was applied to this dataset when having both time-of-day and weekday as destination attributes. The resulted variable importance is reported in Table 4. For the dataset illustrated in  FIG. 7 , the estimated probability matrix using the random forest is depicted in  FIG. 8 . As it can be noticed all the destinations are correctly predicted except 12. As it can be seen in the training data, this destination is only travelled three times where there are not any patterns detected in the time and day attributes (their corresponding variable importance is zero). Then the reported variables in probability matrix are used as a prior (P(g|o)) in (4). 
     
       
         
           
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
             
               
                 TABLE 3 
               
               
                   
               
             
            
               
                 Destination 
                 2 
                 3 
                 4 
                 6 
                 9 
                 12 
                 13  
                 14 
                 17 
                 19 
                 21 
                 22 
                 27 
                 36 
                 40 
               
               
                 Number of visit  
                 1 
                 25 
                 65 
                 1 
                 14 
                 3 
                 2 
                 1 
                 1 
                 1 
                 1 
                 2 
                 1 
                 1 
                 1 
               
               
                   
               
            
           
         
       
     
     
       
         
           
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
             
               
                 TABLE 4 
               
               
                   
               
             
            
               
                 Destination 
                 2 
                 3 
                 4 
                 6 
                 9 
                 12 
                 13 
                 14 
                 17 
                 19 
                 21 
                 22 
                 27 
                 36 
                 40 
               
               
                 Day type 
                 0 
                 4.556091 
                 2.935091 
                 0 
                 0 
                 0 
                 −1.878673 
                 0 
                 0 
                 0 
                 0 
                 0 
                 0 
                 0 
                 0 
               
               
                 Time of Day 
                 0 
                 4.138849 
                 5.659560 
                 0 
                 −1.025978 
                 0 
                 0 
                 0 
                 0 
                 0 
                 0 
                 0 
                 0 
                 0 
                 0 
               
               
                   
               
            
           
         
       
     
     6 Origin/Destination Clustering 
     In this section, a method to cluster GPS data corresponding to driving destinations is proposed. A new DBSCAN-based algorithm is proposed to group stationary GPS traces, collected prior to end of trips, into destination clusters. DBSCAN is an abbreviation for density-based spatial clustering of applications with noise. While the original DBSCAN clustering algorithm uses a global threshold as a closeness measure in data space, a method to set local thresholds values for data points is developed in this example. The GPS data proximity strongly depends on the density of the street grid around each point. Specifically, the spread of GPS coordinates in parking lots can vary substantially between narrow (personal parking lot) and wide (parking lot of a shopping mall) depending on the destinations. To characterize the parking lot diversities at each destination, the concept of using a local threshold value for each data point is introduced. The local threshold values are inferred from road graph density using a mapping database. Moreover, a mutual reach ability constraint to preserve the insensitivity of DBSCAN with respect to the ordering of the points is proposed. The performance of the proposed clustering algorithm has been evaluated extensively using trips of actual cars in Sweden, and some of the results are presented here. 
     6.1 Proposed Clustering Algorithm 
     For the clustering application in this example, data attributes are geographical information corresponding to stationary GPS traces collected prior to end-of-trip. A trip starts from an ignition-on event at a location corresponding to an origin cluster and ends by an ignition-off event at a location corresponding to a destination cluster. Assuming connectivity properties for each pair of origin-destination, hereafter the term destination is used when referring to both the origin and the destination. 
     A cluster is a group of data that share a set of similar properties. In the application of this example, data attributes are numeric (GPS locations) where the similarity between two data object can be judged based on a distance measure. Moreover, in this problem, the number of clusters is not known in advance and data points are sequentially increasing over time. Given these requirements and the data type properties, a choice to use DBSCAN-based clustering algorithms was made because of their ability in discovering clusters with arbitrary shapes and processing large databases efficiently. The original DBSCAN [2] algorithm and its variations (OPTICS [3], LDBSCAN [4], PDBSCAN [5]) have been widely used for clustering spatial data. In these algorithms, the similarity measures are either defined globally in data space or determined locally based on density of data at different regions. In the application of this example, finding appropriate threshold value as a closeness measure can be very challenging depending on the location of the parking lot, which is independent of density of previously collected data at each region. Therefore, the current density-based algorithms do not provide a complete solution in our application considering the region-based clusters specifications. 
     Here, a modified DBSCAN clustering approach in which the local similarity measures are adapted according to the density of the road grid around each data point is proposed. Hence, the defined local similarities are independent of points density at each cluster. In the following, the original DBSCAN algorithm [2] is briefly described and then the proposed algorithm is presented. 
     In DBSCAN, clusters are formed by all points that are density-reachable from each other, i.e. connected through an unbroken chain of directly density-reachable points. In turn, a point p is directly density-reachable from a point q, if q has a minimum number of points (defined as minPts) including p within a distance threshold of ε. The minPts and ε values are given as global parameters into DBSCAN. The set of all points that are directly density-reachable from q is called the ε—neighborhood of q. All points which are not density-reachable from any other point are classified as noise. 
       FIG. 9 a    and  FIG. 9 b    show the results of DBSCAN clustering in a subset of GPS coordinates for one user centered in the town of Alingsås (vicinity of 5 km 2 ). The minPts value was set to 3 for both of these examples. To depict the deficiency of DBSCAN with respect to the clustering application of this example, two distinct ε values were chosen for each experiment.  FIG. 9 a    illustrates the resulting clusters with ε=100 m, where noises (depicted in black) and six distinct dense clusters (depicted as enclosed by circles respectively) can be seen. The destination clusters correspond well to the self-identified activities of the user, except in the lower right corner, where two parking lots belonging to the same building are clustered as separate destinations. In an effort to correct that misclassification, the ε parameter is increased to 200 m, see  FIG. 9 b   . This results in merging the lower right clusters correctly, while it also has the side effect of clustering many of the noise points (corresponding to distinct destination) in town as one large cluster. As can be observed, resulting destinations are highly dependent on properties of parking lots areas (density of the street grid around these point), which cannot be captured using only one global ε value. 
     To adapt the ε value in DBSCAN according to density of the street grid around each GPS location, a two-step solution is proposed. The first step is to modify the DBSCAN algorithm by defining an individual density threshold for each data point. The second step is to identify those thresholds using knowledge of the problem domain. To preserve symmetricity of the original DBSCAN algorithm when defining the individual density threshold for each data point, it is required to redefine the notion of ε-neighborhood from DBSCAN according to N ε (p)={q ∈ D|dist(p,q)&lt;ε p , dist(p,q)&lt;ε q }. That is p and q should be reachable from both directions to be considered members of the same neighborhood. It is worth mentioning that the run time efficiency of the DBSCAN is retained by performing the region query with ε p  and subsequently excluding results that do not fulfil the condition dist(p,q)&lt;ε q . 
     As has been previously stated, in densely-built areas, e.g. in town and city centres, the result of a high ε value could be that the entire area is clustered together, while the opposite applies for low values of ε in less dense areas, i.e., they should be clustered together. This observation implies that there is an inverse relationship between the density of the area in which a point p is situated and the density threshold ε p . As a density mea-sure, a mapping database is used to retrieve the number of road links within a constant radius of each point in the dataset. These density values are then used in a linear interpolation between a lower ε-bound for dense areas and an upper ε-bound for less dense areas. The ε-bounds and their corresponding (two)-breakpoints for the density values are set intuitively according to the data. The density values below and above the breakpoints are set to the lower and upper ε-bounds respectively, resulting in the application of the original DBSCAN algorithm on those points.  FIG. 9 c    shows resulting clusters when applying the proposed algorithm of this example, referred to as the map-based local DBSCAN (ML-DBSCAN), to the same dataset. As can be seen, the previous issues with low and high ε values in  FIG. 9 a    and  FIG. 9 b    are resolved. For this implementation, the first and second break-points are set to 100 and 200, respectively, using the radius of 500 m, and the lower and upper bounds are set to 100 m and 200 m, respectively. 
     The performance of the proposed clustering algorithm has been extensively evaluated. Herein, some of the results are reported for five car users with 514, 366, 847, 599, and 754 detected parking events recorded during 4, 6, 6, 6, and 6 months, respectively. Table 3 shows the clustering results for three different radius settings, where interpolation parameters, including first and second breakpoints (1-BP, 2-BP), and upper and lower bounds are intuitively set to the given values. The experiments show that similar clustering results are obtained for all three radius values. These results were also visually confirmed on the map for individual users. To further study the sensitivity of the proposed algorithm to the parameter settings, the interpolation parameters (first and second breakpoints, and upper and lower bounds) were swept 10% around the values given in Table 5 at each radius, resulting to 81 different settings. The experiments show that the proposed algorithm leads to stable and visually-meaningful results for a wide range of parameter values, and no major change in the clustering results were observed. 
     
       
         
           
               
               
               
               
               
               
             
               
                 TABLE 5 
               
             
            
               
                   
               
               
                   
                   
                   
                   
                   
                 Number of clusters 
               
            
           
           
               
               
               
               
               
               
               
               
               
               
            
               
                   
                   
                   
                 Upper  
                 Lower  
                 user 
                 user 
                 user 
                 user 
                 user 
               
               
                 Radius 
                 1-BP 
                 2-BP 
                 bound 
                 bound 
                 1 
                 2 
                 3 
                 4 
                 5 
               
               
                   
               
               
                 750 
                 150  
                 300 
                 200 
                 100 
                 31 
                 22 
                 18 
                 27 
                 30 
               
               
                 500 
                 100  
                 200 
                 200 
                 100 
                 31 
                 21 
                 17 
                 27 
                 31 
               
               
                 250 
                 50 
                 100 
                 200 
                 100 
                 31 
                 21 
                 17 
                 27 
                 30 
               
               
                   
               
            
           
         
       
     
     7 Results 
     The results show that over 99% of the time the prediction given the origin as prior outperforms the basic predictive model without prior. 
     While exemplary embodiments are described above, it is not intended that these embodiments describe all possible forms of the disclosure. Rather, the words used in the specification are words of description rather than limitation, and it is understood that various changes may be made without departing from the spirit and scope of the disclosure. Additionally, the features of various implementing embodiments may be combined to form further embodiments of the disclosure.