Excel Add-in for Azure ML
This blog post is authored by Ted Way, Program Manager in the Information Management & Machine Learning group at Microsoft.
Today we are making available a free Excel add-in that you can use with web services published from Azure Machine Learning. You can use this add-in for request/response predictions or batch predictions, work in Windows or the browser, share workbooks with your co-workers, and call multiple web services all within a single spreadsheet.
Get started by clicking here for the sample Excel workbook or downloading the add-in directly from the Office Store. You may use the add-in directly in the browser using Excel Online or opening the file in Excel 2013 or later on Windows. Copy the file to your own OneDrive account if you want to edit it.
This workbook contains sample tweets from the Sentiment140 data set (although “I love machine learning!!!” was added by me). You could copy and paste in tweets about yourself, a topic you’re interested in, or any other text (not just tweets) you want. A web service that predicts sentiment has already been added to the workbook.
In Excel Online, click “Start” to enable the add-in. Click on the “Text Sentiment Analysis (Excel Add-in) [Score]” web service.
To see the sentiment of these sample tweets:
Highlight cells A1 to A12
Click the range selector button (the selection Sheet1!$A$1:$A:$12 should automatically be populated)
Click OK in the Select Data dialog box
Type “B1” in the output1 text box
Click the Predict button
This web service takes some time to process the text, so please be patient and wait for a minute. When it’s done, you should see the sentiment predictions and scores in columns B and C.
Adding Your Own Web Service
If you have your own Azure ML web service, you can easily add it with the URL and API key (found on the web service dashboard). This help article has more details. Select the web service and click “Insert sample data.” Now you can add in your data and select the first cell where you want your output to be. Click “Predict” and you should see your results. Multiple web services can be added to the workbook.
Batch Execution
If you want to try your batch execution web service before running it in production, you can do that in Excel. Perform the same steps as above, except click the dropdown arrow next to the Predict button and select “As a batch (Batch).” Use our free default storage and click “Predict (as batch)” or uncheck the box and add your own Azure storage account.
Your data will need to be in Excel and the output will be in Excel, but the end-to-end flow will be validated. We will add support for other storage options in the future.
Sharing Your Workbook
You are now ready to create Excel workbooks that have your web services included in them. When you add a web service, it is saved in the Excel file. Anybody with the Excel file will have access to the web service. This makes it easy for you to send anybody the file so that they can use web services you’ve created.
Why This Matters
Excel users are great at hindsight: doing descriptive analytics and perhaps diagnostic analytics to understand what happened, and why it happened. Machine learning applied correctly enables them to gain insight by doing predictive analytics (what will happen), which ultimately leads to foresight with prescriptive analytics[1]. This is the power of Excel and Azure Machine Learning together.
For more details, check out our help article, ask your question below, or start a conversation on the Azure ML forum.
Ted Way
@tedwinway
[1] Credit goes to Gartner for this framework
Comments
- Anonymous
September 03, 2015
What's the difference between this add-in and this one: https://azuremlexcel.codeplex.com/ ? - Anonymous
September 03, 2015
Great question Paul! Unfortunately the terminology is confusing, but I'm calling the code onhttps://azuremlexcel.codeplex.com the "plug-in" while the product here is the "add-in." The biggest difference in user experience is that plug-in operates like other Excel functions, e.g. "=azurePredict(range, URL, API key)" while the add-in described here is a task pane GUI. The plug-in on codeplex really showed us how people want to use Excel with Azure ML, which is why we built this add-in.
The advantages of using the add-in described here:
- No complicated installation steps. Installing the old plug-in and running it involves more dev skills than most Excel analysts want to deal with. Now you can email the Excel workbook to anybody, and they can have the add-in installed, or anybody add it from the Office Store.
- Easy to work with multiple web services. You don't need to pass in the URL and API as you do with the azurePredict() call. In the add-in, once you add the web service, you just need to select the range and click a button to use the web service. You can email the Excel file and others can call the web service without needing to know the URL and API key.
- RRS and BES support. The add-in here allows you to use both request/response or batch, with support for entering your storage credentials to test the BES endpoint.
- Sample data. Each endpoint has a Swagger document that the add-in consumes and displays in the worksheet, so you know the schema of the web service and get some sample data to know how to use it.
- Support for Excel client, Excel Online, and potentially other platforms. If you have an Excel workbook with this add-in, you can open it with Excel Online, Excel for iPad, or potentially other platforms in the future and do the same work.
There may be times in which the plug-in on codeplex may fit your needs better, but we're targeting a broader Excel use base with this add-in. If you have any feedback or other questions please let me know. Thanks! - Anonymous
September 06, 2015
Thank you for this very interesting article. I like the idea of the add-in because it provides capabilities that can be leveraged by people with all level of skills. However, I do have a question; will the source code be made available?
I’m not into excel application development and therefore not able to estimate how much work would be involved to create something similar. I’m just looking for ways to manage pre-populated custom Azure ML web service entries (software deployment perspective), being able to add new and setting up a versioning strategy.