<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="https://www.w3.org/2005/Atom" xmlns:sy="https://purl.org/rss/1.0/modules/syndication/" xmlns:dc="https://purl.org/dc/elements/1.1/" xmlns:content="https://purl.org/rss/1.0/modules/content/" xmlns:wfw="https://wellformedweb.org/CommentAPI/" xmlns:slash="https://purl.org/rss/1.0/modules/slash/"
  version="2.0">
  <channel>
    <title>Continuous Learning</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/continuous_learning/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/continuous_learning/feed.xml</link>
    <description />
    <lastBuildDate>Wed, 17 Apr 2019 03:20:36 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>Operationalizing Twitter’s Anomaly Detection in AzureML</title>
      <link>https://docs.microsoft.com/archive/blogs/continuous_learning/operationalizing-twitters-anomaly-detection-in-azureml</link>
      <pubDate>Thu, 15 Oct 2015 09:10:00 GMT</pubDate>
      <dc:creator><![CDATA[Tejaswi]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/continuous_learning/2015/10/15/operationalizing-twitters-anomaly-detection-in-azureml/</guid>
      <description><![CDATA[While researching on Time Series-based Anomaly Detection algorithms, I came across Twitter’s blog...]]></description>
      <content:encoded><![CDATA[<p>While researching on Time Series-based Anomaly Detection algorithms, I came across Twitter’s <a href="https://blog.twitter.com/2015/introducing-practical-and-robust-anomaly-detection-in-a-time-series" target="_blank">blog post</a> on their implementation of Anomaly Detection, and also its associated source code on <a href="https://github.com/twitter/AnomalyDetection" target="_blank">GitHub</a>. Only one word popped into my mind – BRILLIANT! Now, I don’t have to write my own algorithm. On the other hand, I also wanted to test AzureML’s Custom R module feature and therefore thought of converting this magnificent piece of code into an operationalized web service using AzureML. In this article, I will show you how easy it is to package a custom R function into an operationalized web service in the cloud. </p>  <h2>Understanding Anomaly Detection</h2>  <p>Let’s say you have a daily routine, you Wake up at 7:00am, Breakfast at 8:00am, Start work 9:00am, Lunch 1:00pm, Stop work 6:00pm., and Reach home 7:00pm You have been doing this for 5 years happily and your boss is also happy with your work. But, for a couple of days, you reach the office at 11:00am instead of 9:00am. Your boss and colleagues immediately ask you, “Is there anything wrong?”.&#160; These two days are anomalies in your routine and human brain is trained to detect these anomalies because we don’t like them. Human brains are trained to normalize on patterns and let the routine ride your life.</p>  <p>Anomalies are everywhere, at work, at home, in industries, in your health, stock market, and also in computer systems. In cloud infrastructure, where every system is desired to have a consistent and predictable state, anomalies are like cancer. If you don’t detect them early on, they can spread and bring down your entire infrastructure. Usually, anomalies are associated with time-series (though not required) because we live in a time continuum and it is easier to map changes in values with time. Whether it is your heart beat or&#160; memory usage of a server, mapping it to a time series will help you visualize and detect anomalies as they relate to time.</p>  <p>Below are some examples of anomalies detected using Twitter’s Anomaly Detection algorithm web service running in AzureML.</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/3162.0ff14b40c3f44252a56fe9062686852f-0_1B992E01.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/3162.0ff14b40c3f44252a56fe9062686852f_2D00_0_5F00_1B992E01.png"><img title="0ff14b40c3f44252a56fe9062686852f-0" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="0ff14b40c3f44252a56fe9062686852f-0" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/7573.0ff14b40c3f44252a56fe9062686852f-0_thumb_1722AD3A.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/7573.0ff14b40c3f44252a56fe9062686852f_2D00_0_5F00_thumb_5F00_1722AD3A.png" width="361" height="361" /></a><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/1033.3a11989e640a4c0285cfe2e65278b746-0_1DD5B6BD.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/1033.3a11989e640a4c0285cfe2e65278b746_2D00_0_5F00_1DD5B6BD.png"><img title="3a11989e640a4c0285cfe2e65278b746-0" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="3a11989e640a4c0285cfe2e65278b746-0" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/6837.3a11989e640a4c0285cfe2e65278b746-0_thumb_6452A6C5.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/6837.3a11989e640a4c0285cfe2e65278b746_2D00_0_5F00_thumb_5F00_6452A6C5.png" width="334" height="334" /></a></p>  <p>To understand how Twitter’s Anomaly algorithm works, please read <a href="https://warrenmar.wordpress.com/tag/seasonal-hybrid-esd/" target="_blank">this</a>. If you want to run the R packages locally, I suggest you follow the instructions on Twitter’s <a href="https://blog.twitter.com/2015/introducing-practical-and-robust-anomaly-detection-in-a-time-series" target="_blank">blog</a>. The procedure I followed was:</p>  <ol>   <li>Read Twitter’s blog and studied how the algorithm works </li>    <li>Ran the R module locally in R studio </li>    <li>Packaged the R module using AzureML studio </li>    <li>Created an experiment </li>    <li>Published it as a web service </li>    <li>Created a C# client application to test the web service </li> </ol>  <p>&#160;</p>  <h2>Testing Twitter’s Code in AzureML</h2>  <p>In AzureML, there is an Execute R Script module that lets you run a custom R script on an input data. For more information on how to get started with this module, please refer to <a href="https://azure.microsoft.com/en-us/documentation/articles/machine-learning-r-quickstart/" target="_blank">this article</a>.Next, I uploaded the <a href="https://github.com/dynamicdeploy/analytics-machinelearning/blob/master/Anomaly%20Detection/R/testdata/twitteranomaly1.csv" target="_blank">sample data</a>, zipped and uploaded Twitter’s R code and got the following experiment working in AzureML in no time.</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/3603.image_6DAE6BF9.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/3603.image_5F00_6DAE6BF9.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/8371.image_thumb_224EC835.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/8371.image_5F00_thumb_5F00_224EC835.png" width="667" height="373" /></a></p>  <p>I used the Project Columns module to project only the timestamp and count columns from the dataset to the R script because for anomaly detection, I only need timestamps and values for detecting anomalies.</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/7737.image_14104F45.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/7737.image_5F00_14104F45.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/3632.image_thumb_48B0AB80.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/3632.image_5F00_thumb_5F00_48B0AB80.png" width="696" height="426" /></a></p>  <p>Next, I modified the Execute R Script module script with the following code</p>  <p><font face="Consolas"># Map 1-based optional input ports to variables      <br />raw_data &lt;- maml.mapInputPort(1) # class: data.frame       <br /># Contents of optional Zip port are in ./src/       <br />source(&quot;src/date_utils.R&quot;);       <br />source(&quot;src/detect_anoms.R&quot;);       <br />source(&quot;src/plot_utils.R&quot;);       <br />source(&quot;src/ts_anom_detection.R&quot;);       <br /></font></p>  <p><strong>#Convert the first column to POSIXlt timestamp. </strong></p> <font face="Consolas"><strong>raw_data[[1]] &lt;- as.POSIXlt(raw_data[[1]])</strong></font>    <p><font face="Consolas">#Call Twitter’s R module function (from uploaded script)      <br /><strong>res = AnomalyDetectionTs(raw_data, max_anoms=0.02, direction='both', plot=TRUE)</strong></font></p>  <p><font face="Consolas">res$anoms[[1]] &lt;- as.character(res$anoms[[1]], format=&quot;%Y-%m-%dT%I:%M:%S %Z&quot;)      <br />resdf &lt;- res$anoms       <br /><strong>maml.mapOutputPort(&quot;resdf&quot;);</strong></font></p>  <p>The script above acts as a wrapper over the Twitter’s AnomalyDetectionTs function. Notice how I am importing the dependent R files, modifying the time to POSIXlt format and then calling the AnomalyDetectionTs function from the ts_anom_detection.R file directly. Once you import the R files, functions from these files are available directly in the Execute R Script module. Once the anomalies are detected, I output the anomalies object (i.e. anoms) to the data output port (Port #1 – bottom left) . If you set plot=TRUE in the function, the plot get automatically output to the R Device port(Port #2 – bottom right). If you visualize both the ports, you will observe the following results (131 anomalies detected)</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/4857.image_2A0E19FD.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/4857.image_5F00_2A0E19FD.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/1768.image_thumb_2BDE6FC4.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/1768.image_5F00_thumb_5F00_2BDE6FC4.png" width="487" height="390" /></a></p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/0143.image_696E5E3E.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/0143.image_5F00_696E5E3E.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/7563.image_thumb_28CC11CF.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/7563.image_5F00_thumb_5F00_28CC11CF.png" width="464" height="469" /></a></p>  <p>The blue dots represent the anomalies in the data. I could have been contented here and published the experiment as a web service. So, what was the problem? </p>  <p>I wouldn’t be able to expose all the parameters of the AnomalyDetectionTs() function as web service inputs. So, to do real justice to this fantastic algorithm, I decided to drive a bit further and create a custom R module in AzureML for this function. </p>  <h2>Creating Custom R Module </h2>  <p>Creating a custom R module in AzureML is not difficult as long as you understand the original R module that you want to wrap and how to create XML files. For more information on creating custom R modules, <a href="https://azure.microsoft.com/en-us/documentation/articles/machine-learning-custom-r-modules/" target="_blank">please visit this page</a>.</p>  <p>For the AnomalyDetectionTs() function, I creates a new R file containing a wrapper function as shown below. </p>  <p><font face="Consolas"><font size="2"><strong>AnomalyDetectionTsw &lt;- function(dataset1, max_anoms = 0.10, direction = 'pos',          <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; alpha = 0.05, only_last = NULL, threshold = 'None',           <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; e_value = FALSE, longterm = FALSE, piecewise_median_period_weeks = 2, plot = FALSE,&#160; y_log = FALSE, xlabel = '', ylabel = 'count',&#160; title = NULL, verbose=FALSE, narm = FALSE)</strong>{</font></font></p>  <p><font size="2" face="Consolas">#Added by Tejaswi. Wrapper to work with AzureML      <br /># Contents of optional Zip port are in ./src/       <br />source(&quot;src/date_utils.R&quot;);       <br />source(&quot;src/detect_anoms.R&quot;);       <br />source(&quot;src/plot_utils.R&quot;);       <br />source(&quot;src/vec_anom_detection.R&quot;);       <br />source(&quot;src/ts_anom_detection.R&quot;);</font></p>  <p><font size="2" face="Consolas">if(only_last == &quot;None&quot;){ only_last &lt;- NULL}      <br />if(xlabel == &quot;None&quot;) { xlabel &lt;- ''}       <br />&#160;</font></p>  <p><font size="2" face="Consolas">dataset1[[1]] &lt;- as.POSIXlt(dataset1[[1]])</font></p>  <p><font size="2" face="Consolas">&#160;</font><font face="Consolas"><font size="2"><strong>res &lt;- AnomalyDetectionTs(dataset1, max_anoms, direction,          <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; alpha, only_last, threshold,           <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; e_value, longterm, piecewise_median_period_weeks, plot,           <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; y_log, xlabel, ylabel,           <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; title, verbose, narm)           <br /></strong>&#160; <br />res$anoms[[1]] &lt;- as.character(res$anoms[[1]], format=&quot;%Y-%m-%dT%I:%M:%S %Z&quot;)</font></font></p>  <p><font face="Consolas"><font size="2">&#160;<strong>if(plot == TRUE){</strong></font></font></p>  <p><strong><font size="2" face="Consolas">print(res$plot) </font></strong></p>  <p><font face="Consolas"><font size="2"><strong>}          <br /></strong>&#160; <br />&#160;</font></font><font face="Consolas"><font size="2"><strong>return(res$anoms)          <br /></strong>&#160; <br />}</font></font></p>  <p>Observe the similarity between the Execute R script and the new R module above. With this R module, I can now load the dependent modules, call the AnomalyDetectionTs() function, and most importantly expose the function parameters as web service parameters. The definition of input parameters and entry point of the module is defined in an XML file. Next, create the XML file for the wrapper module as shown <a href="https://azure.microsoft.com/en-us/documentation/articles/machine-learning-custom-r-modules/" target="_blank">here</a>.</p>  <p>You can find the final wrapper source code and the XML file I created <a href="https://github.com/dynamicdeploy/analytics-machinelearning/tree/master/Anomaly%20Detection/R" target="_blank">here</a>.</p>  <p>Now zip-up the original content (all Twitter modules), the wrapper module, and the xml file into one zip file and upload it as a module in AzureML Studio.</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/0458.image_738BA043.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/0458.image_5F00_738BA043.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/4162.image_thumb_4847093C.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/4162.image_5F00_thumb_5F00_4847093C.png" width="600" height="208" /></a></p>  <p>After processing and validating, the custom module should show up in the Custom section of the Toolbox of the AzureML Studio</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/7433.image_31BBA40E.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/7433.image_5F00_31BBA40E.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/3465.image_thumb_1853A0D4.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/3465.image_5F00_thumb_5F00_1853A0D4.png" width="320" height="209" /></a></p>  <h2>Testing the R Module</h2>  <p>Now you have your own Anomaly Detection module you can use in any experiment. Isn’t that cool? You can use and test the module like any other module in AzureML Studio.</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/0508.image_2CD8F052.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/0508.image_5F00_2CD8F052.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/3644.image_thumb_7A751CD2.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/3644.image_5F00_thumb_5F00_7A751CD2.png" width="460" height="358" /></a></p>  <p>If you test the module with the original dataset, it should yield the exact same results as before (131 anomalies). Note that we are not changing any algorithm logic, merely wrapping it into a reusable module.</p>  <h2>Publishing Web Service</h2>  <p>Now, you can create a web service and <a href="https://azure.microsoft.com/en-us/documentation/articles/machine-learning-publish-a-machine-learning-web-service/" target="_blank">publish it</a> that any client app can call. A couple of things to keep in mind:</p>  <p>1) Select the web service parameters you want to expose from the properties pane of the custom module. These parameters are defined in the XML file of the module.</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/6567.image_6EDF5F93.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/6567.image_5F00_6EDF5F93.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/1033.image_thumb_1F093B08.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/1033.image_5F00_thumb_5F00_1F093B08.png" width="396" height="530" /></a></p>  <p>2) Provide default values for the appropriate parameters</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/5417.image_2C6F4E0E.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/5417.image_5F00_2C6F4E0E.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/3122.image_thumb_13074AD4.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/3122.image_5F00_thumb_5F00_13074AD4.png" width="370" height="510" /></a></p>  <p>3) Make sure you have one input and two Web Service outputs (not required) so that you can send even the plot all the way to the end user. </p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/6825.image_07718D95.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/6825.image_5F00_07718D95.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/2553.image_thumb_49E42FCB.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/2553.image_5F00_thumb_5F00_49E42FCB.png" width="512" height="306" /></a></p>  <h2>The Client Application</h2>  <p>Finally, we will need a client application to <a href="https://azure.microsoft.com/en-us/documentation/articles/machine-learning-consume-web-services/" target="_blank">consume</a> the web service. I have already built one for you, so relax. Please download the source code for the C# client console application from <a href="https://github.com/dynamicdeploy/analytics-machinelearning/tree/master/Anomaly%20Detection/client/AnomalyClient" target="_blank">here</a>. Before running the application, please update the AnomalyClient.exe.config file with the Url and Access Key of your AzureML web service.</p>  <p><font face="Consolas">&lt;add key=&quot;AnomalyDetectionWebServiceUrl&quot; value=&quot;&quot; /&gt;      <br />&lt;add key=&quot;AnomalyDetectionApiKey&quot; value=&quot;&quot; /&gt;</font></p>  <p>To display the application parameters/switches, type the following on the command prompt.</p>  <p><font face="Consolas">&gt;AnomalyClient.exe --help</font></p>  <p>You may also run the runtests.cmd file from the command prompt to execute a few tests. The anomalies are created as [GUID].csv files and plots are created as [GUID]-n.png; where [GUID] is a random GUID and n is the count of graphic (currently only 1).&#160; The logs will be available in the output.log file.</p>  <p>&#160;</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/1651.image_5E697F49.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/1651.image_5F00_5E697F49.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/1817.image_thumb_6BCF924F.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/1817.image_5F00_thumb_5F00_6BCF924F.png" width="413" height="195" /></a></p>  <p><strong>Note: The application lets you input a CSV file as an input with two columns “timestamp”, “values”.&#160; Timestamp must be the first column and Values must be the second column. If you have it reversed, it won’t work. If you don’t specify any input file, the application will generate random data. </strong></p>  <p>The application should work with or without headers in the CSV file. Use it at your own risk, but enjoy it thoroughly!</p>  <p>Thank you!</p>  <p>Tejaswi</p>  <p><a href="https://github.com/dynamicdeploy/analytics-machinelearning/tree/master/Anomaly%20Detection" target="_blank">Source Code Repo</a></p>  <h2>References</h2>  <p><a href="https://blog.twitter.com/2015/introducing-practical-and-robust-anomaly-detection-in-a-time-series" target="_blank">Twitter’s Anomaly Detection Algorithm</a></p>  <p><a href="https://github.com/twitter/AnomalyDetection" target="_blank">Twitter’s Anomaly Detection GitHub Repository</a></p>  <p><a href="https://anomaly.io/anomaly-detection-twitter-r/" target="_blank">Anomaly Detection with Twitter in R</a></p>  <p><a href="https://probdist.com/twitters-anomaly-detection-package/" target="_blank">Twitter’s Anomaly Detection Package</a></p>  <p><a href="https://warrenmar.wordpress.com/tag/seasonal-hybrid-esd/" target="_blank">Seasonal Hybrid ESD</a></p>]]></content:encoded>
    </item>
    <item>
      <title>Windows 10 Development Training Resources</title>
      <link>https://docs.microsoft.com/archive/blogs/continuous_learning/windows-10-development-training-resources</link>
      <pubDate>Mon, 29 Jun 2015 12:21:00 GMT</pubDate>
      <dc:creator><![CDATA[Tejaswi]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/continuous_learning/2015/06/29/windows-10-development-training-resources/</guid>
      <description><![CDATA[&#160;  With tons of new features coming to Windows 10 and 1000s of new API capabilities, I though...]]></description>
      <content:encoded><![CDATA[<p>&#160;</p>  <p>With tons of new features coming to Windows 10 and 1000s of new API capabilities, I though it would be great to put all the training together in one blog that not only me, but anyone can refer to. The links inlucde basic enhancements like XAML bindings to light-up features like Cortana integration. Enjoy!</p>  <p>&#160;</p>  <h2>Microsoft Virtual Academy Course</h2>  <p><a href="https://www.microsoftvirtualacademy.com/training-courses/a-developers-guide-to-windows-10">A Developer's Guide to Windows 10</a> </p>  <h2>XAML</h2>  <p><a href="https://channel9.msdn.com/Events/Build/2015/2-629">What's New in XAML for Universal Windows Apps</a> </p>  <p><a href="https://channel9.msdn.com/Events/Build/2015/2-650">Developing Universal Windows Apps in Visual Studio 2015</a> </p>  <p><a href="https://channel9.msdn.com/Events/Build/2015/3-622">Harnessing the Full Power of Input in Universal Windows Apps</a> </p>  <p><a href="https://channel9.msdn.com/Events/Build/2015/2-97">Universal Commanding and Navigation in Your XAML</a> </p>  <p><a href="https://channel9.msdn.com/Events/Build/2015/3-635">Data Binding: Boost Your Apps' Performance Through New Enhancements to XAML Data Binding</a> </p>  <p><a href="https://channel9.msdn.com/Events/Build/2015/2-790">Deep Dive into XAML and .NET Universal Windows App Development</a> </p>  <p><a href="https://channel9.msdn.com/Events/Build/2015/3-698">XAML Performance: Techniques for Maximizing Universal Windows App Experiences Built with XAML</a> </p>  <p><a href="https://channel9.msdn.com/Events/Build/2015/3-741">Moving to the Universal Windows Platform: Porting an App from Windows 8.1 XAML or Windows Phone Silverlight to Windows 10</a> </p>  <p><a href="https://channel9.msdn.com/Events/Build/2015/2-697">New XAML Tools in Visual Studio 2015</a> </p>  <p><a href="https://channel9.msdn.com/Events/Build/2015/2-776">XAML Case Study: Putting it All Together, Office and XAML</a> </p>  <p>&#160; </p>  <h2>JavaScript</h2>  <p><a href="https://channel9.msdn.com/Events/Build/2015/2-720">JavaScript Frameworks in Your Apps and Sites from WinJS and Beyond</a> </p>  <p>&#160; </p>  <h2>UX, Layout and Scaling</h2>  <p><a href="https://channel9.msdn.com/Events/Build/2015/2-768">Designing and Developing the Ultimate Windows App Experience</a> </p>  <p><a href="https://channel9.msdn.com/Events/Build/2015/2-63">Display Scaling: What It Is and What You Need to Know About it to Have Great Visuals</a> </p>  <p><a href="https://channel9.msdn.com/Events/Build/2015/2-778">Windows Design for Developers: Getting the Balance Right</a> </p>  <p><a href="https://channel9.msdn.com/Events/Build/2015/2-658">Design: UX Patterns and Responsive Techniques for Universal Windows Apps</a> </p>  <p><a href="https://channel9.msdn.com/Events/Build/2015/2-660">Surface Hub: Building Windows Universal Apps for Surface Hub and the Large Screen</a> </p>  <p><a href="https://channel9.msdn.com/Events/Build/2015/2-672">Bring Fluid, Responsive, and Highly Scalable UI Experiences to Your Universal Windows Apps with the New Visual Layer</a> </p>  <p><a href="https://channel9.msdn.com/Events/Build/2015/2-679">From the Small Screen to the Big Screen: Building Universal Windows App Experiences with XAML</a> </p>  <p><a href="https://channel9.msdn.com/Events/Build/2015/2-703">Optimizing Windows Apps for Continuum</a> </p>  <p><a href="https://channel9.msdn.com/Events/Build/2015/2-723">Screen Casting: Develop Multi-Screen Universal Windows Apps Using Casting Technologies</a> </p>  <p><a href="https://channel9.msdn.com/Events/Build/2015/3-737">Use New Motion and Effects Features to Captivate Users and Truly Bring Your App to Life</a> </p>  <p>&#160; </p>  <p><a href="https://channel9.msdn.com/Events/Build/2015/2-762">Tiles, Notifications, and Action Center</a> </p>  <p>&#160; </p>  <h2>App Lifecycle</h2>  <p><a href="https://channel9.msdn.com/Events/Build/2015/3-626">App Lifecycle: From Activation and Suspension to Background Execution and Multitasking in Universal Windows Apps</a> </p>  <p><a href="https://channel9.msdn.com/Events/Build/2015/2-617">Introducing the Windows 10 App Model</a> </p>  <p>&#160; </p>  <h2>App Analytics</h2>  <p><a href="https://channel9.msdn.com/Events/Build/2015/3-624">Application Insights for Any App: A Must-Have Tool for Understanding Your Customers</a> </p>  <p>&#160; </p>  <p><a href="https://channel9.msdn.com/Events/Build/2015/3-719">Fast and Powerful Diagnostics, and Problem Solving with Application Insights</a> </p>  <p>&#160; </p>  <h2>Cortana and Speech</h2>  <p><a href="https://channel9.msdn.com/Events/Build/2015/2-691">Cortana Extensibility in Universal Windows Apps</a> </p>  <p><a href="https://channel9.msdn.com/Events/Build/2015/3-716">Cortana and Speech Platform In Depth</a> </p>  <p>&#160; </p>  <h2>Inking</h2>  <p><a href="https://channel9.msdn.com/Events/Build/2015/3-705">Harness the Full Power of Digital Inking in Your Universal Windows App with Ink Recognition, Advanced Ink Processing, and More</a> </p>  <p><a href="https://channel9.msdn.com/Events/Build/2015/2-681">Introducing DirectInk: Learn How to Unlock New Opportunities Using Ink in Your App</a> </p>  <p>&#160; </p>  <h2>Face, Speech and Vision APIs (Project Oxford)</h2>  <p><a href="https://channel9.msdn.com/Events/Build/2015/2-613">&quot;Project Oxford&quot;: Adding Smart to Your Applications</a> </p>  <p><a href="https://channel9.msdn.com/Events/Build/2015/2-748">Vision APIs: Understanding Images in Your App</a> </p>  <p>&#160; </p>  <h2>Maps</h2>  <p><a href="https://channel9.msdn.com/Events/Build/2015/2-757">Leveraging Maps and Location Across Phone, Tablet, and PC in Your Windows Apps</a> </p>  <p><a href="https://channel9.msdn.com/Events/Build/2015/2-727">Build with Bing: Use Bing APIs and Tools to Enrich Your Apps and Make Them More Discoverable</a> </p>  <p>&#160; </p>  <h2>Audio, Camera &amp; Video</h2>  <p><a href="https://channel9.msdn.com/Events/Build/2015/3-634">A Studio in the Palm of Your Hand: Developing Audio and Video Creation Apps for Windows 10</a> </p>  <p><a href="https://channel9.msdn.com/Events/Build/2015/2-730">Camera: Developing Powerful Camera Apps</a> </p>  <p><a href="https://channel9.msdn.com/Events/Build/2015/3-747">Developing Audio and Video Apps</a> </p>  <p>&#160; </p>  <h2>User Data and Authentication</h2>  <p><a href="https://channel9.msdn.com/Events/Build/2015/2-684">User Data: Working with Contacts, Appointments, Text Messages and More on Windows 10</a> </p>  <p><a href="https://channel9.msdn.com/Events/Build/2015/2-639">Microsoft Passport and Windows Hello: Moving Beyond Passwords and Credential Theft</a> </p>  <p>&#160; </p>  <h2>Windows Store</h2>  <p><a href="https://channel9.msdn.com/Events/Build/2015/2-664">All That is New in the Windows Store</a> </p>  <p><a href="https://channel9.msdn.com/Events/Build/2015/3-710">Store: Deep Dive on Publishing Universal Windows Apps</a> </p>  <p><a href="https://channel9.msdn.com/Events/Build/2015/2-695">App Packaging and Deployment for Universal Windows Apps</a> </p>  <p><a href="https://channel9.msdn.com/Events/Build/2015/2-736">Acquiring Users and Monetizing Your Apps</a> </p>  <p><a href="https://channel9.msdn.com/Events/Build/2015/3-733">API Contracts (or How I Learned to Stop Checking OS Versions and Love Feature Detection)</a> </p>  <p><a href="https://channel9.msdn.com/Events/Build/2015/3-761">Monetize and Promote Your Universal Windows App with Ads</a> </p>  <p>&#160; </p>  <h2>Hosted Web Apps</h2>  <p><a href="https://channel9.msdn.com/Events/Build/2015/2-665">Hosted Web Apps and Web Platform Innovations</a> </p>  <p>&#160; </p>  <h2>Localization</h2>  <p><a href="https://channel9.msdn.com/Events/Build/2015/2-90">Cross-Platform Localization with the Multilingual App Toolkit</a> </p>  <p>&#160; </p>  <h2>Sensors and Printing</h2>  <p><a href="https://channel9.msdn.com/Events/Build/2015/2-735">Building Rich, Contextually Aware Universal Windows Apps Using Sensors</a> </p>  <p><a href="https://channel9.msdn.com/Events/Build/2015/2-94">Printing: Developing Apps That Print in Windows 10</a> </p>  <p><a href="https://channel9.msdn.com/Events/Build/2015/3-739">Building Compelling Bluetooth Apps in Windows 10</a> </p>  <p>&#160; </p>  <h2>App Services</h2>  <p><a href="https://channel9.msdn.com/Events/Build/2015/3-765">App-to-App Communication: Building a Web of Apps</a></p>]]></content:encoded>
    </item>
    <item>
      <title>TextAnalytics with AzureML</title>
      <link>https://docs.microsoft.com/archive/blogs/continuous_learning/textanalytics-with-azureml</link>
      <pubDate>Thu, 25 Jun 2015 08:38:00 GMT</pubDate>
      <dc:creator><![CDATA[Tejaswi]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/continuous_learning/2015/06/25/textanalytics-with-azureml/</guid>
      <description><![CDATA[Text Analytics  Text Analytics is the process of transforming text into information and actionable...]]></description>
      <content:encoded><![CDATA[<h5>Text Analytics</h5>  <p>Text Analytics is the process of transforming text into information and actionable output. Text is prevalent in all the industries. If something doesn’t already exist in text format, it ultimately lands up as text for consumable purposes. Most of the Machine Learning algorithms depend on CSV and JSON formats, which are object representations in textual format. What we speak also gets converted to text when it comes to speech recognition applications. Why? Because it is easier for applications to parse and consume text. Understanding the context is a different story, and that is where Natural Language Processing comes into play by transforming text into understandable corpora and lexicons. What does Microsoft have to offer in Text Analytics? Combined, our applications process more text than anyone else in the world (Office and Bing).</p>  <p>The AzureML Team has produced a series of experiments for building Text Classification models.</p>  <p><a href="https://azure.microsoft.com/en-us/documentation/videos/learn-how-to-create-text-analytics-solutions-with-azure-machine-learning-templates/">Watch this video: Learn How to Create Text Analytics Solutions with Azure Machine Learning Templates</a></p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/1220.clip_image002_6B5A8647.gif" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/1220.clip_5F00_image002_5F00_6B5A8647.gif"><img title="clip_image002" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="clip_image002" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/1033.clip_image002_thumb_26ADEC06.gif" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/1033.clip_5F00_image002_5F00_thumb_5F00_26ADEC06.gif" width="676" height="119" /></a></p>  <h6><a href="https://gallery.azureml.net/Experiment/f43e79f47d8a4219bf8613d271ea2c45"><b>Text Classification: Step 1 Data preparation</b></a></h6>  <p>Loading, editing, cleaning, partitioning, and filtering the dataset is covered in this module.</p>  <p><a href="https://gallery.azureml.net/Experiment/f43e79f47d8a4219bf8613d271ea2c45">AzureML Gallery Link</a></p>  <h6><a href="https://gallery.azureml.net/Experiment/464eb78e197d4440a332a129d8d523eb"><b>Step 2: Text preprocessing</b></a></h6>  <p>In the preprocessing step, this experiment demonstrates the importance of processing the text for cleaning the dataset. Some of the preprocessing examples include removing special characters, assigning contextual meaning to special characters and text symbols (e.g. J, LOL), removing duplicates, punctuations, and stop-words.</p>  <p><a href="https://gallery.azureml.net/Experiment/464eb78e197d4440a332a129d8d523eb">AzureML Gallery Link</a></p>  <h6>Step 3: Feature engineering</h6>  <p>Step 3 has 2 parts:</p>  <p><a href="https://gallery.azureml.net/Experiment/cf65bf129fee4190b6f48a53e599a755">3A: n-grams TF-feature Extraction</a></p>  <p><a href="https://gallery.azureml.net/Experiment/7a5a38a13fa34e2b847b519629da1a59">3B: unigrams TF-IDF feature extraction</a></p>  <p>Now that you have the data cleaned up, it’s time to extract features. </p>  <p>For a mathematical machine learning algorithm, textual features doesn’t make much sense, therefore, this module demonstrates the use of Feature Hashing to convert variable length text into numeric feature vectors. When its numbers, Math is happy. The step also demonstrates how to simplify the dimensions of the feature vectors using the “Filter Based Feature Selection” module. </p>  <h6><a href="https://gallery.azureml.net/Experiment/28437611ee1a42df8efb8f4b12a7aa88"><b>Step 4: Train and evaluate models</b></a></h6>  <p>The hard part is over. In this module, you select your favorite algorithm(s), and train the machine learning model. </p>  <p><a href="https://gallery.azureml.net/Experiment/28437611ee1a42df8efb8f4b12a7aa88">AzureML Gallery Link</a></p>  <h6>Step 5: Deploy trained models as web services</h6>  <p>Step 5 has two parts:</p>  <p><a href="https://gallery.azureml.net/Experiment/ecaa60e30c19443e9313f53155bc4367">5A: Deploy TF Web Service</a></p>  <p><a href="https://gallery.azureml.net/Experiment/e98cccbbec1c4739b3691848d01b1b56">5B: Deploy TF-IDF Web Service</a></p>  <p>And finally, you deploy the web services to be used in your applications.</p>  <h5>Text Analytics Web Service</h5>  <p>If you don’t want to build an ML service from scratch, t<a name="_GoBack"></a>he AzureML team has also published a TextAnalytics web service in the Azure Datamarket with sample code and documentation.</p>  <p><a href="https://datamarket.azure.com/dataset/amla/text-analytics">https://datamarket.azure.com/dataset/amla/text-analytics</a></p>  <p><a href="https://azure.microsoft.com/en-us/documentation/articles/machine-learning-apps-text-analytics/">Documentation</a></p>  <p><a href="https://onedrive.live.com/?cid=8536718b52f71725&amp;id=8536718B52F71725%21132&amp;ithint=folder,&amp;authkey=!AOdp42x99QJJ9Ag">Sample Code</a></p>  <h5>Text Analytics and Vowpal Wabbit in Azure Machine Learning Studio</h5>  <p><a href="https://azure.microsoft.com/en-us/documentation/videos/text-analytics-and-vowpal-wabbit-in-azure-ml-studio/">https://azure.microsoft.com/en-us/documentation/videos/text-analytics-and-vowpal-wabbit-in-azure-ml-studio/</a></p>]]></content:encoded>
    </item>
    <item>
      <title>Machine Learning Tools Powerhouse with Azure RemoteApp</title>
      <link>https://docs.microsoft.com/archive/blogs/continuous_learning/machine-learning-tools-powerhouse-with-azure-remoteapp</link>
      <pubDate>Mon, 06 Apr 2015 18:37:00 GMT</pubDate>
      <dc:creator><![CDATA[Tejaswi]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/continuous_learning/2015/04/06/machine-learning-tools-powerhouse-with-azure-remoteapp/</guid>
      <description><![CDATA[&nbsp;
Wouldn&rsquo;t it be nice to have all your Machine Learning (ML) tools available wherever...]]></description>
      <content:encoded><![CDATA[<p>&nbsp;</p>
<p>Wouldn&rsquo;t it be nice to have all your Machine Learning (ML) tools available wherever you are, and on any device?&nbsp; Azure RemoteApp is built exactly for that. While traveling, I usually carry my Surface Pro 3 that does not have any ML tools,&nbsp; and at home I have my monster ThinkPad W350 with all the ML tools,&nbsp; as well as an iMac to work on all the cool Open Source and Mac-friendly Microsoft software. I would like to use my ML tools on-the-go from airplanes to boring meetings. In this article, I will describe the process of creating a custom Azure RemoteApp template with your favorite Machine Learning tools installed, and then streaming these tools to any device. Ready for the ride?</p>
<h2>Pre-Requisites</h2>
<ol>
<li>Azure Subscription with Access to RemoteApp</li>
<li>Knowledge of creating Azure Virtual Machines</li>
</ol>
<h2>Which Virtual Machine to use?</h2>
<p>The RemoteApp team has created a &ldquo;Windows Remote Desktop Session Host&rdquo; server image for your convenience to quickly get started with the right configuration required by a RemoteApp custom template. If you want to start from scratch, here are more <a href="https://azure.microsoft.com/en-us/documentation/articles/remoteapp-create-custom-image/" target="_blank">details</a>.</p>
<p>Login to Azure portal and create a new &ldquo;Windows Remote Desktop Session Host&rdquo; VM</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/0028.image_3752DCE0.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/0028.image_5F00_3752DCE0.png"><img style="display: inline; border-width: 0px;" title="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/0535.image_thumb_6303A6DC.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/0535.image_5F00_thumb_5F00_6303A6DC.png" alt="image" width="306" height="396" border="0" /></a></p>
<p>Below is the VM configuration I used for this exercise.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/2514.image_4E7E575E.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/2514.image_5F00_4E7E575E.png"><img style="display: inline; border-width: 0px;" title="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/1440.image_thumb_6BF0A86A.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/1440.image_5F00_thumb_5F00_6BF0A86A.png" alt="image" width="336" height="402" border="0" /></a>&nbsp;&nbsp;</p>
<h2>Installing Machine Learning Software</h2>
<p>Once the VM is ready, login to the VM and install your favorite Machine Learning client tools. I installed the following ones:</p>
<ul>
<li>Python</li>
<li>Anaconda</li>
<li>R</li>
<li>R Studio</li>
<li>Notepad++, SublimeText (for text editing if required).</li>
</ul>
<p>You can install more of your favorite tools if you like.</p>
<h3>Start Menu Requirement</h3>
<blockquote>
<p>After installation is complete, add the installed software to the Start Menu by right-clicking and selecting &ldquo;Pin to Start Menu&rdquo;.&nbsp; RemoteApp will pick up the software listed in the Start Menu.</p>
</blockquote>
<p>My Start Menu looks like this.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/4760.image_7A2F215A.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/4760.image_5F00_7A2F215A.png"><img style="display: inline; border-width: 0px;" title="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/5661.image_thumb_09CF2C6C.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/5661.image_5F00_thumb_5F00_09CF2C6C.png" alt="image" width="344" height="481" border="0" /></a></p>
<h2>Validating Image</h2>
<p>Next, the RemoteApp team has created a nice tool called &ldquo;ValidateRemoteAppImage&rdquo; for validating the VM for RemoteApp publishing. This tool is available on the Desktop of the &ldquo;Windows Remote Desktop Session Host&rdquo; VM image.</p>
<p>Double-click the tool to validate the VM (as shown below). If there are errors, fix them as suggested.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/4520.image_43523C63.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/4520.image_5F00_43523C63.png"><img style="display: inline; border-width: 0px;" title="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/8345.image_thumb_15D11CA0.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/8345.image_5F00_thumb_5F00_15D11CA0.png" alt="image" width="554" height="396" border="0" /></a></p>
<h2>Capturing the Image</h2>
<p>RemoteApp requires captured VM images to publish, deploy, and stream the applications. Follow the procedure listed <a href="https://azure.microsoft.com/en-us/documentation/articles/virtual-machines-capture-image-windows-server/" target="_blank">here</a> to capture the VM image. Make sure you generalize and shutdown during sysprep as shown below.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/2313.image_2166D9DF.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/2313.image_5F00_2166D9DF.png"><img style="display: inline; border-width: 0px;" title="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/2818.image_thumb_3ACEDD19.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/2818.image_5F00_thumb_5F00_3ACEDD19.png" alt="image" width="400" height="303" border="0" /></a></p>
<p>After the image is shutdown, click the capture button from the Azure drawer menu for the VM.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/6204.image_26498D9B.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/6204.image_5F00_26498D9B.png"><img style="display: inline; border-width: 0px;" title="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/4578.image_thumb_6A89F4E7.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/4578.image_5F00_thumb_5F00_6A89F4E7.png" alt="image" width="108" height="81" border="0" /></a></p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/6710.image_43BBDEA7.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/6710.image_5F00_43BBDEA7.png"><img style="display: inline; border-width: 0px;" title="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/3326.image_thumb_3D08D524.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/3326.image_5F00_thumb_5F00_3D08D524.png" alt="image" width="505" height="373" border="0" /></a></p>
<p>After the image is captured, the VM will be deleted and the image will appear in the Images section of the portal</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/1778.image_1D59FB5C.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/1778.image_5F00_1D59FB5C.png"><img style="display: inline; border-width: 0px;" title="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/7242.image_thumb_0FF3E856.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/7242.image_5F00_thumb_5F00_0FF3E856.png" alt="image" width="359" height="125" border="0" /></a></p>
<h2>Adding Image to the RemoteApp Template library</h2>
<p>Next, we need to let the RemoteApp know that we want to use this VM image for creating our collection. Go to the Template Images section of RemoteApps and click on &ldquo;Upload or Import a Template Image&rdquo;.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/3857.image_18E0E9E4.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/3857.image_5F00_18E0E9E4.png"><img style="display: inline; border-width: 0px;" title="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/7178.image_thumb_271F62D4.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/7178.image_5F00_thumb_5F00_271F62D4.png" alt="image" width="546" height="150" border="0" /></a></p>
<p>Next, click on &ldquo;Import an image from your Virtual Machine library&rdquo;</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/7266.image_206C5951.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/7266.image_5F00_206C5951.png"><img style="display: inline; border-width: 0px;" title="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/3487.image_thumb_24E2DA18.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/3487.image_5F00_thumb_5F00_24E2DA18.png" alt="image" width="466" height="164" border="0" /></a></p>
<p>On the &ldquo;Import a Template Image&rdquo; page, select the VM image you created earlier.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/0576.image_70427DDC.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/0576.image_5F00_70427DDC.png"><img style="display: inline; border-width: 0px;" title="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/5050.image_thumb_698F7459.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/5050.image_5F00_thumb_5F00_698F7459.png" alt="image" width="455" height="372" border="0" /></a></p>
<p>On the next screen, give your VM Template image a name and select the location. After successful import, the template will be listed in the &ldquo;Template Images&rdquo; section of RemoteApp.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/5543.image_49E09A91.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/5543.image_5F00_49E09A91.png"><img style="display: inline; border-width: 0px;" title="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/0268.image_thumb_432D910E.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/0268.image_5F00_thumb_5F00_432D910E.png" alt="image" width="700" height="140" border="0" /></a></p>
<h2>Creating a Remote App Cloud Collection</h2>
<p>The custom VM template portion of the exercise is now complete. Create a new RemoteApp collection as shown below</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/5700.image_7591648D.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/5700.image_5F00_7591648D.png"><img style="display: inline; border-width: 0px;" title="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/8117.image_thumb_1303B59A.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/8117.image_5F00_thumb_5F00_1303B59A.png" alt="image" width="596" height="450" border="0" /></a></p>
<p>In the Template Image dropdown, you will see your VM image listed. Please specify your preferred name, region, and plan (<a href="https://azure.microsoft.com/en-us/pricing/details/remoteapp/" target="_blank">Standard Recommended</a>&nbsp;for Machine Learning Tools)&nbsp;for the collection. The collection should get listed in the &ldquo;RemoteApp Collections&rdquo; section of the portal.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/6076.image_5E63595E.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/6076.image_5F00_5E63595E.png"><img style="display: inline; border-width: 0px;" title="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/6560.image_thumb_059DA294.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/6560.image_5F00_thumb_5F00_059DA294.png" alt="image" width="590" height="116" border="0" /></a></p>
<h2>Publishing Applications</h2>
<p>Remember those apps that you added to the start menu earlier? We need to publish those to RemoteApp individually. On the RemoteApp Collection page, click &ldquo;Publish remoteapp programs&rdquo; and select the apps you want to publish.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/0647.image_7EEA9910.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/0647.image_5F00_7EEA9910.png"><img style="display: inline; border-width: 0px;" title="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/3683.image_thumb_18529C4B.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/3683.image_5F00_thumb_5F00_18529C4B.png" alt="image" width="658" height="366" border="0" /></a></p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/3288.image_6EDBCA59.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/3288.image_5F00_6EDBCA59.png"><img style="display: inline; border-width: 0px;" title="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/1638.image_thumb_415AAA96.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/1638.image_5F00_thumb_5F00_415AAA96.png" alt="image" width="441" height="368" border="0" /></a></p>
<h2>Adding Users</h2>
<p>Next, to add users, click on &ldquo;Configure user access&rdquo; and add the identities of the users. For more information on supported user identities, please refer to the following link.</p>
<p><a title="https://azure.microsoft.com/en-us/documentation/articles/remoteapp-user/" href="https://azure.microsoft.com/en-us/documentation/articles/remoteapp-user/">https://azure.microsoft.com/en-us/documentation/articles/remoteapp-user/</a></p>
<h2>Running the Remote App</h2>
<p>Our Remote App is now ready, lets start using it. Download the RemoteApp client from <a href="https://www.remoteapp.windowsazure.com">https://www.remoteapp.windowsazure.com</a></p>
<blockquote>
<p>For Mac users, the website will automatically redirect you to the Mac App Store for downloading &ldquo;Microsoft Remote Desktop&rdquo; app. The Microsoft Remote Desktop App has a menu item for Azure RemoteApp.</p>
</blockquote>
<p>Install and login to the Azure Remote App client using one of the user access accounts you created earlier. On successful login, you should see the apps you published in the Azure RemoteApp console.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/6740.image_08B00089.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/6740.image_5F00_08B00089.png"><img style="display: inline; border-width: 0px;" title="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/6355.image_thumb_2D418E0D.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/6355.image_5F00_thumb_5F00_2D418E0D.png" alt="image" width="566" height="315" border="0" /></a></p>
<h2>Running the Apps</h2>
<p>Double-click on any of these tools to run on any supported device. Let&rsquo;s start with Anaconda, a scientific Python distribution.</p>
<h3>NLTK Dispersion Plot</h3>
<p>Start Anaconda command prompt and type python to enter Python&rsquo;s interactive environment. NLTK is packaged with Anaconda distribution, but you still need to download the required corpora for testing. As shown below, download all the NLTK corpora using NLTK downloader.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/4705.image_46A99147.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/4705.image_5F00_46A99147.png"><img style="display: inline; border-width: 0px;" title="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/7455.image_thumb_4B20120E.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/7455.image_5F00_thumb_5F00_4B20120E.png" alt="image" width="603" height="333" border="0" /></a></p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/5633.image_4F9692D5.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/5633.image_5F00_4F9692D5.png"><img style="display: inline; border-width: 0px;" title="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/7875.image_thumb_0919A2CD.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/7875.image_5F00_thumb_5F00_0919A2CD.png" alt="image" width="576" height="478" border="0" /></a></p>
<p>Note the Download directory. Every user has a specific directory on the RemoteApp VM. There is nothing magic going on behind the scenes. The RemoteApp infrastructure runs an instance of the VM template we created and then streams the published apps to the end-user. Every permitted user gets an account and shares the same VM instance.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/2021.image_7BB38FC6.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/2021.image_5F00_7BB38FC6.png"><img style="display: inline; border-width: 0px;" title="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/4670.image_thumb_002A108E.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/4670.image_5F00_thumb_5F00_002A108E.png" alt="image" width="602" height="330" border="0" /></a></p>
<p>Once the NLTK downloading is complete, we can start testing it.</p>
<p>Import the NLTK book corpora from the command prompt as shown below.</p>
<p><strong>&gt;&gt;&gt; from nltk.book import * <br />*** Introductory Examples for the NLTK Book *** <br />Loading text1, ..., text9 and sent1, ..., sent9 <br />Type the name of the text or sentence to view it. <br />Type: 'texts()' or 'sents()' to list the materials. <br />text1: Moby Dick by Herman Melville 1851 <br />text2: Sense and Sensibility by Jane Austen 1811 <br />text3: The Book of Genesis <br />text4: Inaugural Address Corpus <br />text5: Chat Corpus <br />text6: Monty Python and the Holy Grail <br />text7: Wall Street Journal <br />text8: Personals Corpus <br />text9: The Man Who Was Thursday by G . K . Chesterton 1908 <br />&gt;&gt;&gt;</strong></p>
<p>Next, let&rsquo;s create a dispersion plot of certain words against specific corpora. text4 is the US Presidential inaugural address corpora, so lets try to find out common words spoken by all the presidents.</p>
<p><strong>&gt;&gt;&gt; text4.dispersion_plot(["citizens", "democracy", "freedom", "duties", "America", "dream", "independence", "government", "democrat", "republican"])</strong></p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/2133.image_04A09155.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/2133.image_5F00_04A09155.png"><img style="display: inline; border-width: 0px;" title="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/6266.image_thumb_10364E94.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/6266.image_5F00_thumb_5F00_10364E94.png" alt="image" width="471" height="430" border="0" /></a></p>
<p>From the figure above, you can derive interesting insights from the textual content. If you run the same words against another corpora, what would the dispersion plot look like?&nbsp;</p>
<p>For more information on NLTK, please visit <a href="https://www.nltk.org">https://www.nltk.org</a></p>
<h3>R Text Analytics</h3>
<p>Now let&rsquo;s try R, another popular language with Data Scientists. In this exercise, lets try to build a pie chart of the types of client applications used for tweeting &ldquo;#microsoft&rdquo;. I have used the sample from the twitteR package documentation (Source: <a title="https://geoffjentry.hexdump.org/twitteR.pdf" href="https://geoffjentry.hexdump.org/twitteR.pdf">https://geoffjentry.hexdump.org/twitteR.pdf</a>&nbsp; )</p>
<p>Start R Studio and install twitteR package from Tools &gt; Install Packages</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/7750.image_02D03B8E.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/7750.image_5F00_02D03B8E.png"><img style="display: inline; border-width: 0px;" title="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/7752.image_thumb_4E2FDF52.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/7752.image_5F00_thumb_5F00_4E2FDF52.png" alt="image" width="352" height="266" border="0" /></a></p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/0830.image_2E81058A.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/0830.image_5F00_2E81058A.png"><img style="display: inline; border-width: 0px;" title="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/0358.image_thumb_4CCBBC80.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/0358.image_5F00_thumb_5F00_4CCBBC80.png" alt="image" width="393" height="318" border="0" /></a></p>
<h4>Setting up Twitter Client</h4>
<p>Use <a title="this link" href="https://geoffjentry.hexdump.org/twitteR.pdf">this link</a> for setting up and accessing Twitter API using the twitteR client. Once the client is setup and tested, we will call the APIs as listed below for building our pie chart. In R Studio, type the following.</p>
<p><strong>&gt; r_tweets&lt;-searchTwitter("#microsoft",n=3000) <br />&gt; sources&lt;-sapply(r_tweets,function(x)x$getStatusSource()) <br />&gt; head(sources) <br />[1] "&lt;a href=\"</strong><a href="https://twitter.com\&quot;"><strong>https://twitter.com\"</strong></a><strong> rel=\"nofollow\"&gt;Twitter Web Client&lt;/a&gt;" <br />[2] "&lt;a href=\"</strong><a href="https://ifttt.com\&quot;"><strong>https://ifttt.com\"</strong></a><strong> rel=\"nofollow\"&gt;IFTTT&lt;/a&gt;"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />[3] "&lt;a href=\"</strong><a href="https://twitter.com\&quot;"><strong>https://twitter.com\"</strong></a><strong> rel=\"nofollow\"&gt;Twitter Web Client&lt;/a&gt;" <br />[4] "&lt;a href=\"</strong><a href="https://dlvr.it\&quot;"><strong>https://dlvr.it\"</strong></a><strong> rel=\"nofollow\"&gt;dlvr.it&lt;/a&gt;"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />[5] "&lt;a href=\"</strong><a href="https://twitter.com\&quot;"><strong>https://twitter.com\"</strong></a><strong> rel=\"nofollow\"&gt;Twitter Web Client&lt;/a&gt;" <br />[6] "&lt;a href=\"</strong><a href="https://twitter.com\&quot;"><strong>https://twitter.com\"</strong></a><strong> rel=\"nofollow\"&gt;Twitter Web Client&lt;/a&gt;" <br />&gt; sources&lt;-gsub("&lt;/a&gt;","",sources) <br />&gt; sources&lt;-strsplit(sources,"&gt;") <br />&gt; sources&lt;-sapply(sources,function(x)ifelse(length(x)&gt;1,x[2],x[1])) <br />&gt; head(sources) <br />[1] "Twitter Web Client" "IFTTT"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "Twitter Web Client" "dlvr.it"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />[5] "Twitter Web Client" "Twitter Web Client" <br />&gt; source_table=table(sources) <br />&gt; pie(source_table[source_table&gt;50])</strong></p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/1460.image_715D4A04.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/1460.image_5F00_715D4A04.png"><img style="display: inline; border-width: 0px;" title="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/6153.image_thumb_51AE703C.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/6153.image_5F00_thumb_5F00_51AE703C.png" alt="image" width="478" height="318" border="0" /></a></p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/7635.image_5624F103.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/7635.image_5F00_5624F103.png"><img style="display: inline; border-width: 0px;" title="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/2474.image_thumb_0FA800FB.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/2474.image_5F00_thumb_5F00_0FA800FB.png" alt="image" width="633" height="332" border="0" /></a></p>
<p>&nbsp;</p>
<h2>Conclusion</h2>
<p>RemoteApp is one of the killer apps for Azure. It will save you&nbsp;significant amount of time and money just by moving your desktop apps to a service consumption model. It's not just the cost that&rsquo;s driving the adoption, but also its scale and reach. RemoteApp will be available in all the Azure datacenters around the world. Imagine building this service yourself from scratch with similar scale and global reach. The scenario mentioned in this article is just scratching the surface of enhancing worker productivity through Azure RemoteApp.</p>
<h2>References and Resources</h2>
<p>&nbsp;</p>
<p><strong>Text Analytics using R</strong></p>
<p><a title="https://www.rdatamining.com/examples/text-mining" href="https://www.rdatamining.com/examples/text-mining">https://www.rdatamining.com/examples/text-mining</a>&nbsp;</p>
<p><strong>twitteR documentation</strong></p>
<p><a title="https://geoffjentry.hexdump.org/twitteR.pdf" href="https://geoffjentry.hexdump.org/twitteR.pdf">https://geoffjentry.hexdump.org/twitteR.pdf</a>&nbsp;</p>
<p><strong><span style="text-decoration: underline;">RemoteApp Resources</span></strong></p>
<h4>&nbsp;</h4>
<p><strong>Creating a RemoteApp Template Image</strong></p>
<p><a title="https://blogs.msdn.com/b/rds/archive/2015/03/17/how-to-create-a-remoteapp-template-image-in-azure.aspx" href="https://blogs.msdn.com/b/rds/archive/2015/03/17/how-to-create-a-remoteapp-template-image-in-azure.aspx">https://blogs.msdn.com/b/rds/archive/2015/03/17/how-to-create-a-remoteapp-template-image-in-azure.aspx</a></p>
<p><strong>Creating Cloud Collection</strong></p>
<p><a title="https://azure.microsoft.com/en-us/documentation/articles/remoteapp-create-cloud-deployment/" href="https://azure.microsoft.com/en-us/documentation/articles/remoteapp-create-cloud-deployment/">https://azure.microsoft.com/en-us/documentation/articles/remoteapp-create-cloud-deployment/</a>&nbsp;</p>
<p><strong>Creating Custom Image</strong></p>
<p><a title="https://azure.microsoft.com/en-us/documentation/articles/remoteapp-create-custom-image/" href="https://azure.microsoft.com/en-us/documentation/articles/remoteapp-create-custom-image/">https://azure.microsoft.com/en-us/documentation/articles/remoteapp-create-custom-image/</a></p>
<p><strong>Creating Hybrid Collection</strong></p>
<p><a title="https://azure.microsoft.com/en-us/documentation/articles/remoteapp-create-hybrid-deployment/" href="https://azure.microsoft.com/en-us/documentation/articles/remoteapp-create-hybrid-deployment/">https://azure.microsoft.com/en-us/documentation/articles/remoteapp-create-hybrid-deployment/</a>&nbsp;</p>
<p><strong>Azure Remote App Forum</strong></p>
<p><a href="https://go.microsoft.com/fwlink/p/?LinkId=396379">Azure RemoteApp forum</a>.</p>
<p><strong>Azure RemoteApp Documentation</strong></p>
<p><a title="https://azure.microsoft.com/en-us/documentation/services/remoteapp/" href="https://azure.microsoft.com/en-us/documentation/services/remoteapp/">https://azure.microsoft.com/en-us/documentation/services/remoteapp/</a></p>]]></content:encoded>
    </item>
    <item>
      <title>Extracting Org Names from Text using AzureML Named Entity Recognition</title>
      <link>https://docs.microsoft.com/archive/blogs/continuous_learning/extracting-org-names-from-text-using-azureml-named-entity-recognition</link>
      <pubDate>Tue, 24 Feb 2015 08:28:00 GMT</pubDate>
      <dc:creator><![CDATA[Tejaswi]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/continuous_learning/2015/02/24/extracting-org-names-from-text-using-azureml-named-entity-recognition/</guid>
      <description><![CDATA[&nbsp;
Recently I have been spending some time on Speech Recognition. The Speech Recognition...]]></description>
      <content:encoded><![CDATA[<p>&nbsp;</p>
<p>Recently I have been spending some time on Speech Recognition. The <a href="https://www.w3.org/TR/speech-grammar/" target="_blank">Speech Recognition Grammar Specification (SRGS)</a> file is typically used for defining speech commands that a user might utter. It works fine when the commands are known and you just want to capture it and in turn execute it. But there are scenarios where you want to capture everything that the user is speaking and then retrieve entities (e.g. nouns [ORG, PERSON, PLACE, etc.]) from the text. For example, in the financial scenario I am working on, I want to capture company names from user&rsquo;s speech. Running this kind of algorithm locally can be resource consuming on the device (especially mobile). Introducing AzureML&rsquo;s Named Entity Recognition.</p>
<p><a href="https://msdn.microsoft.com/library/azure/50b91b4f-9c98-40d6-9814-2d945c0bb3f1" target="_blank">Named Entity Recognition</a> (NER) is a Text Analytics module in AzureML that does exactly what I want here. It will extract entities from text and tag them as people (PER), location (LOC), or organization (ORG). NER is probably the simplest module available in AzureML.</p>
<h1>Step 1: Create Data</h1>
<p>I just mocked up some training data in a text file and named it namedentitytrain.tsv. The contents of the file are as follows</p>
<p><em>search Microsoft. <br />show Microsoft. <br />get Microsoft. <br />show Microsoft details.</em></p>
<p>I am trying to train the NER module with similar text that I am expecting a user to speak. Note that this is a very simple dataset for blog purposes only. In reality, I will be adding more combinations of text utterances to train the module.</p>
<h1>Step 2: Store Data</h1>
<p>Next, I stored the data in Azure Blob Storage (you can store is anywhere) and made it accessible via URL.</p>
<h1>Step 3: Start the experiment</h1>
<p>Once I had my data in place, I opened the AzureML studio <a href="https://studio.azureml.net">https://studio.azureml.net</a> and created a new experiment</p>
<h1>Step 4: Specifying the Data Input</h1>
<p>In order to make your training data available to the experiment, you must use either an existing saved dataset or a Reader module</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/7536.image_2D6ED201.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/7536.image_5F00_2D6ED201.png"><img style="display: inline; border-width: 0px;" title="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/8625.image_thumb_543CE841.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/8625.image_5F00_thumb_5F00_543CE841.png" alt="image" width="314" height="85" border="0" /></a></p>
<p>Next, I configured the Reader module to point to the TSV data file I had created earlier</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/6165.image_1406CEC7.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/6165.image_5F00_1406CEC7.png"><img style="display: inline; border-width: 0px;" title="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/3438.image_thumb_0F904E00.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/3438.image_5F00_thumb_5F00_0F904E00.png" alt="image" width="255" height="391" border="0" /></a></p>
<p>I follow the best practice of visualizing the data at every stage of the process.</p>
<p>&nbsp;</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/3022.image_0B19CD39.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/3022.image_5F00_0B19CD39.png"><img style="display: inline; border-width: 0px;" title="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/6406.image_thumb_63DF8403.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/6406.image_5F00_thumb_5F00_63DF8403.png" alt="image" width="373" height="285" border="0" /></a></p>
<p>Good, now the experiment can view the data. Note, you may have to run the experiment before visualizing it.</p>
<h1>Step 5: Configure NER Module</h1>
<p>From the Text Analytics section, I simply dragged the NER module and then connected the Reader to its left input. Next, I ran the experiment and connected the Web Service Input and Output modules to the NER input and output.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/8156.image_7F840FF9.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/8156.image_5F00_7F840FF9.png"><img style="display: inline; border-width: 0px;" title="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/5025.image_thumb_71459709.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/5025.image_5F00_thumb_5F00_71459709.png" alt="image" width="470" height="332" border="0" /></a></p>
<p>I ran the experiment again and published the web service by clicking Publish Web Service button</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/6114.image_0CEA#.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/6114.image_5F00_0CEA2300.png"><img style="display: inline; border-width: 0px;" title="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/2308.image_thumb_61A58BF8.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/2308.image_5F00_thumb_5F00_61A58BF8.png" alt="image" width="94" height="78" border="0" /></a></p>
<h1>Step 6: Testing the Web Service</h1>
<p>Once the Web Service is published, you are free to test it.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/2313.image_5A864F80.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/2313.image_5F00_5A864F80.png"><img style="display: inline; border-width: 0px;" title="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/3324.image_thumb_47D155C9.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/3324.image_5F00_thumb_5F00_47D155C9.png" alt="image" width="506" height="263" border="0" /></a></p>
<p>The Text link opens up a popup for you to enter web service parameters. I entered &ldquo;search oracle&rdquo;. Now, I expect the model to be trained and return be a tagged data.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/2742.image_156D824A.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/2742.image_5F00_156D824A.png"><img style="display: inline; border-width: 0px;" title="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/5086.image_thumb_18163DFB.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/5086.image_5F00_thumb_5F00_18163DFB.png" alt="image" width="367" height="232" border="0" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Result:</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/7633.image_70DBF4C5.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/7633.image_5F00_70DBF4C5.png"><img style="display: inline; border-width: 0px;" title="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/8032.image_thumb_17AA0B06.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/8032.image_5F00_thumb_5F00_17AA0B06.png" alt="image" width="440" height="58" border="0" /></a></p>
<p>&nbsp;</p>
<p>Voila!</p>
<p>I can now retrieve named entities from any text. My next step is to tie this to Speech Recognition and then I should be able to retrieve entities spoken by a user during a conversation.</p>
<p>For more information on the NER return values, please refer to</p>
<p><a title="https://msdn.microsoft.com/en-US/library/azure/dn905955" href="https://msdn.microsoft.com/en-US/library/azure/dn905955">https://msdn.microsoft.com/en-US/library/azure/dn905955</a></p>
<p>Isn&rsquo;t Machine Learning Fun?</p>
<p>Thanks,</p>
<p>Tejaswi Redkar</p>]]></content:encoded>
    </item>
    <item>
      <title>Good Resources for Developing Windows Store and Office Store Apps (HTML + JavaScript)</title>
      <link>https://docs.microsoft.com/archive/blogs/continuous_learning/good-resources-for-developing-windows-store-and-office-store-apps-html-javascript</link>
      <pubDate>Thu, 22 Jan 2015 07:19:00 GMT</pubDate>
      <dc:creator><![CDATA[Tejaswi]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/continuous_learning/2015/01/22/good-resources-for-developing-windows-store-and-office-store-apps-html-javascript/</guid>
      <description><![CDATA[&nbsp;
After speaking with several developers and partners around the world, I decided to blog this...]]></description>
      <content:encoded><![CDATA[<p>&nbsp;</p>
<p>After speaking with several developers and partners around the world, I decided to blog this instead of sending emails to all of them every time. Please let me know if I am missing a critical resource.</p>
<p><a href="https://dev.office.com" target="_blank"><img style="display: inline; border-width: 0px;" title="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/2804.image_782352B1.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/2804.image_5F00_782352B1.png" alt="image" width="128" height="117" border="0" /></a> <a href="https://dev.windows.com" target="_blank"><img style="display: inline; border-width: 0px;" title="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/7607.image_17D22C7A.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/7607.image_5F00_17D22C7A.png" alt="image" width="156" height="50" border="0" /></a></p>
<p>Since Office has adopted the new HTML + JS model for developing Office Apps, there has been a lot of demand in learning this model and understanding how it fits in the traditional model. The Office Store App model is designed for portability of your apps across multiple kinds of OS. The same app will run wherever Office runs. My personal favorite is the Outlook Contextual App because it enables new scenarios and ways of reaching to your end-user.</p>
<p>When it comes to Windows, HTML + JS is a boon. I have seen a <a href="https://d3js.org/" target="_blank">D3.js</a> visualization working in a native Windows Store App like a charm in no time.</p>
<p>Enjoy!</p>
<h2>Microsoft Virtual Academy</h2>
<p>&nbsp;</p>
<h3>Developing Universal Windows Apps with HTML and JavaScript Jump Start</h3>
<p><a href="https://www.microsoftvirtualacademy.com/training-courses/developing-universal-windows-apps-with-html-and-javascript-jump-start">https://www.microsoftvirtualacademy.com/training-courses/developing-universal-windows-apps-with-html-and-javascript-jump-start</a></p>
<h3>Windows 8.1 UX Design Jump Start</h3>
<p><a href="https://www.microsoftvirtualacademy.com/training-courses/windows-8-1-ux-design-jump-start">https://www.microsoftvirtualacademy.com/training-courses/windows-8-1-ux-design-jump-start</a></p>
<h3>Windows Store Apps with HTML5 Refresh Jump Start</h3>
<p><a href="https://www.microsoftvirtualacademy.com/training-courses/windows-store-apps-with-html5-refresh-jump-start">https://www.microsoftvirtualacademy.com/training-courses/windows-store-apps-with-html5-refresh-jump-start</a></p>
<h3>Advanced Windows Store App Development with HTML5 Jump Start</h3>
<p><a href="https://www.microsoftvirtualacademy.com/training-courses/advanced-windows-store-app-development-with-html5">https://www.microsoftvirtualacademy.com/training-courses/advanced-windows-store-app-development-with-html5</a></p>
<h3>Cross-Platform Development with Visual Studio</h3>
<p><a href="https://www.microsoftvirtualacademy.com/training-courses/cross-platform-development-with-visual-studio">https://www.microsoftvirtualacademy.com/training-courses/cross-platform-development-with-visual-studio</a></p>
<h2><span style="text-decoration: underline;">Samples</span></h2>
<h3>Universal App Samples (In C++, C#, and JavaScript)</h3>
<p><a href="https://code.msdn.microsoft.com/Universal-Windows-app-cb3248c3">https://code.msdn.microsoft.com/Universal-Windows-app-cb3248c3</a></p>
<h3>Free Book (a little dated but the concepts are still valuable)</h3>
<p><a href="https://blogs.msdn.com/b/microsoft_press/archive/2012/08/20/free-ebook-programming-windows-8-apps-with-html-css-and-javascript-second-preview.aspx">https://blogs.msdn.com/b/microsoft_press/archive/2012/08/20/free-ebook-programming-windows-8-apps-with-html-css-and-javascript-second-preview.aspx</a></p>
<h2><span style="text-decoration: underline;">Office 365 Apps</span></h2>
<h3>Deep Dive: Integrate Office 365 APIs in Your Mobile Device Apps</h3>
<p><a href="https://www.microsoftvirtualacademy.com/training-courses/deep-dive-integrate-office-365-apis-in-your-mobile-device-apps">https://www.microsoftvirtualacademy.com/training-courses/deep-dive-integrate-office-365-apis-in-your-mobile-device-apps</a></p>
<h3>Introduction to Office 365 Development</h3>
<p><a href="https://www.microsoftvirtualacademy.com/training-courses/introduction-to-office-365-development">https://www.microsoftvirtualacademy.com/training-courses/introduction-to-office-365-development</a></p>
<p>Finally, there are two sites that cover these topics in detail including design and development guidance.</p>
<p><a href="https://dev.windows.com">https://dev.windows.com</a></p>
<p><a href="https://dev.office.com">https://dev.office.com</a></p>
<p>Have fun developing!</p>
<p>Tejaswi</p>]]></content:encoded>
    </item>
    <item>
      <title>Passive Speech Listening on Windows Phone</title>
      <link>https://docs.microsoft.com/archive/blogs/continuous_learning/passive-speech-listening-on-windows-phone</link>
      <pubDate>Mon, 08 Dec 2014 14:25:00 GMT</pubDate>
      <dc:creator><![CDATA[Tejaswi]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/continuous_learning/2014/12/08/passive-speech-listening-on-windows-phone/</guid>
      <description><![CDATA[&nbsp;
I was running some passive speech recognition code in a Windows Phone project and I kept...]]></description>
      <content:encoded><![CDATA[<p>&nbsp;</p>
<p>I was running some passive speech recognition code in a Windows Phone project and I kept getting the following error</p>
<blockquote>
<p>The speech privacy policy was not accepted prior to attempting a speech recognition</p>
</blockquote>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/1212.image_6636186C.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/1212.image_5F00_6636186C.png"><img style="display: inline; border-width: 0px;" title="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/3365.image_thumb_41A48AE8.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/3365.image_5F00_thumb_5F00_41A48AE8.png" alt="image" width="440" height="285" border="0" /></a></p>
<p>I was using the non-UI recognizer for passive listening on a thread.</p>
<p><strong>SpeechRecognizer spchRecog = new SpeechRecognizer();</strong></p>
<p><strong>SpeechRecognitionResult spchResult = await spchRecog .RecognizeAsync();</strong></p>
<p>instead of</p>
<p><strong>SpeechRecognitionResult spchResult = </strong><strong>await spchRecog .RecognizeWithUIAsync();</strong></p>
<p>Found the privacy policy error on MSDN, and implemented the recommend exception handling.</p>
<p><a title="https://msdn.microsoft.com/library/windows/apps/jj662934(v=vs.105).aspx#BKMK_Handlingthespeechprivacypolicyerror" href="https://msdn.microsoft.com/library/windows/apps/jj662934(v=vs.105).aspx#BKMK_Handlingthespeechprivacypolicyerror">https://msdn.microsoft.com/library/windows/apps/jj662934(v=vs.105).aspx#BKMK_Handlingthespeechprivacypolicyerror</a></p>
<p>In the exception handling code on MSDN, the default error message shown to the user is</p>
<p>&ldquo;You will need to accept the speech privacy policy in order to use speech recognition in this app.&rdquo;</p>
<p>Now imagine my mom using this application and she gets this message. There is no reference to what does it mean by speech privacy policy. My mom will get confused, and she does use a Windows Phone.</p>
<p>Actually, you have to just let the user know to enable the speech recognition service by navigating to</p>
<p><strong>Home-&gt;Settings-&gt;Speech-&gt;Enable Speech Recognition Service</strong></p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/4477.image_283C87AE.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/4477.image_5F00_283C87AE.png"><img style="display: inline; border-width: 0px;" title="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/0741.image_thumb_23C606E7.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/0741.image_5F00_thumb_5F00_23C606E7.png" alt="image" width="273" height="449" border="0" /></a></p>
<p>Ideally, the error message should automatically navigate the user to the appropriate setting. But that&rsquo;s a long shot. In the short term, I modified the error message to</p>
<p>&ldquo;In order to use speech recognition, you will need to enable the speech recognition service by navigating to Home Page-&gt;Settings-&gt;Speech-&gt;Enable Speech Recognition Service.&rdquo;</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/6457.image_4374E0AF.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/6457.image_5F00_4374E0AF.png"><img style="display: inline; border-width: 0px;" title="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/3302.image_thumb_11110D30.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/3302.image_5F00_thumb_5F00_11110D30.png" alt="image" width="328" height="266" border="0" /></a></p>
<p>Good enough for my mom for now. If you see any cryptic error message regarding speech privacy policy, first check whether the Speech Recognition Service is enabled on the phone or not.</p>
<p>That&rsquo;s it! The recognizer to work like a charm.</p>
<p>&nbsp;</p>
<p>Thanks,</p>
<p>Tejaswi</p>]]></content:encoded>
    </item>
    <item>
      <title>End-to-End Predictive Model in AzureML using Linear Regression</title>
      <link>https://docs.microsoft.com/archive/blogs/continuous_learning/end-to-end-predictive-model-in-azureml-using-linear-regression</link>
      <pubDate>Sat, 15 Nov 2014 08:46:00 GMT</pubDate>
      <dc:creator><![CDATA[Tejaswi]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/continuous_learning/2014/11/15/end-to-end-predictive-model-in-azureml-using-linear-regression/</guid>
      <description><![CDATA[Machine Learning (ML) is one of the most popular field in Computer Science discipline, but is also...]]></description>
      <content:encoded><![CDATA[<p>Machine Learning (ML) is one of the most popular field in Computer Science discipline, but is also the most feared by developers. The fear is primarily because it is considered as a scientific field that requires deep mathematical expertise which most of us have forgotten. In today's world, ML has two disciplines: ML, and Applied ML. My goal is to make Machine Learning easier to understand for developers through simple applications. In other words, bridge the gap between a developer and a data scientist.&nbsp; In this blog, I will provide you with a step-by-step guide for building a Linear Regression model in AzureML to predict the price of a car. You will also learn the basics of AzureML along the way, as well as its application it in real-world by creating a Windows Universal Client app.</p>
<h2>What is AzureML?</h2>
<p>AzureML is meant to democratize Machine Learning and build a new ecosystem and marketplace for monetizing algorithms.&nbsp; You can find more information about AzureML <a href="https://azure.microsoft.com/en-us/documentation/services/machine-learning/" target="_blank">here</a>.</p>
<h2>Why AzureML?</h2>
<p>Because it is one of the simplest tools to use for Machine Learning. AzureML reduces the barriers to entry for anyone who wants to try out Machine Learning. You don&rsquo;t have to be a data scientist to build Machine Learning models anymore.</p>
<h2>Logical Machine Learning Flow</h2>
<p>Figure below illustrates a typical machine learning process with end result in mind.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/1602.image_3FBAEFDE.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/1602.image_5F00_3FBAEFDE.png"><img style="display: inline; border-width: 0px;" title="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/6813.image_thumb_1B29625A.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/6813.image_5F00_thumb_5F00_1B29625A.png" alt="image" width="455" height="442" border="0" /></a></p>
<p>1) <strong>Define Objective:</strong> Machine Learning is useless without a clear objective for the experiment. Once the objective is clear, then you need to search for the data. In this exercise, our objective is to predict the price of a car based on some attributes provided by an end-user.</p>
<p>2) <strong>Collect Data</strong>: During this phase, you vehemently collect and ingest the data into a data repository. For this exercise, we will use a sample automobile dataset from the University of California, Irvine&rsquo;s Machine Learning Repository.</p>
<p><a title="https://archive.ics.uci.edu/ml/datasets/Automobile" href="https://archive.ics.uci.edu/ml/datasets/Automobile">https://archive.ics.uci.edu/ml/datasets/Automobile</a></p>
<blockquote>
<p><strong>Note</strong>: This dataset is old and the values no longer represent the values of today&rsquo;s cars. In a future article, I will show how to feed a real-world automobile feed into the model.</p>
</blockquote>
<p>3) <strong>Prepare Data:</strong> In this phase, you prepare the data for modeling by identifying the features in the dataset. Flatten the data to represent one row per record, remove any outliers, and split the data for training and testing your models. Sometimes, you may have to <a href="https://intelligencemining.blogspot.gr/2009/07/data-preprocessing-normalization.html" target="_blank">normalize</a> the <a href="https://www.quora.com/How-does-normalization-of-data-help-in-Machine-Learning" target="_blank">data</a>.</p>
<p>4) <strong>Develop Model</strong>: Designing a model is the fun part, especially using popular ML modeling tool like <a href="https://azure.microsoft.com/en-us/documentation/services/machine-learning/" target="_blank">AzureML</a>, <a href="https://www.cs.waikato.ac.nz/ml/weka/" target="_blank">Weka</a>, <a href="https://lionoso.org/" target="_blank">Lionoso</a>, <a href="https://orange.biolab.si/" target="_blank">Orange</a>, <a href="https://www.mathworks.com/" target="_blank">MatLab</a>, <a href="https://www.gnu.org/software/octave/" target="_blank">Octave</a>, <a href="https://www.rstudio.com/" target="_blank">R studio</a>, etc. When you develop a model, you feed the data to one or more ML algorithms you have selected for your experiment. In our experiment, we have &ldquo;true/valid&rdquo; data and the output will be the predicted price of the car i.e. real-number (or continuous value).</p>
<p>5) <strong>Train Model</strong>: Typically, supervised learning models need to be trained with data that has already been validated. For example, the car data that we have is &ldquo;true&rdquo; data and the output will be a predicted singular value. During training, the ML model operates on the training dataset and builds a pattern that will be used for processing the test and live datasets. You must always keep training and testing datasets separate with minimal overlap.</p>
<p>6) <strong>Analyze/Evaluate</strong>: Once the model is trained, you can then score the model to generate evaluation metrics and pass it for evaluation. During evaluation, you validate the performance of your trained model and decide whether you want to proceed with it or make adjustments. This is where the experiment gets interesting. If you are not happy with the evaluation, you can readjust the features, change your algorithm for comparison, or even start a brand new experiment.</p>
<p>7) <strong>Monitor/Operate: </strong>This is where AzureML adds value and empowers not only a data scientist, but also a developer to quickly Publish, Monitor, and even Monetize their algorithms.</p>
<p>Now, lets follow the process described above to build our experiment.</p>
<h2>Create Workspace</h2>
<p>Navigate your browser to <a href="https://www.azure.com">https://www.azure.com</a> and under Feature section, select Analytics &ndash;&gt; Machine Learning or go directly <a href="https://azure.microsoft.com/en-us/services/machine-learning/" target="_blank">here</a>.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/6320.image_1ABD2F65.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/6320.image_5F00_1ABD2F65.png"><img style="display: inline; border-width: 0px;" title="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/5417.image_thumb_44340156.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/5417.image_5F00_thumb_5F00_44340156.png" alt="image" width="627" height="298" border="0" /></a></p>
<p>Click on Get Started.</p>
<p>There are three steps to start working on AzureML.</p>
<p>You need an Azure account. Microsoft offers <a href="https://azure.microsoft.com/en-us/pricing/free-trial/" target="_blank">free 3 month trials</a> and it is the best way to get started on any Azure service. Once you have an account, login to the Azure Portal.</p>
<p>Create a new Machine Learning <a href="https://go.microsoft.com/fwlink/?linkid=403323&amp;clcid=0x409" target="_blank">workspace</a>.&nbsp; New &ndash;&gt;Data Services &ndash;&gt; Machine Learning</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/0243.image_7CDEAB63.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/0243.image_5F00_7CDEAB63.png"><img style="display: inline; border-width: 0px;" title="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/4278.image_thumb_1163FAE2.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/4278.image_5F00_thumb_5F00_1163FAE2.png" alt="image" width="619" height="251" border="0" /></a></p>
<p>A workspace is used as a collection of experiments that you will be working on. Your workspace should show up in the list of machine learning workspaces. Click on your workspace to go to the ML dashboard.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/8004.image__2762.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/8004.image_5F00_5F002762.png"><img style="display: inline; border-width: 0px;" title="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/1663.image_thumb_5A89A69B.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/1663.image_5F00_thumb_5F00_5A89A69B.png" alt="image" width="560" height="199" border="0" /></a></p>
<h2>Sign-In to ML Studio</h2>
<p>On the dashboard, client on Sign-in to ML Studio. The ML Studio is where you will create your experiments and torture the data.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/7455.image_7A388063.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/7455.image_5F00_7A388063.png"><img style="display: inline; border-width: 0px;" title="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/1581.image_thumb_0EBDCFE2.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/1581.image_5F00_thumb_5F00_0EBDCFE2.png" alt="image" width="608" height="360" border="0" /></a></p>
<p>We have not setup our ML tool for creating experiments. This is just one time setup and now you are free to create as many experiments as you wish. Referring back to our ML flow, we only defined the objective, now we need to collect the data.</p>
<h2>Upload Dataset</h2>
<p>First download imports-85.data the automobile dataset from <a title="https://archive.ics.uci.edu/ml/datasets/Automobile" href="https://archive.ics.uci.edu/ml/datasets/Automobile">https://archive.ics.uci.edu/ml/datasets/Automobile</a></p>
<p>This data is old, but the purpose is to learn the tool. In a future blog I will show how to get a stream of automobile data and then predict prices based on that.</p>
<p>Click on New-&gt; Dataset &ndash;&gt; From Local File</p>
<blockquote>
<p>Note: In AzureML, you can also read a dataset from a URL directly into your experiment. By uploading the dataset you are saving it for future use.</p>
</blockquote>
<h2>Create a new Experiment</h2>
<p>Click on New &ndash;&gt; Experiment &ndash;&gt; Blank Experiment</p>
<p>This will create a new experiment canvas with a tool box on the left for you to drag and drop components</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/7382.image_23431F60.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/7382.image_5F00_23431F60.png"><img style="display: inline; border-width: 0px;" title="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/3678.image_thumb_17AD6221.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/3678.image_5F00_thumb_5F00_17AD6221.png" alt="image" width="576" height="285" border="0" /></a></p>
<h2>Connect Data</h2>
<p>Your Automobile dataset should appear in the Saved Datasets section of the toolbox. Drag and drop the automobile data onto the canvas.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/3187.image_7E455EE6.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/3187.image_5F00_7E455EE6.png"><img style="display: inline; border-width: 0px;" title="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/4670.image_thumb_5300C7DF.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/4670.image_5F00_thumb_5F00_5300C7DF.png" alt="image" width="574" height="251" border="0" /></a></p>
<p>Note that the data component has a connection point to connect to other components. If you have used any Workflow or ETL tools before, this should sound familiar to you.</p>
<h2>Prepare Data</h2>
<p>I usually follow the best practice to test my experiment at every stage and on every change I make. So, right-click on the connection point and client Visualize to see the list of raw automobile data.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/6330.image_2BC67EAA.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/6330.image_5F00_2BC67EAA.png"><img style="display: inline; border-width: 0px;" title="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/3603.image_thumb_274FFDE3.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/3603.image_5F00_thumb_5F00_274FFDE3.png" alt="image" width="700" height="318" border="0" /></a></p>
<p>But, there is a problem. Some of the data is missing. This might create adverse effects in predicting the car value. And we also don&rsquo;t need the normalized-losses column (feature) for prediction purposes. That column is used for insurance information. So, to get rid of that column, drag Project Columns component from Data Transformation &ndash;&gt; Manipulation.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/5353.image_46FED7AB.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/5353.image_5F00_46FED7AB.png"><img style="display: inline; border-width: 0px;" title="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/0804.image_thumb_298C869F.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/0804.image_5F00_thumb_5F00_298C869F.png" alt="image" width="427" height="250" border="0" /></a></p>
<p>Project Columns component lets you filter the columns from one stage to another. In our case, we will not project the normalized-losses column at all.</p>
<p>Next, click the Launch column selector from the Properties (right-side ) pane</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/8738.image_1B4E0DAF.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/8738.image_5F00_1B4E0DAF.png"><img style="display: inline; border-width: 0px;" title="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/4213.image_thumb_4FEE69EA.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/4213.image_5F00_thumb_5F00_4FEE69EA.png" alt="image" width="372" height="276" border="0" /></a></p>
<p>In the Select Columns window, select &ldquo;All columns&rdquo; to select all columns and then select &ldquo;Exclude&rdquo; &ndash;&gt; &ldquo;column names&rdquo;, and add &ldquo;normalized-losses&rdquo; as shown in the figure below.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/5706.image_1D8A966B.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/5706.image_5F00_1D8A966B.png"><img style="display: inline; border-width: 0px;" title="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/4456.image_thumb_392F2261.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/4456.image_5F00_thumb_5F00_392F2261.png" alt="image" width="483" height="128" border="0" /></a></p>
<p>To validate, save the project, and Visualize the Project Column&rsquo;s output connection point.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/0830.image_11F4D92C.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/0830.image_5F00_11F4D92C.png"><img style="display: inline; border-width: 0px;" title="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/8765.image_thumb_5F9105AC.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/8765.image_5F00_thumb_5F00_5F9105AC.png" alt="image" width="506" height="199" border="0" /></a></p>
<p>If you observe carefully, there are some missing values in some columns and these values may create unnecessary noise in our prediction, therefore, let&rsquo;s remove all the rows containing missing values.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/4578.image_143161E8.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/4578.image_5F00_143161E8.png"><img style="display: inline; border-width: 0px;" title="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/6710.image_thumb_260DF5B5.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/6710.image_5F00_thumb_5F00_260DF5B5.png" alt="image" width="401" height="153" border="0" /></a></p>
<p>To remove missing values, drag the missing values scrubber and connect Project Columns to Missing Values Scrubber. Select &ldquo;Remove entire row&rdquo; from the &ldquo;For missing values&rdquo; dropdown list.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/8284.image_6F9FD463.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/8284.image_5F00_6F9FD463.png"><img style="display: inline; border-width: 0px;" title="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/2844.image_thumb_48658B2E.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/2844.image_5F00_thumb_5F00_48658B2E.png" alt="image" width="279" height="351" border="0" /></a></p>
<p>Next, Save, Run and Visualize to validate whether your dataset consists of all the values. Note the number of rows and columns displayed to compare them with the original dataset.</p>
<p>Now, we have scrubbed the dataset, but considering our objective of predicting the car price, there are still many columns that may not be a contributing factor to the price of a car. A simple question I would is: &ldquo;What affects the price of a car?&rdquo;. Now, remember that this is an experiment and your answer will be different than mine. My hypothesis is that the following columns from the dataset affect the price of a car.</p>
<blockquote>
<p>make, body-style, wheel-base, engine-size, horsepower, peak-rpm, highway-mpg, num-of-cylinders</p>
</blockquote>
<p>Add another Project Columns component, Launch Column selector and select the listed columns to project.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/6560.image_1601B7AF.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/6560.image_5F00_1601B7AF.png"><img style="display: inline; border-width: 0px;" title="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/8228.image_thumb_639DE42F.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/8228.image_5F00_thumb_5F00_639DE42F.png" alt="image" width="591" height="231" border="0" /></a></p>
<p>Run and Visualize the data. You should see only the selected columns displayed.</p>
<h2>Split Data</h2>
<p>The data is now prepared to be fed to the model. But, in ML, you must first train the model and then test the hypothesis with test data that is different from the training data. AzureML provides you with a Split function to split the data into two paths. Add the Split component and connect it to the Project Columns as shown in the Figure below.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/8712.image_034CBDF8.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/8712.image_5F00_034CBDF8.png"><img style="display: inline; border-width: 0px;" title="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/7167.image_thumb_4CDE9CA6.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/7167.image_5F00_thumb_5F00_4CDE9CA6.png" alt="image" width="326" height="409" border="0" /></a></p>
<p>It is a common practice to split the data 75% (training) and 25% (testing).</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/2870.image_6C8D766E.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/2870.image_5F00_6C8D766E.png"><img style="display: inline; border-width: 0px;" title="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/3463.image_thumb_4148DF67.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/3463.image_5F00_thumb_5F00_4148DF67.png" alt="image" width="323" height="283" border="0" /></a></p>
<h2>Train a Linear Regression Model</h2>
<p>Next, drag the Linear Regression, Train Model, and Score Model components. The Score Model component generates predictions on the test data by using the trained model. Connect the Linear Regression and Split components to the Train Model. Select the price column as the outcome column. The outcome column consists the predicted value.</p>
<p>Connect the Train Model to the Score Model. Next, connect the second output of the Split component to the Score Model. The output of the Score Model is sent to the Evaluate Model component for generating Evaluation metrics. The finished model looks like the figure below.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/5531.image_0EE50BE8.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/5531.image_5F00_0EE50BE8.png"><img style="display: inline; border-width: 0px;" title="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/4786.image_thumb_2E93E5B0.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/4786.image_5F00_thumb_5F00_2E93E5B0.png" alt="image" width="532" height="416" border="0" /></a></p>
<p>Run the model and Visualize the Evaluate node. The Evaluation results will consist of a table with the following columns:</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/4370.image_7C301230.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/4370.image_5F00_7C301230.png"><img style="display: inline; border-width: 0px;" title="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/4863.image_thumb_02E31BB4.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/4863.image_5F00_thumb_5F00_02E31BB4.png" alt="image" width="586" height="142" border="0" /></a></p>
<p>Coefficient of Determination (R2): Determines how well your regression line fits the statistical data. The value of R2 is between 0 and 1 with 1 being a perfect fit. In our case, R2 is approximately 82%. Whether this value is good or bad depends on the error tolerance for your output. In automobile prediction, I am happy with 82% success. If you want to improve the results further, you can modify the Project Columns and also the settings for the Liner Regression. You may also try another algorithm like <a href="https://en.wikipedia.org/wiki/Bayesian_linear_regression" target="_blank">Bayesian Linear Regression</a>. You can either create a new experiment or add Bayesian Linear Regression component to the current experiment and feed it exactly the same data as before.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/7522.image_1E87A7AA.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/7522.image_5F00_1E87A7AA.png"><img style="display: inline; border-width: 0px;" title="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/3005.image_thumb_6C23D42A.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/3005.image_5F00_thumb_5F00_6C23D42A.png" alt="image" width="596" height="278" border="0" /></a></p>
<p>When you run the experiment, it runs both the models and evaluation is done separately. In our experiment, R2 came out to be 89%.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/4722.image_0BD2ADF3.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/4722.image_5F00_0BD2ADF3.png"><img style="display: inline; border-width: 0px;" title="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/5315.image_thumb_40730A2E.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/5315.image_5F00_thumb_5F00_40730A2E.png" alt="image" width="626" height="170" border="0" /></a></p>
<p>Now assuming that we are happy with the model&rsquo;s results, lets publish the model as a web service to that you can access it from anywhere.</p>
<h2>Save the Trained Models</h2>
<p>Right-Click on the Linear Regression and Bayesian Trained Model components and select &ldquo;Save as Trained Model&rdquo;. We are saving the model to be reused by other programs.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/8623.image_472613B1.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/8623.image_5F00_472613B1.png"><img style="display: inline; border-width: 0px;" title="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/1373.image_thumb_7BC66FEC.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/1373.image_5F00_thumb_5F00_7BC66FEC.png" alt="image" width="318" height="217" border="0" /></a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/2100.image_6D87F6FC.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/2100.image_5F00_6D87F6FC.png"><img style="display: inline; border-width: 0px;" title="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/4331.image_thumb_74;7F.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/4331.image_5F00_thumb_5F00_743B007F.png" alt="image" width="327" height="214" border="0" /></a></p>
<p>The saved models should show up in the Trained Models list</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/3276.image_3DCCDF2E.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/3276.image_5F00_3DCCDF2E.png"><img style="display: inline; border-width: 0px;" title="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/6835.image_thumb_2F8E663E.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/6835.image_5F00_thumb_5F00_2F8E663E.png" alt="image" width="198" height="244" border="0" /></a></p>
<p>Now you can use these trained models with live data within your applications.</p>
<h2>Prepare Model for Web Service</h2>
<p>To prepare your model for two web services, SAVE AS the original experiment two times as:</p>
<p>1) Auto Prediction Linear Regression</p>
<p>2) Auto Prediction Bayesian Linear Regression</p>
<p>Next replace the Linear Regression, Bayesian Linear Regression and their associated Train Model components with our saved models as illustrated below. Run an visualize both the Evaluation Model results.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/2727.image_7D2A92BE.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/2727.image_5F00_7D2A92BE.png"><img style="display: inline; border-width: 0px;" title="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/7411.image_thumb_26A164B0.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/7411.image_5F00_thumb_5F00_26A164B0.png" alt="image" width="594" height="439" border="0" /></a></p>
<p>Evaluation for Linear Regression</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/4212.image_743D9130.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/4212.image_5F00_743D9130.png"><img style="display: inline; border-width: 0px;" title="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/3247.image_thumb_73D15E3B.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/3247.image_5F00_thumb_5F00_73D15E3B.png" alt="image" width="601" height="153" border="0" /></a></p>
<p>Evaluation Results for Bayesian Linear Regression</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/3731.image_7A8467BE.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/3731.image_5F00_7A8467BE.png"><img style="display: inline; border-width: 0px;" title="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/0820.image_thumb_01377142.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/0820.image_5F00_thumb_5F00_01377142.png" alt="image" width="603" height="144" border="0" /></a></p>
<blockquote>
<p>Note: Typically, you would point both the regressions to the same evaluate model, but the constraint for the Evaluate model to compare both regressions is that they must have the same learner type. Bayesian is a more probabilistic method than linear fit, thus the error.</p>
</blockquote>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/6708.image_1CDBFD38.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/6708.image_5F00_1CDBFD38.png"><img style="display: inline; border-width: 0px;" title="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/7382.image_thumb_238F06BB.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/7382.image_5F00_thumb_5F00_238F06BB.png" alt="image" width="329" height="227" border="0" /></a></p>
<p>I did this on purpose for you to understand the capabilities and constraints of AzureML. But, you could instead use <a href="https://en.wikipedia.org/wiki/Poisson_regression" target="_blank">Poisson Regression</a> model and evaluate it with Linear Regression.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/3755.image_2A42103E.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/3755.image_5F00_2A42103E.png"><img style="display: inline; border-width: 0px;" title="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/0363.image_thumb_77DE3CBE.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/0363.image_5F00_thumb_5F00_77DE3CBE.png" alt="image" width="527" height="256" border="0" /></a></p>
<p>You can now Visualize the Evaluate Model to compare the Coefficient of Determination.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/4670.image_457A693F.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/4670.image_5F00_457A693F.png"><img style="display: inline; border-width: 0px;" title="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/0882.image_thumb_65294307.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/0882.image_5F00_thumb_5F00_65294307.png" alt="image" width="555" height="114" border="0" /></a></p>
<p>You an also see the liner fits and prediction performance by visualizing the Score Model.</p>
<p>For the web service, let&rsquo;s publish the Bayesian Linear Regression because the R2 value looks consistently better than the Linear Regression.</p>
<blockquote>
<p>One thing to not forget here is that you can always go back, test the results and publish only when you are satisfied.</p>
</blockquote>
<p>Rick-Click the Score Model input endpoint for Bayesian Linear Regression and select &ldquo;Set as Publish Input&rdquo;. Next, Right-Click the output endpoint of the Score Model and select &ldquo;Set as Publish Output&rdquo;. These two settings specify the data input and output for the web service calls. The final model should look like the figure below.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/5265.image_00CDCEFE.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/5265.image_5F00_00CDCEFE.png"><img style="display: inline; border-width: 0px;" title="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/2548.image_thumb_4E69FB7E.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/2548.image_5F00_thumb_5F00_4E69FB7E.png" alt="image" width="555" height="397" border="0" /></a></p>
<p>Finally, after running the model once again, the Publish Web Service button will be enabled. Click on it to proceed with web service publishing to a staging environment.</p>
<h2>Testing the Webservice</h2>
<p>On the Dashboard, you should see the API Key, and Test link for testing the web service. You can enter the car details for price prediction.</p>
<p>Input Data:&nbsp; audi sedan 99.8 four 109 102 5500 30 13950</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/0804.image_1C0627FF.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/0804.image_5F00_1C0627FF.png"><img style="display: inline; border-width: 0px;" title="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/5125.image_thumb_69A2547F.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/5125.image_5F00_thumb_5F00_69A2547F.png" alt="image" width="429" height="422" border="0" /></a></p>
<p><strong>Predicted Price: 12732</strong></p>
<h2>Publish Webservice to Production</h2>
<p>By default, the web service is created in a staging environment. If you are happy with the prediction, let&rsquo;s move ahead with publishing the web service to production.</p>
<p>Click &ldquo;Mark as Ready for Production&rdquo; link in the Production status section.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/2475.image_42680B4A.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/2475.image_5F00_42680B4A.png"><img style="display: inline; border-width: 0px;" title="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/1411.image_thumb_301F4488.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/1411.image_5F00_thumb_5F00_301F4488.png" alt="image" width="373" height="129" border="0" /></a></p>
<p>Next, in the settings section, select &ldquo;YES&rdquo; and click Save.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/7380.image_4BC3D07E.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/7380.image_5F00_4BC3D07E.png"><img style="display: inline; border-width: 0px;" title="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/5127.image_thumb_24898749.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/5127.image_5F00_thumb_5F00_24898749.png" alt="image" width="536" height="159" border="0" /></a></p>
<p>Next, go back to the Dashboard and click &ldquo;Deploy to Production&rdquo; to go to the AzureML webservices page</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/5040.image_402E133F.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/5040.image_5F00_402E133F.png"><img style="display: inline; border-width: 0px;" title="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/2818.image_thumb_390ED6C7.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/2818.image_5F00_thumb_5F00_390ED6C7.png" alt="image" width="383" height="152" border="0" /></a></p>
<p>Click on Add to create the web service in the region of your choice.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/6644.image_26C61005.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/6644.image_5F00_26C61005.png"><img style="display: inline; border-width: 0px;" title="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/8304.image_thumb_224F8F3E.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/8304.image_5F00_thumb_5F00_224F8F3E.png" alt="image" width="468" height="275" border="0" /></a></p>
<p>The web service gets deployed in seconds (if not minutes). Click on the web service and you will be navigated to the web service management dashboard where you will be able to see the REQUEST/RESPONSE as well as BATCH EXECUTION endpoints for the web service.</p>
<p>Click on the REQUEST/RESPONSE link to go to the endpoint documentation page. On this page you will find the client signatures for C#, R, and Python, and also the input JSON request.</p>
<h2>Sample JSON Request</h2>
<pre class="csharpcode">{
  <span class="str">"Id"</span>: <span class="str">"score00001"</span>,
  <span class="str">"Instance"</span>: {
    <span class="str">"FeatureVector"</span>: {
      <span class="str">"make"</span>: <span class="str">"0"</span>,
      <span class="str">"body-style"</span>: <span class="str">"0"</span>,
      <span class="str">"wheel-base"</span>: <span class="str">"0"</span>,
      <span class="str">"num-of-cylinders"</span>: <span class="str">"0"</span>,
      <span class="str">"engine-size"</span>: <span class="str">"0"</span>,
      <span class="str">"horsepower"</span>: <span class="str">"0"</span>,
      <span class="str">"peak-rpm"</span>: <span class="str">"0"</span>,
      <span class="str">"highway-mpg"</span>: <span class="str">"0"</span>,
      <span class="str">"price"</span>: <span class="str">"0"</span>
    },
    <span class="str">"GlobalParameters"</span>: {}
  }
} </pre>
<h2>C# Client Code</h2>
<p><span style="font-size: xx-small;"><span class="rem">// This code requires the Nuget package Microsoft.AspNet.WebApi.Client to be installed.</span> <span class="rem">// Instructions for doing this in Visual Studio:</span> <span class="rem">// Tools -&gt; Nuget Package Manager -&gt; Package Manager Console</span> <span class="rem">// Install-Package Microsoft.AspNet.WebApi.Client</span> <span class="kwrd">using</span> System; <span class="kwrd">using</span> System.Collections.Generic; <span class="kwrd">using</span> System.IO; <span class="kwrd">using</span> System.Net.Http; <span class="kwrd">using</span> System.Net.Http.Formatting; <span class="kwrd">using</span> System.Net.Http.Headers; <span class="kwrd">using</span> System.Text; <span class="kwrd">using</span> System.Threading.Tasks; <span class="kwrd">namespace</span> CallRequestResponseService { <span class="kwrd">public</span> <span class="kwrd">class</span> ScoreData { <span class="kwrd">public</span> Dictionary&lt;<span class="kwrd">string</span>, <span class="kwrd">string</span>&gt; FeatureVector { get; set; } <span class="kwrd">public</span> Dictionary&lt;<span class="kwrd">string</span>, <span class="kwrd">string</span>&gt; GlobalParameters { get; set; } } <span class="kwrd">public</span> <span class="kwrd">class</span> ScoreRequest { <span class="kwrd">public</span> <span class="kwrd">string</span> Id { get; set; } <span class="kwrd">public</span> ScoreData Instance { get; set; } } <span class="kwrd">class</span> Program { <span class="kwrd">static</span> <span class="kwrd">void</span> Main(<span class="kwrd">string</span>[] args) { InvokeRequestResponseService().Wait(); } <span class="kwrd">static</span> async Task InvokeRequestResponseService() { <span class="kwrd">using</span> (var client = <span class="kwrd">new</span> HttpClient()) { ScoreData scoreData = <span class="kwrd">new</span> ScoreData() { FeatureVector = <span class="kwrd">new</span> Dictionary&lt;<span class="kwrd">string</span>, <span class="kwrd">string</span>&gt;() { { <span class="str">"make"</span>, <span class="str">"0"</span> }, { <span class="str">"body-style"</span>, <span class="str">"0"</span> }, { <span class="str">"wheel-base"</span>, <span class="str">"0"</span> }, { <span class="str">"num-of-cylinders"</span>, <span class="str">"0"</span> }, { <span class="str">"engine-size"</span>, <span class="str">"0"</span> }, { <span class="str">"horsepower"</span>, <span class="str">"0"</span> }, { <span class="str">"peak-rpm"</span>, <span class="str">"0"</span> }, { <span class="str">"highway-mpg"</span>, <span class="str">"0"</span> }, { <span class="str">"price"</span>, <span class="str">"0"</span> }, }, GlobalParameters = <span class="kwrd">new</span> Dictionary&lt;<span class="kwrd">string</span>, <span class="kwrd">string</span>&gt;() { } }; ScoreRequest scoreRequest = <span class="kwrd">new</span> ScoreRequest() { Id = <span class="str">"score00001"</span>, Instance = scoreData }; <span class="kwrd">const</span> <span class="kwrd">string</span> apiKey = <span class="str">"abc123"</span>; <span class="rem">// Replace this with the API key for the web service</span> client.DefaultRequestHeaders.Authorization = </span><span style="font-size: xx-small;"> <span class="kwrd">new</span> AuthenticationHeaderValue(<span class="str">"Bearer"</span>, apiKey); client.BaseAddress = </span><span style="font-size: xx-small;"> <span class="kwrd">new</span> Uri(<span class="str">"https://ussouthcentral.services.azureml.net/xxxxb62/score"</span>); HttpResponseMessage response = await client.PostAsJsonAsync(<span class="str">""</span>, scoreRequest); <span class="kwrd">if</span> (response.IsSuccessStatusCode) { <span class="kwrd">string</span> result = await response.Content.ReadAsStringAsync(); Console.WriteLine(<span class="str">"Result: {0}"</span>, result); } <span class="kwrd">else</span> { Console.WriteLine(<span class="str">"Failed with status code: {0}"</span>, response.StatusCode); } } } } }</span></p>
<p>With the C# Client and REST interface, you can call the web service from any PC, Mobile, and Web clients.</p>
<h2>Let&rsquo;s build a Mobile App</h2>
<p>With the web service running in Azure, there is no reason not to build a mobile app user interface. I just quickly put together a Windows Universal App to predict car prices. You can find the source code for the app <a href="https://github.com/dynamicdeploy/machinelearning" target="_blank">here</a>.</p>
<p>&nbsp;</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/6558.image_41FE6906.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/6558.image_5F00_41FE6906.png"><img style="display: inline; border-width: 0px;" title="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/3823.image_thumb_61AD42CE.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/3823.image_5F00_thumb_5F00_61AD42CE.png" alt="image" width="223" height="403" border="0" /></a>&nbsp;&nbsp;&nbsp; <a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/4034.image_5D36C207.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/4034.image_5F00_5D36C207.png"><img style="display: inline; border-width: 0px;" title="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/67/98/metablogapi/7242.image_thumb_2AD2EE88.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-67-98-metablogapi/7242.image_5F00_thumb_5F00_2AD2EE88.png" alt="image" width="343" height="397" border="0" /></a></p>
<p>&nbsp;</p>
<h2>Conclusion</h2>
<p>AzureML is a new and highly productive tool for Machine Learning. It may be the only tool that lets you publish a machine learning web service directly from your design environment. Machine Learning is a vast topic and Linear Regression models discussed in this article only scratches the surface of the topic. In this article, I went over a stale dataset to showcase AzureML as a predictive analytics tool. You can apply the same procedures and components for Classification and Clustering models. Finally, my goal was in writing about Applied Machine Learning. I am not a Data Scientist, but now with all the productive tools, I feel that I can put to work some of the great algorithms that scientists have already invented.</p>
<p>Some more Datasets you can play around with</p>
<ol>
<li>Daily and Sports Activities Data Set <a href="https://archive.ics.uci.edu/ml/datasets/Daily+and+Sports+Activities">link</a></li>
<li>Farm Ads Data Set <a href="https://archive.ics.uci.edu/ml/datasets/Farm+Ads">link</a></li>
<li>Arcene Data Set <a href="https://archive.ics.uci.edu/ml/datasets/Arcene">link</a></li>
<li>Bag of Words Data Set <a href="https://archive.ics.uci.edu/ml/datasets/Bag+of+Words">link</a> </li>
</ol>
<p><span style="font-size: x-large;"><a href="https://azure.microsoft.com/en-us/services/machine-learning/" target="_blank">Try out AzureML !</a></span></p>
<p>&nbsp;</p>
<h2>References</h2>
<p>&nbsp;<a title="https://www.mathworks.com/help/stats/multiple-linear-regression-1.html?refresh=true" href="https://www.mathworks.com/help/stats/multiple-linear-regression-1.html?refresh=true">https://www.mathworks.com/help/stats/multiple-linear-regression-1.html?refresh=true</a></p>
<p><a title="https://horicky.blogspot.com/2012/05/predictive-analytics-generalized-linear.html" href="https://horicky.blogspot.com/2012/05/predictive-analytics-generalized-linear.html">https://horicky.blogspot.com/2012/05/predictive-analytics-generalized-linear.html</a></p>
<p><a title="https://horicky.blogspot.com/2012/05/predictive-analytics-overview-and-data.html" href="https://horicky.blogspot.com/2012/05/predictive-analytics-overview-and-data.html">https://horicky.blogspot.com/2012/05/predictive-analytics-overview-and-data.html</a></p>
<p><a title="https://101.datascience.community/2013/03/07/9-problems-with-real-world-regression/" href="https://101.datascience.community/2013/03/07/9-problems-with-real-world-regression/">https://101.datascience.community/2013/03/07/9-problems-with-real-world-regression/</a></p>
<p><a title="https://horicky.blogspot.com/2012/05/predictive-analytics-overview-and-data.html" href="https://horicky.blogspot.com/2012/05/predictive-analytics-overview-and-data.html">https://horicky.blogspot.com/2012/05/predictive-analytics-overview-and-data.html</a></p>
<p>&nbsp;<a href="https://blogs.msdn.com/b/continuous_learning/">https://blogs.msdn.com/b/continuous_learning/</a></p>
<p><a title="https://stickywinner.com/" href="https://stickywinner.com/">https://stickywinner.com/</a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="182"><img src="https://ecx.images-amazon.com/images/I/41RqWqHM4NL.jpg" alt="" width="179" height="269" /></td>
<td valign="top" width="515"><a href="https://www.amazon.com/Tejaswi-Redkar-Windows-Azure-Sites/dp/B00N4HOHO6%3FSubscriptionId%3D0JTCV5ZMHMF7ZYTXGFR2%26tag%3Ddyndepinc-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3DB00N4HOHO6">By Tejaswi Redkar Windows Azure Web Sites: Building Web Apps at a Rapid Pace (1st Edition)</a></td>
</tr>
</tbody>
</table>]]></content:encoded>
    </item>
  </channel>
</rss>