# Rule engine vs machine learning

We would like to implement rule engine in one of our products, but when I read on the Internet, many are suggesting that rule engines are an old way of doing things and it will be very hard to manage as we add more rules into it. To be successful in implementing a rule based system we need to know all the rules beforehand.

Instead, everyone seems to be suggesting that we use Machine Learning algorithms to predict the outcome, but I am new to Machine Learning.

So my Question is, should I learn Machine Learning or go on implementing Drools as rule engine in my application.

Or can you suggest any online resources achieving the same using Machine Learning?

• Expert systems (or rule engines) are not replaced by ML in all possible scenarios. Also using ML may require you collect a lot of data in order to learn statistically, where a simple rule might be already known and simpler to manage. It depends very much what your task is. What would this component you want to add to the product do? When you talk about adding a "rule engine", also is this something you and the dev team will use to modify the product, or is it something the end users will need to work with (e.g. defining custom rules which you store as data for them)? – Neil Slater Aug 24 '17 at 17:09
• It is something which end users will be interacting with, end users will define the custom rules, and they can define hundreds as many as they want. – Ali786 Aug 25 '17 at 14:29
• link from internet which says its replaceable forbes.com/sites/teradata/2015/12/15/… – Ali786 Aug 25 '17 at 14:29

I'll try and answer your question point-by-point from an architect's point-of-view:

We would like to implement rule engine in one of our products, but when I read on the Internet, many are suggesting that rule engines are an old way of doing things

The 'people of the internet' don't know your scale and the use-case. Only you know. So, they might be suggesting ideas from a very high-scale point of view, when your system is not necessarily a high scale one. So, pick the right idea/tool for the job.

suggesting that rule engines are an old way of doing things and it will be very hard to manage as we add more rules into it

True. Rule-based systems are not scalable, due to obvious reasons. And, that's why people consider ML as a highly scaled out rule-based engine, wherein the rules can no longer be understood by humans. Thus, the black-box name.

So my Question is, should I learn Machine Learning or go on implementing Drools as rule engine in my application.

That is for you to decide. We don't know your scale. But, if you think the rules would be increasing at a huge rate in the future, then ML is the best way forward for your use-case.

Or can you suggest any online resources achieving the same using Machine Learning?

For me, every recommender system is a complex rule-based engine under the hood. So, go through Amazon's and how they do their recommendation.

• Rule-based systems are not scalable how come? even machine learning is not scalable in that sense as new relevant data has to be collected and trained each time there is a new change in the system. eg: Just to add one rule in rulebased it is easy but for ML entire system has to be trained again on new data, tested and then deployed? – data101 Mar 22 '18 at 11:12
• Scale doesn't happen with one file. So, when a million files come in, which can bring in atleast a 1000 news rules, it is far more easier to train a deepnet on all of them and let the algo. infer – Dawny33 Mar 22 '18 at 11:58
• new training data has to be labelled also which makes the process expensive and slow? – data101 Mar 27 '18 at 7:55