Random Forest

What is Random Forest?

Random Forest describes an algorithm in the field of machine learning or the artificial intelligence, which is for Classification or regression tasks can be applied. Classification or categorisation is about categorising or assigning a variable to a particular class. Regression, on the other hand, aims to estimate values of a variable based on its dependence on other variables.

The term Random Forest was introduced by statistician Leo Breiman and is based on the use of decision trees. By creating many random decision trees, a "random forest" of trees is created.

How does a Random Forest work?

To create a forest of trees, many individual decision trees must first be generated. These Creation is uncorrelated and randomised. Each tree consists of several branches/nodes, which finally result in an end point/leaf/class after several levels. A classifier assigns the data object to a class, which is then classified again in the next branch until the object reaches an end point.

To prevent decision trees from correlating with each other, the so-called principle of bagging (short for bootstrap aggregation) is applied. For this purpose, the decision trees are created using the Training data several times with different distributions. This variance of the respective decision nodes is to exclude a correlation of the decision trees to each other.

After creating the defined number of decision trees, the algorithm works based on the ensemble method by considering multiple decision trees for prediction. This method has the advantage over using a single decision tree that the decisions of a large number of predictors can counteract outliers and thus increase the reliability of the result. Thus, the prediction of a random forest regressor corresponds to the average of the predictions of the individual decision trees.

Random Forest basically belongs to the category of the so-called Supervised Learning (supervised learning). In this type of machine learning, the algorithm's training data is labelled, meaning that the input data is already mapped to the correct target data. Based on this, the system is supposed to learn to predict new data correctly.

In which software can a random forest be implemented?

Among other things, the method can be used in Scikit-learn, R programming languageH2O or Weka.

  • At Scikit-learn is a Python library that is mainly used for classification & regression algorithms as well as visualisations in the field of machine learning.
  • The Programming language R is classified as an interpreted language, was developed for static calculations and is very widely used for statistical calculations in both science and business. The name R can be traced back to the first letter of the first name of its founders Ross Ihaka and Robert Gentleman as well as to the simplicity of the programming language S, on which the syntax of R is strongly based.
  • H2O is an open-source software of the company H2O.ai and is mainly used for algorithms in the field of statistics and machine learning. The software can also be operated in Microsoft Excel via an API, for example. During the calculation of the algorithm, approximate results are displayed so that parameters can still be changed during the calculation process. The visualisation of the method is generally one of its advantages.
  • Weka (Waikato Environment for Knowledge Analysis) was developed by the University of Waikato in New Zealand and offers solutions for classifications and in the Cluster analysis also areas of application in neural networkswhich can be combined with the application of Random Forest.

Reasoning System

What is a Reasoning System?

A reasoning system is a software system that generates conclusions from an available knowledge base and uses logical techniques such as deduction and induction. Reasoning systems play an extraordinarily large role in the implementation of Artificial intelligence and in knowledge-based systems. In principle, all existing computer systems are such systems, because they all automate certain types of logic or decisions.

Normally, however, this term is used for systems in which a more complex type of reasoning system is used. For example, systems that implement direct reasoning such as VAT or the customer discount are not considered such systems in the strict sense, but rather systems that make logical inferences about medical diagnoses or mathematical theorems. There are two modes in which reasoning systems operate: interactive mode and batch mode. Both modes can perform the reasoning process with user guidance to determine the best answer.

Types of Reasoning Systems

There are different reasoning systems that have become established in different areas:

Clinical or professional reasoning

In clinical reasoning, the following areas can be distinguished:

  • Scientific Reasoning (SR): subject-specific, profession-specific background knowledge
  • Interactive Reasoning (IR): is in interaction with the other individuals and thinking takes place on the relational level
  • Conditional Reasoning (KR): this concerns ideas about the future and also conditions under which possible futures could occur.
  • Narrative Reasoning (NR): here, thinking takes place in stories and in relation to persons and institutions.
  • Pragmatic Reasoning (PR): the ability to act according to pragmatic considerations.
  • Ethical Reasoning (ER): reasoning determined by attitudes, stances or values.

Case-based Reasoning System

A Case-based Reasoning is case-based reasoning with a case base (case memory) and an imitation of human behaviour, where the solution to a given problem is guided by the solution to a similar and previously solved problem. Case-based reasoning is an approach to modelling human thinking. With this approach, intelligent systems can be built. For this purpose, experiences made (all cases) are stored. These cases are used to solve new tasks. The task classes of CBR systems include the analytical tasks of classification, diagnosis, evaluation, decision support and prediction, as well as the synthetic tasks of configuration, design and planning.

Machine learning systems

Machine learning deals with the computer-based methods for acquiring new knowledge and new skills as well as novel ways of organising existing knowledge. Both symbol-oriented and connectionist methods are understood under the term machine learning. The task of learning systems is to enable the system to perform the set tasks (global or concrete targets) progressively better after repetition than before. The improvement of the system's performance can be achieved by applying new or modified methods and knowledge. The tasks can finally be performed with improved quality (faster, more accurate, safer and more robust).

Rule-based system

What is a rule-based system?

A rule-based system is a useful knowledge-based system that allows rule-based reasoning. Such Rule-based systems consist of a database of facts (fact base), a set of rules (rule base) and a control system.which is equipped with a rule interpreter (inference engine or business rule engine).

The rules are constructed according to the if-then-else principle. The IF part is called the premise and the THEN part is the conclusion. The control system is to make an identification of appropriate rules and apply selected rules and update the database. The selection mechanisms are data-driven or goal-driven.

Rule-based systems form the basis of expert systems. Rules are managed in a business rule repository, which is part of a business rule management system.

What are the applications for rule-based systems?

It comes to the increasing Use of rule-based systems in production planning and production control. These systems are used in particular in industries with a wide variety of consumer and investment goods. They are used in the furniture industry, in mechanical engineering, in the automotive industry and in the electrical industry.

Product configurators know what dependencies there are and inform about them. For example, there are certain combinations of features. A customer can order a convertible, but it cannot have a "sunroof". When ordering a fully automatic "air conditioning system", the vehicle also needs a stronger "battery" at the same time.

Rule-based systems are also used for the distribution of worldwide vehicle orders. For example, there are rules for vehicle and aggregate plants of car manufacturers. The rulebook of a car manufacturer has thousands of product and production rules.

How are rule-based systems structured?

Rule-based systems are the most common type of knowledge-based systems (expert systems). The components are a rule base (set of rules) and an inference mechanism (inference engine). The inference mechanism determines which of the rules to apply and there are several possible strategies that can be used. For example, there is either forward chaining or backward chaining of corresponding rules.

What are the rules in a rule-based system?

The rules are simply formalised conditional sentences. They have the form:

If (if) A, then (then) B

This is where the meaning comes from:

If A is true (fulfilled, proved),
then conclude that B is also true.

A and B are statements. The "if"-part formula of a rule is called the premise or antecedent of the rule. The "then" part formula is called the conclusion or consequence. As soon as the premise of a rule is fulfilled, the rule is applied.

If this rule always applies, it is called a deterministic rule. If the consequence of a rule is connected with a corresponding action, then we have a production rule. These rules are often used in corresponding production systems for control purposes.

The rules are a good compromise between an understandable representation of knowledge and formal requirements. In cognitive science, rules are seen as components of information-processing processes.

Recurrent Neural Network (RNN)

What is a Recurrent Neural Network?

Neural networks can be feedback or recurrent. These are characterised by connections between neurons and layers. Whether these layers are on a previous layer or the same layer as the respective neuron is irrelevant here, both are possible. The human neocortex, for example, contains such interconnections of neuronal networks. In neural networks of an artificial nature, the already mentioned recurrent interconnection is used to read out information that is temporarily encoded in different data and data sets.

Areas of application

When it comes to problems in processing different sequences, sequences and processes, recurrent neural networks are used to solve them. In daily practice, these are found in the Speech or handwriting recognition and machine translation take place. There are many programme libraries where neural networks have been integrated.

Subdivision of neural networks

  • Direct feedback: = The own output becomes an additional input.
  • Indirect feedback: Establishes a connection between a neuron output and a neuron from the previous layer.
  • Lateral feedback: Establishes a new connection between the output of one neuron with another neuron of the same layer.
  • Full connection: Here, each output of neurons has an independent connection to every other neuron.

Train neural networks

Training through different ways and methods of so-called machine learning is possible here to a limited extent. Neural networks are thus only capable of training and learning to a limited extent. For this reason, a different approach is used. Here, it is not the neural network itself that is trained, but the reading out, i.e. the information output.

The neural network thus represents a memory or container here, which is seen as a large reservoir and represents the starting point for the training. Through the method "Backpropagation Through Time"This network is converted into a so-called feedforward network within the training units. In this process, the sequence length again plays a greater role.

The future of Recurrent Neural Network

Exploiting the feedback between neurons in a targeted way in order to draw on what has already been learned when making future decisions has been taking place for thousands of years, ever since mankind has existed. Profiting from experience is the most normal thing there is. The animal world has also benefited from this kind of conditioning since before mankind existed.

Researchers, scientists and IT experts have taken advantage of this fact to create and constantly expand machine learning. Recurrent neural networks are one of the most important components of many technologies and inventions that people use in everyday life today and take for granted. But the processes behind it are far more complex.

Constant improvements and updates, such as increasing the capacity of the storage locations, are important so that more and more experiences, contexts and data can be recorded and retrieved as needed. There is really no need to worry about the future of Recurrent Neural Network. Globalisation and technological progress allow for a steady expansion of Recurrent Neural Network worldwide.


Ruby is an object-oriented programming language developed by Yukihiro "Matz" Matsumoto in 1995. Since 2012, the Ruby standard has been specified under the ISO/IEC 30170 standard.
With the name, the language should be a jewel among programming languages.

What is Ruby?

The programming language was released in 1995 and developed by Yukihiro Matsumoto. The developer wanted to create a new language that contained a collection of the best elements possessed by other programming languages he valued. These included Perl, Ada, Smalltalk, Lisp and Eiffel.
In the next step, the language should be more object-oriented than Python and at the same time more flexible than Perl.

The success of the new programming language was not long in coming, at least in Japan. Shortly after its release, it was quickly used in many areas.
It first came to the attention of the non-Asian world in 2006 in the course of a number of publications dealing with the new programming language.
The language became popular mainly because of its relatively simple syntax and its usability on many systems such as Linux distributions, UNIX systems, MacOS devices, Windows and OS/2.

This also achieved the goal of making it very easy for programmers to read the source code.
Due to its high flexibility and simple syntax, the programming language with its framework "Ruby on rails" was largely used as a scripting language in server applications and at the same time replaced many Bash scripts in projects.

One example in which it becomes clear why the programming language is more object-oriented than Python is the handling of numbers and mathematical operators.
In Ruby, everything is an object with its own instance variables and methods. Unlike other programming languages, this also applies to numbers.
Thus it is possible to write "x = 2.plus 8" and thus use the method of a number.

This makes programming particularly convenient. At the same time, the object orientation makes the programmes easier to maintain and structure. Components of the code can be conveniently exchanged or changed.