Examples of Machine Learning in Custom Software Applications

Most people are aware that computers are getting even smarter, but they’re probably not familiar with how frequently artificial intelligence is used. Today, we will look at Machine Learning and what are some ubiquitous examples of its use.

Simply put, Machine Learning is a computer programming strategy that is used when you want to predict something but do not know an exact mathematical formula that can be applied to the problem. Instead, you gather relevant data about past experiences and create a model to determine future outcomes – that is, you teach the computer by feeding it examples.

There are multiple strategies within Machine Learning that can be leveraged, but the primary technique is called a Neural Network, which clusters historical choices to recommend similar items. This is how Amazon or Netflix give product or movie recommendations based on your past selections.

Neural Networks can be used to classify data, as in:

  • Facial or speech recognition (Facebook/Siri)
  • Spam filtering (Gmail)

They can also be used to predict future results, as in:

  • Medical Diagnosis
  • Stock Performance

A Learning Experience

In early 2014, I developed a Neural Network application to try to predict the price of Bitcoin, a highly volatile digital currency. If it had been a smashing success, I’d be rich and drinking unsalted margaritas at an island resort, not writing this blog post.

Where my application lacked was in the data that was available to me. I had taken many different data points that I thought would be predictive: previous prices, trading volume, and news mentions. I was able to get the application to predict future prices using a representative Neural Network. However, there were two problems: fees & trends in the markets.

My Neural Network simply followed the overall trend of the market. If it went generally up, then my simulation made a little money. If it went down, I lost. I probably could have made money if I didn’t have to earn enough with each transaction to overcome trading fees. All in all, the system worked and gave some interesting predictions that were better than I could produce myself, but it wasn’t 100% accurate.

Room for Improvement

I have learned that this process can work, but the most important thing is to identify which pieces of data factor into the future price. Intuition suggests that the more data collected the better the results. However, this is not necessarily true. The data used needs to be somewhat indicative of what will occur. For example, Bitcoin price might correlate with Stock Index performance, but it likely does not strongly correlate with the number of search results for “Bitcoin” in Google. What data is appropriate can be difficult to determine. Sometimes only trial and error can shed light on the problem.

Real-World Business Applications

There are more uses for Machine Learning and Neural Networks than I think most companies realize. Likewise, there have been opportunities to use them in my past projects that I didn’t see at the time.

A few years ago, I developed an internal application that was used to place objects in a virtual room based on certain rules. The client found there were many previously unknown exceptions to the rules they thought existed. They knew what types of room arrangements were correct by looking at them, but could not always articulate why. Through collaboration and iteration, we refined our list of rules to produce an acceptable application for most scenarios.

Perhaps a better idea would have been to analyze all the decades worth of CAD drawings they had, look at the complete ones and use that to determine which arrangements were valid and what are some realistic scenarios that the business encounters. From that information, the application could generate its own model for which rooms in the future would be considered valid. This type of solution could potentially be developed faster and be a more robust representation of valid room arrangements.

At Unstoppable Software, we develop all kinds of complex software systems, but occasionally we get to explore technologies that aren’t frequently used in everyday business. This is an example of where we explored one of those, Machine Learning, and found some opportunities to use it. Furthermore, an understanding of existing applications of Machine Learning can only help spark ideas of how it can be leveraged.

Start typing and press Enter to search