Microsoft’s Prediction Power : Azure Machine Learning – A Quick Overview

March 3, 2015 1 comment

Microsoft has unleashed its Azure Machine Learning as a general availability from 18-02-2015 onwards. Microsoft’s driving factor behind Azure Machine Learning is “to offer a fully-managed cloud service that will enable data scientists and developers to efficiently embed predictive analytics into their applications, helping organizations use massive amounts of data and bring all the benefits of the cloud to machine learning”. 

A 7 Point Features Overview :

  1. Azure Machine Learning is a  fully managed service – which means you do not need to buy any hardware nor manage VMs manually
  2. A browser-based machine learning IDE that enables quick creation and automation of  machine learning workflows
  3. Built-in ML libraries that can be drag/dropped to jump-start your predictive analytics solutions
  4. Features a library of sample experiments, R and Python packages and best-in-class algorithms from Microsoft businesses
  5. Supports R and Python custom code with shared workspaces
  6. Creation and discovery of web services, train/retrain your models through APIs, scale web services on demand and configure diagnostics for service monitoring and debugging
  7. Publish, consume, monetize and brand Machine Learning web services that expose trained models directly using the Azure Machine Learning Marketplace 

4 Advantages for Data Scientists?

  • No setup time, ready to start and no more computing resource limitations
  • Azure marketplace to utilize existing models or publish/monetize your new models
  • Supports familiar R, Python languages and reuse of existing scripts
  • Simple and easy configurations for modeling and deployment 

4 What’s in it for IT Developers?

  • Brings prediction capabilities to the masses and available to non-experts
  • Opens up the possibility to utilize ML models in day-to-day IT  applications and infrastructure
  • Predictive models would be a big plus to interpret the huge data that would result from the Internet Of Things(IOT)
  • Ready to use ML APIs , sample experiments to learn from, Machine Learning blogs and forums to support 

4 Initial Challenges :

  • IT Pros: Support for familiar languages like C# would make it more quickly explorable
  • IT Pros: “Drag/Drop” and “Quick Start” examples might help in designing basic models but the selection of algorithms, methods and tuning the models for real-world examples would require statistics, science and mathematical knowledge
  • Data Scientists : Spreading the word to non-Microsoft line of scientists/researchers, adapting and shifting to the new working model from familiar environments like Matlab
  • Data Scientists : Most of the algorithms and methods are available considering its initial launch but still lacks some methods, algorithms that the data scientists might need in their experiments (feedback from a Data Scientist) 

A 2 point recent Microsoft’s Analytics Market Facts: 

  • Microsoft acquired Revolution Analytics in January 2015, a leading commercial provider of software and services using R language for statistical computing and predictive analytics to power its analytics vision
  • Gartner’s Magic Quadrant for Advanced Analytics Platforms for 2015 states Azure Machine Learning(preview during the evaluation) as one of Microsoft’s strength placing it as a visionary in 2015 from a niche player in 2014 Gartner Report 2015

A 1 point action :

Go and try it!  Microsoft Azure Machine Learning free trial. 

Please post your comments, questions or feedback.

Advertisements

Adding a multipart message to ESB Portal using ESBfault

September 20, 2012 Leave a comment

Assigning a failure message to an ESB fault and making it viewable in ESB Portal is a known practice nowadays.There are many posts that explains how to add a message to ESB fault and to make it displayed in the ESB portal. The sample code would be something like this.

msgESBFault=Microsoft.Practices.ESB.ExceptionHandling.ExceptionMgmt.CreateFaultMessage();
msgESBFault.FailureCategory=”RoutingFailed”;
msgESBFault.FaultSeverity=Microsoft.Practices.ESB.ExceptionHandling.FaultSeverity.Severe;
Microsoft.Practices.ESB.ExceptionHandling.ExceptionMgmt.AddMessage(msgESBFault,ActualMsg);// “ActualMessage is the message  to be sent to ESB Portal”.
 
But when the ”ActualMessage” is a multipart message, assigning the parts to the AddMessage() does not work.
 
Microsoft.Practices.ESB.ExceptionHandling.ExceptionMgmt.AddMessage(msgESBFault,ActualMsg.Part1);
Microsoft.Practices.ESB.ExceptionHandling.ExceptionMgmt.AddMessage(msgESBFault,ActualMsg.Part2);
 
The above way of assigning the part will result in the intellisense complaing that “the message cannot be assigned to an XLangMessage”. To resolve this, the following are the steps.
 
1. Create UnTyped Messages( Type : System.Xml.XmlDocument) for each of the message part to be assigned.

2. Try to assign all the message parts to xmldocument messages and add each one by one as follows.

Msg1(Of type xmldocument) = ActualMsg.Part1;
Msg2(Of type xmldocument) = ActualMsg.Part2;
Microsoft.Practices.ESB.ExceptionHandling.ExceptionMgmt.AddMessage(EsbFault, Msg1);
Microsoft.Practices.ESB.ExceptionHandling.ExceptionMgmt.AddMessage(EsbFault, Msg2);
 

This will display all the parts and the body message to be displayed in the same view in ESB Portal. This will be helpful when HL7 multipart messages are assigned to ESB Faults.

 

Reason: Name cannot begin with the ‘.’ character, hexadecimal value 0x00. Line 1, position 2.

August 30, 2012 Leave a comment

Issue :

Pipeline execution throws “Reason: Name cannot begin with the ‘.’ character, hexadecimal value 0x00. Line 1, position 2.”

Cause :

The default encoding for a BizTalk schema is UTF-16. When a stream is read from the bodyPart of the message in a pipeline component using a different encoding ( like UTF-8), then this error occurs.

Resolution:

The resolution is to use “Encoding.Unicode” which represent UTF-16 while reading the stream using a Stream reader.

First Technet Wiki Article: Microsoft BizTalk Server and Transactions

April 24, 2012 2 comments

My First Technet Wiki article has been published here. It is on BizTalk and it’s transaction boundaries. Kindly have a read and would be happy to have feedbacks and comments. Have a great day!!

Microsoft Community Contributor Award – Thank you!!

April 24, 2012 4 comments

There was a mail on April 11th that made me scream out of happiness. Yes, It was a mail from Microsoft informing me about the Microsoft Community Comtributor Award. For me, its a good first step and will try to step a little stronger in my next.

I sincerely thank everyone who has recommended me for this award. I also thank Microsoft for this recognition.

THANK YOU!!!! 🙂

Categories: Others

Logical ReceivePort Operation Name as an extra XML element:Publishing Orchestration as a Service

April 24, 2012 Leave a comment

Issue :

While Publishing an Orchestration as a service using WebServices wizard, the xml input expected by the generated service operation is wrapped within an extra xml element, which is the name of the logical receive port of the published orchestration

  <soap12:Body>
    <Operation_1 xmlns=”hhtp://MyTestNameSpace”>

Cause :

The Orchestration that is published as a service creates 2 types of subscriptions behind the scenes(logically a single subscription as they are seperated by an OR).

1.For the requests coming from the generated SOAP receive port,  the subsciption is as follows.

http://schemas.microsoft.com/BizTalk/2003/system-properties.ReceivePortID == {47E7FAA7-D285-4C69-A591-510F8074AEEC} And

http://schemas.microsoft.com/BizTalk/2003/soap-properties.MethodName == Operation_1

2.The second subscription is based on regular messagetypes which are not from the SOAP transport types.

http://schemas.microsoft.com/BizTalk/2003/system-properties.ReceivePortID== {47E7FAA7-D285-4C69-A591-510F8074AEEC} And

http://schemas.microsoft.com/BizTalk/2003/system-properties.MessageType== http://OrchFiltertest.In#Root And

http://schemas.microsoft.com/BizTalk/2003/system-properties.InboundTransportType != SOAP

 So when a message arrives  through the SOAP recieve  port, an extra xml  element that matches the name of the logical recieve port is added in order to match the subscription.This extra element header will be automatically ripped off by the engine when it hands over the message to the orchestration

Resolution:

No manual action is required in this scenario and it is a built in behavior. The message will reach the orchestration as it has to.

FlatFile xs:Date field with an empty value

June 8, 2011 Leave a comment

I have seen this issue a couple of times and thought of recording this.

Exception:

After generating a flat file schema with optional elements(minoccurs =0) of type date,int,decimal etc., which does not accept a ‘ ‘  value, we might endup with an error as follows.

error BEC2004: The ‘JoinDate’ element is invalid – The value ” is invalid according to its datatype ‘http://www.w3.org/2001/XMLSchema:date&#8217; – The string ” is not a valid XsdDateTime value.

Cause:

This exception is perfectly valid from the compiler’s perspective. Here comes the example.

Suppose my flatfile schema is generated using the following imput and is demilited by ‘|’ .

1|Name|2010-02-03|Description

As the date field(highnlighted in red) is optional in our scenario, the following input is also valid.

1|Name||Description

But when BizTalk validates this instance against the schema, it just picks the value between the two ‘|’ symbols for the date field which is ”. Thus it throws the error when it checks if the value ” is valid for a date field. This will occur for any datatype which does not accept ” value.

Solution:

The Solution is to logically let BizTalk  know priorly that the datefield is optional and it has to ignore if any blank values occur.

This can be done by setting the “Suppress Empy Nodes” Property to “No” at the Schema Level(By Clicking on the word “Schema” above the root node of the flatfile).

FlatFile_Property

This will ensure that BizTalk knows that the field might have empty value and it should ignore it. This will get your validation successful.

Please post your suggestions or comments.