Machine Learning Platform - AWS vs Microsoft - Learner Perspective
Being a Business Intelligence developer I work with data every day. I always strive for use case where we can do more with data and provide valuable insights to Business. However, most of the time I am preparing operational reports which involves data modelling and designing report using specific tools and specific need (derived by Business). Though, it is good exercise to gain data analysis skills. Some of these reports are fun to build and challenging some time but still very specific. Few months ago I decided to explore the world of data science. The motive was to play with variety of data and explore use cases. I have principals when it comes to learning. One of my principal is "start from basics". There is no shortcut if you want to master something. You definitely need to know end to end if you really want to succeed and of course you have to be passionate about it. Therefore, I wanted to learn language build for data science but widely used. I started to read blogs and start exploring other's views on choosing the right language for data science which might be fun as well as fit my learning abilities. There was no definite answer as these languages are fit for different purposes and skills set. However, I decided to stick with "Python". Python is widely used and perfect fit for people who comes from computers science background rather statistics background. It has been couple of months since I started learning Python. I completed "Introduction to Computer Science" to start with. Also, to add more python skills whenever someone uploads a tutorial to try something with Python libraries I just follow them and try to learn from their experience. It has been always fun to see what Python can do.
One of the main reason to learn Python was to build web applications in future (It will take time depending on my learning speed). Many Python developers are already doing that. These web applications can be used to perform data analysis or answer specific data query or for other purpose. More and more cloud based web development providers are integrating "python" so that developers can write web applications in Python. (Let's talk about machine learning) In the last few months, there has been machine learning hype. Machine learning has been around for decades but it is now being used more and more due to availability of training data (plus variety) and platforms in cloud. Graphics card makers like Nvidia and Intel have enhanced their GPUs for machine learning purpose. So, computing power is also one of the reason for machine learning hype. (Back to my story) The "Introduction to Computer Science" course is prerequisite of course Introduction to Machine Learning (starting it soon) which also made me think that I should explore the machine learning platform available in cloud. Companies like Google, AWS and Microsoft have introduced their own machine learning platform in cloud. In this blog, we are going to share my experience while getting started with machine learning platform.
Which cloud provider?Very first question that I ask myself was "Why this provider?" and the answers were:
- Need machine learning platform
- Start with provider that I've used for other things
- Integrate easily with other services (that I am aware of) from same provider
So, I decided to go with AWS and Microsoft. I chose these two for following reasons:
- Used both for other purposes during my roles as "System Administrator" & "Business Intelligence Developer".
- Already knew how to integrate services for these providers. I have used these providers for creating solutions and POCs.
- Both provide machine learning platform to learn
I only used google for search and emails. That's the only experience I have with Google.
Getting StartedGetting started is always the first step in learning a new stuff. Even, majority of online product documentation or tutorials always starts with "Getting Started" page. Most of the time, you can make your decision on whether you are going forward or not based on "getting started" experience.
Amazon Machine Learning (AWS)Started with Amazon machine learning home page. As expected there was "Getting started" page. So, I launched the getting started page and there was straight link to tutorial. Alright, tutorial has steps to start using sample data (csv). It all looks simple and straight forward. I decided to read whole tutorial first. Before I can even finish reading tutorial I started to ask these questions to myself.
- How I am going to utilise and enhance python skills?
- Can I integrate jupyter notebooks? (oh yes, I am also learning jupyter notebooks. I found them very useful for creating data stories)
- Are there more samples created with python libraries (or even R language)? Remember, I talked about tutorials with different python libraries that we can follow to learn.
- Will I be able to create web applications/service (using machine learning platform) with Python (or even R)?
I jumped to AWS ML documentation but truely speaking I found that it is totally different world for me. It might be simple learning curve for everyone but only if your focus is to train your data using some ML model and output result to S3. There might be a solution or some documentation to do what I need but I never found it within machine learning documentation.
Microsoft Machine Learning (Azure)Okay, what about Microsoft? Same getting started? No, really ! I got excited to see home page of machine learning. Support for jupyter notebooks.
I noted following things and believe they are really good reason to stick with Microsoft machine learning platform.
- There are number of samples to try and they have their own tutorials. Each tutorial is written in specific layout i.e. summary, description, creating the experiment, data visualisation.
- You can publish your experiment as web service which can then be consumed later within an app
- There is python development centre to learn how to build and deploy Python apps.
- Kaggle like competitions to compete with other data scientists. Cortana Intelligence Competitions
It's final that Microsoft machine learning will be my platform in future. However, these additional reasons might convince you as well:
- Microsoft Excel and Sharepoint is widely used and ML web service can be easily consumed by these products. Use MS Excel to consume ML web service
- If an Organisation is using Microsoft Power BI then you can visualise the output of an Azure ML model using Power BI. How? See here
- The Azure Marketplace provides the ability to publish Azure Machine Learning web services as paid or free services for consumption by external customers. Independent consultants can create a predictive solution and then publish it as paid service.
At the end, what really matters is your focus and needs. For my needs, Microsoft machine learning turned out be a good option (at this moment). OpenData and Microsoft machine learning seems to be a good combination. What do you say? Let's play together.