{"id":13823,"date":"2018-09-13T11:38:23","date_gmt":"2018-09-13T09:38:23","guid":{"rendered":"https:\/\/www.inovex.de\/blog\/?p=13823"},"modified":"2023-01-05T14:37:19","modified_gmt":"2023-01-05T13:37:19","slug":"time-series-forecasting-machine-learning","status":"publish","type":"post","link":"https:\/\/www.inovex.de\/de\/blog\/time-series-forecasting-machine-learning\/","title":{"rendered":"Time Series Forecasting with Machine Learning Models"},"content":{"rendered":"<p>Recently, Machine Learning (ML) models have been widely discussed and successfully applied in time series forecasting tasks (Bontempi et al., 2012). In this blog article we explain an exemplary process of how time series forecasting tasks can be solved with machine learning models, starting with the problem modeling and ending with visualizing the results by embedding the models in a web app for demonstration purposes. To illustrate this process we use a real-world example: forecasting ride-hailing demand based on historical bookings.<!--more--><\/p>\n<p>Ride-hailing is a new form of On-Demand Mobility (ODM), where a customer can digitally hail a ride via a mobile application. Common examples for ride-hailing services are Uber or Lyft. Offering a service that is both cost effective and of high quality for the customer requires the efficient addressing of the supply- demand disequilibrium, which can be alleviated by accurately predicting passenger demand.<\/p>\n<p>In the following we will first explain how to model the forecasting problem and then describe how embedding the models in a web app can be helpful to communicate and assess the forecasting results.<\/p>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_82_2 counter-hierarchy ez-toc-counter ez-toc-custom ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\"><p class=\"ez-toc-title\" style=\"cursor:inherit\"><\/p>\n<\/div><nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/www.inovex.de\/de\/blog\/time-series-forecasting-machine-learning\/#Problem-Modelling\" >Problem Modelling<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/www.inovex.de\/de\/blog\/time-series-forecasting-machine-learning\/#Assessing-the-Forecasting-Performance\" >Assessing the Forecasting Performance<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/www.inovex.de\/de\/blog\/time-series-forecasting-machine-learning\/#Summary\" >Summary<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/www.inovex.de\/de\/blog\/time-series-forecasting-machine-learning\/#Literature\" >Literature<\/a><\/li><\/ul><\/nav><\/div>\n<h2><span class=\"ez-toc-section\" id=\"Problem-Modelling\"><\/span>Problem Modelling<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Our given data set contains historical bookings where each entry relates to a unique booking of the service, containing, among other information, a booking time stamp.<\/p>\n<p>In our concrete use case we aim to forecast the next 168 hours of demand. Hence we first have to transform the time series data to represent an hourly basis. After cleaning and aggregating the data the result is a time series of the format:<\/p>\n<p>&nbsp;<\/p>\n<table align=\"center\">\n<tbody>\n<tr style=\"border-top: 3px solid grey; border-bottom: double grey;\">\n<td style=\"width: 180px;\">dateindex<\/td>\n<td style=\"width: 45px;\">trips<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 180px;\">2017-08-09 00:00<\/td>\n<td style=\"width: 45px;\">141<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 180px;\">2017-08-09 01:00<\/td>\n<td style=\"width: 45px;\">75<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 180px;\">2017-08-09 02:00<\/td>\n<td style=\"width: 45px;\">42<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 180px;\">\u2026<\/td>\n<td style=\"width: 45px;\">\u2026<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 180px;\">2017-08-09 20:00<\/td>\n<td style=\"width: 45px;\">253<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 180px;\">2017-08-09 21:00<\/td>\n<td style=\"width: 45px;\">245<\/td>\n<\/tr>\n<tr style=\"border-bottom: 3px solid grey;\">\n<td style=\"width: 180px;\">2017-08-09 22:00<\/td>\n<td style=\"width: 45px;\">190<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&nbsp;<\/p>\n<p>An autocorrelation analysis on this data (a measure of the internal correlation within a time series) shows the correlation between the demand of successive hours. The correlation is particularly strong for the preceding hour (t-1), the same hour on the days before (e.g. t-24) and the same hour on the same day in preceding weeks (e.g. t-168).<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-13834 size-large\" src=\"https:\/\/www.inovex.de\/wp-content\/uploads\/2018\/09\/autocorrelation-1024x512.png\" alt=\"An autocorrelation chart for hails and hours\" width=\"1024\" height=\"512\" srcset=\"https:\/\/www.inovex.de\/wp-content\/uploads\/2018\/09\/autocorrelation-1024x512.png 1024w, https:\/\/www.inovex.de\/wp-content\/uploads\/2018\/09\/autocorrelation-300x150.png 300w, https:\/\/www.inovex.de\/wp-content\/uploads\/2018\/09\/autocorrelation-768x384.png 768w, https:\/\/www.inovex.de\/wp-content\/uploads\/2018\/09\/autocorrelation-1536x768.png 1536w, https:\/\/www.inovex.de\/wp-content\/uploads\/2018\/09\/autocorrelation-2048x1024.png 2048w, https:\/\/www.inovex.de\/wp-content\/uploads\/2018\/09\/autocorrelation-1920x960.png 1920w, https:\/\/www.inovex.de\/wp-content\/uploads\/2018\/09\/autocorrelation-400x200.png 400w, https:\/\/www.inovex.de\/wp-content\/uploads\/2018\/09\/autocorrelation-360x180.png 360w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/p>\n<p>To be able to use our time series data to train our ML models we first have to transform it into a supervised learning problem (more precisely, a regression task). More formally spoken, we can do so by creating an input data matrix \\( X \\) as a \\( [(N-n-h) \\times n] \\) matrix and the output matrix\u00a0\\( Y \\) as a\u00a0 \\( [(N \u2212 n \u2212 h) \u00d7 h]\u00a0 \\) matrix, where \\( y_i \\) represents the observation value in a certain hour, \\( N \\) is the total number of observations, \\( n \\) is the number of previous values to be considered as input features and \\( h \\) is the forecasting horizon:<\/p>\n<p>\\(\\begin{equation}X = \\left[\\begin{array}{l l l l}y*{1} &amp; y*{2} &amp; \\dots &amp; y\\_{n} \\\\y*{2} &amp; y*{3} &amp; \\dots &amp; y\\_{n+1} \\\\\\vdots &amp; \\vdots &amp; \\vdots &amp; \\vdots \\\\y*{N-n-h} &amp; y*{N-n-h+1} &amp; \\dots &amp; y\\_{N-h} \\\\\\end{array}\\right]\\end{equation}\\)<\/p>\n<p>\\(\\begin{equation}Y = \\left[\\begin{array}{l l l l}y*{n+1} &amp; y*{n+2} &amp; \\dots &amp; y\\_{n+h} \\\\y*{n+2} &amp; y*{n+3} &amp; \\dots &amp; y\\_{n+h+1} \\\\\\vdots &amp; \\vdots &amp; \\vdots &amp; \\vdots \\\\y*{N-h+1} &amp; y*{N-h+2} &amp; \\dots &amp; y\\_{N} \\\\\\end{array}\\right]\\end{equation}\\)<\/p>\n<p>&nbsp;<\/p>\n<p>With \\( h = 168 \\) and\u00a0 \\( n = 168 \\) the resulting data frame looks as follows:<\/p>\n<p>&nbsp;<\/p>\n<table align=\"center\">\n<tbody>\n<tr style=\"border-top: 3px solid grey; border-bottom: double grey;\">\n<td style=\"width: 130px;\">trips(t-168)<\/td>\n<td style=\"width: 130px;\">trips(t-167)<\/td>\n<td style=\"width: 130px;\">trips(t-166)<\/td>\n<td style=\"width: 130px;\">&#8230;<\/td>\n<td style=\"width: 130px;\">trips(t-1)<\/td>\n<td style=\"width: 130px;\">trips(t)<\/td>\n<td style=\"width: 130px;\">&#8230;<\/td>\n<td style=\"width: 130px;\">trips(t+167)<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 130px;\">143<\/td>\n<td style=\"width: 130px;\">117<\/td>\n<td style=\"width: 130px;\">204<\/td>\n<td style=\"width: 130px;\">&#8230;<\/td>\n<td style=\"width: 130px;\">125<\/td>\n<td style=\"width: 130px;\">156<\/td>\n<td style=\"width: 130px;\">&#8230;<\/td>\n<td style=\"width: 130px;\">38<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 130px;\">117<\/td>\n<td style=\"width: 130px;\">204<\/td>\n<td style=\"width: 130px;\">169<\/td>\n<td style=\"width: 130px;\">&#8230;<\/td>\n<td style=\"width: 130px;\">156<\/td>\n<td style=\"width: 130px;\">110<\/td>\n<td style=\"width: 130px;\">&#8230;<\/td>\n<td style=\"width: 130px;\">42<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 130px;\">204<\/td>\n<td style=\"width: 130px;\">169<\/td>\n<td style=\"width: 130px;\">51<\/td>\n<td style=\"width: 130px;\">&#8230;<\/td>\n<td style=\"width: 130px;\">110<\/td>\n<td style=\"width: 130px;\">158<\/td>\n<td style=\"width: 130px;\">&#8230;<\/td>\n<td style=\"width: 130px;\">67<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 130px;\">&#8230;<\/td>\n<td style=\"width: 130px;\">&#8230;<\/td>\n<td style=\"width: 130px;\">&#8230;<\/td>\n<td style=\"width: 130px;\">&#8230;<\/td>\n<td style=\"width: 130px;\">&#8230;<\/td>\n<td style=\"width: 130px;\">&#8230;<\/td>\n<td style=\"width: 130px;\">&#8230;<\/td>\n<td style=\"width: 130px;\">&#8230;<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 130px;\">145<\/td>\n<td style=\"width: 130px;\">218<\/td>\n<td style=\"width: 130px;\">113<\/td>\n<td style=\"width: 130px;\">&#8230;<\/td>\n<td style=\"width: 130px;\">133<\/td>\n<td style=\"width: 130px;\">106<\/td>\n<td style=\"width: 130px;\">&#8230;<\/td>\n<td style=\"width: 130px;\">312<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 130px;\">218<\/td>\n<td style=\"width: 130px;\">113<\/td>\n<td style=\"width: 130px;\">280<\/td>\n<td style=\"width: 130px;\">&#8230;<\/td>\n<td style=\"width: 130px;\">106<\/td>\n<td style=\"width: 130px;\">119<\/td>\n<td style=\"width: 130px;\">&#8230;<\/td>\n<td style=\"width: 130px;\">241<\/td>\n<\/tr>\n<tr style=\"border-bottom: 3px solid grey;\">\n<td style=\"width: 130px;\">113<\/td>\n<td style=\"width: 130px;\">280<\/td>\n<td style=\"width: 130px;\">177<\/td>\n<td style=\"width: 130px;\">&#8230;<\/td>\n<td style=\"width: 130px;\">119<\/td>\n<td style=\"width: 130px;\">43<\/td>\n<td style=\"width: 130px;\">&#8230;<\/td>\n<td style=\"width: 130px;\">262<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&nbsp;<\/p>\n<p>We can now use this data to train our ML models. If we use a model that natively only supports a single-step output (like a Linear Regression) we have to choose an appropriate forecasting strategy (see Taieb et al. (2012)). In our example we use a direct multi-step forecasting strategy. In the direct multi-step forecasting strategy, every step in the forecasting horizon is predicted independently. In other terms, \\( H\u00a0 \\) steps are predicted using \\( H \\) models \\( f_h \\):<\/p>\n<p>\\(\u00a0\\begin{equation}\\hat{y}_{N+h} = f_{h}({y*N, \\dots, y*{N-d+1}})\\end{equation}\\)<\/p>\n<p>Ride hailing demand appears to be influenced by various factors, such as time, price for the service or weather. Considering this data as additional input features can improve the forecasting accuracy.<\/p>\n<p>To evaluate the forecasting performance and to find robust models it is important to choose an appropriate evaluation strategy. To take into account the special characteristics of the time series, we, for example, have chosen a sliding window evaluation with a fixed window size (further reading: Tashman, L. J. (2000)).<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Assessing-the-Forecasting-Performance\"><\/span>Assessing the Forecasting Performance<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Many data science projects involve multiple stakeholders that not necessarily have the same technical background. Assessing different evaluation metrics for instance might result in confusion about the concrete meaning and implication of a certain figure. One possible way to communicate and visualize the forecasting results is to build a \u201cclickable\u201c demonstrator app that incorporates the ML models.<\/p>\n<p>In our case, we built a web app consisting of a backend written with <a href=\"http:\/\/flask.pocoo.org\/\" target=\"_blank\" rel=\"noopener\">Flask<\/a> that incorporates the trained ML models (we use <a href=\"http:\/\/scikit-learn.org\/\">scikit-learn<\/a> for model building) and an <a href=\"https:\/\/angular.io\/\" target=\"_blank\" rel=\"noopener\">Angular<\/a> frontend to show the predictions. The app allows to pick a certain date and choose an ML model which then forecasts the next 168 steps of demand. The forecast (red line) can then be compared to the actual demand (black line) as shown in the next figure:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-13835 size-large\" src=\"https:\/\/www.inovex.de\/wp-content\/uploads\/2018\/09\/prediction_without_price-1024x347.png\" alt=\"A chart of the web app showing Time Series Forecasting\" width=\"1024\" height=\"347\" \/><\/p>\n<p>To take this a step further, it is also easy to add certain \u201csimulation features\u201c. For example, we can use the demonstrator to show the influence of different pricing strategies. If we exemplarily simulate a flatrate price for the first five days of the week, we see an increase in the overall demand. The black line represents the <a href=\"https:\/\/xgboost.readthedocs.io\/en\/latest\/#\" target=\"_blank\" rel=\"noopener\">prediction of an XGB model<\/a> without a simulated price, the red line represents the prediction under consideration of the simulated price.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-13836 size-large\" src=\"https:\/\/www.inovex.de\/wp-content\/uploads\/2018\/09\/prediction_with_price-1024x365.png\" alt=\"Simulation features in the Time Series Forecasting app\" width=\"1024\" height=\"365\" \/><\/p>\n<h2><span class=\"ez-toc-section\" id=\"Summary\"><\/span>Summary<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Based on the concrete example of forecasting ride hailing passenger demand, we showed in this article how time series forecasting can be done using ML models. To do so, we first have to transform the time series data into a supervised learning setting and model the demand as a multi step forecasting problem. We find that using ML in this task is a good approach especially due to the the simplicity of considering other (external) features. Furthermore, embedding the ML models in an interactive app proves to be a good way to communicate results and demonstrate different aspects like the influence of a certain input feature on the forecast.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Literature\"><\/span>Literature<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<ul>\n<li>Bontempi, G., S. B. Taieb, and Y.-A. Le Borgne (2012). \u201cMachine learning strategies for time series forecasting.\u201c In: European Business Intelligence Summer School. Springer, pp. 62\u201377.<\/li>\n<li>Tashman, L. J. (2000). Out-of-sample tests of forecasting accuracy: an analysis and review. International journal of forecasting, 16(4), 437-450.<\/li>\n<li>Taieb, S. B., Bontempi, G., Atiya, A. F., &amp; Sorjamaa, A. (2012). A review and comparison of strategies for multi-step ahead time series forecasting based on the NN5 forecasting competition. Expert systems with applications, 39(8), 7067-7083.<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Recently, Machine Learning (ML) models have been widely discussed and successfully applied in time series forecasting tasks (Bontempi et al., 2012). In this blog article we explain an exemplary process of how time series forecasting tasks can be solved with machine learning models, starting with the problem modeling and ending with visualizing the results by [&hellip;]<\/p>\n","protected":false},"author":86,"featured_media":13966,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"ep_exclude_from_search":false,"footnotes":""},"tags":[206,248],"service":[76],"coauthors":[{"id":86,"display_name":"Constantin Mense","user_nicename":"cmense"}],"class_list":["post-13823","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","tag-data-science","tag-time-series","service-artificial-intelligence"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Time Series Forecasting with Machine Learning Models<\/title>\n<meta name=\"description\" content=\"In this article we explain how time series forecasting tasks can be solved with machine learning models, starting with the problem modeling and ending with visualizing the results by embedding the models in a web app for demonstration purposes.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.inovex.de\/de\/blog\/time-series-forecasting-machine-learning\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Time Series Forecasting with Machine Learning Models\" \/>\n<meta property=\"og:description\" content=\"In this article we explain how time series forecasting tasks can be solved with machine learning models, starting with the problem modeling and ending with visualizing the results by embedding the models in a web app for demonstration purposes.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.inovex.de\/de\/blog\/time-series-forecasting-machine-learning\/\" \/>\n<meta property=\"og:site_name\" content=\"inovex GmbH\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/inovexde\" \/>\n<meta property=\"article:published_time\" content=\"2018-09-13T09:38:23+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-01-05T13:37:19+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.inovex.de\/wp-content\/uploads\/2018\/09\/time-series-forecasting.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1280\" \/>\n\t<meta property=\"og:image:height\" content=\"720\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Constantin Mense\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/www.inovex.de\/wp-content\/uploads\/2018\/09\/time-series-forecasting-1024x576.jpg\" \/>\n<meta name=\"twitter:creator\" content=\"@inovexgmbh\" \/>\n<meta name=\"twitter:site\" content=\"@inovexgmbh\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"Constantin Mense\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"6\u00a0Minuten\" \/>\n\t<meta name=\"twitter:label3\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data3\" content=\"Constantin Mense\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/time-series-forecasting-machine-learning\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/time-series-forecasting-machine-learning\\\/\"},\"author\":{\"name\":\"Constantin Mense\",\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/#\\\/schema\\\/person\\\/0545d97db407e77d51ff9fec48350206\"},\"headline\":\"Time Series Forecasting with Machine Learning Models\",\"datePublished\":\"2018-09-13T09:38:23+00:00\",\"dateModified\":\"2023-01-05T13:37:19+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/time-series-forecasting-machine-learning\\\/\"},\"wordCount\":1161,\"commentCount\":5,\"publisher\":{\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/time-series-forecasting-machine-learning\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.inovex.de\\\/wp-content\\\/uploads\\\/2018\\\/09\\\/time-series-forecasting.jpg\",\"keywords\":[\"Data Science\",\"Time Series\"],\"articleSection\":[\"Analytics\",\"English Content\",\"General\"],\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/time-series-forecasting-machine-learning\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/time-series-forecasting-machine-learning\\\/\",\"url\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/time-series-forecasting-machine-learning\\\/\",\"name\":\"Time Series Forecasting with Machine Learning Models\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/time-series-forecasting-machine-learning\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/time-series-forecasting-machine-learning\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.inovex.de\\\/wp-content\\\/uploads\\\/2018\\\/09\\\/time-series-forecasting.jpg\",\"datePublished\":\"2018-09-13T09:38:23+00:00\",\"dateModified\":\"2023-01-05T13:37:19+00:00\",\"description\":\"In this article we explain how time series forecasting tasks can be solved with machine learning models, starting with the problem modeling and ending with visualizing the results by embedding the models in a web app for demonstration purposes.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/time-series-forecasting-machine-learning\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/time-series-forecasting-machine-learning\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/time-series-forecasting-machine-learning\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.inovex.de\\\/wp-content\\\/uploads\\\/2018\\\/09\\\/time-series-forecasting.jpg\",\"contentUrl\":\"https:\\\/\\\/www.inovex.de\\\/wp-content\\\/uploads\\\/2018\\\/09\\\/time-series-forecasting.jpg\",\"width\":1280,\"height\":720,\"caption\":\"Time Series Forecasting Title\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/time-series-forecasting-machine-learning\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Time Series Forecasting with Machine Learning Models\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/#website\",\"url\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/\",\"name\":\"inovex GmbH\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/#organization\",\"name\":\"inovex GmbH\",\"url\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.inovex.de\\\/wp-content\\\/uploads\\\/2021\\\/03\\\/inovex-logo-16-9-1.png\",\"contentUrl\":\"https:\\\/\\\/www.inovex.de\\\/wp-content\\\/uploads\\\/2021\\\/03\\\/inovex-logo-16-9-1.png\",\"width\":1921,\"height\":1081,\"caption\":\"inovex GmbH\"},\"image\":{\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/inovexde\",\"https:\\\/\\\/x.com\\\/inovexgmbh\",\"https:\\\/\\\/www.instagram.com\\\/inovexlife\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/inovex\",\"https:\\\/\\\/www.youtube.com\\\/channel\\\/UC7r66GT14hROB_RQsQBAQUQ\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/#\\\/schema\\\/person\\\/0545d97db407e77d51ff9fec48350206\",\"name\":\"Constantin Mense\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/f21c6e4817e8d2aa1e8dc6d4c61d75642d215db69243117bea4424098200b1b4?s=96&d=retro&r=g6934ce1fe9486c5c9e93391195264d1a\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/f21c6e4817e8d2aa1e8dc6d4c61d75642d215db69243117bea4424098200b1b4?s=96&d=retro&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/f21c6e4817e8d2aa1e8dc6d4c61d75642d215db69243117bea4424098200b1b4?s=96&d=retro&r=g\",\"caption\":\"Constantin Mense\"},\"url\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/author\\\/cmense\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Time Series Forecasting with Machine Learning Models","description":"In this article we explain how time series forecasting tasks can be solved with machine learning models, starting with the problem modeling and ending with visualizing the results by embedding the models in a web app for demonstration purposes.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.inovex.de\/de\/blog\/time-series-forecasting-machine-learning\/","og_locale":"de_DE","og_type":"article","og_title":"Time Series Forecasting with Machine Learning Models","og_description":"In this article we explain how time series forecasting tasks can be solved with machine learning models, starting with the problem modeling and ending with visualizing the results by embedding the models in a web app for demonstration purposes.","og_url":"https:\/\/www.inovex.de\/de\/blog\/time-series-forecasting-machine-learning\/","og_site_name":"inovex GmbH","article_publisher":"https:\/\/www.facebook.com\/inovexde","article_published_time":"2018-09-13T09:38:23+00:00","article_modified_time":"2023-01-05T13:37:19+00:00","og_image":[{"width":1280,"height":720,"url":"https:\/\/www.inovex.de\/wp-content\/uploads\/2018\/09\/time-series-forecasting.jpg","type":"image\/jpeg"}],"author":"Constantin Mense","twitter_card":"summary_large_image","twitter_image":"https:\/\/www.inovex.de\/wp-content\/uploads\/2018\/09\/time-series-forecasting-1024x576.jpg","twitter_creator":"@inovexgmbh","twitter_site":"@inovexgmbh","twitter_misc":{"Verfasst von":"Constantin Mense","Gesch\u00e4tzte Lesezeit":"6\u00a0Minuten","Written by":"Constantin Mense"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.inovex.de\/de\/blog\/time-series-forecasting-machine-learning\/#article","isPartOf":{"@id":"https:\/\/www.inovex.de\/de\/blog\/time-series-forecasting-machine-learning\/"},"author":{"name":"Constantin Mense","@id":"https:\/\/www.inovex.de\/de\/#\/schema\/person\/0545d97db407e77d51ff9fec48350206"},"headline":"Time Series Forecasting with Machine Learning Models","datePublished":"2018-09-13T09:38:23+00:00","dateModified":"2023-01-05T13:37:19+00:00","mainEntityOfPage":{"@id":"https:\/\/www.inovex.de\/de\/blog\/time-series-forecasting-machine-learning\/"},"wordCount":1161,"commentCount":5,"publisher":{"@id":"https:\/\/www.inovex.de\/de\/#organization"},"image":{"@id":"https:\/\/www.inovex.de\/de\/blog\/time-series-forecasting-machine-learning\/#primaryimage"},"thumbnailUrl":"https:\/\/www.inovex.de\/wp-content\/uploads\/2018\/09\/time-series-forecasting.jpg","keywords":["Data Science","Time Series"],"articleSection":["Analytics","English Content","General"],"inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.inovex.de\/de\/blog\/time-series-forecasting-machine-learning\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.inovex.de\/de\/blog\/time-series-forecasting-machine-learning\/","url":"https:\/\/www.inovex.de\/de\/blog\/time-series-forecasting-machine-learning\/","name":"Time Series Forecasting with Machine Learning Models","isPartOf":{"@id":"https:\/\/www.inovex.de\/de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.inovex.de\/de\/blog\/time-series-forecasting-machine-learning\/#primaryimage"},"image":{"@id":"https:\/\/www.inovex.de\/de\/blog\/time-series-forecasting-machine-learning\/#primaryimage"},"thumbnailUrl":"https:\/\/www.inovex.de\/wp-content\/uploads\/2018\/09\/time-series-forecasting.jpg","datePublished":"2018-09-13T09:38:23+00:00","dateModified":"2023-01-05T13:37:19+00:00","description":"In this article we explain how time series forecasting tasks can be solved with machine learning models, starting with the problem modeling and ending with visualizing the results by embedding the models in a web app for demonstration purposes.","breadcrumb":{"@id":"https:\/\/www.inovex.de\/de\/blog\/time-series-forecasting-machine-learning\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.inovex.de\/de\/blog\/time-series-forecasting-machine-learning\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/www.inovex.de\/de\/blog\/time-series-forecasting-machine-learning\/#primaryimage","url":"https:\/\/www.inovex.de\/wp-content\/uploads\/2018\/09\/time-series-forecasting.jpg","contentUrl":"https:\/\/www.inovex.de\/wp-content\/uploads\/2018\/09\/time-series-forecasting.jpg","width":1280,"height":720,"caption":"Time Series Forecasting Title"},{"@type":"BreadcrumbList","@id":"https:\/\/www.inovex.de\/de\/blog\/time-series-forecasting-machine-learning\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.inovex.de\/de\/"},{"@type":"ListItem","position":2,"name":"Time Series Forecasting with Machine Learning Models"}]},{"@type":"WebSite","@id":"https:\/\/www.inovex.de\/de\/#website","url":"https:\/\/www.inovex.de\/de\/","name":"inovex GmbH","description":"","publisher":{"@id":"https:\/\/www.inovex.de\/de\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.inovex.de\/de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Organization","@id":"https:\/\/www.inovex.de\/de\/#organization","name":"inovex GmbH","url":"https:\/\/www.inovex.de\/de\/","logo":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/www.inovex.de\/de\/#\/schema\/logo\/image\/","url":"https:\/\/www.inovex.de\/wp-content\/uploads\/2021\/03\/inovex-logo-16-9-1.png","contentUrl":"https:\/\/www.inovex.de\/wp-content\/uploads\/2021\/03\/inovex-logo-16-9-1.png","width":1921,"height":1081,"caption":"inovex GmbH"},"image":{"@id":"https:\/\/www.inovex.de\/de\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/inovexde","https:\/\/x.com\/inovexgmbh","https:\/\/www.instagram.com\/inovexlife\/","https:\/\/www.linkedin.com\/company\/inovex","https:\/\/www.youtube.com\/channel\/UC7r66GT14hROB_RQsQBAQUQ"]},{"@type":"Person","@id":"https:\/\/www.inovex.de\/de\/#\/schema\/person\/0545d97db407e77d51ff9fec48350206","name":"Constantin Mense","image":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/secure.gravatar.com\/avatar\/f21c6e4817e8d2aa1e8dc6d4c61d75642d215db69243117bea4424098200b1b4?s=96&d=retro&r=g6934ce1fe9486c5c9e93391195264d1a","url":"https:\/\/secure.gravatar.com\/avatar\/f21c6e4817e8d2aa1e8dc6d4c61d75642d215db69243117bea4424098200b1b4?s=96&d=retro&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/f21c6e4817e8d2aa1e8dc6d4c61d75642d215db69243117bea4424098200b1b4?s=96&d=retro&r=g","caption":"Constantin Mense"},"url":"https:\/\/www.inovex.de\/de\/blog\/author\/cmense\/"}]}},"_links":{"self":[{"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/posts\/13823","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/users\/86"}],"replies":[{"embeddable":true,"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/comments?post=13823"}],"version-history":[{"count":5,"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/posts\/13823\/revisions"}],"predecessor-version":[{"id":40980,"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/posts\/13823\/revisions\/40980"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/media\/13966"}],"wp:attachment":[{"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/media?parent=13823"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/tags?post=13823"},{"taxonomy":"service","embeddable":true,"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/service?post=13823"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/coauthors?post=13823"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}