APPARATUSES, COMPUTER-IMPLEMENTED METHODS, AND COMPUTER PROGRAM PRODUCTS FOR IMPROVED MODEL-BASED DETERMINATIONS
Methods, apparatuses, and computer program products are provided that utilize specially configured model-based trees to output data that more accurately satisfies a particular predictive task. Each model-based tree may include any number of branches partitioning an original data set into subsets for processing. Each branch may end in one or more leaf nodes, where each leaf node is associated with a data model specially configured based on a particular set of partitioned data associated with the leaf node. In this regard, the plurality of model-based trees may generate data utilized to determine and/or output preferred data for a particular user.
This application is a continuation of U.S. application Ser. No. 14/193,646, filed Feb. 28, 2014, and entitled “System, Method, and Computer Program Product For Calculating An Accepted Value For A Promotion”, which application is incorporated by reference herein in its entirety.
TECHNICAL FIELD OF THE INVENTIONThe present invention relates to determining an accepted value for a provider or promotion and marketing service.
BACKGROUNDApplicant has discovered problems with current methods of pricing and discounting promotions. In some examples, the pricing of a promotion may be discounted to generate sales and promote the goods or services being sold. However, some current methods for determining an ideal discount rate of a product may be improved. Through applied effort, ingenuity, and innovation, Applicant has solved many of these identified problems by developing a solution that is embodied by the present invention, which is described in detail below.
BRIEF SUMMARYIn general, embodiments of the present invention provided herein include systems, methods and computer program products for the facilitation of determining an accepted value of a promotion.
In some example embodiments, a method is provided for determining an ideal discount rate for a promotion including receiving, via an interface, promotion information about a promotion, wherein the promotion information may include a plurality of promotion variables including at least a promotional value. The method may include calculating, via a processor, for each of a plurality of model-based decision trees, a demand value for the promotion for each of at least one predetermined discount rate by applying the promotion variables with each predetermined discount rate to each decision tree. Some embodiments of the method include aggregating the demand values for each discount rate for each decision tree for the promotion variables to produce an aggregated price elasticity of demand and presenting a discount recommendation to a user based on the aggregated price elasticity of demand.
In some example embodiments, the plurality of decision trees are generated from an original data set including a plurality of deal data, the deal data including a demand data, a price data, and data corresponding to a plurality of predictor variables. In some embodiments, each decision tree may include a plurality of decision points connected by a plurality of branches and ending at a plurality of leaves. In some embodiments, the decision points are conditional filters that indicate one of the plurality of possible branches based on a value of at least one predictor variable. In some embodiments, each decision tree may be generated using a subset of the original data set, wherein each leaf may be a linear model made by performing a linear regression of demand data compared to price data of a remaining subset of data corresponding to a terminal branch.
In some further example embodiments, applying the promotion variables with each predetermined discount rate to each tree includes determining, via a plurality of decision points, a resultant leaf for the promotion variables at each discount rate and may include calculating the demand value for the promotion for each predetermined discount rate with the linear model of the respective resultant leaf In some embodiments the original data set may be divided into a training set and a test set, wherein the training set may be used to generate one of the plurality decision trees and the test set may be used to evaluate an overall model of the one of the plurality of decision trees.
In some embodiments, the overall model may be evaluated using R2 metric for a predicted demand value of each deal data in the test set. In some embodiments, the original data may be received from previous promotions. In some example embodiments, the subset of the original data set may be generated randomly for each decision tree. In some example embodiments, the subset of the original data set may be generated using random sampling with replacement. In some embodiments, the subset of the original data set may be generated using random sampling without replacement. In some example embodiments, each decision point may be generated by dividing a first remaining subset of the original data at the predictor variable having a highest parameter instability to form a plurality of second remaining subsets. Some embodiments include generating each decision tree by recursively generating decision points from each remaining subset until a stopping point is reached for each branch. In some embodiments, the stopping point may be reached when the second remaining subsets have less than or equal to a minimum number of deal data.
Some example embodiments generate each decision point by selecting a random subset of a first remaining subset and dividing the first remaining subset of the original data at the predictor variable from the random subset having a highest parameter instability to form a plurality of second remaining subsets. In some embodiments, each decision tree may be generated by recursively generating decision points from each remaining subset until a stopping point is reached for each branch. In some embodiments, the stopping point may be reached when the second remaining subsets have less than or equal to a minimum number of deal data.
In some example embodiments, the discount recommendation may be presented as a graphical representation of the demand for the promotion at each of the at least one predetermined discount rate. In some embodiments, the discount recommendation may be presented as an ideal discount rate. In some embodiments, the at least one predetermined discount rate comprises at least one of 10%, 30%, 50%, and 70% discount rates.
In some further embodiments a method is provided that includes receiving, via an interface, promotion information about a promotion. In some embodiments of the method, the promotion information includes a plurality of promotion variables including at least a promotional value. In some embodiments, the method may include presenting a discount recommendation for the promotion. Some embodiments of the discount recommendation may be based on an aggregated price elasticity of demand for the promotion. In some example embodiments, the aggregated price elasticity of demand may be calculated by aggregating a predicted demand for the promotion at each of a number of predetermined discount rates for each of a plurality of model-based decision trees.
In some further example embodiments, an apparatus may be provided that includes at least a processor and a memory associated with the processor having computer coded instructions therein. In some embodiments the computer instructions may be configured to, when executed by the processor, cause the apparatus to receive, via an interface, promotion information about a promotion. In some example embodiments, the promotion information includes a plurality of promotion variables including at least a promotional value. In some embodiments, the computer instructions may further cause the apparatus to calculate, for each of a plurality of model-based decision trees, a demand value for the promotion for each of at least one predetermined discount rate by applying the promotion variables with each predetermined discount rate to each decision tree. Some embodiments of the apparatus may futher aggregate the demand values for each discount rate for each decision tree for the promotion variables to produce an aggregated price elasticity of demand. In some embodiments, the apparatus may present a discount recommendation to a user based on the aggregated price elasticity of demand.
In some embodiments, the plurality of decision trees are generated from an original data set including a plurality of deal data. In some embodiments, the deal data may include a demand data, a price data, and data corresponding to a plurality of predictor variables. In some embodiments, each decision tree may include a plurality of decision points connected by a plurality of branches and ending at a plurality of leaves. In some embodiments, the decision points may be conditional filters that indicate one of the plurality of possible branches based on a value of at least one predictor variable. In some embodiments, each decision tree may be generated using a subset of the original data set, wherein each leaf may be a linear model made by performing a linear regression of demand data compared to price data of a remaining subset of data corresponding to a terminal branch.
Some embodiments of the apparatus may apply the promotion variables with each predetermined discount rate to each tree by determining, via a plurality of decision points, a resultant leaf for the promotion variables at each discount rate and calculating the demand value for the promotion for each predetermined discount rate with the linear model of the respective resultant leaf. In some embodiments, the original data set may be divided into a training set and a test set, wherein the training set may be used to generate one of the plurality decision trees and the test set may be used to evaluate an overall model of the one of the plurality of decision trees.
In some embodiments, the overall model may be evaluated using R2 metric for a predicted demand value of each deal data in the test set. In some embodiments, the original data may be received from previous promotions. In some embodiments, the subset of the original data set may be generated randomly for each decision tree. In some example embodiments, the subset of the original data set may be generated using random sampling with replacement. In some alternative embodiments, the subset of the original data set may be generated using random sampling without replacement.
Some embodiments of the apparatus generate each decision point by dividing a first remaining subset of the original data at the predictor variable having a highest parameter instability to form a plurality of second remaining subsets. In some embodiments, each decision tree may be generated by recursively generating decision points from each remaining subset until a stopping point is reached for each branch. In some embodiments, the stopping point may be reached when the second remaining subsets have less than or equal to a minimum number of deal data.
Some embodiments of the apparatus may generate each decision point by selecting a random subset of a first remaining subset and dividing the first remaining subset of the original data at the predictor variable from the random subset having a highest parameter instability to form a plurality of second remaining subsets. In some embodiments, each decision tree may be generated by recursively generating decision points from each remaining subset until a stopping point is reached for each branch. In some embodiments, the stopping point may be reached when the second remaining subsets have less than or equal to a minimum number of deal data.
In some embodiments, the discount recommendation may be presented as a graphical representation of the demand for the promotion at each of the at least one predetermined discount rate. In some embodiments, the discount recommendation may be presented as an ideal discount rate. In some embodiments, the at least one predetermined discount rate comprises at least one of 10%, 30%, 50%, and 70% discount rates.
In yet some further example embodiments, an apparatus is provided including at least a processor, and a memory associated with the processor having computer coded instructions therein. In some embodiments, the computer instructions are configured to, when executed by the processor, cause the apparatus to receive, via an interface, promotion information about a promotion. In some embodiments, the promotion information includes a plurality of promotion variables including at least a promotional value. In some embodiments, the apparatus may present a discount recommendation for the promotion. In some embodiments, the discount recommendation may be based on an aggregated price elasticity of demand for the promotion. In some embodiments, the aggregated price elasticity of demand may be calculated by aggregating a predicted demand for the promotion at each of a number of predetermined discount rates for each of a plurality of model-based decision trees.
In yet some further example embodiments, a computer program product is provided comprising a non-transitory computer readable medium having computer program instructions stored therein. Some embodiments of the instructions when executed by a processor may receive, via an interface, promotion information about a promotion. In some embodiments, the promotion information includes a plurality of promotion variables including at least a promotional value. Some embodiments of the computer program product may calculate, for each of a plurality of model-based decision trees, a demand value for the promotion for each of at least one predetermined discount rate by applying the promotion variables with each predetermined discount rate to each decision tree. Some embodiments of the computer program product may aggregate the demand values for each discount rate for each decision tree for the promotion variables to produce an aggregated price elasticity of demand. Some embodiments may present a discount recommendation to a user based on the aggregated price elasticity of demand.
In some embodiments, the plurality of decision trees may be generated from an original data set including a plurality of deal data. In some embodiments, the deal data may include a demand data, a price data, and data corresponding to a plurality of predictor variables. In some embodiments, each decision tree may include a plurality of decision points connected by a plurality of branches and ending at a plurality of leaves. In some embodiments, the decision points may be conditional filters that indicate one of the plurality of possible branches based on a value of at least one predictor variable. In some embodiments, each decision tree may be generated using a subset of the original data set. In some embodiments, each leaf may be a linear model made by performing a linear regression of demand data compared to price data of remaining subset of data corresponding to a terminal branch.
In some embodiments of the computer program product, applying the promotion variables with each predetermined discount rate to each tree may include determining, via a plurality of decision points, a resultant leaf for the promotion variables at each discount rate and may include calculating the demand value for the promotion for each predetermined discount rate with the linear model of the respective resultant leaf.
In some embodiments, the original data set may be divided into a training set and a test set, wherein the training set may be used to generate one of the plurality decision trees and the test set may be used to evaluate an overall model of the one of the plurality of decision trees. In some embodiments, the overall model may be evaluated using R2 metric for a predicted demand value of each deal data in the test set. In some embodiments, the original data may be received from previous promotions. In some embodiments, the subset of the original data set may be generated randomly for each decision tree. In some embodiments, the subset of the original data set may be generated using random sampling with replacement. In some alternative embodiments, the subset of the original data set may be generated using random sampling without replacement.
In some embodiments, each decision point may be generated by dividing a first remaining subset of the original data at the predictor variable having a highest parameter instability to form a plurality of second remaining subsets. Some embodiments of the computer program product generate each decision tree by recursively generating decision points from each remaining subset until a stopping point is reached for each branch. In some embodiments, the stopping point may be reached when the second remaining subsets have less than or equal to a minimum number of deal data.
In some embodiments, each decision point may be generated by selecting a random subset of a first remaining subset and dividing the first remaining subset of the original data at the predictor variable from the random subset having a highest parameter instability to form a plurality of second remaining subsets. In some embodiments, each decision tree may be generated by recursively generating decision points from each remaining subset until a stopping point may be reached for each branch. In some embodiments, the stopping point may be reached when the second remaining subsets have less than or equal to a minimum number of deal data.
In some embodiments, the discount recommendation may be presented as a graphical representation of the demand for the promotion at each of the at least one predetermined discount rate. In some embodiments, the discount recommendation may be presented as an ideal discount rate. In some embodiments, the at least one predetermined discount rate comprises at least one of 10%, 30%, 50%, and 70% discount rates.
In yet some further embodiments, a computer program product is provided that includes a non-transitory computer readable medium having computer program instructions stored therein. Some embodiments of the instructions, when executed by a processor, input, via an interface, promotion information about a promotion. In some embodiments, the promotion information includes a plurality of promotion variables including at least a promotional value. Some embodiments of the computer program product receive a discount recommendation for the promotion. In some embodiments, the discount recommendation may be based on an aggregated price elasticity of demand for the promotion. In some embodiments, the aggregated price elasticity of demand may be calculated by aggregating a predicted demand for the promotion at each of a number of predetermined discount rates for each of a plurality of model-based decision trees.
Having thus described embodiments of the invention in general terms, reference will now be made to the accompanying drawings, which are not necessarily drawn to scale, and wherein:
Embodiments of the present invention now will be described more fully hereinafter with reference to the accompanying drawings, in which some, but not all embodiments of the inventions are shown. Indeed, embodiments of the invention may be embodied in many different forms and should not be construed as limited to the embodiments set forth herein; rather, these embodiments are provided so that this disclosure will satisfy applicable legal requirements. Like numbers refer to like elements throughout.
TerminologyAs used herein, the terms “data,” “content,” “information,” and similar terms may be used interchangeably to refer to data capable of being transmitted, received, and/or stored in accordance with embodiments of the present invention. Thus, use of any such terms should not be taken to limit the spirit and scope of embodiments of the present invention. Further, where a computing device is described herein to receive data from another computing device, it will be appreciated that the data may be received directly from the another computing device or may be received indirectly via one or more intermediary computing devices, such as, for example, one or more servers, relays, routers, network access points, base stations, hosts, and/or the like, sometimes referred to herein as a “network.” Similarly, where a computing device is described herein to send data to another computing device, it will be appreciated that the data may be sent directly to the another computing device or may be sent indirectly via one or more intermediary computing devices, such as, for example, one or more servers, relays, routers, network access points, base stations, hosts, and/or the like.
As used herein, the term “promotion and marketing service” may include a service that is accessible via one or more computing devices and is operable to provide example promotion and/or marketing services on behalf of one or more providers that are offering one or more instruments that are redeemable for goods, services, experiences and/or the like. In some examples, the promotion and marketing service may take the form of a redemption authority, a payment processor, a rewards provider, an entity in a financial network, a promoter, an agent and/or the like. As such, the service is, in some example embodiments, configured to present one or more promotions via one or more impressions, accept payments for promotions from consumers, issue instruments upon acceptance of an offer, participate in redemption, generate rewards, provide a point of sale device or service, issue payments to providers and/or or otherwise participate in the exchange of goods, services or experiences for currency, value and/or the like.
As used herein, the term “provider” may include, but is not limited to, a merchant, business owner, consigner, shopkeeper, tradesperson, vender, operator, entrepreneur, agent, dealer, organization or the like that is in the business of a providing a good, service or experience to a consumer, facilitating the provision of a good, service or experience to a consumer and/or otherwise operating in the stream of commerce. One example provider may be a running company that sells attire for use by a person who runs or participates in athletic activities.
As used herein, the term “consumer” may include, but is not limited to, a client, customer, purchaser, shopper, user, or the like, who may be in the position to or does exchange value for one or more vouchers under the terms defined by one or promotions. For example, and using the aforementioned running company as the example provider, a consumer may be an individual who is interested in purchasing running shoes.
As used herein, the term “promotion” may include, but is not limited to, any type of offered, presented or otherwise indicated reward, discount, coupon, credit, deal, incentive, discount, media or the like that is indicative of a promotional value or the like that upon purchase or acceptance results in the issuance of an instrument that may be used toward at least a portion of the purchase of particular goods, services and/or experiences defined by the promotion. An example promotion, using the aforementioned running company as the example provider, is $25 for $50 toward running shoes. In some examples, the promotion defines an accepted value (e.g., a cost to purchase the promotion), a promotional value (e.g., the value of the resultant instrument beyond the accepted value), a residual value (e.g., the value upon return or upon expiry of one or more redemption parameters), one or more redemptions parameters and/or the like. Using the running company promotion as an example, the accepted value is $25 and the promotional value is $50. Promotional value may also be referred to as the original price of the promotion. In this example, the residual value may be equal to the accepted value.
As used herein, the terms “discount” or “discount rate” may define the percentage difference between the accepted value and the promotional value of the promotion, such that the discount is the amount price of the promotion is reduced from its original, promotional value when sold at the accepted value.
Brief OverviewMethods, apparatus, and computer program products described herein are operable for facilitating the determination of an accepted value of one or more promotions offered by a promotion and marketing system. In some embodiments, the discount of a promotion may be calculated based on a predicted price elasticity of demand of the promotion. An ideal discount or ideal discount rate is a discount rate that produces an ideal accepted value of the promotion. Embodiments of the present invention may determine either or both of an ideal discount rate and an ideal accepted value of a promotion. In some embodiments, the ideal discount may be one that maximizes revenue or maximizes profits. In some embodiments, the ideal discount may be selected to hit a predetermined sales target for the promotion. The ideal discount may be determined by the specific user, whether a promotion and marketing service or a provider, and may be tuned to the specific user's needs.
All types of products, experiences, goods and services may be sold as promotions by a promotion and marketing service. The promotion and marketing service sells promotions at a discount rate that may be determined, in some embodiments, either directly or indirectly by the price elasticity of demand of the promotion. Using the price elasticity of demand, an ideal discount rate and an ideal accepted value of the promotion may be calculated.
Price elasticity of demand is defined as the rate at which demand changes for a given, incremental change in price. It would be appreciated by one of ordinary skill in the art that numerous different promotions may have varying price elasticity of demands. Some promotions may be highly demanded no matter what the price or discount rate and thus a lower discount rate should be used to determine the ideal accepted value. Alternatively, some promotions may be extremely price sensitive and may need higher discount rates to achieve the ideal accepted value because the user is particularly sensitive to the price of the promotion.
In order to calculate the price elasticity of demand and, thereby, an ideal discount or ideal accepted value, some embodiments of the present invention obtain predicted demands for a promotion based on various prices by applying different discount rates to a model of the promotion. In some embodiments, the predicted demands are determined by applying different accepted values to a model of the promotion. Some embodiments of the present invention may consider the relationship between possible discount rates and the predicted demands, or some embodiments may consider the relationship between possible accepted values and the predicted demands. The demand for the promotion at different discount rates and/or accepted values may be used to determine an ideal accepted value and thereby an associated ideal discount rate for the promotion.
Some embodiments of the present invention use a model-based (“MOB”) recursive partitioning technique to generate a model of the demand for the promotion based on a set of original data, in order to predict the demand for a given promotion at a number of predetermined discount rates. The model-based recursive partitioning technique may develop multiple models for a plurality of subsets of the original data. In some embodiments, the original data may be selected from a homogeneous group of promotions, for example—food or drink promotions in Italy, in order to ensure the accuracy of the overall model. In some further embodiments, the group of promotions that make up the original data may be chosen based on the type of promotion being presently analyzed. In some alternative embodiments, a global set of promotions are used for all models.
In some embodiments, the original data is comprised of historical data from a plurality of past promotions. The original data may include predictor variables about each past promotion such as a number of promotions sold (e.g. demand), promotional value, and a discount rate and/or accepted value. Other examples of predictor variables include, but are not limited to, city size, weather, seasonality, commission earned by the promotion and marketing service, importance of the promotion, lead quality, type of promotion, an indication of a new or existing provider, and any other feature or property that may serve to distinguish one promotion from another.
Some embodiments of the present invention develop one or more MOB trees based on a subset of the original data. A MOB tree or decision tree is generated by creating a plurality of decision points that group the subset of original data into smaller and smaller clusters based on the similarity of the data's respective predictor variables. Each decision point receives a “branch” or cluster of data as an input, and splits the branch across a value of one or more predictor variables. The decision point then creates two branches, one on either side of the value of the predictor variable used to split the data. This process continues recursively until each branch reaches a stopping point. As explained in further detail below, some embodiments may improve the fit of the model by setting stringent p-values for the decision points. As will be discussed in greater detail below, the stopping points may be any of a number of deciding factors that stop another decision point from being formed on the particular branch. For each branch that reaches an ending point, a separate model or “leaf” may be generated from the remaining data in each branch. In some embodiments the leaf model may be a linear regression model. Each linear regression model may be based on a subset of the data that is more closely related so that the linear model more accurately conforms to the demand of the product over that set of data. By generating a separate model for more homogeneous subsets of the overall data (e.g. the individual branches), the fit of the overall model may be improved. Likewise, a plurality of trees may be generated for the original data and averaged to increase the accuracy of the model.
In some embodiments, a second subset of the original data is used to determine the accuracy of each MOB tree. In some embodiments, the original data is split into a training set and a test set by randomly sampling from the original data either with or without replacement. In some further embodiments, new training and test sets are generated from the original data for each MOB tree. The training set may be used to generate the branches and decision points, and the test set may determine the accuracy of the model via R2 value or a similar accuracy estimate.
Some embodiments generate decision points by splitting the data across a predictor variable or variables having the greatest parameter instability. Splitting across the greatest parameter instability allows the decision point to divide the data into the most homogenous groups. In some embodiments, a random subset of the predictor variables are considered at each decision point for the variable with the highest instability so that, across the plurality of MOB trees, the effect of more divisive variables doesn't drown out the weaker predictors.
In some embodiments of the present invention, a promotion is applied via “what-if” analysis to the one or more MOB trees with one or more discount rates to generate a predicted demand for the promotion at each discount rate. Using the combined results for the demand calculated at each discount rate by each decision tree, the system may accurately determine an ideal discount rate that gives an ideal accepted value of the promotion (e.g. maximizes revenue).
In some embodiments, the system may be embodied as a tool and may be designed specifically with a particular user in mind. For example, in some embodiments, the present invention is used by or otherwise accessible via a promotion and marketing service. The system may be used by the promotion and marketing service to determine an ideal discount at which to sell a provider's promotion. In this embodiment, the system may be configured to give more detailed information about the price elasticity of demand for the promotion.
In some alternative embodiments, a provider interface may be used. The provider interface may be configured to receive promotion information from a provider, calculate the demand information remotely or receive premade models to calculate the demand values with, and then output the information to the provider.
The system may output an indication of a preferred or ideal discount rate based on the predicted demand information. The output may be text-based and/or graphical and may display as much or as little information as the provider or promotion and marketing service desires.
Exemplary System ArchitectureReference will now be made to several exemplary architectures of the present invention.
The demand module 100 may receive the promotion information 105 and apply the promotion information to N discount rates 125, 130. Each of the N discount rates combined with the promotion information may be applied to each of M decision trees 135, 140, 150. Each decision tree 135, 140, 150 in the demand module 100 generates a predicted demand 155, 160, 165, 170, 175, 180 for each discount rate 125, 130 as applied to the promotion information 105.
In some embodiments, the demand module 100 then transfers the predicted demands 155, 160, 165, 170, 175, 180 to an aggregator module 115. The aggregator module may combine the demand data 155, 160, 165, 170, 175, 180 to determine, either directly or indirectly, a price elasticity of demand and provide an output 120 to the user. As discussed in greater detail herein, the output 120 may take any form including but not limited to a graphical representation of an accepted value or discount rate versus demand curve for different prices, a text indication of the demands for each discount rate or accepted value, or it may be a numerical representation of an ideal accepted value or an ideal discount rate for the promotion. The output 120 may be an exact number, a range of values, or a predicted value with a computed confidence interval.
In some embodiments, the decision points 217 split across a predictor variable or variables that indicate high parameter instability. As explained in greater detail below, parameter instability of the predictors may be computed using a class of generalized M-fluctuation tests. In some embodiments, the sup LM statistic may be used for numerical predictor variables. In some embodiments, a χ2 or chi-squared statistic that captures the fluctuation within each of the categories of predictor may be used for categorical partitioning variables. By splitting the data at the highest parameter instability, each decision point may create two increasingly homogenous subsets of data that are then fed into respective new decision points.
In some embodiments, the decision points 217 recursively split to create smaller and smaller branches of data until a stopping point is reached. As described in greater detail herein, the tree generator module may determine for each branch individually when a stopping point has been reached based on a set of criteria.
In some embodiments, each leaf model 240, 250, 255, 260 is created using a statistical model of the resulting data set in the given branch. In one embodiment, as shown in
In some embodiments of the present invention the aggregator module first collects every demand point for a given discount rate and compares them and combines them into an average or aggregated demand for that single discount rate. For example, in the embodiment shown in
In some embodiments once each discount rate is independently evaluated in Evaluation Modules 1 through N, a Combined Evaluator module 315 will aggregate and analyze the outputs from the Evaluation Modules 305, 310 to determine an ideal demand and an ideal discount rate to produce the highest revenue. In some embodiments, a predicted demand is determined for each potential discount rate or accepted value across multiple tree models. Some embodiments may then average the predicted demands for each discount rate across the tree models to obtain a stable estimate for the demand at each discount rate. As discussed herein, the output may be in any form including a graphical display of a price elasticity of demand, discount rate, and/or accepted value for the promotion. In some embodiments the output may be a text-based display of the ideal discount rate and/or accepted value to arrive at the ideal accepted value of the promotion.
In some alternative embodiments, demand information from each tree, 1 through M, may be considered first, and then the results may be combined with the demand results from the other trees to arrive at an output of ideal discount.
Tree GenerationReference will now be made to several embodiments of a tree model generation method. The tree models may be generated recursively by splitting the data at each decision point until a given branch of the data has reached a stopping point. With reference to
Next the algorithm may determine the predictor variable with the highest parameter instability in the branch or remaining subset of data 405. This process may allow the decision points to split the data across the most divisive parameter or predictor variable at each decision point. The algorithm may split the remaining subset across the parameter instability 410 and may generate two new branches using the remaining subsets of the data on either side of the parameter instability 425, 430. As noted above, numerous methods may be used to split the predictor variables. For example, in some embodiments, parameter instability of the predictors may be computed using a class of generalized M-fluctuation tests. These tests may check parameter instability in an M-estimation framework and are based on partial sum processes of M-estimation scores for which functional central limit theorems are derived under the null hypothesis of parameter stability. These tests are discussed in Zeileis and Hornik, Generalized M-Fluctuation Tests for Parameter Instability, SFB “Adaptive Information Systems and Modelling in Economics and Management Science,” June 2003, which is incorporated by reference herein in its entirety. In some embodiments, the supLM statistic may be used for numerical predictor variables. Based on the Lagrange Multiplier test, the supLM statistic determines the supremum of all single split LM statistics to find a split point having the ideal parameter instability. The sequence of single break LM statistics can be computed by taking the squared Euclidean norm of the empirical fluctuation process weighted by its variance. The supLM statistic may be represented by the equation:
In this embodiment epf represents the empirical fluctuation process and π represents the interval. In some embodiments, a χ2 or chi-squared statistic that captures the fluctuation within each of the categories of predictor may be used for categorical partitioning variables. The algorithm may then check if a stopping point has been reached in either of the two new branches 425, 430.
A stopping point may be any set of criteria that determines when a branch has ended including a minimum number of individual data points in a given branch or a minimum amount of variability in a given branch. For example, in some embodiments, if the number of promotions in a branch is below 700, the branch is not split further. In some embodiments, there may be a maximum number of decision points after which the tree stops splitting and forms leaf models. In some embodiments, a branch may not split further if the bonferroni-corrected p-value for the branch is above a certain threshold. For example, in some embodiments the threshold p-value may be 0.0001. In some embodiments, having a more stringent p-value ensures that the tree models are more stable. The stopping point may be any set of criteria, and the generation of the branches may stop all at once or individually as each branch reaches a stopping point. In some embodiments, once a stopping point has been reached, the specific branch generates a leaf model 435, 440, which is a model of the data in each branch.
With reference to
In some embodiments, the random forest method of
Each decision point may have a p-value, such as 0.001 in
Likewise, with the other side of the tree in the embodiment shown in
In some embodiments, the linear regression model may be calculated by finding the equation of the line y=α+/βx that fits the data most accurately. In some methods, this may be determined by minimizing the sum of squares for error (SSE), also known as the sum of squares of the residuals (SSRes). SSE is calculated by the total sum of the square of the actual demand value minus the predicted demand value as shown in the equation:
In this embodiment, yi represents the actual demand for the i-th discount rate, and ŷi represents the predicted demand for the i-th discount rate using the tree model. The linear fit may then be calculated by substituting the linear model for the predicted demand and minimizing the equation:
where SSE represents the sum of squares for error or the residual sum of squares, as described above, and SSTO represents the total sum of squares of the data set.
SSTO is represented as the sum of the squares of the actual demand value minus the mean of the actual demand values as shown in the equation:
In this embodiment,
In some alternative embodiments Mean Square Error (MSE) may be used to determine the accuracy of the model. In some embodiments, MSE may be represented by the equation:
Where ŷi represents the predicted demand value of the i-th discount rate and yi represents the actual demand value of the i-th discount rate out of a total of n predictions.
Demand CalculationThe preceding section described the various embodiments of generating a tree using model-based recursive partitioning. As will now be described in greater detail, the promotion data may be applied to each MOB tree to determine the demand for the promotion at various predetermined discount rates.
The model may then receive a set of decision trees based on the original data 810. As noted above, the original data may be selected from a homogeneous group of promotions in order to ensure the accuracy of the overall model. In some further embodiments, the group of promotions that make up the original data may be chosen based on the type of promotion being presently analyzed. In some alternative embodiments, a global set of promotions are used for all models.
In some embodiments, the tree model generator may not be a part of the system, and the tree models may be received from a memory or network, as discussed below. Some alternative embodiments generate the tree models and apply the promotion data to the models in the same system. Each discount rate may be applied to the promotion information including a promotional value of the promotion and the resulting demand for each discount rate is calculated for each decision tree 815. Within each tree, the promotion information is compared with each decision point, and the comparison follows the branches whose predictor variables correspond to the promotion information. Once a branch corresponding to the promotion information terminates, the leaf/node model at the end of the particular branch may be used to calculate the demand for the promotion. By applying the promotion variables to the equation representing the model, a predicted demand may be determined for the particular tree. In some embodiments, the demand for each discount rate as calculated by the respective decision trees may then be compared 820 and aggregated. In some further embodiments, the demand for each discount rate with respect to the other discount rates may then be compared in order to determine the ideal discount 825. The model determines the total revenue expected from each given discount rate to determine and output an ideal discount rate 830.
With reference to
Some embodiments of the present invention, as shown in
The model may then develop a decision tree using a subset of the original data as in the methods previously discussed 1015. The model may then iteratively apply each discount rate 1020 of the predetermined discount rates to the tree. As previously discussed, in some embodiments, the discount rates may be stored or predetermined by the system or received as an input from the user. In some embodiments, a user may be presented with an option to choose specific discount rates. Additionally or alternatively, if no discount rates are selected, the system may use a default set of discount rates. In some embodiments, the discount rates may be determined from the existing discount rates in the set of original data. For each discount rate that is applied, the model may compute the expected demand for the particular discount rate currently being analyzed 1025.
Once every discount rate has been applied 1030 to the promotion information for a given decision tree, the process may continue 1035 and generates a new MOB tree 1015. Based on the desired number of trees, which may be stored or predetermined by the system or received as an input from the user, the model may iteratively decrement the number of remaining trees until every tree has been generated 1035. In some embodiments, once all the trees have been generated 1035 and each discount rate applied to each tree 1030, the model may then aggregate the data 1040 and output 1045 an indication of the ideal discount rate.
With reference to
The model may then develop a decision tree based on the training set 1125. In some embodiments, the model then obtains predictions on the test set 1130 by applying the predictor variables from the test set to the decision tree 1130. The model may then determine the accuracy of the decision tree using the R2 value of the data 1135 or other similar metric.
In some embodiments, there may optionally be a threshold for the model's accuracy before the tree model is applied to a set of data. In some embodiments a tree model may be discarded if its R2 value is below a certain threshold. For example, some embodiments may exclude some percentage of tree models with the lowest model accuracy (e.g. the bottom 5%). The total number of predetermined trees may include tree models that are thrown out such that a predetermined number of accurate models may be generated, and discarded models are not counted. Alternatively, in some embodiments, the total number of trees may include the tree models that are discarded.
The model may then iteratively apply one or more discount rate 1140 from the set of predetermined discount rates. For each discount rate, the model may compute the expected demand for the promotion at the particular discount rate currently being analyzed 1145.
Once every discount rate has been applied 1150 to the promotion information for a given decision tree the process may continue 1155 and generates a new tree 1110. Based on the desired number of trees, the model may iteratively decrement the number of remaining trees until every tree has been generated 1155. Once all the trees have been generated 1155 and the discount rates for each discount rate applied to each tree 1150, the model may then aggregate the data 1160 and output 1165 an indication of the ideal discount rate.
In some further embodiments, actual data points of demand 1215 may be taken either as part of the evaluation process using the test set, or the actual data points 1215 may be acquired through real trials of the promotion.
The plot in
The style of the output may also depend on the user. For example, in some embodiments, the user is a promotion and marketing service. If the promotion and marketing service desires a full accepted value vs. demand curve, the system may output a full curve. If, however, the promotion and marketing service desires a simplified presentation of just the ideal discount rate, the system may provide a text or graphical output of the discount rate. In another embodiment, the provider may be the user. In this embodiment, the provider inputs its promotion information and receives an output indicating an ideal discount rate, an accepted value vs demand curve, or any other desired output. Additionally, some embodiments of the present invention may be built in tools in other systems, such as a spreadsheet, to calculate the ideal discount and price elasticity of demand information for the user.
Computing Device ArchitectureIn some embodiments of the present invention, an apparatus, such as a demand module 100, aggregator module 115, tree generator module 110, leaf generator module 250, evaluation module 305, 310, or combined evaluator module 315 may be embodied by a computing device. The computing device may include or be associated with an apparatus 1300 as shown in
In some embodiments, the processor 1305 (and/or co-processors or any other processing circuitry assisting or otherwise associated with the processor) may be in communication with the memory device 1310 via a bus for passing information among components of the apparatus. The memory device may include, for example, one or more volatile and/or non-volatile memories. In other words, for example, the memory device may be an electronic storage device (e.g., a computer readable storage medium) comprising gates configured to store data (e.g., bits) that may be retrievable by a machine (e.g., a computing device like the processor). The memory device may be configured to store information, data, content, applications, instructions, or the like for enabling the apparatus 1300 to carry out various functions in accordance with an example embodiment of the present invention. For example, the memory device could be configured to buffer input data for processing by the processor. Additionally or alternatively, the memory device could be configured to store instructions for execution by the processor.
As noted above, the apparatus 1300 may configured to employ an example embodiment of the present invention. However, in some embodiments, the apparatus may be embodied as a chip or chip set. In other words, the apparatus may comprise one or more physical packages (e.g., chips) including materials, components and/or wires on a structural assembly (e.g., a baseboard). The structural assembly may provide physical strength, conservation of size, and/or limitation of electrical interaction for component circuitry included thereon. The apparatus may therefore, in some cases, be configured to implement an embodiment of the present invention on a single chip or as a single “system on a chip.” As such, in some cases, a chip or chipset may constitute means for performing one or more operations for providing the functionalities described herein.
The processor 1305 may be embodied in a number of different ways. For example, the processor may be embodied as one or more of various hardware processing means such as a coprocessor, a microprocessor, a controller, a digital signal processor (DSP), a processing element with or without an accompanying DSP, or various other processing circuitry including integrated circuits such as, for example, an ASIC (application specific integrated circuit), an FPGA (field programmable gate array), a microcontroller unit (MCU), a hardware accelerator, a special-purpose computer chip, or the like. As such, in some embodiments, the processor may include one or more processing cores configured to perform independently. A multi-core processor may enable multiprocessing within a single physical package. Additionally or alternatively, the processor may include one or more processors configured in tandem via the bus to enable independent execution of instructions, pipelining and/or multithreading.
In an example embodiment, the processor 1305 may be configured to execute instructions stored in the memory device 1310 or otherwise accessible to the processor. Alternatively or additionally, the processor may be configured to execute hard coded functionality. As such, whether configured by hardware or software methods, or by a combination thereof, the processor may represent an entity (e.g., physically embodied in circuitry) capable of performing operations according to an embodiment of the present invention while configured accordingly. Thus, for example, when the processor is embodied as an ASIC, FPGA or the like, the processor may be specifically configured hardware for conducting the operations described herein. Alternatively, as another example, when the processor is embodied as an executor of software instructions, the instructions may specifically configure the processor to perform the algorithms and/or operations described herein when the instructions are executed. However, in some cases, the processor may be a processor of a specific device configured to employ an embodiment of the present invention by further configuration of the processor by instructions for performing the algorithms and/or operations described herein. The processor may include, among other things, a clock, an arithmetic logic unit (ALU) and logic gates configured to support operation of the processor. In an example embodiment, the processor may also include user interface circuitry configured to control at least some functions of one or more elements of the user interface 1320.
Meanwhile, the communication interface 1315 may be any means such as a device or circuitry embodied in either hardware or a combination of hardware and software that is configured to receive and/or transmit data between apparatus 1300 and databases (not pictured). In this regard, the communication interface 1315 may include, for example, an antenna (or multiple antennas) and supporting hardware and/or software for enabling communications wirelessly. Additionally or alternatively, the communication interface may include the circuitry for interacting with the antenna(s) to cause transmission of signals via the antenna(s) or to handle receipt of signals received via the antenna(s). For example, the communications interface may be configured to communicate wirelessly with a display, such as via Wi-Fi, Bluetooth or other wireless communications techniques. In some instances, the communication interface may alternatively or also support wired communication. As such, for example, the communication interface may include a communication modem and/or other hardware/software for supporting communication via cable, digital subscriber line (DSL), universal serial bus (USB) or other mechanisms. For example, the communication interface may be configured to communicate via wired communication with other components of the computing device.
The user interface 1320 may be in communication with the processor 1305, such as the user interface circuitry, to receive an indication of a user input and/or to provide an audible, visual, mechanical, or other output to a user. As such, the user interface may include, for example, a keyboard, a mouse, a joystick, a display, a touch screen display, a microphone, a speaker, and/or other input/output mechanisms. In some embodiments, a display may refer to display on a screen, on a wall, on glasses (e.g., near-eye-display), in the air, etc. The user interface may also be in communication with the memory 1310 and/or the communication interface 1315, such as via a bus.
In one embodiment, a system to generate tree models may be provided herein. In some embodiments, a system that applies a promotion data and discount rates to one or more tree models may be provided. In other embodiments, a system may be provided that both generates tree models and applies promotion data to the models. Some embodiments of the system may be configured to increase (or maximize) gross revenue or determine another ideal discount rate by adjusting a discount rate or accepted value for a promotion for each tree while collecting the resulting data.
In one example embodiment, the system is configured to provide at least one of (1) more unit sales for a promotion; (2) higher bookings and gross revenue; (3) higher margins for popular promotions; and (4) more commerce, for example, on the promotion and marketing service platform, all of which may determine the ideal discount rate and/or ideal accepted value for the promotion and marketing service.
Regarding the inputs to the demand module, there are four main pieces. (1) Promotion Information: which may include a promotional value of the promotion and one or more predictor variables for the promotion; (2) Discount Rates: one or more possible discount rates to consider in determining the ideal discount rate, which may include an entire range of discounts (e.g. 0-50%) or a list of specific discount rates (e.g. 10%, 20%, 30%) (note, however, that promotional value and discount rate may be simplified and combined into one or more possible accepted values); (3) MOB Trees: trees may be generated by the same system as the demand module, or may be input from elsewhere; (4) Optional Information: any options for the user in generating and applying the models, such as random forest vs. standard bagging or sub-sampling vs. bootstrapping.
Regarding the inputs to the tree generation module, there are two main pieces. (1) Original Data: a set of data for previous promotions that may include information about each promotion as described above; and (2) Desired Number of Trees: either an algorithm for determining a number of trees to generate or a specific number of trees may be provided.
Many modifications and other embodiments of the inventions set forth herein will come to mind to one skilled in the art to which these embodiments of the invention pertain having the benefit of the teachings presented in the foregoing descriptions and the associated drawings. Therefore, it is to be understood that the embodiments of the invention are not to be limited to the specific embodiments disclosed and that modifications and other embodiments are intended to be included within the scope of the appended claims. Although specific terms are employed herein, they are used in a generic and descriptive sense only and not for purposes of limitation.
Claims
1-57. (canceled)
58. An apparatus comprising at least one processor and at least one memory having computer-coded instructions stored thereon that, in execution with the at least one processor, configures the apparatus to:
- receive an original data set corresponding to a plurality of predictor parameters;
- generate, based at least in part on the original data set, a plurality of model-based decision trees, each model-based decision tree comprising one or more branches, wherein each branch of the one or more branches is associated with a data model configured based at least in part on a partitioned subset of the original data set determined based on at least one instability parameter corresponding to each decision point in the model branch;
- apply a plurality of percentage differential data values to each decision tree of the plurality of predictor parameters to generate a set of model output data;
- aggregate the set of model output data to generate preferred output data associated with the plurality of percentage differential data values and the set of model output data; and
- output a representation of the preferred output data to a computing device.
59. The apparatus according to claim 58, wherein to generate the plurality of model-based decision trees, the apparatus is configured to:
- recursively perform: in an instance where a decision point of the one or more decision points is determined not to comprise a leaf node: determine, for a decision point of the one or more decision points, an instability parameter from one or more predictor parameters of the plurality of the predictor parameters; identify at least a first subset of a source data set of the original data set based on the instability parameter, the first subset of the source data set corresponding to a first sub-branch from the decision point, and a second subset of the source data set of the original data set based on the instability parameter, the second subset of the source data set corresponding to a second sub-branch from the decision point; and in an instance where a decision point of the one or more decision points is determined to comprise the leaf node: generate the data model corresponding to the leaf node based on the source data set.
60. The apparatus according to claim 58, wherein the plurality of model-based decision trees each comprise at least one decision point associated with splitting at least a portion of the original data set based on a random subset of the plurality of predictor parameters.
61. The apparatus according to claim 58, wherein the plurality of model-based decision trees each comprise at least one decision point associated with splitting at least a portion of the original data set based on a highest instability parameter of the plurality of predictor parameters.
62. The apparatus according to claim 58, wherein to output the representation of the preferred output data to the computing device, the apparatus is configured to:
- cause rendering, to the computing device, of a user interface comprising at least the preferred output data.
63. The apparatus according to claim 58, wherein the representation of the preferred output data comprises a preferred percentage differential data value of the plurality of preferred percentage differential data value.
64. The apparatus according to claim 58, wherein to aggregate the model output data, the apparatus is configured to:
- generate a plurality of aggregated output data values corresponding to the plurality of percentage differential data values by: for each particular percentage differential data value of the plurality of percentage differential data values, aggregating a subset of model output data from the set of model output data, the subset of model output data comprising output from each model-based decision tree of the plurality of model-based decision trees for the particular percentage differential data value of the plurality of percentage differential data values to generate an aggregated output data value corresponding to the particular percentage differential data value;
- combine the plurality of aggregated output data values to generate the preferred output data; and
- output a preferred percentage differential data value of the plurality of preferred percentage differential data value and one or more of the plurality of aggregated output data values.
65. A computer-implemented method comprising:
- receiving an original data set corresponding to a plurality of predictor parameters;
- generating, based at least in part on the original data set, a plurality of model-based decision trees, each model-based decision tree comprising one or more branches, wherein each branch of the one or more branches is associated with a data model configured based at least in part on a partitioned subset of the original data set determined based on at least one instability parameter corresponding to each decision point in the model branch;
- applying a plurality of percentage differential data values to each decision tree of the plurality of predictor parameters to generate a set of model output data;
- aggregating the set of model output data to generate preferred output data associated with the plurality of percentage differential data values and the set of model output data; and
- outputting a representation of the preferred output data to a computing device.
66. The computer-implemented method according to claim 65, wherein generating the plurality of model-based decision trees comprises:
- recursively performing: in an instance where a decision point of the one or more decision points is determined not to comprise a leaf node: determining, for a decision point of the one or more decision points, an instability parameter from one or more predictor parameters of the plurality of the predictor parameters; identifying at least a first subset of a source data set of the original data set based on the instability parameter, the first subset of the source data set corresponding to a first sub-branch from the decision point, and a second subset of the source data set of the original data set based on the instability parameter, the second subset of the source data set corresponding to a second sub-branch from the decision point; and in an instance where a decision point of the one or more decision points is determined to comprise the leaf node: generating the data model corresponding to the leaf node based on the source data set.
67. The computer-implemented method according to claim 65, wherein the plurality of model-based decision trees each comprise at least one decision point associated with splitting at least a portion of the original data set based on a random subset of the plurality of predictor parameters.
68. The computer-implemented method according to claim 65, wherein the plurality of model-based decision trees each comprise at least one decision point associated with splitting at least a portion of the original data set based on a highest instability parameter of the plurality of predictor parameters.
69. The computer-implemented method according to claim 65, wherein outputting the representation of the preferred output data to the computing device comprises:
- causing rendering, to the computing device, of a user interface comprising at least the preferred output data.
70. The computer-implemented method according to claim 65, wherein the representation of the preferred output data comprises a preferred percentage differential data value of the plurality of preferred percentage differential data value.
71. The computer-implemented method according to claim 65, wherein aggregating the model output data comprises:
- generating a plurality of aggregated output data values corresponding to the plurality of percentage differential data values by: for each particular percentage differential data value of the plurality of percentage differential data values, aggregating a subset of model output data from the set of model output data, the subset of model output data comprising output from each model-based decision tree of the plurality of model-based decision trees for the particular percentage differential data value of the plurality of percentage differential data values to generate an aggregated output data value corresponding to the particular percentage differential data value; and
- combining the plurality of aggregated output data values to generate the preferred output data.
72. A computer program product comprising a non-transitory computer readable medium having computer program instructions stored therein that, in execution with at least one processor, are configured for:
- receiving an original data set corresponding to a plurality of predictor parameters;
- generating, based at least in part on the original data set, a plurality of model-based decision trees, each model-based decision tree comprising one or more branches, wherein each branch of the one or more branches is associated with a data model configured based at least in part on a partitioned subset of the original data set determined based on at least one instability parameter corresponding to each decision point in the model branch;
- applying a plurality of percentage differential data values to each decision tree of the plurality of predictor parameters to generate a set of model output data;
- aggregating the set of model output data to generate preferred output data associated with the plurality of percentage differential data values and the set of model output data; and
- outputting a representation of the preferred output data to a computing device.
73. The computer program product according to claim 72, wherein to generate the plurality of model-based decision trees, the computer program product is configured for:
- recursively performing: in an instance where a decision point of the one or more decision points is determined not to comprise a leaf node: determining, for a decision point of the one or more decision points, an instability parameter from one or more predictor parameters of the plurality of the predictor parameters; identifying at least a first subset of a source data set of the original data set based on the instability parameter, the first subset of the source data set corresponding to a first sub-branch from the decision point, and a second subset of the source data set of the original data set based on the instability parameter, the second subset of the source data set corresponding to a second sub-branch from the decision point; and in an instance where a decision point of the one or more decision points is determined to comprise the leaf node: generating the data model corresponding to the leaf node based on the source data set.
74. The computer program product according to claim 72, wherein the plurality of model-based decision trees each comprise at least one decision point associated with splitting at least a portion of the original data set based on a random subset of the plurality of predictor parameters.
75. The computer program product according to claim 72, wherein the plurality of model-based decision trees each comprise at least one decision point associated with splitting at least a portion of the original data set based on a highest instability parameter of the plurality of predictor parameters.
76. The computer program product according to claim 72, wherein to output the representation of the preferred output data to the computing device, the computer program product is configured for:
- causing rendering, to the computing device, of a user interface comprising at least the preferred output data.
77. The computer program product according to claim 72, wherein to aggregate the model output data, the computer program product is configured for:
- generating a plurality of aggregated output data values corresponding to the plurality of percentage differential data values by: for each particular percentage differential data value of the plurality of percentage differential data values, aggregating a subset of model output data from the set of model output data, the subset of model output data comprising output from each model-based decision tree of the plurality of model-based decision trees for the particular percentage differential data value of the plurality of percentage differential data values to generate an aggregated output data value corresponding to the particular percentage differential data value; and
- combining the plurality of aggregated output data values to generate the preferred output data.
Type: Application
Filed: Oct 15, 2020
Publication Date: Aug 5, 2021
Inventor: Nikhil Ranjan GARGE (Aurangabad)
Application Number: 17/071,177