{"id":2511,"date":"2019-08-29T06:31:34","date_gmt":"2019-08-29T06:31:34","guid":{"rendered":"https:\/\/www.aiproblog.com\/index.php\/2019\/08\/29\/from-optimization-to-prescriptive-analytics\/"},"modified":"2019-08-29T06:31:34","modified_gmt":"2019-08-29T06:31:34","slug":"from-optimization-to-prescriptive-analytics","status":"publish","type":"post","link":"https:\/\/www.aiproblog.com\/index.php\/2019\/08\/29\/from-optimization-to-prescriptive-analytics\/","title":{"rendered":"From Optimization to Prescriptive Analytics"},"content":{"rendered":"<p>Author: William Vorhies<\/p>\n<div>\n<p><strong><em>Summary:<\/em><\/strong><em>\u00a0 True prescriptive analytics requires the use of real optimization techniques that very few applications actually use.\u00a0 Here\u2019s a refresher on optimization with examples of where and how they\u2019re best used.<\/em><\/p>\n<p>\u00a0<\/p>\n<p><a href=\"https:\/\/storage.ning.com\/topology\/rest\/1.0\/file\/get\/1133364747?profile=original\" target=\"_blank\" rel=\"noopener noreferrer\"><img decoding=\"async\" src=\"https:\/\/storage.ning.com\/topology\/rest\/1.0\/file\/get\/1133364747?profile=RESIZE_710x\" width=\"350\" class=\"align-right\"><\/a>Predictive analytics and optimization have gone hand in hand since the very beginning.\u00a0 But in 2014 some erudite journal decided we needed another phrase for this combo and it became Prescriptive Analytics, theoretically differentiating what could happen (predictive) from what should happen (prescriptive) through the application of optimization.<\/p>\n<p>Originally I felt strongly that this was <a href=\"https:\/\/www.datasciencecentral.com\/profiles\/blogs\/prescriptive-versus-predictive-analytics-a-distinction-without-a\"><em><u>a distinction without a difference<\/u><\/em><\/a> and only served to confuse our customers who were having a hard enough time five years ago understanding why they should even be doing predictive.\u00a0 Time passed.\u00a0 I was over ruled and prescriptive analytics became a fixed part of our nomenclature.<\/p>\n<p>As our attention has been pulled increasingly to AI, the greater business value by far is still being generated by ML and predictive models.\u00a0 And although a great deal of lip service is being given to using models to determine what should be done, very little of this involves true optimization.<\/p>\n<p>The typical business uses such as \u2018next best offer\u2019 or churn reduction or even fraud detection are much more likely to be used in the context of a rules based engine or even robotic process automation.\u00a0 It seems time to review where true optimization fits in this and to outline some of the problem types where optimization should be used.<\/p>\n<p>\u00a0<\/p>\n<p><span style=\"font-size: 12pt;\"><strong>Confusion over Optimization<\/strong><\/span><\/p>\n<p>Any quick survey of the literature will find a definition for optimization similar to this:<\/p>\n<p><em>The act of obtaining the best results under the given circumstances.\u00a0 The goal being to minimize the required effort or maximize the desired benefit.<\/em><\/p>\n<p>The problem is that this definition is much too broad to be used in data science.\u00a0 Starting with differentiating between single variable and multiple variable optimization.<\/p>\n<p>\u00a0<\/p>\n<p><span style=\"font-size: 12pt;\"><strong>Single Variable versus Multiple Variable Optimization<\/strong><\/span><\/p>\n<p>To clarify, we are talking about the dependent or output variable which is the goal of every predictive model.\u00a0 We apply an appropriate cost function and use multiple techniques to get a best fit model.\u00a0 In almost all cases this involves a gradient descent calculation like SGD which is itself the very definition of optimization.<\/p>\n<p>So although every model we create is essentially an optimization, this is decidedly not what we\u2019re talking about when talking about optimization in the context of prescriptive analytics.<\/p>\n<p>True optimization problems need to be expressed in terms of at least two (seemingly conflicting) functions.\u00a0 For example:<\/p>\n<ul>\n<li>In pricing, select the optimum price that maximizes both total revenue and profit.<\/li>\n<li>In scheduling and routing (the traveling salesman problem) select the route that is the shortest and also allows visits to all necessary locations.<\/li>\n<li>In physical machinery, for example in this case a waste incinerator, select the greatest throughput volume that does not exceed maximum CO2 output levels.<\/li>\n<li>In human purchase behavior, select the combination of promotional offers that both maximizes sales and profit.<\/li>\n<\/ul>\n<p>It should be evident that each of these examples contains conflicting goals.\u00a0 Maximizing unit sales for example could easily be achieved by allowing price to fall well below cost.\u00a0 However maximizing for both unit sales and profit requires looking at where these two different curves intersect, showing both the lowest price to earn maximum unit sales while at the same time earning the greatest profit.<\/p>\n<p>\u00a0<\/p>\n<p><span style=\"font-size: 12pt;\"><strong>Defining the Problem<\/strong><\/span><\/p>\n<p>Optimization problems are said to require a four part definition:<\/p>\n<p><strong>Decision Variable:\u00a0<\/strong> The measure to be optimized (maximized or minimized, e.g. profit, travel time).<\/p>\n<p><strong>Objective:<\/strong>\u00a0 Measured by minimization or maximization.<\/p>\n<p><strong>Constraints:<\/strong>\u00a0 This is the most important element and describes the formulas by which the two conflicting forces behave.\u00a0 For example trash throughput versus CO2 production, or revenue versus profit.<\/p>\n<p><strong>Bounds:<\/strong>\u00a0 Bounds define the limits of the feasible solutions.\u00a0 It might be something seemingly obvious like prices cannot be a negative number or that the operating temperature of the waste incinerator cannot exceed some logical physical maximum temperature.\u00a0 Many optimization problems don\u2019t define bounds so their solutions are open to any feasible solution in the search space.<\/p>\n<p>\u00a0<\/p>\n<p><span style=\"font-size: 12pt;\"><strong>More Than Two Variables<\/strong><\/span><\/p>\n<p>While it\u2019s theoretically possible to have three or more variable to be optimized simultaneously, typically this involves such computational complexity that it\u2019s not recommended.<\/p>\n<p>For example, in the profitability example we might seek to select the promotion that 1.) maximizes sales, 2.) maximizes profit, and 3.) focuses only on a specific characteristic of merchandise such as inventory that\u2019s over 60 days old.\u00a0 It\u2019s almost always better to reduce the third variable to a bounds, and if necessary segment the problem by different bounds groupings.<\/p>\n<p>\u00a0<\/p>\n<p><span style=\"font-size: 12pt;\"><strong>Solution Techniques and Other Considerations<\/strong><\/span><\/p>\n<p>The mathematics and techniques available for optimization are almost as complex and multi-faceted as the techniques of machine learning itself.\u00a0 Start with the issue of whether the challenge falls into the category of \u2018Convex Optimization Problems\u2019 or \u2018Non-Convex\u2019.<\/p>\n<p>Convex optimization problems can be shown to have a single optimum answer.\u00a0 Imagine the case of simply charting the two opposing constraint functions to see where they intersect, representing the single optimum solution.<\/p>\n<p><a href=\"https:\/\/storage.ning.com\/topology\/rest\/1.0\/file\/get\/1133377794?profile=original\" target=\"_blank\" rel=\"noopener noreferrer\"><img decoding=\"async\" src=\"https:\/\/storage.ning.com\/topology\/rest\/1.0\/file\/get\/1133377794?profile=RESIZE_710x\" width=\"350\" class=\"align-right\"><\/a>More common and certainly familiar to data scientists are the \u2018non-convex\u2019.\u00a0 It\u2019s easy to visualize these as the complex solution spaces we all encounter with multiple local minima and maxima.\u00a0 There are dozens of techniques to address these situations.<\/p>\n<p>One is to bound the problem to a narrow group of data that is likely to have only a single local optima.\u00a0 Frequently however it\u2019s necessary to use a multiple-start technique that randomly begins the search process at different places in the solution space and collects a group of local optima that can subsequently be compared.\u00a0 Evolutionary genetic algorithms are favored in this group.\u00a0 Still no guarantee that the true optima has been located.\u00a0<\/p>\n<p>Swarm techniques of which there are many with many clever names like Ant Colony, Firefly optimization, or Bee optimization are available.\u00a0 These are multiple start techniques but instead of sequential iterations, these are agents which start simultaneously.\u00a0 Despite the connotation of \u2018swarm\u2019, generally about 10 or 12 independent agents are all that\u2019s required.\u00a0 Here\u2019s a somewhat comprehensive list of optimization techniques.<\/p>\n<ol>\n<li>Ant colony optimization (ACO); I Dorigo and Stutzle (2004)<\/li>\n<li>Artificial immune system optimization; Cutello and Nicosia (2002)<\/li>\n<li>Bacterial foraging optimization; Kim, Abraham and Cho (2007)<\/li>\n<li>Bee optimization; Karaboga and Bosturk (2007) Pham et al (2006)<\/li>\n<li>Cuckoo algorithm; Yang and Deb (2009, 2010)<\/li>\n<li>Differential evolution (DE); Storn and Price (1995, 1997)<\/li>\n<li>Firefly optimization; Yang (2010)<\/li>\n<li>Fish optimization; Huang and Zhou (2008)<\/li>\n<li>Genetic algorithms (GA); Haupt and Haupt (2004)<\/li>\n<li>Particle swarm optimization (PSO), Binary Particle Swarm Optimization (BPSO); Eberhart and Kennedy (1995)<\/li>\n<li>Raindrop optimization; Shah-Hosseini (2009)<\/li>\n<li>Simulated annealing; Kirkpatrick, Gelatt and Vecchi (1983)<\/li>\n<li>Biogeography-based optimization (BBO),<\/li>\n<li>Chemical reaction optimization (CRO)<\/li>\n<li>A group search optimizer (GSO),<\/li>\n<li>Imperialist algorithm<\/li>\n<li>Swine flow Optimization Algorithm.<\/li>\n<li>Teaching Learning Based Optimization (TLBO)<\/li>\n<li>Bayesian Optimization Algorithms (BOA)<\/li>\n<li>Population-based incremental learning (PBIL)<\/li>\n<li>Evolution strategy with covariance matrix adaptation (CMA-ES)<\/li>\n<li>Charged system search Optimization Algorithm<\/li>\n<li>Continuous scatter search (CSS) Optimization Algorithm<\/li>\n<li>Tabu search Continuous Optimization<\/li>\n<li>Evolutionary programming<\/li>\n<li>League championship algorithm<\/li>\n<li>Harmony search Optimization algorithm<\/li>\n<li>Gravitational search algorithm Optimization<\/li>\n<li>Evolution strategies Optimization<\/li>\n<li>Firework algorithm, Ying Tan, 2010<\/li>\n<li>Big-bang big-crunch Optimization algorithm, OK Erol, 2006<\/li>\n<li>Artificial bee colony optimization (ABC), Karaboga, 2005<\/li>\n<li>Backtracking Search Optimization algorithm (BSA)<\/li>\n<li>Differential Search Algorithm (DSA) (A modernized particle swarm optimization algorithm)<\/li>\n<li>Hybrid Particle Swarm Optimization and Gravitational Search Algorithm (PSOGSA)<\/li>\n<li>Multi-objective bat algorithm (MOBA) Binary Bat Algorithm (BBA)<\/li>\n<li>Flower Pollination Algorithm<\/li>\n<li>The Wind Driven Optimization (WDO) algorithm<\/li>\n<li>Grey Wolf Optimizer (GWO)<\/li>\n<li>Generative Algorithms<\/li>\n<li>Hybrid Differential Evolution Algorithm with Adaptive Crossover Mechanism<\/li>\n<li>Lloyd\u2019s Algorithm<\/li>\n<li>One Rank Cuckoo Search (ORCS) algorithm: An improved cuckoo search optimization algorithm<\/li>\n<li>Huffman Algorithm<\/li>\n<li>Active-Set Algorithm (ASA)<\/li>\n<li>Random Search Algorithm<\/li>\n<li>Alternating Conditional Expectation algorithm (ACE)<\/li>\n<li>Normalized Normal Constraint (NNC) algorithm<\/li>\n<\/ol>\n<p>This is not to say that you need to master more than a few of these, but you should be aware that selecting the right algorithm is not simply selecting whatever default optimizer might be available in your favorite package.<\/p>\n<p>If you find an opportunity for true optimization, and not just an application of a simple rule based on model score, then you may be able to create a truly optimized outcome for your organization.<\/p>\n<p>\u00a0<\/p>\n<p>\u00a0<\/p>\n<p><a href=\"https:\/\/www.datasciencecentral.com\/profiles\/blog\/list?user=0h5qapp2gbuf8\"><em><u>Other articles by Bill Vorhies<\/u><\/em><\/a><\/p>\n<p>\u00a0<\/p>\n<p>About the author:\u00a0 Bill is Contributing Editor for Data Science Central.\u00a0 Bill is also President &#038; Chief Data Scientist at Data-Magnum and has practiced as a data scientist since 2001.\u00a0 \u00a0His articles have been read more than 2.0 million times. He can be reached at:<\/p>\n<p><a href=\"mailto:Bill@DataScienceCentral.com\">Bill@DataScienceCentral.com<\/a> <span>or<\/span> <a href=\"mailto:Bill@Data-Magnum.com\">Bill@Data-Magnum.com<\/a><\/p>\n<\/div>\n<p><a href=\"https:\/\/www.datasciencecentral.com\/xn\/detail\/6448529:BlogPost:803292\">Go to Source<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Author: William Vorhies Summary:\u00a0 True prescriptive analytics requires the use of real optimization techniques that very few applications actually use.\u00a0 Here\u2019s a refresher on optimization [&hellip;] <span class=\"read-more-link\"><a class=\"read-more\" href=\"https:\/\/www.aiproblog.com\/index.php\/2019\/08\/29\/from-optimization-to-prescriptive-analytics\/\">Read More<\/a><\/span><\/p>\n","protected":false},"author":1,"featured_media":466,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_bbp_topic_count":0,"_bbp_reply_count":0,"_bbp_total_topic_count":0,"_bbp_total_reply_count":0,"_bbp_voice_count":0,"_bbp_anonymous_reply_count":0,"_bbp_topic_count_hidden":0,"_bbp_reply_count_hidden":0,"_bbp_forum_subforum_count":0,"footnotes":""},"categories":[26],"tags":[],"_links":{"self":[{"href":"https:\/\/www.aiproblog.com\/index.php\/wp-json\/wp\/v2\/posts\/2511"}],"collection":[{"href":"https:\/\/www.aiproblog.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.aiproblog.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.aiproblog.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.aiproblog.com\/index.php\/wp-json\/wp\/v2\/comments?post=2511"}],"version-history":[{"count":0,"href":"https:\/\/www.aiproblog.com\/index.php\/wp-json\/wp\/v2\/posts\/2511\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.aiproblog.com\/index.php\/wp-json\/wp\/v2\/media\/474"}],"wp:attachment":[{"href":"https:\/\/www.aiproblog.com\/index.php\/wp-json\/wp\/v2\/media?parent=2511"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.aiproblog.com\/index.php\/wp-json\/wp\/v2\/categories?post=2511"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.aiproblog.com\/index.php\/wp-json\/wp\/v2\/tags?post=2511"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}