{"id":231,"date":"2024-06-03T21:07:35","date_gmt":"2024-06-04T04:07:35","guid":{"rendered":"http:\/\/184.72.63.26\/?p=231"},"modified":"2024-07-02T00:11:49","modified_gmt":"2024-07-02T07:11:49","slug":"stock-price-prediction-using-machine-learning","status":"publish","type":"post","link":"https:\/\/www.wallacel.com\/index.php\/2024\/06\/03\/stock-price-prediction-using-machine-learning\/","title":{"rendered":"Stock Price Prediction using Machine Learning"},"content":{"rendered":"\n<p>In this project, I will explore using Machine Learning to forecast future stock prices. By leveraging AWS SageMaker Canvas, I&#8217;ll build a stock prediction model using time series forecasting and then visualize the results with AWS QuickSight.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step1 : Create SageMaker Domain<\/h2>\n\n\n\n<p>To kick off the project, navigate to the SageMaker console and click on Setup up for single users. This process grants access to SageMaker Canvas by automatically creating a domain and user profile. The domain is essential as it provides a centralized location for storing data models and other resources necessary for this project.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"989\" height=\"598\" src=\"http:\/\/184.72.63.26\/wp-content\/uploads\/2024\/06\/domain.png\" alt=\"\" class=\"wp-image-233\" srcset=\"https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/06\/domain.png 989w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/06\/domain-300x181.png 300w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/06\/domain-768x464.png 768w\" sizes=\"auto, (max-width: 989px) 100vw, 989px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Step 2: Obtain Historical Data<\/h2>\n\n\n\n<p>To gather the historical stock data, you can use several sources such as <a href=\"https:\/\/www.nasdaq.com\/market-activity\/stocks\/msft\/historical\" data-type=\"link\" data-id=\"https:\/\/www.nasdaq.com\/market-activity\/stocks\/msft\/historical\">Nasdaq<\/a> and <a href=\"https:\/\/finance.yahoo.com\/quote\/MSFT\/history\" data-type=\"link\" data-id=\"https:\/\/finance.yahoo.com\/quote\/MSFT\/history\">Yahoo Finance<\/a>. While Nasdaq provides data for up to the past 10 years, Yahoo Finance offers a more extensive range, with records dating back to 1986. Therefore, I&#8217;ll utilize Yahoo Finance to obtain the comprehensive historical data needed for this project.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"826\" height=\"570\" src=\"http:\/\/184.72.63.26\/wp-content\/uploads\/2024\/06\/historical.png\" alt=\"\" class=\"wp-image-234\" srcset=\"https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/06\/historical.png 826w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/06\/historical-300x207.png 300w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/06\/historical-768x530.png 768w\" sizes=\"auto, (max-width: 826px) 100vw, 826px\" \/><\/figure>\n\n\n\n<p>After downloading the historical data as a CSV file, I&#8217;ll make several modifications and save the file as <code>MSFT_20240531.csv<\/code>:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Add a new column <strong>Ticker<\/strong> and set its value to <strong>MSFT<\/strong><\/li>\n\n\n\n<li>Delete column <strong>Close<\/strong><\/li>\n\n\n\n<li>Rename columns <strong>Adj Close<\/strong> to <strong>MarketClose<\/strong>, <strong>Open<\/strong> to <strong>MarketOpen<\/strong><\/li>\n\n\n\n<li>Format columns <strong>MarketOpen<\/strong>, <strong>MarketClose<\/strong>, <strong>High<\/strong>, and <strong>Low<\/strong> to numbers with 2 decimals<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"765\" height=\"660\" src=\"http:\/\/184.72.63.26\/wp-content\/uploads\/2024\/06\/excel-1.png\" alt=\"\" class=\"wp-image-237\" srcset=\"https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/06\/excel-1.png 765w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/06\/excel-1-300x259.png 300w\" sizes=\"auto, (max-width: 765px) 100vw, 765px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Step 3: Upload Dataset to S3 Bucket<\/h2>\n\n\n\n<p>SageMaker accepts data stored in S3 so I create a S3 bucket and upload my <code>MSFT_20240531.csv<\/code>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"894\" height=\"484\" src=\"http:\/\/184.72.63.26\/wp-content\/uploads\/2024\/06\/s3.png\" alt=\"\" class=\"wp-image-236\" srcset=\"https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/06\/s3.png 894w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/06\/s3-300x162.png 300w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/06\/s3-768x416.png 768w\" sizes=\"auto, (max-width: 894px) 100vw, 894px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Step 4: Build SageMaker Canvas Model<\/h2>\n\n\n\n<p>To build the machine learning model, go to SageMaker and select the default domain created in Step 1. Launch Canvas, click on My Models and New model button to start creating the model.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"852\" height=\"595\" src=\"http:\/\/184.72.63.26\/wp-content\/uploads\/2024\/06\/model.png\" alt=\"\" class=\"wp-image-238\" srcset=\"https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/06\/model.png 852w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/06\/model-300x210.png 300w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/06\/model-768x536.png 768w\" sizes=\"auto, (max-width: 852px) 100vw, 852px\" \/><\/figure>\n\n\n\n<p>Create a new dataset and select Amazon S3 as the data source, then choose the S3 bucket and select the CSV file uploaded earlier.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"987\" height=\"390\" src=\"http:\/\/184.72.63.26\/wp-content\/uploads\/2024\/06\/dataset-s3.png\" alt=\"\" class=\"wp-image-240\" srcset=\"https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/06\/dataset-s3.png 987w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/06\/dataset-s3-300x119.png 300w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/06\/dataset-s3-768x303.png 768w\" sizes=\"auto, (max-width: 987px) 100vw, 987px\" \/><\/figure>\n\n\n\n<p>Navigate to Build section, select MarketClose as the <strong>Target column<\/strong>. This will be the column the model predicts for future value.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"589\" height=\"381\" src=\"http:\/\/184.72.63.26\/wp-content\/uploads\/2024\/06\/target.png\" alt=\"\" class=\"wp-image-241\" srcset=\"https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/06\/target.png 589w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/06\/target-300x194.png 300w\" sizes=\"auto, (max-width: 589px) 100vw, 589px\" \/><\/figure>\n\n\n\n<p>Select all columns to be included in the model and click <strong>Configure model<\/strong> with the following parameters:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Model type: <strong>Time series forecasting<\/strong><\/li>\n\n\n\n<li>Time series configuration:\n<ul class=\"wp-block-list\">\n<li>Item ID column: <strong>Ticker<\/strong><\/li>\n\n\n\n<li>Time stamp column: <strong>Date<\/strong><\/li>\n\n\n\n<li>Specify the number of days to forecast:  <strong>30<\/strong><\/li>\n\n\n\n<li>Use holiday schedule:  <strong>United States<\/strong><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"792\" height=\"684\" src=\"http:\/\/184.72.63.26\/wp-content\/uploads\/2024\/06\/configure-model-1.png\" alt=\"\" class=\"wp-image-248\" srcset=\"https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/06\/configure-model-1.png 792w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/06\/configure-model-1-300x259.png 300w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/06\/configure-model-1-768x663.png 768w\" sizes=\"auto, (max-width: 792px) 100vw, 792px\" \/><\/figure>\n\n\n\n<p>Now it&#8217;s time to train our model. SageMaker Canvas offers two training options<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Quick build<\/strong>: Allows faster prototyping that produces a trained model in less than 20 minutes. <\/li>\n\n\n\n<li><strong>Standard build<\/strong>: Provides a more accurate trained model but takes longer time. <\/li>\n<\/ul>\n\n\n\n<p>For this project, I&#8217;ll choose the Standard build option, which is estimated to complete in about 2 hours. It&#8217;s important to keep the session active without logging out; otherwise, the model building will stop.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"999\" height=\"771\" src=\"http:\/\/184.72.63.26\/wp-content\/uploads\/2024\/06\/quickbuild.png\" alt=\"\" class=\"wp-image-243\" srcset=\"https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/06\/quickbuild.png 999w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/06\/quickbuild-300x232.png 300w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/06\/quickbuild-768x593.png 768w\" sizes=\"auto, (max-width: 999px) 100vw, 999px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"867\" height=\"603\" src=\"http:\/\/184.72.63.26\/wp-content\/uploads\/2024\/06\/inprogress.png\" alt=\"\" class=\"wp-image-245\" srcset=\"https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/06\/inprogress.png 867w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/06\/inprogress-300x209.png 300w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/06\/inprogress-768x534.png 768w\" sizes=\"auto, (max-width: 867px) 100vw, 867px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Step 5: Analyze and Generate Prediction<\/h2>\n\n\n\n<p>During the forecast process, Canvas splits the data into two sets: a training set and testing set. The training set is utilized to train the model, while forecasts are generated within the testing set. Accuracy is evaluated by comparing these forecasts with the actual values in the testing set. <\/p>\n\n\n\n<p>After the build is completed, the analysis section displays various metrics to assess the accuracy of the forecast. Lower values indicate a more accurate model. One such metric is <strong>MAPE<\/strong> (mean absolute percent error), which measures the percentage difference between the mean forecasted value and the actual means. A MAPE value of 0 indicates a model with no error, so our model appears to perform quite well.<\/p>\n\n\n\n<p>For a detailed explanation of these metrics, refer to <a href=\"https:\/\/docs.aws.amazon.com\/sagemaker\/latest\/dg\/canvas-metrics.html#canvas-time-series-forecast-metrics\" data-type=\"link\" data-id=\"https:\/\/docs.aws.amazon.com\/sagemaker\/latest\/dg\/canvas-metrics.html#canvas-time-series-forecast-metrics\">this resource<\/a>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1010\" height=\"744\" src=\"http:\/\/184.72.63.26\/wp-content\/uploads\/2024\/06\/metrics.png\" alt=\"\" class=\"wp-image-251\" srcset=\"https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/06\/metrics.png 1010w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/06\/metrics-300x221.png 300w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/06\/metrics-768x566.png 768w\" sizes=\"auto, (max-width: 1010px) 100vw, 1010px\" \/><\/figure>\n\n\n\n<p>Now that the model is trained, let&#8217;s use it to create a prediction for future Microsoft stock prices. Click on <strong>Predict<\/strong>, choose <strong>Single item<\/strong> for prediction type and select <strong>MSFT<\/strong> in item:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"697\" src=\"http:\/\/184.72.63.26\/wp-content\/uploads\/2024\/06\/predict-1-1024x697.png\" alt=\"\" class=\"wp-image-253\" srcset=\"https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/06\/predict-1-1024x697.png 1024w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/06\/predict-1-300x204.png 300w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/06\/predict-1-768x523.png 768w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/06\/predict-1.png 1145w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Canvas computes the forecast values at three different quantiles (P10, P50, P90):<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>P10 &#8211; The true value is expected to be lower than the forecasted value 10% of the time.<\/li>\n\n\n\n<li>P50 &#8211; The true value is expected to be lower than the forecasted value 50% of the time.<\/li>\n\n\n\n<li>P90 &#8211; The true value is expected to be lower than the forecasted value 90% of the time.<\/li>\n<\/ul>\n\n\n\n<p>In the context of buying low and selling high in the stock market, P10 would serves as an entry point to buy; while P90 would indicate a suitable point to sell. <\/p>\n\n\n\n<p>Let&#8217;s download the prediction in CSV format for use in the next step. Don&#8217;t forget to log out from Canvas to avoid ongoing charges.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 6: Visualize Prediction with QuickSight<\/h2>\n\n\n\n<p>To visualize the prediction made by SageMaker Canvas, follow these steps:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Open QuickSight console and click on New dataset<\/li>\n\n\n\n<li>Select &#8220;Upload a file&#8221; and choose the CSV file downloaded from SageMaker Canvas<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"445\" src=\"http:\/\/184.72.63.26\/wp-content\/uploads\/2024\/06\/quicksight-ds-1024x445.png\" alt=\"\" class=\"wp-image-255\" srcset=\"https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/06\/quicksight-ds-1024x445.png 1024w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/06\/quicksight-ds-300x130.png 300w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/06\/quicksight-ds-768x334.png 768w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/06\/quicksight-ds.png 1125w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>After uploading the file, rename the following data fields:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>P10<\/strong> to <strong>lower bound<\/strong><\/li>\n\n\n\n<li><strong>P50<\/strong> to <strong>median<\/strong><\/li>\n\n\n\n<li><strong>P90<\/strong> to <strong>upper bound<\/strong><\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"724\" height=\"628\" src=\"http:\/\/184.72.63.26\/wp-content\/uploads\/2024\/06\/datafield.png\" alt=\"\" class=\"wp-image-259\" style=\"width:375px;height:auto\" srcset=\"https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/06\/datafield.png 724w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/06\/datafield-300x260.png 300w\" sizes=\"auto, (max-width: 724px) 100vw, 724px\" \/><\/figure>\n\n\n\n<p>Click on Analyses and select &#8220;New analysis&#8221; using the newly created dataset, configure the visualization using &#8220;Line Chart&#8221;  as the type. Place <strong>date<\/strong> on the x-axis and fields <strong>lower bound<\/strong>, <strong>media<\/strong>, and <strong>upper bound<\/strong> on the y-axis as values.<\/p>\n\n\n\n<p>To exclude holidays, create a filter where <strong>median<\/strong> is greater than 1:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"436\" height=\"1110\" src=\"http:\/\/184.72.63.26\/wp-content\/uploads\/2024\/06\/filter-1.png\" alt=\"\" class=\"wp-image-260\" style=\"width:233px;height:auto\" srcset=\"https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/06\/filter-1.png 436w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/06\/filter-1-118x300.png 118w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/06\/filter-1-402x1024.png 402w\" sizes=\"auto, (max-width: 436px) 100vw, 436px\" \/><\/figure>\n\n\n\n<p>After applying the filter, our chart looks like below:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"2080\" height=\"1362\" src=\"http:\/\/184.72.63.26\/wp-content\/uploads\/2024\/06\/chart.png\" alt=\"\" class=\"wp-image-261\" srcset=\"https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/06\/chart.png 2080w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/06\/chart-300x196.png 300w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/06\/chart-1024x671.png 1024w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/06\/chart-768x503.png 768w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/06\/chart-1536x1006.png 1536w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/06\/chart-2048x1341.png 2048w\" sizes=\"auto, (max-width: 2080px) 100vw, 2080px\" \/><\/figure>\n\n\n\n<p>Finally, click on &#8220;Save and Publish&#8221; to make the chart available on the Dashboard.<br>(Updated 2 July 2024: I added actual market close price of MSFT to the chart so you can see the performance of Sagemaker ML prediction)<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1295\" height=\"873\" src=\"http:\/\/184.72.63.26\/wp-content\/uploads\/2024\/07\/MSFT_with_actual.png\" alt=\"\" class=\"wp-image-621\" srcset=\"https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/07\/MSFT_with_actual.png 1295w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/07\/MSFT_with_actual-300x202.png 300w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/07\/MSFT_with_actual-1024x690.png 1024w, https:\/\/www.wallacel.com\/wp-content\/uploads\/2024\/07\/MSFT_with_actual-768x518.png 768w\" sizes=\"auto, (max-width: 1295px) 100vw, 1295px\" \/><\/figure>\n\n\n\n<p>Please note that this post is for educational purposes only and should not be used for making investment decisions. Always conduct thorough research and consult with a financial advisor before making any investment decisions. Thank you for reading my blog post. <\/p>\n","protected":false},"excerpt":{"rendered":"<p>In this project, I will explore using Machine Learning to forecast future stock prices. By leveraging AWS SageMaker Canvas, I&#8217;ll build a stock prediction model using time series forecasting and then visualize the results with AWS QuickSight. Step1 : Create SageMaker Domain To kick off the project, navigate to the SageMaker console and click on [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":264,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[26,27],"class_list":["post-231","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-aws","tag-machine-learning","tag-sagemaker"],"_links":{"self":[{"href":"https:\/\/www.wallacel.com\/index.php\/wp-json\/wp\/v2\/posts\/231","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.wallacel.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.wallacel.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.wallacel.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.wallacel.com\/index.php\/wp-json\/wp\/v2\/comments?post=231"}],"version-history":[{"count":17,"href":"https:\/\/www.wallacel.com\/index.php\/wp-json\/wp\/v2\/posts\/231\/revisions"}],"predecessor-version":[{"id":624,"href":"https:\/\/www.wallacel.com\/index.php\/wp-json\/wp\/v2\/posts\/231\/revisions\/624"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.wallacel.com\/index.php\/wp-json\/wp\/v2\/media\/264"}],"wp:attachment":[{"href":"https:\/\/www.wallacel.com\/index.php\/wp-json\/wp\/v2\/media?parent=231"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.wallacel.com\/index.php\/wp-json\/wp\/v2\/categories?post=231"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.wallacel.com\/index.php\/wp-json\/wp\/v2\/tags?post=231"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}