{"id":11685,"date":"2022-09-21T08:32:26","date_gmt":"2022-09-21T08:32:26","guid":{"rendered":"https:\/\/predictly.se\/getting-started-machine-learning-at-gcp-part-3-creating-predictions\/"},"modified":"2024-05-08T11:46:42","modified_gmt":"2024-05-08T11:46:42","slug":"getting-started-machine-learning-at-gcp-part-3-creating-predictions","status":"publish","type":"post","link":"https:\/\/predictly.se\/en\/getting-started-machine-learning-at-gcp-part-3-creating-predictions\/","title":{"rendered":"Getting started: Machine Learning at GCP &#8211; Part 3: Creating predictions"},"content":{"rendered":"<p>This is the third and last part of my article series on how to get started with Machine Learning on GCP. You will find the other articles here: <a href=\"https:\/\/www.predictly.se\/getting-started-machine-learning-pa-gcp-del-1-att-gora-data-tillgangligt-och-atkomligt\/\">Part 1<\/a>, and here: <a href=\"https:\/\/www.predictly.se\/getting-started-machine-learning-pa-gcp-del-2-att-gora-data-stadat-och-anvandbart\/\">Part 2<\/a><\/p>\n<p>So far we have taken data from a source system and uploaded into Google BigQuery. In the second article, we used the interactive notebook environment on GCP to explore our data and identify some issues. Finally, we used Google Dataflow to address those issues in a data stream pipeline and load them into a datastore with clean and quality controlled data.<\/p>\n<p>For the last part we will focus on building a model, and demonstrating how one can use BigQuery Transform clauses to reuse code for feature engineering, model training and making predictions on new data.<\/p>\n<h6>Feature Engineering and Selection<\/h6>\n<p>Feature engineering is a process where a data scientist uses his or hers domain knowledge to create new data from existing data. This new data can often be used by to enhance the performance of machine learning models.<\/p>\n<p>A different approach is embedded feature engineering, where this process is also automated; either by the model it self during training, or by some other pre-process. This approach allows one to get started quickly which is our focus for this article.<\/p>\n<p>Google BigQuery has an auto ML offering called BigQuery ML and one Transform clauses; these transform the input data and creates more features for the model during training. The transformations are then saved in the model, so the input data does not have to contain all the new features when evaluating new data.<\/p>\n<p>For feature selection we will also use an embedded method. We will train a tree model using <em>XGBoost<\/em>. XGBoost also include some embedded feature selection during training using L1 and\/or L2-regularization to penalize features which do not contribute to a better prediction. It also helps with reducing the models variance, lowering the risk for over fitting.<\/p>\n<p>The amount of regularization applied is controlled by the <em>L1_REG<\/em> and <em>L2_REG<\/em> parameters in the <em>CREATE MODEL<\/em> statement.<\/p>\n<p>Using these two methods we can automate a lot of the process of modeling.<\/p>\n<h6>BigQuery ML<\/h6>\n<p><a href=\"https:\/\/cloud.google.com\/bigquery-ml\/docs\/introduction\" target=\"_blank\" rel=\"noopener\">BigQuery ML<\/a> is a service on GCP which allows you to create and use Machine Learning models using standard SQL. It automates many parts of the training process such as hyper parameter tugging and in some cases even data pre processing, saving tremendous amounts of time in the &#8220;getting started&#8221; phase.<\/p>\n<p>BigQuery ML offers solutions for a range of problems such as time series predictions, regression, classification, clustering and even product recommendations. Whatever your case might be, chances are you can get started fairly quickly and easily with machine learning.<\/p>\n<p>BigQuery is available in the console and ready to use straight away, just navigate to BigQuery in the console and we can build our first model.<\/p>\n<p>To Build a model one simply use the CREATE MODEL statement:<\/p>\n<pre class=\"brush: sql; title: ; notranslate\" title=\"\">\nCREATE OR REPLACE MODEL etc_dataset.mymodel\nTRANSFORM(\nML.POLYNOMIAL_EXPAND(STRUCT(open, high, low, close, volume)) AS output,  \ndatetime, target)\n\nOPTIONS(MODEL_TYPE='BOOSTED_TREE_REGRESSOR',\n  BOOSTER_TYPE = 'GBTREE',\n  NUM_PARALLEL_TREE = 1,\n  MAX_ITERATIONS = 50,\n  EARLY_STOP = TRUE,\n  SUBSAMPLE = 0.85,\n  DATA_SPLIT_COL = 'datetime',\n  DATA_SPLIT_METHOD = 'SEQ',\n  INPUT_LABEL_COLS = &#x5B;'target'])\nAS\nSELECT * FROM (\n  SELECT datetime,\n  open,\n  high,\n  low,\n  close,\n  volume,\n  lead(close, 5) OVER(ORDER BY datetime asc) as target\n  FROM etc_dataset.btc_processed_data\n\n  )\nWHERE target IS NOT NULL\norder by datetime asc\n<\/pre>\n<p>The OPTIONS clause gives us the opportunity to tune some of the parameters for the model. For now lets focus on the <em>DATA_SPLIT_COL<\/em>, <em>DATA_SPLIT_METHOD<\/em> and <em>INPUT_LABEL_COLS<\/em>.<\/p>\n<p>Split options tells the pre-processing part of the modeling which column to use when splitting the data in a training and test dataset. The training dataset is used for the actual training of the model, and the test set is then used to evaluate the model.<\/p>\n<p>Since our case is has some &#8220;time&#8221; embedded into it, it is important not to &#8220;cheat&#8221; and let the model get a glimpse in the future. To resolve this we specify the split method, which in our case should be sequential. If it would be random which is often the preferred method of splitting data, the training data could contain datapoints which occurred after some of the data in the testset, giving the model an unfair advantage.<\/p>\n<p>The <em>INPUT_LABEL_COL<\/em> specify which column we want to predict. In this case we want to predict the close price 5 minutes into the future.<\/p>\n<p>For more information on the options, refer to the <a href=\"https:\/\/cloud.google.com\/bigquery-ml\/docs\/reference\/standard-sql\/bigqueryml-syntax-create-boosted-tree\">official docs<\/a>.<\/p>\n<p>Now just hit &#8220;Run&#8221; and our model will be trained. Once finished, we must evaluate the performance of our model. This is done by using the <em>EVALUATE<\/em> clause.<\/p>\n<pre class=\"brush: sql; title: ; notranslate\" title=\"\">\nSELECT\n  *\nFROM\nML.EVALUATE(MODEL `etc_dataset.mymodel`)\n<\/pre>\n<p>This query returns a set of performance metrics by testing the model on the testing fraction of the data we specified in the training query. You can however specify another set of data for evaluating the model. Read more <a href=\"https:\/\/cloud.google.com\/bigquery-ml\/docs\/reference\/standard-sql\/bigqueryml-syntax-evaluate\">here<\/a>.<\/p>\n<p><img class=\"lazyload\" decoding=\"async\" src=\"data:image\/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%27892%27%20height%3D%2764%27%20viewBox%3D%270%200%20892%2064%27%3E%3Crect%20width%3D%27892%27%20height%3D%2764%27%20fill-opacity%3D%220%22%2F%3E%3C%2Fsvg%3E\" data-orig-src=\"https:\/\/predictly.se\/wp-content\/uploads\/2022\/09\/MLonGCP_del3-1.png\" alt=\"Record\"><\/p>\n<p>From here, you can add features and tune the options and see if it improves the results of the model. Interpretation of these values will vary from case to case, and I will not cover that here.<\/p>\n<h6>Adding a TRANSFORM<\/h6>\n<p>Lets continue and add the <em>TRANSFORM<\/em> clause for some simple feature engineering when training our model. There are several functions available in the transform clause, you can find all <a href=\"https:\/\/cloud.google.com\/bigquery-ml\/docs\/reference\/standard-sql\/bigqueryml-preprocessing-functions\">here<\/a>.<\/p>\n<p>We are going to do a simple expansion of our feature-set using polynomial expansion.<\/p>\n<pre class=\"brush: sql; title: ; notranslate\" title=\"\">\nCREATE OR REPLACE MODEL btc_dataset.mymodel2\nTRANSFORM(\nML.POLYNOMIAL_EXPAND(STRUCT(open, high, low, close, volume)) AS output,\ndatetime, target)\n\nOPTIONS(MODEL_TYPE='BOOSTED_TREE_REGRESSOR',\n  BOOSTER_TYPE = 'GBTREE',\n  NUM_PARALLEL_TREE = 1,\n  MAX_ITERATIONS = 50,\n  EARLY_STOP = TRUE,\n  L1_REG = 0.1,\n  L2_REG = 2,\n  SUBSAMPLE = 0.85,\n  DATA_SPLIT_COL = 'datetime',\n  DATA_SPLIT_METHOD = 'SEQ',\n  INPUT_LABEL_COLS = &#x5B;'target'])\nAS\nSELECT * FROM (\n  SELECT datetime,\n  open,\n  high,\n  low,\n  close,\n  volume,\n  lead(close, 5) OVER(ORDER BY datetime asc) as target\n  FROM btc_dataset.btc_processed_data\n\n  )\nWHERE target IS NOT NULL\norder by datetime asc\n<\/pre>\n<p>Polynomial expansion takes each polynomial combination of the input features and outputs a set of all of those combinations. This transformation is saved in the new model, saving us the trouble of having to rewrite it for prediction on new data. We can now use the <em>EVALUATE<\/em> clause again to see if our model performance is any better, relative to the last model.<\/p>\n<h6>Making predictions<\/h6>\n<p>To make predictions on new data, simply use the <em>PREDICT<\/em> clause, all you have to make sure of is that the query which contains the data, contains the same fields as the input for the model training.<\/p>\n<pre class=\"brush: sql; title: ; notranslate\" title=\"\">\nSELECT *\nFROM ML.PREDICT(MODEL `btc_dataset.mymodel2`, (SELECT *\n  FROM `btc_dataset.btc_processed_data`\n  ORDER BY datetime DESC LIMIT 1)\n  )\n<\/pre>\n<p>And voil\u00e0, we have our first prediction of the &#8220;future&#8221;.<\/p>\n<p><img class=\"lazyload\" decoding=\"async\" src=\"data:image\/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%27630%27%20height%3D%2761%27%20viewBox%3D%270%200%20630%2061%27%3E%3Crect%20width%3D%27630%27%20height%3D%2761%27%20fill-opacity%3D%220%22%2F%3E%3C%2Fsvg%3E\" data-orig-src=\"https:\/\/predictly.se\/wp-content\/uploads\/2022\/09\/MLonGCP_del3-2.png\" alt=\"First prediction\"><\/p>\n<p>Since our model now contains all necessary data transformations, the input datasets in the <em>SELECT<\/em> clause, only needs to contain the same data as the input data for the model training, making it very easy to make new predictions. As we in the future populate the <em>btc_processed_data<\/em> table with new data, it will be a breeze to make predictions on the future price based on the new data.<\/p>\n<p>In a future article, I will show how you can handle change data capture to make sure your datasets is always up to date, allowing you to make real predictions of the future.<\/p>\n<h6>Summary and disclaimer<\/h6>\n<p>In this series of articles, the focus has been on how you can use the services and tools offered on GCP to get started quickly with machine learning. We have covered data ingestion, data transformation, and exploration, feature engineering and selection, and lastly modeling and predicting. The aim was never to create a good model for price prediction. XGBoost models are not very good at extrapolating data giving it a hard time giving predictions of values with ranges outside of the training set.<\/p>\n<p>If we were to use the models we have created in this series, we would most likely have a bad time. Please refrain from doing so.<\/p>\n<p>I hope that I have shown the values of the offerings on GCP when it comes to working with data and machine learning, and perhaps made it easier for you to get started with ML on GCP.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Third part in our series on ML at GCP. How to draw conclusions and make predictions<\/p>\n","protected":false},"author":7,"featured_media":11466,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"cybocfi_hide_featured_image":"","footnotes":""},"categories":[116,110,113,112],"tags":[],"class_list":["post-11685","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-big-query-en","category-data-en","category-machine-learning-en","category-xgboost-en"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.6 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Getting started: Machine Learning at GCP - Part 3: Creating predictions &#8211; Predictly<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/predictly.se\/en\/getting-started-machine-learning-at-gcp-part-3-creating-predictions\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Getting started: Machine Learning at GCP - Part 3: Creating predictions &#8211; Predictly\" \/>\n<meta property=\"og:description\" content=\"Third part in our series on ML at GCP. How to draw conclusions and make predictions\" \/>\n<meta property=\"og:url\" content=\"https:\/\/predictly.se\/en\/getting-started-machine-learning-at-gcp-part-3-creating-predictions\/\" \/>\n<meta property=\"og:site_name\" content=\"Predictly\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/predictly.se\" \/>\n<meta property=\"article:published_time\" content=\"2022-09-21T08:32:26+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-05-08T11:46:42+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/predictly.se\/wp-content\/uploads\/2022\/09\/bitcoin-3-1024x636.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1024\" \/>\n\t<meta property=\"og:image:height\" content=\"636\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Simon Lind\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@predictly_se\" \/>\n<meta name=\"twitter:site\" content=\"@predictly_se\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Simon Lind\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/predictly.se\/en\/getting-started-machine-learning-at-gcp-part-3-creating-predictions\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/predictly.se\/en\/getting-started-machine-learning-at-gcp-part-3-creating-predictions\/\"},\"author\":{\"name\":\"Simon Lind\",\"@id\":\"https:\/\/predictly.se\/en\/#\/schema\/person\/036b901e4ff56b4d3d81b0b0d720315a\"},\"headline\":\"Getting started: Machine Learning at GCP &#8211; Part 3: Creating predictions\",\"datePublished\":\"2022-09-21T08:32:26+00:00\",\"dateModified\":\"2024-05-08T11:46:42+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/predictly.se\/en\/getting-started-machine-learning-at-gcp-part-3-creating-predictions\/\"},\"wordCount\":1411,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/predictly.se\/en\/#organization\"},\"image\":{\"@id\":\"https:\/\/predictly.se\/en\/getting-started-machine-learning-at-gcp-part-3-creating-predictions\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/predictly.se\/wp-content\/uploads\/2022\/09\/bitcoin-3.png\",\"articleSection\":[\"Big Query\",\"Data\",\"Machine Learning\",\"XGBoost\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/predictly.se\/en\/getting-started-machine-learning-at-gcp-part-3-creating-predictions\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/predictly.se\/en\/getting-started-machine-learning-at-gcp-part-3-creating-predictions\/\",\"url\":\"https:\/\/predictly.se\/en\/getting-started-machine-learning-at-gcp-part-3-creating-predictions\/\",\"name\":\"Getting started: Machine Learning at GCP - Part 3: Creating predictions &#8211; Predictly\",\"isPartOf\":{\"@id\":\"https:\/\/predictly.se\/en\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/predictly.se\/en\/getting-started-machine-learning-at-gcp-part-3-creating-predictions\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/predictly.se\/en\/getting-started-machine-learning-at-gcp-part-3-creating-predictions\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/predictly.se\/wp-content\/uploads\/2022\/09\/bitcoin-3.png\",\"datePublished\":\"2022-09-21T08:32:26+00:00\",\"dateModified\":\"2024-05-08T11:46:42+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/predictly.se\/en\/getting-started-machine-learning-at-gcp-part-3-creating-predictions\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/predictly.se\/en\/getting-started-machine-learning-at-gcp-part-3-creating-predictions\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/predictly.se\/en\/getting-started-machine-learning-at-gcp-part-3-creating-predictions\/#primaryimage\",\"url\":\"https:\/\/predictly.se\/wp-content\/uploads\/2022\/09\/bitcoin-3.png\",\"contentUrl\":\"https:\/\/predictly.se\/wp-content\/uploads\/2022\/09\/bitcoin-3.png\",\"width\":1429,\"height\":888},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/predictly.se\/en\/getting-started-machine-learning-at-gcp-part-3-creating-predictions\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/predictly.se\/en\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Machine Learning\",\"item\":\"https:\/\/predictly.se\/en\/insikter\/machine-learning-en\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Getting started: Machine Learning at GCP &#8211; Part 3: Creating predictions\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/predictly.se\/en\/#website\",\"url\":\"https:\/\/predictly.se\/en\/\",\"name\":\"Predictly\",\"description\":\"Professional IT services\",\"publisher\":{\"@id\":\"https:\/\/predictly.se\/en\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/predictly.se\/en\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/predictly.se\/en\/#organization\",\"name\":\"Predictly\",\"url\":\"https:\/\/predictly.se\/en\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/predictly.se\/en\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/predictly.se\/wp-content\/uploads\/2022\/10\/Logotype1-mobil.svg\",\"contentUrl\":\"https:\/\/predictly.se\/wp-content\/uploads\/2022\/10\/Logotype1-mobil.svg\",\"width\":532,\"height\":96,\"caption\":\"Predictly\"},\"image\":{\"@id\":\"https:\/\/predictly.se\/en\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/predictly.se\",\"https:\/\/x.com\/predictly_se\",\"https:\/\/www.linkedin.com\/company\/predictly\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/predictly.se\/en\/#\/schema\/person\/036b901e4ff56b4d3d81b0b0d720315a\",\"name\":\"Simon Lind\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/predictly.se\/en\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/4002a927f066edcc5d52d440c9add6933e6a177a60c830e67ae732aac791de4d?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/4002a927f066edcc5d52d440c9add6933e6a177a60c830e67ae732aac791de4d?s=96&d=mm&r=g\",\"caption\":\"Simon Lind\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Getting started: Machine Learning at GCP - Part 3: Creating predictions &#8211; Predictly","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:\/\/predictly.se\/en\/getting-started-machine-learning-at-gcp-part-3-creating-predictions\/","og_locale":"en_US","og_type":"article","og_title":"Getting started: Machine Learning at GCP - Part 3: Creating predictions &#8211; Predictly","og_description":"Third part in our series on ML at GCP. How to draw conclusions and make predictions","og_url":"https:\/\/predictly.se\/en\/getting-started-machine-learning-at-gcp-part-3-creating-predictions\/","og_site_name":"Predictly","article_publisher":"https:\/\/www.facebook.com\/predictly.se","article_published_time":"2022-09-21T08:32:26+00:00","article_modified_time":"2024-05-08T11:46:42+00:00","og_image":[{"width":1024,"height":636,"url":"https:\/\/predictly.se\/wp-content\/uploads\/2022\/09\/bitcoin-3-1024x636.png","type":"image\/png"}],"author":"Simon Lind","twitter_card":"summary_large_image","twitter_creator":"@predictly_se","twitter_site":"@predictly_se","twitter_misc":{"Written by":"Simon Lind","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/predictly.se\/en\/getting-started-machine-learning-at-gcp-part-3-creating-predictions\/#article","isPartOf":{"@id":"https:\/\/predictly.se\/en\/getting-started-machine-learning-at-gcp-part-3-creating-predictions\/"},"author":{"name":"Simon Lind","@id":"https:\/\/predictly.se\/en\/#\/schema\/person\/036b901e4ff56b4d3d81b0b0d720315a"},"headline":"Getting started: Machine Learning at GCP &#8211; Part 3: Creating predictions","datePublished":"2022-09-21T08:32:26+00:00","dateModified":"2024-05-08T11:46:42+00:00","mainEntityOfPage":{"@id":"https:\/\/predictly.se\/en\/getting-started-machine-learning-at-gcp-part-3-creating-predictions\/"},"wordCount":1411,"commentCount":0,"publisher":{"@id":"https:\/\/predictly.se\/en\/#organization"},"image":{"@id":"https:\/\/predictly.se\/en\/getting-started-machine-learning-at-gcp-part-3-creating-predictions\/#primaryimage"},"thumbnailUrl":"https:\/\/predictly.se\/wp-content\/uploads\/2022\/09\/bitcoin-3.png","articleSection":["Big Query","Data","Machine Learning","XGBoost"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/predictly.se\/en\/getting-started-machine-learning-at-gcp-part-3-creating-predictions\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/predictly.se\/en\/getting-started-machine-learning-at-gcp-part-3-creating-predictions\/","url":"https:\/\/predictly.se\/en\/getting-started-machine-learning-at-gcp-part-3-creating-predictions\/","name":"Getting started: Machine Learning at GCP - Part 3: Creating predictions &#8211; Predictly","isPartOf":{"@id":"https:\/\/predictly.se\/en\/#website"},"primaryImageOfPage":{"@id":"https:\/\/predictly.se\/en\/getting-started-machine-learning-at-gcp-part-3-creating-predictions\/#primaryimage"},"image":{"@id":"https:\/\/predictly.se\/en\/getting-started-machine-learning-at-gcp-part-3-creating-predictions\/#primaryimage"},"thumbnailUrl":"https:\/\/predictly.se\/wp-content\/uploads\/2022\/09\/bitcoin-3.png","datePublished":"2022-09-21T08:32:26+00:00","dateModified":"2024-05-08T11:46:42+00:00","breadcrumb":{"@id":"https:\/\/predictly.se\/en\/getting-started-machine-learning-at-gcp-part-3-creating-predictions\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/predictly.se\/en\/getting-started-machine-learning-at-gcp-part-3-creating-predictions\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/predictly.se\/en\/getting-started-machine-learning-at-gcp-part-3-creating-predictions\/#primaryimage","url":"https:\/\/predictly.se\/wp-content\/uploads\/2022\/09\/bitcoin-3.png","contentUrl":"https:\/\/predictly.se\/wp-content\/uploads\/2022\/09\/bitcoin-3.png","width":1429,"height":888},{"@type":"BreadcrumbList","@id":"https:\/\/predictly.se\/en\/getting-started-machine-learning-at-gcp-part-3-creating-predictions\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/predictly.se\/en\/"},{"@type":"ListItem","position":2,"name":"Machine Learning","item":"https:\/\/predictly.se\/en\/insikter\/machine-learning-en\/"},{"@type":"ListItem","position":3,"name":"Getting started: Machine Learning at GCP &#8211; Part 3: Creating predictions"}]},{"@type":"WebSite","@id":"https:\/\/predictly.se\/en\/#website","url":"https:\/\/predictly.se\/en\/","name":"Predictly","description":"Professional IT services","publisher":{"@id":"https:\/\/predictly.se\/en\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/predictly.se\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/predictly.se\/en\/#organization","name":"Predictly","url":"https:\/\/predictly.se\/en\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/predictly.se\/en\/#\/schema\/logo\/image\/","url":"https:\/\/predictly.se\/wp-content\/uploads\/2022\/10\/Logotype1-mobil.svg","contentUrl":"https:\/\/predictly.se\/wp-content\/uploads\/2022\/10\/Logotype1-mobil.svg","width":532,"height":96,"caption":"Predictly"},"image":{"@id":"https:\/\/predictly.se\/en\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/predictly.se","https:\/\/x.com\/predictly_se","https:\/\/www.linkedin.com\/company\/predictly\/"]},{"@type":"Person","@id":"https:\/\/predictly.se\/en\/#\/schema\/person\/036b901e4ff56b4d3d81b0b0d720315a","name":"Simon Lind","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/predictly.se\/en\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/4002a927f066edcc5d52d440c9add6933e6a177a60c830e67ae732aac791de4d?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/4002a927f066edcc5d52d440c9add6933e6a177a60c830e67ae732aac791de4d?s=96&d=mm&r=g","caption":"Simon Lind"}}]}},"_links":{"self":[{"href":"https:\/\/predictly.se\/en\/wp-json\/wp\/v2\/posts\/11685","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/predictly.se\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/predictly.se\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/predictly.se\/en\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/predictly.se\/en\/wp-json\/wp\/v2\/comments?post=11685"}],"version-history":[{"count":1,"href":"https:\/\/predictly.se\/en\/wp-json\/wp\/v2\/posts\/11685\/revisions"}],"predecessor-version":[{"id":11697,"href":"https:\/\/predictly.se\/en\/wp-json\/wp\/v2\/posts\/11685\/revisions\/11697"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/predictly.se\/en\/wp-json\/wp\/v2\/media\/11466"}],"wp:attachment":[{"href":"https:\/\/predictly.se\/en\/wp-json\/wp\/v2\/media?parent=11685"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/predictly.se\/en\/wp-json\/wp\/v2\/categories?post=11685"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/predictly.se\/en\/wp-json\/wp\/v2\/tags?post=11685"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}