Banking site recommendation method, device, equipment and medium
By constructing a prediction model based on support vector regression and particle swarm optimization, and combining distance and waiting time, the system accurately recommends bank branches, solving the problem of inaccurate estimation of queuing time after user arrival in existing technologies, and achieving faster business processing.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- INDUSTRIAL AND COMMERCIAL BANK OF CHINA
- Filing Date
- 2023-05-19
- Publication Date
- 2026-07-10
AI Technical Summary
Existing bank branch recommendation algorithms cannot accurately estimate the waiting time after a user arrives, which means that the recommended branch may not be the best branch with the shortest waiting time, thus affecting the user experience.
By utilizing historical customer queuing time information and combining a prediction model optimized by support vector regression and particle swarm optimization algorithms, the system predicts the waiting time after arriving at a bank branch and recommends the branch with the shortest waiting time, taking into account travel time.
This improves the accuracy of bank branch recommendations, ensuring customers can start their transactions faster and enhancing the user experience.
Smart Images

Figure CN116701756B_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of artificial intelligence technology, specifically to a method, apparatus, equipment, medium, and program product for recommending bank branches. Background Technology
[0002] With the rapid development of technology, many banks' mobile banking apps now include a feature to recommend bank branches, suggesting the best branch based on distance and queue length. However, many mobile banking apps calculate travel time based on the user's and branch's location, and estimate the user's wait time based on the branch's current queue length. The sum of these two calculations is used to determine the user's total wait time, which is then used to prioritize branches and recommend them. However, this algorithm's estimation of wait time is inaccurate. This is because using the current queue length at the branch (the moment the customer triggers the recommendation request) to predict the customer's arrival time is not precise. Many people may arrive at the branch during the user's journey, resulting in even longer queues upon arrival. Therefore, the branches recommended by this algorithm may not be the optimal ones with the shortest wait times, potentially impacting user experience. Summary of the Invention
[0003] This application aims to address at least one of the technical problems existing in the prior art.
[0004] For example, this application provides a bank branch recommendation method that fully explores the characteristics, trends and development patterns of historical data changes, uses historical customer queuing time information of each bank branch to predict the possible queuing time after arrival, and takes into account both travel time and queuing time to more accurately recommend bank branches to customers where they can start their business as soon as possible.
[0005] To achieve the above objectives, the first aspect of this application provides a method for recommending bank branches, including:
[0006] In response to a customer's request to recommend a bank branch, obtain the current time information T0 and the customer's current location information;
[0007] Based on the customer's current location information, obtain all bank branches within a preset range of L kilometers and the routes to them;
[0008] Based on the stated travel route, the travel time t for the customer to reach each bank branch is obtained. i and arrival time information T i ;
[0009] The arrival time information T iInput the prediction model to obtain the waiting time after arriving at each bank branch. The prediction model is calculated using historical customer flow information and support vector regression algorithm, and then optimized by particle swarm optimization algorithm.
[0010] The estimated waiting time for the customer at each bank branch is obtained by summing the travel time and waiting time at each bank branch.
[0011] By comparing the estimated waiting times of various bank branches, the bank branch with the shortest estimated waiting time is selected as the recommended target branch.
[0012] According to the recommendation method in this application, the prediction model is built based on the optimized construction of support vector regression algorithm and particle swarm algorithm, which can obtain a more accurate waiting time after arriving at each bank branch. The best target branch is inferred by the sum of the waiting time and the travel time, which overcomes the problem of the current branch recommendation algorithm's inaccurate prediction of user queuing time and more accurately recommends bank branches to customers where they can start business as soon as possible.
[0013] Furthermore, the method also includes:
[0014] Before obtaining the customer's current location information, a permission request to confirm the current location is sent to the customer;
[0015] Upon receiving a customer's rejection instruction, the default location is used as the customer's current location information, where the default location is the coordinates of the location manually located by the customer.
[0016] Furthermore, there are a total of I bank branches within a preset range of L kilometers.
[0017] When I is greater than the first threshold, the radius value of the preset range L is automatically reduced;
[0018] When I is less than the second threshold, the radius value of the preset range L is automatically expanded.
[0019] Furthermore, before obtaining all bank branches within a preset range of L kilometers based on the customer's current location information, the method further includes:
[0020] Obtain the traffic conditions around the customer's current location;
[0021] When traffic is congested, the radius of the preset range L is automatically reduced.
[0022] Furthermore, the method for constructing the prediction model includes:
[0023] Get the number of people queuing at a bank branch at any time within the past d days (x i y i), to obtain a sample set T of historical passenger flow information, where x i For historical time, y i The number of people in the queue;
[0024] Obtain the average queuing time of customers at bank branches within the past d days;
[0025] According to the support vector regression algorithm, the historical passenger flow information sample set T is introduced into a preset linear function to obtain the prediction model, wherein the kernel function in the preset linear function adopts the radial basis function.
[0026] Furthermore, after constructing the prediction model, the prediction model is optimized using a particle swarm optimization algorithm, the method comprising:
[0027] The position vector (C, g) of each initialized particle is input into the prediction model, and the mean square error of the prediction result is output as the fitness of the corresponding particle, where C is the penalty factor of the prediction model and g is the kernel function parameter of the prediction model.
[0028] The optimal position of the particle swarm is updated based on the fitness, where the optimal position is the position of the particle with the lowest fitness.
[0029] Repeatedly iterate over the fitness of the individual particle at the optimal position until the preset maximum number of iterations N is reached;
[0030] The penalty factor and kernel function parameters after iteration are then fed into the prediction model.
[0031] Furthermore, the arrival time information T i Input the prediction model to obtain the waiting time after arriving at each bank branch, including:
[0032] The arrival time information T i Input the prediction model and output the estimated number of people queuing at the bank branch;
[0033] Based on the estimated number of people queuing and the average queuing time, the waiting time after arriving at each bank branch is obtained.
[0034] A second aspect of this application provides a bank branch recommendation device, comprising: a first acquisition module, configured to: in response to a bank branch recommendation request initiated by a customer, acquire current time information T0 and the customer's current location information; a second acquisition module, configured to: acquire all bank branches within a preset range of L kilometers and their travel routes based on the customer's current location information; and a first calculation module, configured to: calculate the travel time t for the customer to reach each bank branch based on the travel routes. i and arrival time information Ti The second calculation module is used to: calculate the arrival time information T i The system includes: an input prediction model to obtain the waiting time after arriving at each bank branch; a third calculation module to sum the travel time and waiting time at each bank branch to obtain the customer's estimated waiting time at each bank branch; and a comparison and recommendation module to compare the estimated waiting times at each bank branch and select the bank branch with the shortest estimated waiting time as the recommended target branch.
[0035] A third aspect of this application provides an electronic device comprising: one or more processors; and a memory for storing one or more programs, wherein, when the one or more programs are executed by the one or more processors, the one or more processors perform the recommended method described above.
[0036] A fourth aspect of this application also provides a computer-readable storage medium having executable instructions stored thereon, which, when executed by a processor, cause the processor to perform the recommended method described above.
[0037] A fifth aspect of this application also provides a computer program product, including a computer program that, when executed by a processor, implements the above-described recommended method. Attached Figure Description
[0038] The above-mentioned contents, other objects, features and advantages of this application will become clearer from the following description of embodiments with reference to the accompanying drawings, in which:
[0039] Figure 1 This illustration schematically depicts an application scenario where a customer uses a terminal device to view recommended service outlets according to an embodiment of this application.
[0040] Figure 2 A flowchart illustrating a method for recommending bank branches according to an embodiment of this application is shown schematically.
[0041] Figure 3 A flowchart illustrating a method for constructing a prediction model according to an embodiment of this application is shown schematically.
[0042] Figure 4 A flowchart illustrating an optimization method for a prediction model according to an embodiment of this application is shown.
[0043] Figure 5 This schematically illustrates a structural block diagram of a recommended device for a bank branch according to an embodiment of this application; and
[0044] Figure 6 A block diagram schematically illustrates an electronic device suitable for implementing a recommendation method for bank branches according to an embodiment of this application. Detailed Implementation
[0045] The embodiments of this application will now be described with reference to the accompanying drawings. However, it should be understood that these descriptions are exemplary only and are not intended to limit the scope of this application. In the following detailed description, numerous specific details are set forth to provide a thorough understanding of the embodiments of this application for ease of explanation. However, it will be apparent that one or more embodiments may be implemented without these specific details. Furthermore, descriptions of well-known structures and technologies are omitted in the following description to avoid unnecessarily obscuring the concepts of this application.
[0046] The terminology used herein is for the purpose of describing particular embodiments only and is not intended to limit the scope of this application. The terms “comprising,” “including,” etc., as used herein indicate the presence of the stated features, steps, operations, and / or components, but do not exclude the presence or addition of one or more other features, steps, operations, or components.
[0047] All terms used herein (including technical and scientific terms) have the meanings commonly understood by those skilled in the art, unless otherwise defined. It should be noted that the terms used herein are to be interpreted in a manner consistent with the context of this specification, and not in an idealized or overly rigid way.
[0048] When using expressions such as "at least one of A, B, and C", they should generally be interpreted in accordance with the meaning that is commonly understood by a person skilled in the art (e.g., "a system having at least one of A, B, and C" should include, but is not limited to, a system having A alone, a system having B alone, a system having C alone, a system having A and B, a system having A and C, a system having B and C, and / or a system having A, B, and C, etc.).
[0049] With the rapid development of technology, many banks' mobile banking apps now include a feature to recommend bank branches, suggesting the best branch based on distance and queue length. However, many mobile banking apps calculate travel time based on the user's and branch's location, and estimate the user's wait time based on the branch's current queue length. The sum of these two calculations is used to determine the user's total wait time, which is then used to prioritize branches and recommend them. However, this algorithm's estimation of wait time is inaccurate. This is because using the current queue length at the branch (the moment the customer triggers the recommendation request) to predict the customer's arrival time is not precise. Many people may arrive at the branch during the user's journey, resulting in even longer queues upon arrival. Therefore, the branches recommended by this algorithm may not be the optimal ones with the shortest wait times, potentially impacting user experience.
[0050] This application's bank branch recommendation method fully leverages the characteristics, trends, and development patterns of historical data changes. It uses historical customer queuing time information from various bank branches to predict potential queuing times upon arrival and comprehensively considers both travel time and queuing time to more accurately recommend bank branches where customers can start their business as quickly as possible.
[0051] It should be noted that the branch recommendation method and apparatus of this application can be used for branches in the financial field, such as bank branches, or for branches in any field other than the financial field, such as operator branches. This application does not limit the application field. For ease of description, this application uses bank branches as a specific embodiment for explanation and illustration.
[0052] Figure 1 This illustration depicts an application scenario where a customer uses a terminal device to view recommended service outlets, according to an embodiment of this application.
[0053] like Figure 1 As shown, network 104 is a medium used to provide a communication link between terminal devices 101, 102, 103 and server 105. Network 104 may include various connection types, such as wired, wireless communication links, or fiber optic cables, etc.
[0054] Customers can use terminal devices 101, 102, and 103 to interact with server 105 via network 104 to receive or send messages, etc. Various communication client applications can be installed on terminal devices 101, 102, and 103, such as shopping applications, web browser applications, search applications, instant messaging tools, email clients, social media platform software, etc. (for example only).
[0055] Terminal devices 101, 102, and 103 can be various electronic devices with displays and web browsing capabilities, including but not limited to smartphones, tablets, laptops, and desktop computers.
[0056] Server 105 can be a server that provides various services, such as a backend management server that supports websites browsed by clients using terminal devices 101, 102, and 103 (for example only). The backend management server can analyze and process data such as received client requests, and feed back the processing results (such as web pages, information, or data obtained or generated according to client requests) to the terminal devices.
[0057] It should be noted that the bank branch recommendation method provided in this embodiment can generally be executed by server 105. Correspondingly, the bank branch recommendation device provided in this embodiment can generally be located in server 105. The bank branch recommendation method provided in this embodiment can also be executed by a server or server cluster that is different from server 105 and capable of communicating with terminal devices 101, 102, 103 and / or server 105. Correspondingly, the bank branch recommendation device provided in this embodiment can also be located in a server or server cluster that is different from server 105 and capable of communicating with terminal devices 101, 102, 103 and / or server 105.
[0058] It should be understood that Figure 1 The number of terminal devices, networks, and servers shown is merely illustrative. Depending on implementation needs, any number of terminal devices, networks, and servers can be included.
[0059] The following will be based on Figure 1 The described scene, through Figures 2-4 The method for recommending bank branches according to the application embodiments is described in detail.
[0060] Figure 2 A flowchart illustrating a recommendation method for bank branches according to an embodiment of this application is shown.
[0061] like Figure 2 As shown, this embodiment includes operations S210 to S260.
[0062] In operation S210, in response to a customer's request to recommend a bank branch, the system obtains the current time information T0 and the customer's current location information.
[0063] The conditions that trigger this operation can be that the bank client automatically sends an invitation request to the server when the customer opens the bank client on the terminal device, or that the bank client sends an invitation request to the server after the customer opens the bank client and clicks on the function page to find nearby bank branches.
[0064] The customer's current location information can be latitude and longitude.
[0065] When operating S220, based on the customer's current location information, obtain all bank branches within a preset range of L kilometers and the route to them.
[0066] After obtaining the customer's location latitude and longitude, select all bank branches within a preset range (radius) of L kilometers, starting from the customer's current location. This preset range can be set based on the actual distribution of bank branches around the customer's location latitude and longitude, traffic conditions, etc.
[0067] In one embodiment, the radius value of a preset range L is set based on the actual distribution of bank branches.
[0068] When I is greater than the first threshold, the radius value of the preset range L is automatically reduced;
[0069] When I is less than the second threshold, the radius value of the preset range L is automatically expanded.
[0070] Understandably, the number of bank branches within a L-kilometer radius can vary significantly depending on the city and location of the customer. For example, if a customer is located in a prime area of a first-tier city, there will be a larger number of bank branches within L kilometers. Therefore, the radius of the preset range L will be set based on the number of bank branches.
[0071] The first threshold is the upper limit, which can be set to 5, and the second threshold is the lower limit, which can be set to 1. Understandably, the recommended bank branches should be between one and five. This provides customers with multiple options without overwhelming them with too many choices, thus saving server computational load.
[0072] In another embodiment, the radius value of a preset range L is set based on traffic conditions leading to the bank branch.
[0073] It obtains the customer's current location information and surrounding traffic conditions, and automatically reduces the radius of the preset range L when there is traffic congestion.
[0074] Understandably, traffic congestion increases travel time to bank branches, causing customers to spend a significant amount of time traveling to and conducting business at the branch. In such cases, narrowing the radius of the preset search range L to only search for a few bank branches relatively close to the current location can reduce the customer's total expected waiting time and improve their user experience.
[0075] In addition, customers can use the estimated total waiting time of their most recent transactions to decide whether to go to a bank branch now, which provides a more personalized service.
[0076] Considering that in addition to customers already queuing at bank branches, there may be potential customers waiting in line, these potential customers may join the queue as customers travel to the bank branches, thus lengthening the processing time. Furthermore, the time taken to reach the bank branch can be affected by factors such as the customer's location, mode of transportation, and road conditions. Therefore, after obtaining the current time T0, it is also necessary to calculate the travel time t. i .
[0077] In operation S230, based on the travel route, the travel time t for the customer to reach each bank branch is obtained. i and arrival time information T i .
[0078] Understandably, the time information T i To operate the prediction model in S240, the required input data is obtained after obtaining the travel time t. i Then, the current time information T0 + travel time t i That is, the arrival time information T i Journey time (t) i The time customers spend traveling to bank branches can be obtained through existing map applications or based on practical experience.
[0079] For example, if a user's current mode of transportation is a bicycle, and the current time is 9:00 AM on July 1st, by consulting a map application, it can be determined that the shortest route to bank branch A by bicycle will take until 9:30 AM, or by using historical experience, it can be determined that the time to reach branch A by bicycle is 9:30 AM. The journey time is t. i The arrival time is half an hour, T. i It is 9:30 on July 1st.
[0080] In operation S240, the arrival time information T iInput the prediction model to obtain the waiting time after arriving at each bank branch. The prediction model is calculated using historical customer flow information and support vector regression algorithm, and then optimized by particle swarm optimization algorithm.
[0081] The predictive model can estimate the waiting time a customer will need after arriving at a bank branch. For example, if the customer's arrival time of 9:30 is input into the predictive model, the output information is the waiting time the customer will need to wait between getting a number and completing their business after arriving at the bank branch by bicycle at 9:30.
[0082] The prediction model is built upon optimized support vector regression and particle swarm optimization algorithms, resulting in more accurate predictions of waiting times upon arrival at various bank branches. For the prediction model construction method, please refer to [link / reference]. Figure 3 And operations S310 to S330.
[0083] By operating S250, the travel time and waiting time at bank branches are summed to obtain the customer's estimated waiting time at each bank branch.
[0084] In other words, if a customer travels to bank branch A by bicycle to conduct business, the actual waiting time is the sum of the travel time to bank branch A and the waiting time after arriving at bank branch A. This result is the customer's total estimated waiting time.
[0085] When operating S260, compare the estimated waiting time of each bank branch and select the bank branch with the shortest estimated waiting time as the recommended target branch.
[0086] The bank branches are sorted according to their estimated waiting time, either in ascending or descending order. Based on this sorting, branches are recommended to the customer, with the branch offering the shortest estimated waiting time being prioritized. Alternatively, the branches with the shortest estimated waiting times can be recommended to the current user, or all branches can be recommended in ascending order of estimated waiting time, allowing the user to make further selections.
[0087] The recommendation method proposed in this application can predict other potential customers queuing on their way to various bank branches, thereby obtaining a more accurate queuing time. By summing the waiting time and the travel time, the optimal target branch can be inferred, overcoming the problem of inaccurate estimation of user queuing time in current branch recommendation algorithms, and more accurately recommending bank branches where customers can start their business as soon as possible.
[0088] It should be noted that some customers are sensitive to their current location, or the destination they want to query is not in their current location. Therefore, before obtaining the customer's current location information, a permission request for confirmation of current location access needs to be sent to the customer. If the customer refuses, the default location will be used as the customer's current location information. The default location is the coordinates of the location manually located by the customer, or it can be the customer's usual location coordinates.
[0089] In Example 1, after the customer refused the permission request to obtain the current location information, the customer entered the location coordinates.
[0090] Understandably, in this situation, the customer wants to find bank branches near their location coordinates. This scenario might involve the following applications:
[0091] For example, if a customer is currently using a banking app in their car and plans to conduct business at a bank branch near their company, the customer can manually select their company address as the default location and then search for all bank branches within a kilometer radius of their company.
[0092] For example, if a customer is asked by another person to search for bank branches near a target location in another city, the customer can enter the target location through the bank's client application and then search for all bank branches within a radius of L kilometers of the target location.
[0093] This approach expands the applicability of the method recommended in this application, allowing queries not only to be centered on the customer's current location but also on any target location the customer wishes to search for.
[0094] In Example 2, the customer did not enter location coordinates after refusing the permission request to obtain current location information.
[0095] Understandably, in this situation, the customer wants to find bank branches near their usual location coordinates. This might be applicable in the following scenarios:
[0096] For example, if a customer frequently uses their company address or home address, and is currently not in either location, after the customer refuses to have their current location information accessed, the system will default to allowing the customer to search for all bank branches within a L-kilometer radius of their frequently used address (company address or home address).
[0097] Figure 3 A flowchart illustrating a method for constructing a prediction model according to an embodiment of this application is shown.
[0098] like Figure 3 As shown, this embodiment includes operations S310 to S330.
[0099] In operation S310, obtain the number of people queuing at the bank branch at each time point within the past d days (x i y i ), thus obtaining the historical passenger flow information sample set T.
[0100] Using S320, obtain the average queuing time of customers at bank branches over the past d days.
[0101] In operation S330, based on the support vector regression algorithm, the historical passenger flow information sample set T is introduced into a preset linear function to obtain a prediction model, wherein the kernel function within the preset linear function adopts the radial basis kernel function.
[0102] Example: Retrieve historical data on the number of people queuing at a bank branch each day for the past week. Each data point is denoted as (x...). i y i Then, the average value of the daily queue length data is calculated. Since daily bank branch customer traffic data may have some random fluctuations, a moving average is applied to the obtained average data to eliminate this influence, resulting in the historical customer traffic information sample set T for the branches as follows:
[0103] T={(x1, y1), (x2, y2),..., (x i y i ), ..., (x n y n )}
[0104] Where, x i Given an input vector (historical time), y i Given the output value (number of people in the queue), according to the theory of support vector regression, the predicted value for the queueing time is:
[0105]
[0106] Where, α i and α′ i For Lagrange multipliers; K(x) i x j ) is the kernel function, b is the bias value, and t is the bias value. l This represents the average waiting time for customers at this branch.
[0107] Choosing a radial basis kernel function with strong generalization ability can accelerate the convergence of the penalty factor C and kernel function parameter g in the prediction model.
[0108] K(x i x j )=exp(-γ||x i -x j || 2 ) is used as a kernel function.
[0109] In support vector regression prediction models, the selection of the penalty factor C and the kernel function parameter g has a significant impact on the accuracy of the prediction results. An excessively high penalty factor C will reduce the generalization performance of the prediction model, while an excessively low value will lead to underfitting. Similarly, a kernel function parameter g that is too large will reduce the algorithm's accuracy, while a parameter that is too small will result in poor generalization performance. To overcome these difficulties, a particle swarm optimization algorithm is used to optimize the model and improve its prediction accuracy.
[0110] Figure 4 A flowchart illustrating the optimization method of the prediction model according to an embodiment of this application is shown.
[0111] like Figure 4 As shown, this embodiment includes operations S410 to S440.
[0112] After constructing the prediction model, the particle swarm optimization algorithm is used to optimize the prediction model. The methods include:
[0113] In operation S410, the position vector (C, g) of each initialized individual particle is input into the prediction model, and the mean square error of the prediction result is output as the fitness of the corresponding individual particle, where C is the penalty factor of the prediction model and g is the kernel function parameter of the prediction model.
[0114] In operation S420, the optimal position of the particle swarm is updated based on fitness. The optimal position is the position of the particle with the lowest fitness.
[0115] In operation S430, the fitness of the individual particle at the optimal position is repeatedly iterated until the preset maximum number of iterations N is reached.
[0116] In operation S440, the penalty factor and kernel function parameters after iteration are fed into the prediction model.
[0117] In the example, the positions and velocities of the particles are first initialized, and the fitness of each particle is calculated. Specifically, this is done by inputting the initialized position vector (C, g) of each particle into the prediction model, and then using the mean squared error (MSE) of the prediction results as the fitness of the corresponding particle.
[0118] The formula for calculating fitness MSE is as follows:
[0119]
[0120] Where, z′ i For the predicted value, z iThe values are the actual values. Then, based on the individual particle fitness, the particle with the lowest fitness is selected as the optimal position, and its position is the optimal position of the current swarm. The positions of each particle are updated according to its velocity. By repeatedly iterating and optimizing the individual fitness, the preset maximum number of iterations N is reached. At this point, C and g corresponding to the optimal position of the particle swarm are the parameters of the best prediction model after optimization by the particle swarm optimization algorithm.
[0121] In addition, this application adopts a method of randomly selecting 80% of the samples in the sample set T to form the training set, and the remaining 20% of the samples to form the test set. Ten-fold cross-validation is used, and the optimal model parameters are determined by iterating the penalty factor C and kernel function parameter g in the support vector regression model using the particle swarm optimization (PSO) algorithm.
[0122] By establishing the above model, the arrival time information T i Input the prediction model and output the estimated number of people queuing at the bank branch; then, based on the estimated number of people queuing and the average queuing time, obtain the waiting time after arriving at each bank branch.
[0123] The model in this application is based on the PSO-SVR algorithm and provides a more accurate method for predicting queuing time. It overcomes the problem that the current branch recommendation algorithm does not accurately predict the queuing time of users, and can more accurately recommend bank branches to customers where they can start their business as soon as possible.
[0124] Based on the aforementioned bank branch recommendation method, this application also provides a bank branch recommendation device. The following will be combined with... Figure 5 The device is described in detail.
[0125] Figure 5 A schematic block diagram of a bank branch recommendation device according to an embodiment of this application is shown.
[0126] like Figure 5 As shown, the bank branch recommendation device 500 in this embodiment includes a first acquisition module 510, a second acquisition module 520, a first calculation module 530, a second calculation module 540, a third calculation module 550, and a comparison and recommendation module 560.
[0127] The first acquisition module 510 is used to: in response to a customer's request for a bank branch recommendation, acquire the current time information T0 and the customer's current location information. In one embodiment, the first acquisition module 510 can be used to perform the operation S210 described above, which will not be repeated here.
[0128] The second acquisition module 520 is used to: acquire all bank branches within a preset range of L kilometers and their destination routes based on the customer's current location information. In one embodiment, the second acquisition module 520 can be used to perform the operation S220 described above, which will not be repeated here.
[0129] The first calculation module 530 is used to: obtain the travel time t of the customer to each bank branch based on the travel path. i and arrival time information T i In one embodiment, the second acquisition module 530 can be used to perform the operation S230 described above, which will not be repeated here.
[0130] The second calculation module 540 is used to: calculate the arrival time information T i The prediction model is input to obtain the waiting time after arriving at each bank branch. The prediction model is calculated using historical customer flow information and a support vector regression algorithm, and then optimized using a particle swarm optimization algorithm. In one embodiment, the second acquisition module 540 can be used to perform the operation S240 described above, which will not be repeated here.
[0131] The third calculation module 550 is used to sum the travel time and waiting time at each bank branch to obtain the customer's estimated waiting time at each bank branch. In one embodiment, the second acquisition module 550 can be used to perform the operation S250 described above, which will not be repeated here.
[0132] The comparison and recommendation module 560 is used to compare the estimated waiting times of various bank branches and select the bank branch with the shortest estimated waiting time as the recommended target branch. In one embodiment, the comparison and recommendation module 560 can be used to perform the operation S260 described above, which will not be repeated here.
[0133] According to embodiments of this application, any multiple modules among the first acquisition module 510, second acquisition module 520, first calculation module 530, second calculation module 540, third calculation module 550, and comparison and recommendation module 560 can be combined into one module, or any one of these modules can be split into multiple modules. Alternatively, at least some of the functions of one or more of these modules can be combined with at least some of the functions of other modules and implemented in one module. According to embodiments of this application, at least one of the first acquisition module 510, second acquisition module 520, first calculation module 530, second calculation module 540, third calculation module 550, and comparison and recommendation module 560 can be at least partially implemented as hardware circuitry, such as a field-programmable gate array (FPGA), a programmable logic array (PLA), a system-on-a-chip, a system-on-a-substrate, a system-on-package, an application-specific integrated circuit (ASIC), or implemented in hardware or firmware by any other reasonable means of integrating or packaging the circuitry, or implemented in software, hardware, or firmware, or in any suitable combination of any of these three implementation methods. Alternatively, at least one of the first acquisition module 510, the second acquisition module 520, the first calculation module 530, the second calculation module 540, the third calculation module 550, and the comparison and recommendation module 560 can be at least partially implemented as a computer program module, which can perform corresponding functions when the computer program module is run.
[0134] Figure 6 A block diagram schematically illustrates an electronic device suitable for implementing a bank branch recommendation method according to an embodiment of this application.
[0135] like Figure 6 As shown, an electronic device 600 according to an embodiment of this application includes a processor 601, which can perform various appropriate actions and processes according to a program stored in a read-only memory (ROM) 602 or a program loaded from a storage portion 608 into a random access memory (RAM) 603. The processor 601 may include, for example, a general-purpose microprocessor (e.g., a CPU), an instruction set processor and / or an associated chipset and / or a special-purpose microprocessor (e.g., an application-specific integrated circuit (ASIC)), etc. The processor 601 may also include onboard memory for caching purposes. The processor 601 may include a single processing unit or multiple processing units for performing different actions of the method flow according to an embodiment of this application.
[0136] RAM 603 stores various programs and data required for the operation of electronic device 600. Processor 601, ROM 602, and RAM 603 are interconnected via bus 604. Processor 601 executes various operations of the method flow according to embodiments of this application by executing programs in ROM 602 and / or RAM 603. It should be noted that the programs may also be stored in one or more memories other than ROM 602 and RAM 603. Processor 601 may also execute various operations of the method flow according to embodiments of this application by executing programs stored in said one or more memories.
[0137] According to embodiments of this application, the electronic device 600 may further include an input / output (I / O) interface 605, which is also connected to a bus 604. The electronic device 600 may also include one or more of the following components connected to the I / O interface 605: an input section 606 including a keyboard, mouse, etc.; an output section 607 including a cathode ray tube (CRT), liquid crystal display (LCD), etc., and a speaker, etc.; a storage section 608 including a hard disk, etc.; and a communication section 609 including a network interface card such as a LAN card, modem, etc. The communication section 609 performs communication processing via a network such as the Internet. A drive 610 is also connected to the I / O interface 605 as needed. A removable medium 611, such as a disk, optical disk, magneto-optical disk, semiconductor memory, etc., is installed on the drive 610 as needed so that computer programs read from it can be installed into the storage section 608 as needed.
[0138] This application also provides a computer-readable storage medium, which may be included in the device / apparatus / system described in the above embodiments; or it may exist independently and not assembled into the device / apparatus / system. The computer-readable storage medium carries one or more programs, which, when executed, implement the method according to the embodiments of this application.
[0139] According to embodiments of this application, the computer-readable storage medium can be a non-volatile computer-readable storage medium, such as including but not limited to: portable computer disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), portable compact disk read-only memory (CD-ROM), optical storage devices, magnetic storage devices, or any suitable combination thereof. In this application, the computer-readable storage medium can be any tangible medium containing or storing a program that can be used by or in conjunction with an instruction execution system, apparatus, or device. For example, according to embodiments of this application, the computer-readable storage medium may include ROM 602 and / or RAM 603 and / or one or more memories other than ROM 602 and RAM 603 described above.
[0140] The embodiments of this application also include a computer program product comprising a computer program containing program code for performing the methods shown in the flowchart. When the computer program product is run on a computer system, the program code is used to cause the computer system to implement the methods provided in the embodiments of this application.
[0141] When the computer program is executed by the processor 601, it performs the functions defined in the system / apparatus of this application embodiment. According to the embodiments of this application, the systems, apparatuses, modules, units, etc., described above can be implemented by computer program modules.
[0142] In one embodiment, the computer program may rely on a tangible storage medium such as an optical storage device or a magnetic storage device. In another embodiment, the computer program may also be transmitted and distributed in the form of signals over a network medium, and downloaded and installed via the communication section 609, and / or installed from the removable medium 611. The program code contained in the computer program can be transmitted using any suitable network medium, including but not limited to: wireless, wired, etc., or any suitable combination thereof.
[0143] In such an embodiment, the computer program can be downloaded and installed from a network via the communication section 609, and / or installed from the removable medium 611. When the computer program is executed by the processor 601, it performs the functions defined in the system of this application embodiment. According to the embodiments of this application, the systems, devices, apparatuses, modules, units, etc., described above can be implemented by computer program modules.
[0144] According to embodiments of this application, program code for executing the computer programs provided in the embodiments of this application can be written in any combination of one or more programming languages. Specifically, these computational programs can be implemented using high-level procedural and / or object-oriented programming languages, and / or assembly / machine languages. Programming languages include, but are not limited to, languages such as Java, C++, Python, "C", or similar programming languages. The program code can be executed entirely on the user's computing device, partially on the user's device, partially on a remote computing device, or entirely on a remote computing device or server. In cases involving remote computing devices, the remote computing device can be connected to the user's computing device via any type of network, including a local area network (LAN) or a wide area network (WAN), or it can be connected to an external computing device (e.g., via the Internet using an Internet service provider).
[0145] The flowcharts and block diagrams in the accompanying drawings illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of this application. In this regard, each block in a flowchart or block diagram may represent a module, segment, or portion of code containing one or more executable instructions for implementing a specified logical function. It should also be noted that in some alternative implementations, the functions indicated in the blocks may occur in a different order than those indicated in the drawings. For example, two consecutively indicated blocks may actually be executed substantially in parallel, and they may sometimes be executed in reverse order, depending on the functions involved. It should also be noted that each block in a block diagram or flowchart, and combinations of blocks in a block diagram or flowchart, may be implemented using a dedicated hardware-based system that performs the specified function or operation, or using a combination of dedicated hardware and computer instructions.
[0146] Those skilled in the art will understand that the features described in the various embodiments and / or claims of this application can be combined or combined in various ways, even if such combinations or combinations are not explicitly described in this application. In particular, the features described in the various embodiments and / or claims of this application can be combined or combined in various ways without departing from the spirit and teachings of this application. All such combinations and / or combinations fall within the scope of this application.
[0147] In the description of this specification, the references to terms such as "one embodiment," "some embodiments," "example," "specific example," or "some examples," etc., indicate that a specific feature, structure, material, or characteristic described in connection with that embodiment or example is included in at least one embodiment or example of this application. In this specification, the illustrative expressions of the above terms do not necessarily refer to the same embodiment or example. Furthermore, the specific features, structures, materials, or characteristics described may be combined in any suitable manner in one or more embodiments or examples.
[0148] The embodiments of this application have been described above. However, these embodiments are merely illustrative and not intended to limit the scope of this application. Although various embodiments have been described above, this does not mean that the measures in the various embodiments cannot be used advantageously in combination. The scope of this application is defined by the appended claims and their equivalents. Various substitutions and modifications can be made by those skilled in the art without departing from the scope of this application, and all such substitutions and modifications should fall within the scope of this application.
Claims
1. A method for recommending bank branches, characterized in that, include: In response to a customer's request to recommend a bank branch, the system obtains the current time information T0 and the customer's current location information, wherein the current location information is the customer's current location or a default location, and the default location is the location coordinates manually located by the customer. Based on the customer's current location information, obtain all bank branches within a preset range of L kilometers and the routes to them; Based on the stated travel route, the travel time t for the customer to reach each bank branch is obtained. i and arrival time information T i ; The arrival time information T i Input the prediction model to obtain the waiting time after arriving at each bank branch. The prediction model is calculated using historical customer flow information and support vector regression algorithm, and then optimized by particle swarm optimization algorithm. The estimated waiting time for the customer at each bank branch is obtained by summing the travel time and waiting time at each bank branch. Compare the estimated waiting times at various bank branches and select the bank branch with the shortest estimated waiting time as the recommended target branch; Before obtaining all bank branches within a preset range of L kilometers based on the customer's current location information, the process includes: Obtain the traffic conditions around the customer's current location; When traffic is congested, the radius of the preset range L is automatically reduced; The method for constructing the prediction model includes: Get the number of people queuing at a bank branch at any time within the past d days (x i y i ), to obtain a sample set T of historical passenger flow information, where x i For historical time, y i The number of people in the queue; Obtain the average queuing time of customers at bank branches within the past d days; According to the support vector regression algorithm, the historical passenger flow information sample set T is introduced into a preset linear function to obtain the prediction model, wherein the kernel function in the preset linear function adopts the radial basis function. After constructing the prediction model, the prediction model is optimized using a particle swarm optimization algorithm, including: The position vector (C, g) of each initialized particle is input into the prediction model, and the mean square error of the prediction result is output as the fitness of the corresponding particle, where C is the penalty factor of the prediction model and g is the kernel function parameter of the prediction model. The optimal position of the particle swarm is updated based on the fitness, where the optimal position is the position of the particle with the lowest fitness. Repeatedly iterate over the fitness of the individual particle at the optimal position until the preset maximum number of iterations N is reached; The penalty factor and kernel function parameters after iteration are then fed into the prediction model.
2. The recommended method according to claim 1, characterized in that, The method further includes: Before obtaining the customer's current location information, a permission request to confirm the current location is sent to the customer; Upon receiving a customer's rejection instruction, the default location is used as the customer's current location information.
3. The recommended method according to claim 1, characterized in that, The arrival time information T i Input the prediction model to obtain the waiting time after arriving at each bank branch, including: The arrival time information T i Input the prediction model and output the estimated number of people queuing at the bank branch; Based on the estimated number of people queuing and the average queuing time, the waiting time after arriving at each bank branch is obtained.
4. A bank branch recommendation device, comprising: The first acquisition module is used to: respond to a bank branch recommendation request initiated by a customer, acquire the current time information T0 and the customer's current location information, wherein the current location information is the customer's current location or a default location, and the default location is the location coordinates manually located by the customer; The second acquisition module is used to: acquire all bank branches within a preset range of L kilometers and the route to them based on the customer's current location information; The first calculation module is used to: obtain the travel time t of the customer to each bank branch based on the travel path. i and arrival time information T i ; The second calculation module is used to: process the arrival time information T i Input the prediction model to obtain the waiting time after arriving at each bank branch. The prediction model is calculated using historical customer flow information and support vector regression algorithm, and then optimized by particle swarm optimization algorithm. The third calculation module is used to: sum the travel time and waiting time at each bank branch to obtain the customer's estimated waiting time at each bank branch; and The comparison and recommendation module is used to: compare the estimated waiting time of each bank branch and obtain the bank branch with the shortest estimated waiting time as the recommended target branch; Before obtaining all bank branches within a preset range of L kilometers based on the customer's current location information, the process includes: Obtain the traffic conditions around the customer's current location; When traffic is congested, the radius of the preset range L is automatically reduced; The method for constructing the prediction model includes: Get the number of people queuing at a bank branch at any time within the past d days (x i y i ), to obtain a sample set T of historical passenger flow information, where x i For historical time, y i The number of people in the queue; Obtain the average queuing time of customers at bank branches within the past d days; According to the support vector regression algorithm, the historical passenger flow information sample set T is introduced into a preset linear function to obtain the prediction model, wherein the kernel function in the preset linear function adopts the radial basis function. After constructing the prediction model, the prediction model is optimized using a particle swarm optimization algorithm, including: The position vector (C, g) of each initialized particle is input into the prediction model, and the mean square error of the prediction result is output as the fitness of the corresponding particle, where C is the penalty factor of the prediction model and g is the kernel function parameter of the prediction model. The optimal position of the particle swarm is updated based on the fitness, where the optimal position is the position of the particle with the lowest fitness. Repeatedly iterate over the fitness of the individual particle at the optimal position until the preset maximum number of iterations N is reached; The penalty factor and kernel function parameters after iteration are then fed into the prediction model.
5. An electronic device, comprising: One or more processors; Storage device for storing one or more programs. Wherein, when the one or more programs are executed by the one or more processors, the one or more processors perform the method according to any one of claims 1 to 3.
6. A computer-readable storage medium having executable instructions stored thereon, which, when executed by a processor, cause the processor to perform the method according to any one of claims 1 to 3.
7. A computer program product comprising a computer program that, when executed by a processor, implements the method according to any one of claims 1 to 3.