At Northwest Cadence, we believe that every organization should leverage machine learning in their software, reporting, and business workflows. We help companies learn about the various technologies available, and assist in implementing custom advanced analytics solutions. Incorporating predictive analytics within software or real-time dashboards can enable a company to revolutionize their business by providing a custom user experience in an application or by knowing what to expect before it happens.
SQL Server 2016 introduced the ability to leverage in-database analytics with R Services. Writing custom R code inside stored procedures has transformed how many organizations deploy and maintain machine learning solutions. Now that SQL Server 2017 Machine Learning Services extends in-database machine learning with Python, Microsoft exposes this powerful tool to an even larger audience. When in-database analytics is not ideal, a standalone Microsoft R Server allows users to deploy R scripts as web services to be easily consumed by any application or process. The goal of this blog is to highlight many aspects that make Microsoft R Server and SQL Server perfect for advanced analytics.
R is one of the most powerful programming languages for statistical computing and machine learning available. The popularity of R allows advanced analytics developers to utilize thousands of open source packages for all types of problems. Specifically, Microsoft R Open (MRO) is an enhanced distribution of R, and is fully compatible with all existing CRAN (Comprehensive R Archive Network) packages, scripts, and applications. This compatibility makes it an easy transition from CRAN to MRO. Microsoft R Open has given R developers specific R packages that allow for parallel computation, a feature that has historically been unavailable in R. Multi-threaded computations allow R developers to leverage multi-core machines, or even clusters of machines, to perform large scale analytics even faster with more processing power.
Recently, Microsoft has released version 1.3.0 of their MicrosoftML R library. This library is available in Microsoft R Server, Microsoft R Client, and SQL Server Machine Learning Services. MicrosoftML has three key features to highlight: data transformation functions, machine learning algorithms, and pretrained models. The data transformation functions provide out-of-the-box solutions to common dataset featurization scenarios. Additionally, Microsoft provides six machine learning algorithms that are extremely fast, scalable, and reliable. Information about the algorithms can be found below or on its documentation page.
The newest release of Microsoft R Server allows R developers to employ MicrosoftML’s pretrained models for image recognition and sentiment analysis. Prior to this release, custom image recognition and sentiment analysis was extremely difficult or nearly impossible to do without consuming a third-party API. However, we now have the ability to utilize any one of the four following neural networks:
MicrosoftML is built to be multi-threaded. Therefore, its algorithms can easily distribute processing to many machines, making big data easier. These machine learning algorithms and models are built and supported by Microsoft allowing any organization to customize and implement the same algorithms that Microsoft uses internally.
SQL Server Machine Learning Services
Practically every organization stores some, or all, of their data in a relational database like SQL Server (or SQL Server itself). As mentioned above SQL Server 2017 enables companies to write powerful machine learning solutions in both R and Python in the form of stored procedures. One advantage of SQL Server Machine Learning Services R developers no longer need to bring the data to the machine learning, rather, they bring the machine learning to the data. In-database machine learning is ideal for large batch processes; however, it can be leveraged for real-time predictions on single data points as well. R models are stored in database tables as binaries, allowing companies to keep a history of the models and possible statistics surrounding their performance.
Microsoft R Server
Calling APIs for real-time predictive analytics is ideal for software developers. A standalone Microsoft R server allows organizations to get their data scientists and software developers to work together to develop, deploy, and consume machine learning results using web services. Microsoft R Server allows for web services to be consumed by a standard request-response API call or asynchronously using batch execution. R developers can write custom APIs, scale their processing, and deploy machine learning solutions with a few lines of code. Software developers are then able to easily consume predictions with a simple API call. The greatest aspect is that these APIs are developed for a specific problem, and are owned and maintained by organizations.
On-Premises and Cloud
Like SQL Server, Microsoft R Server can also be hosted both on-premises and in the cloud. This allows organizations to host powerful machine learning solutions internally without having to use third-party APIs or move their data to Azure. While Azure gives companies the ability to scale quickly and easily, an on-premises Microsoft R Server is great for predictable workloads and for integration into existing applications or reports.
Machine Learning Pipeline
At Northwest Cadence, we specialize in the software delivery process (DevOps) by helping software development teams find their best cadence. In addition to a proper software delivery pipeline, we encourage customers to bring their DevOps practices to their machine learning solutions as well. Using Visual Studio Team Services, organizations can use automated build and release pipelines to train and deploy Microsoft R Server web services on a specific cadence so that the machine learning models are consistently up to date and thoroughly tested.
Microsoft makes advanced analytics available to all organizations. Microsoft R Server and SQL Server Machine Learning Services allow companies to develop and deploy custom machine learning solutions. Traditionally, there may have been a disconnect, but Microsoft R Server gets software developers to work alongside R developers to incorporate intelligence into applications and change the way business is done.