Machine learning in Business optimization

“This is a phenomenon that Turing had predicted: that machine intelligence would become so pervasive, so comfortable, and so well integrated into our information-based economy that people would fail even to notice it.” (Ray Kurzweil 1999)

1 Historical background

According to Arthur Samuel (1959), Machine learning is “field of study that gives computers the ability to learn without being explicitly programmed”. Machine learning derives from a real world need to have intelligent machine, or an artificial intelligent in other words. But to understand why Machine learning was formulated as a field, we need to look a bit into history.

Back in time, mathematicians believed that they are able to describe each and every law in terms of finite and complete set of formulas, and then, they could pass that structured knowledge to a computer. In 1931 Kurt Gödel created incompleteness theorems, which are logical proofs that it is simply not possible to create the finite and complete set of axioms, and even if that will be achieved by some system, that system cannot prove its’ own consistency. A bit later, in 1937 Alan Truing formulated a so-called “Turing machine”, which helps to understand the limits of what can be computed.

Kurt Godel
Kurt Godel

Surprisingly, both proved the limitations of what mathematical logic could achieve, however within those limits mechanical devices still can carry out a mathematical reasoning. And so like that, later happened the change in the paradigm, where scientist instead of describing some laws and passing it to machine decided, that it might be much more productive if they give to a computer an ability to learn instead. One of the first successes was SNARC (Stochastic neural analog reinforcement calculator), the first neural network simulator created by Marvin Minsky in 1951. A bit later at IBM in 1959 Arthur Samuel created first self-learning program – checkers program.

2 Reasons to use

With all this have been said, here comes quite fair question – why would we use such a thing? It turns out that many industries already use learning algorithms. And first reason for that is data analysis. Indeed amount of data has to be handled is growing rapidly, and it becomes almost impossible for a researchers or analysts to analyse that data, and machine learning can help with that.

The second reason is that, there are certain situations where not a single engineer knows how to make a computer program for specific task, for example hand-writing recognition or computer vision.

Lastly, most common reason is need for self-customizing or self-improving programs, where we would like that certain system changes its self over time based on some inputs. Examples for this kind of systems could be recommendation systems, which recommend to a customer certain products based on history of their purchases.

3 Developments

3.1 Quality Control case

Many retailers have a business process of checking product delivered by manufacturers for further sales. And it happens in some situations that this process slows down sales process. Or in other cases when amount of products is huge and selling defective products don’t bring any risks to customers’ lives – retailers don’t check the whole delivery – they simply leave for customer rights to return defective product back. If that process exists in company – it is usually operational level process, which has influence directly on efficiency of sales process.

So we can represent the situation as follows: what is the probability P that object R is good and doesn’t have defects “P {yr = 1|xr; 0}”, thus no need to check it manually. To conduct this case I took a real data from machine learning data repository about quality of wine.

To create decision model – logistic regression learning algorithm was used. To give a bit of intuition, what exactly Machine learning agent is trying to accomplish, it tries to learn how to separate good and bad examples based on previously collected data. In even more simple words we can say that it tries to draw some decision boundary line.

LogisticRegressionExample1

After running learning algorithm it gave 95.18 percent of prediction accuracy, which can be considered as successful.

QualityControlCaseScreen

3.2 Credit Approval case

Some companies already use some credit rate calculators, but in cases when requested credit amount is not very big, it would be also possible to automate the decision process whether applicant is eligible. If amount of applications is large and sums are relatively not big then this decision can be brought to operational level and automated. So the problem can be formed like that: Will a customer based on his personal information likely to return the whole sum of the credit. To conduct this case I took a real data from machine learning data repository about credit approvals statistics.

Here it is again classification problem, but for the sake of difference – different approach was chosen – this time neural network was used for creating non-linear decision boundary. Here, to give more intuition we again can think about a line that separates good and bad previously collected examples, however this time computer will try to draw not a straight line but some curve which potentially will give us better accuracy.

NeuralNetworkExample1

After running the algorithm the program reported that it has 90.58 % of prediction accuracy, which can be considered as fairly not bad result. Taking into consideration that training set consists only of 552 records, I’m pretty sure that algorithm would have a better accuracy with bigger data set. For comparison – previous case used 3992 records as training set.

CreditApprovalCaseScreen

4 Downloads

To run this programs – GNU Octave is required. The main function is in file main.m

CreditApprovalCase

QualityControlCase

5 References

Ray Kurzweil 1999. The Age of Spiritual Machines.
Stanford Encyclopedia of Philosophy 2013. “Gödel’s Incompleteness Theorems”. URL: http://plato.stanford.edu/entries/goedel-incompleteness/
Stanford Encyclopedia of Philosophy 1995. “Turing Machine”. URL: http://plato.stanford.edu/entries/turing-machine/
Alan Turing 1950. Computing Machinery and Intelligence. URL: http://www.loebner.net/Prizef/TuringArticle.html
UC Irvine Machine Learning Repository. URL: http://archive.ics.uci.edu/ml/index.html