Modelling Data – Case Study: Importance of domain knowledge

What´s the relation between earnings and happiness? I saw this chart and was strongly irritated – why is there a linear regression, it´s clearly a logarithmic relationship.
Linear relationship between GDP and happiness.

So I got angry and wanted to know, which model is the better fit. I started to work immediatly, because it´s a huge difference for man kind. Think about it: you give a poor person money and he gets as happy as a rich person with the same amount added – that´s against common sense and propaganda to get rich. Like an cultural desease.

So I gathered the data and did a first comparation, and this logarithmic model was the better fit:
Logarithmic relationship between GDP and happiness.

I was right and seriously willing to clear the mess up – so posted the “correct” model on facebook, to explain things to my friends.

Once I came down…

I asked myself: “What´s the model that fits the data best – that would be more correct?”

So I started to write an algorithm to check polynominal regression levels for fit using a random train and test data split. Finally, I got to this result and was amazed:
Best polynominal relationship between GDP and happiness.

This seriously hit me: “What the f***! There seems to be maximum happiness reachable with a certain amount of income / GDP.” Can you understand, what this result would mean for our world and economy? Think about all economies growing continiously, but well happiest was there or will come there. What would you do? Send income to less developed countries, because you don´t need it? Stop invention and progress, because it´s of no use? Seriously, I felt like a socialist: Stop progress at this point and share.

So I thought a while and concluded: “F***ing statistics, we need a profound econometric model.”

I started modelling: Well, the first amount of money in a market based on money leverages a huge amount of happiness, because you can participate and feed yourself. We can approximate that by infinit marginal utility. Then the more you have, the less utility should be provided by the additional same amount added. Finally, more income is more options, so more should be always better. I concluded, that this is catched by a Cobb Douglas production function. Here´s the graph:
Cobb Douglas relationship between GDP and happiness.

That´s it, that´s the final model. Here I feel home, this looks like a normal world – for an economist.

The Relevance of Domain Knowledge

As this short case study shows, we get completly wrong information and conclusions, if we don´t do it right. If you were the most important decision making algorithm in global economic politics, imagine what desasterous outcomes it would have produced to automatically find an optimum of income.

This is a serious border of AI. If you want to analyse Big Data with algorithms, you may produce seriously wrong information and conclusions. Statistical analysis is allways about using the right model. And modelling is about the assumptions of the model. As long as you can not create the right assumtions for the statistical model automatically, Big Data analysis is near to crazy. So out of this point of view, Big Data analysis is either about very simplistic tendencies (like linear trends) or it´s bound to Data Scientists with domain knowledge checking each model – that´s slow.

Discussion

I´m quite new to the field of Data Science, but this case study shows very though limitations, clearly. It´s not about flexible fitting of data, it´s about right models. And right models don´t scale into the Big Data domain. What do you think is the solution for this issue?

Countries of Happiness – the Full Article

If you are interested in my final article on my personal blog, explaining the final results: Please feel welcome to read the article here. There is a translation widget in the menu, to read in your favorite language. The original article is german.

Interview – Die Bedeutung von Machine Learning für das Data Driven Business

Um das Optimum aus ihren Daten zu holen, müssen Unternehmen Data Analytics vorantreiben, um Entscheidungsprozesse für Innovation und Differenzierung stärker zu automatisieren. Die Data Science scheint hier der richtige Ansatz zu sein, ist aber ein neues und schnelllebiges Feld, das viele Sackgassen kennt. Cloudera Fast Forward Labs unterstützt Unternehmen dabei sich umzustrukturieren, Prozesse zu automatisieren und somit neue Innovationen zu schaffen.

Alice Albrecht ist Research Engineer bei Cloudera Fast Forward Labs. Dort widmet sie sich der Weiterentwicklung von Machine Learning und Künstlicher Intelligenz. Die Ergebnisse ihrer Forschungen nutzt sie, um ihren Kunden konkrete Ratschläge und funktionierende Prototypen anzubieten. Bevor sie zu Fast Forward Labs kam, arbeitete sie in Finanz- und Technologieunternehmen als Data Science Expertin und Produkt Managerin. Alice Albrecht konzentriert sich nicht nur darauf, Maschinen “coole Dinge” beizubringen, sondern setzt sich auch als Mentorin für andere Wissenschaftler ein. Während ihrer Promotion der kognitiven Neurowissenschaften in Yale untersuchte Alice, wie Menschen sensorische Informationen aus ihrer Umwelt verarbeiten und zusammenfassen.

english-flagRead this article in English:
“Interview – The Importance of Machine Learning for the Data Driven Business”


Data Science Blog: Frau Albrecht, Sie sind eine bekannte Keynote-Referentin für Data Science und Künstliche Intelligenz. Während Data Science bereits im Alltag vieler Unternehmen angekommen ist, scheint Deep Learning der neueste Trend zu sein. Ist Künstliche Intelligenz für Unternehmen schon normal oder ein überbewerteter Hype?

Ich würde sagen, nichts von beidem stimmt. Data Science ist inzwischen zwar weit verbreitet, aber die Unternehmen haben immer noch Schwierigkeiten, diese neue Disziplin in ihr bestehendes Geschäft zu integrieren. Ich denke nicht, dass Deep Learning mittlerweile Teil des Business as usual ist – und das sollte es auch nicht sein. Wie jedes andere Tool, braucht auch die Integration von Deep Learning Modellen in die Strukturen eines Unternehmens eine klar definierte Vorgehensweise. Alles andere führt ins Chaos.

Data Science Blog: Nur um sicherzugehen, worüber wir reden: Was sind die Unterschiede und Überschneidungen zwischen Data Analytics, Data Science, Machine Learning, Deep Learning und Künstlicher Intelligenz?

Hier bei Cloudera Fast Forward Labs verstehen wir unter Data Analytics das Sammeln und Addieren von Daten – meist für schnelle Diagramme und Berichte. Data Science hingegen löst Geschäftsprobleme, indem sie sie analysiert, Prozesse mit den gesammelten Daten abgleicht und anschließend entsprechende Vorgänge prognostiziert. Beim Machine Learning geht es darum, Probleme mit neuartigen Feedbackschleifen zu lösen, die sich mit der Anzahl der zur Verfügung stehenden Daten noch detaillierter bearbeiten lassen. Deep Learning ist eine besondere Form des Machine Learnings und ist selbst kein eigenständiges Konzept oder Tool. Künstliche Intelligenz zapft etwas Komplizierteres an, als das, was wir heute sehen. Hier geht es um weit mehr als nur darum, Maschinen darauf zu trainieren, immer wieder dasselbe zu tun oder begrenzte Probleme zu lösen.

Data Science Blog: Und wie können wir hier den Kontext zu Big Data herstellen?

Theoretisch gesehen gibt es Data Science ja bereits seit Jahrzehnten. Die Bausteine für modernes Machine Learning, Deep Learning und Künstliche Intelligenz basieren auf mathematischen Theoremen, die bis in die 40er und 50er Jahre zurückreichen. Die Herausforderung bestand damals darin, dass Rechenleistung und Datenspeicherkapazität einfach zu teuer für die zu implementierenden Ansätze waren. Heute ist das anders. Nicht nur die Kosten für die Datenspeicherung sind erheblich gesunken, auch Open-Source-Technologien wie etwa Apache Hadoop haben es möglich gemacht, jedes Datenvolumen zu geringen Kosten zu speichern. Rechenleistung, Cloud-Lösungen und auch hoch spezialisierte Chip-Architekturen, sind jetzt auch auf Anfrage für einen bestimmten Zeitraum verfügbar. Die geringeren Kosten für Datenspeicherung und Rechenleistung sowie eine wachsende Liste von Tools und Ressourcen, die über die Open-Source-Community verfügbar sind, ermöglichen es Unternehmen jeder Größe, von sämtlichen Daten zu profitieren.

Data Science Blog: Was sind die Herausforderungen beim Einstieg in Data Science?

Ich sehe zwei große Herausforderungen: Eine davon ist die Sicherstellung der organisatorischen Ausrichtung auf Ergebnisse, die die Data Scientists liefern werden (und das Timing für diese Projekte).  Die zweite Hürde besteht darin, sicherzustellen, dass sie über die richtigen Daten verfügen, bevor sie mit dem Einstellen von Data Science Experten beginnen. Das kann “tricky” sein, wenn man im Unternehmen nicht bereits über Know-how in diesem Segment verfügt. Daher ist es manchmal besser, im ersten Schritt einen Data Engineer oder Data Strategist einzustellen, bevor man mit dem Aufbau eines Data Science Team beginnt.

Data Science Blog: Es gibt viele Diskussionen darüber, wie man ein datengesteuertes Unternehmen aufbauen kann. Geht es bei Data Science nur darum, am Ende das Kundenverhalten besser zu verstehen?

Nein “Data Driven” bedeutet nicht nur, die Kunden besser zu verstehen – obwohl das eine Möglichkeit ist, wie Data Science einem Unternehmen helfen kann. Abgesehen vom Aufbau einer Organisation, die sich auf Daten und Analysen stützt, um Entscheidungen über das Kundenverhalten oder andere Aspekte zu treffen, bedeutet es, dass Daten das Unternehmen und seine Produkte voranbringen.

Data Science Blog: Die Zahl der Technologien, Tools und Frameworks nimmt zu, was zu mehr Komplexität führt. Müssen Unternehmen immer auf dem Laufenden bleiben oder könnte es ebenso hilfreich sein, zu warten und Pioniere zu imitieren?

Obwohl es generell für Unternehmen nicht ratsam ist, pauschal jede neue Entwicklung zu übernehmen, ist es wichtig, dass sie mit den neuen Rahmenbedingungen Schritt halten. Wenn ein Unternehmen wartet, um zu sehen, was andere tun, und deshalb nicht in neue Entwicklungen investiert, haben sie den Anschluss meist schon verpasst.

Data Science Blog: Global Player verfügen meist über ein großes Budget für Forschung und den Aufbau von Data Labs. Mittelständische Unternehmen stehen immer unter dem Druck, den Break-Even schnell zu erreichen. Wie können wir die Wertschöpfung von Data Science beschleunigen?

Ein Team zu haben, das sich auf ein bestimmtes Set von Projekten konzentriert, die gut durchdacht und auf das Geschäft ausgerichtet sind, macht den Unterschied aus. Data Science und Machine Learning müssen nicht auf Forschung und Innovation verzichten, um Werte zu schaffen. Der größte Unterschied besteht darin, dass sich kleinere Teams stärker bewusst sein müssen, wie sich ihre Projektwahl in neue Rahmenbedingungen und ihre besonderen akuten und kurzfristigen Geschäftsanforderungen einfügt.

Data Science Blog: Wie hilft Cloudera Fast Forward Labs anderen Unternehmen, den Einstieg in Machine Learning zu beschleunigen?

Wir beraten Unternehmen, basierend auf ihren speziellen Bedürfnissen, über die neuesten Trends im Bereich Machine Learning und Data Science. Und wir zeigen ihnen, wie sie ihre Datenteams aufbauen und strukturieren können, um genau die Fähigkeiten zu entwickeln, die sie benötigen, um ihre Ziele zu erreichen.

Data Science Blog: Zum Schluss noch eine Frage an unsere jüngeren Leser, die eine Karriere als Datenexperte anstreben: Was macht einen guten Data Scientist aus? Arbeiten sie lieber mit introvertierten Coding-Nerds oder den Data-loving Business-Experten?

Ein guter Data Scientist sollte sehr neugierig sein und eine Liebe für die Art und Weise haben, wie Daten zu neuen Entdeckungen und Innovationen führen und die nächste Generation von Produkten antreiben können.  Menschen, die im Data Science Umfeld erfolgreich sind, kommen nicht nur aus der IT. Sie können aus allen möglichen Bereichen kommen und über die unterschiedlichsten Backgrounds verfügen.

Interview – The Importance of Machine Learning for the Data Driven Business

To become more data-driven, organizations must mature their analytics and automate more of their decision making processes for innovation and differentiation. Data science seems like the right approach, yet is a new and fast moving field that seems to have as many dead ends as it has high ways to value. Cloudera Fast Forward Labs, led by Hilary Mason, shows companies the way.

Alice Albrecht is a research engineer at Cloudera Fast Forward Labs.  She spends her days researching the latest and greatest in machine learning and artificial intelligence and bringing that knowledge to working prototypes and delivering concrete advice for clients.  Prior to joining Fast Forward Labs, Alice worked in both finance and technology companies as a practicing data scientist, data science leader, and – most recently – a data product manager.  In addition to teaching machines to do cool things, Alice is passionate about mentoring and helping others grow in their careers.  Alice holds a PhD from Yale in cognitive neuroscience where she studied how humans summarize sensory information from the world around them and the neural substrates that underlie those summaries.

Read this article in German:
“Interview – Die Bedeutung von Machine Learning für das Data Driven Business“

Data Science Blog: Ms. Albrecht, you are a well-known keynote speaker for data science and artificial intelligence. While data science has arrived business already, deep learning seems to be the new trend. Is artificial intelligence for business already normal business or is it an overrated hype?

I’d say it isn’t either of those two options.  Data science is now widely adopted but companies still struggle to integrate this new discipline into their existing businesses.  As for deep learning, it really depends on the company that’s looking into using this technique.  I wouldn’t say that deep learning is by any means part of business as usual- nor should it be.  It’s a tool like any other and building a capacity for using a tool without clearly defined business needs is a recipe for disaster.

Data Science Blog: Just to make sure what we are talking about: What are the differences and overlaps between data analytics, data science, machine learning, deep learning and artificial intelligence?

Here at Cloudera Fast Forward Labs, we like to think of data analytics as collecting data and counting things (mostly for quick charts and reports).  Data science solves business problems by counting cleverly and predicting things with the data that’s collected.  Machine learning is about solving problems with new kinds of feedback loops that improve with more data.  Deep learning is a particular type of machine learning and is not itself a separate concept or type of tool.  Artificial intelligence taps into something more complicated than what we’re seeing today – it’s much broader than training machines to repetitively do very specialized tasks or solve very narrow problems.

Data Science Blog: And how can we add the context to big data?

From a theoretical perspective, data science has been around for decades. The building blocks for modern day machine learning, deep learning and artificial intelligence are based on mathematical theorems  that go back to the 1940’s and 1950’s. The challenge was that at the time, compute power and data storage capacity were simply too expensive for the approaches to be implemented. Today that’s all changed.. Not only has the cost of data storage dropped considerably, open source technology like Apache Hadoop has made it possible to store any volume of data at costs approaching zero. Compute power, even highly specialised chip architectures, are now also available on demand and only for the time organisations need them through public and private cloud solutions. The decreased cost of both data storage and compute power, together with a growing list of tools and resources readily available via the open source community allows companies of any size to benefit from data (no matter that size of that data).

Data Science Blog: What are the challenges for organizations in getting started with data science?

I see two big challenges when getting started with data science.  One is ensuring that you have organizational alignment around exactly what type of work data scientists will deliver (and timing for those projects).  The second hurdle is around ensuring that you have the right data in place before you start hiring data scientists. This can be tricky if you don’t have in-house expertise in this area, so sometimes it’s better to hire a data engineer or a data strategist (or director of data science) before you ever get started building out a data science team.

Data Science Blog: There are many discussions about how to build a data-driven business. Is it just about using data science to get a better understanding of customer behavior?

No, being data driven doesn’t just mean better understanding your customers (though that is one way that data science can help in an organization).  Aside from building an organization that relies on data and analytics to help them make decisions (about customer behavior or otherwise), being a data-driven business means that data is powering your core products.

Data Science Blog: The number of technologies, tools and frameworks is increasing. For organizations this also means increasing complexity. Do companies need to stay always up-to-date or could it be an advice to wait and imitate pioneers later?

While it’s not critical (or advisable) for organizations to adopt every new advancement that comes along, it is critical for them to stay abreast of emerging frameworks.  If a business waits to see what others are doing, and therefore don’t invest in understanding how new advancements can affect their particular business, they’ve likely already missed the boat.

Data Science Blog: Global players have big budgets just for doing research and setting up data labs. Middle-sized companies need to see the break even point soon. How can we accelerate the value generation of data science?

Having a team that is highly focused on a specific set of projects that are well-scoped and aligned to the business makes all the difference.  Data science and machine learning don’t have to sacrifice doing research and being innovative in order to produce value.  The biggest difference is that smaller teams will have to be more aware of how their choice of project fits into emerging frameworks and their particular acute and near term business needs.

Data Science Blog: How does Cloudera Fast Forward Labs help other organizations to accelerate their start with machine learning?

We advise organizations, based on their particular needs, on what the latest advancements are in machine learning and data science, how to build and structure their data teams to develop the capabilities they need to meet their goals, and how to quickly implement custom forward-looking solutions using their own data and in-house expertise.

Data Science Blog: Finally, a question for our younger readers who are looking for a career as a data expert: What makes a good data scientist? Do you like to work with introverted coding nerds or the data loving business experts?

A good data scientists should be deeply curious and have a love for the ways in which data can lead to new discoveries and power the next generation of products.  We expect the people who thrive in this field to come from a variety of backgrounds and experiences.

Deep Learning and Human Intelligence – Part 1 of 2

Many people are under the impression that the new wave of data science, machine learning and/or digitalization is new, that it did not exist before. But its history is as long as the history of humanity and/or science itself.  The scientific discovery could hardly take place without the necessary data. Even the process of discovering the numbers included elements of machine learning: pattern recognition, comparison between different groups (ranking), clustering, etc. So what differentiates mathematical formulas from machine learning and how does it relate to artificial intelligence?

There is no difference between the two if seen from the perspective of formulas however, such a perspective limits the type of data to which they can be applied. Data stored via tables consist of structured data and are stored in so-called relational databases. The reason for such a data storage is the connection between different fields that assume a well-established structure in advance, such as a company’s sales or balance sheet. However, with the emergence of personal computers, many of the daily activities have been digitalized: music, pictures, movies, and so on. All this information is stored unrelated to other data and therefore called unstructured data.

IEEE International Conference on Computer Vision (ICCV), 2015, DOI: 10.1109/ICCV.2015.428

Copyright: IEEE International Conference on Computer Vision (ICCV), 2015, DOI: 10.1109/ICCV.2015.428

The essence of scientific discoveries was and will be structure. Not surprisingly, the mathematical formulas revolve around relations between variables – information, in general. For example, Galileo derived the law of falling balls from measuring the successive hight of a falling ball. The main difficulty was to obtain measurements at regular time intervals. What about if the data is not structured, which mathematical formula should be applied then? There is a distribution of people’s height, but no distribution for the pictures taken in all holidays for the last year, there is an amplitude for acoustic signals, but no function that detects the similarity between two songs. This is one of the reasons why machine learning focuses heavily on clustering and classification.

Roughly speaking, these simple examples are enough to categorize the difference between scientific discovery and machine learning. Science is about discovering relationships between different variables, Machine Learning tries to automatize processes. Every technical improvement is part of the automation, so why is everything different in this case? Because the current automation deals with human intelligence. The car automates the walking, the kitchen stove the fire, but Machine Learning parts of the human intelligence. There is a difference between the previous automation steps and those of human intelligence. All the previous ones are either outside the human body – such as Fire – or unconsciously executed (once learned) – walking, spinning, etc. The automation induced by Machine Learning affects a part of the human intelligence that we consciously perceive. Of course, today’s machine learning tools are unable to automate all human intelligence, but it is a fascinating step in that direction.

A breakthrough in Machine Learning tasks was achieved in 2012 when the first Deep Learning algorithm for detecting types of images, reached near-human accuracy. It could appreciate the likelihood that the image is a human face, a train, a ball or a fish without having “seen” the picture before. Such an algorithm can be used in various areas:  personally – facial recognition in pictures and/or social media – as tagging of images or videos, medicine – cancer detection, etc. For understanding such cutting-edge issues of classification, one cannot avoid understanding how Deep Learning works. To see the beauty of such algorithms and, at the same time, to be able to comprehend the difficulty of working with them, an example will be the best guide.

The building blocks of Deep Learning are neurons, operational units, which perform mathematical operations or logical operations like AND, OR, etc., and are modelled after the neurons in the brain. Already in the 1950’s two neuroscientist, Hubel and Wiesel, observed that not all neurons in the brain are responding in the same fashion to visual stimuli. Some responded only to horizontal lines, whereas others to vertical lines, with other words, the brain is constructed with specialized neurons. Groups of such neurons are called, in the Machine Learning community, layers. Like in the brain, neurons with different properties are clustered in different layers. This implies that layers have also specific properties and have to be arranged in a specific way, called architecture. It is this architecture which differentiates Deep Learning from Artificial Neuronal Networks (ANN are similar to a layer).

Unfortunately, scientists still haven’t figured out how the brain works, thus to discover how to train Deep Learning from data was not an easy task, and is also the reason why another example is used to explain the training of Deep Learning: the eye. One has always to remember: once it is known how Deep Learning works, it is simple to find example which illustrates the working mechanism.  For such an analogy, it is sufficient for someone without any knowledge about Deep Learning, to keep in mind only the elements that compose such architectures: input data, different layers of neurons, output layers, ReLu’s.

Input data are any type of information, in our example it is light. Of course, that Deep Learning is not limited only to images or videos, but also to sound and/or time series, which would imply that the example would be the ear and sound waves, or the brain and numbers.

Layers can be seen as cells in the eye. It is well known that the eye is formed of different layers connected to each other with each of them having different properties, functionalities. The same is true also for the layers of a Deep Learning architecture: one can see the neurons as cells of the layer as the tissue. While, mathematically, the neurons are nothing more than simple operations, usually linear weight functions, they can be seen as the properties of individual cells. Each layer has one weight matrix, which gives the neuron (and layer) specific properties depending on the data and the task at hand.

It is here that the architecture becomes very important. What Deep Learning offers is a default setting of the layers with unknown weights. One can see this as trying to build an eye knowing that there are different types of cells and different ways how tissues of such cells can be arranged, but not which cell exactly is needed (with what properties) and which arrangement of layers works best. Such an approach has the advantage that one is capable of building any type of organ desired, but the disadvantage is also very obvious: it is time consuming to find the appropriate cell properties and layers arrangements.

Still, the strategy of Deep Learning is a significant departure from the Machine Learning approaches. The performance of Machine Learning methods is as good as the features engineering performed by Data Scientists, and thus depending on the creativity of the Data Scientist. In the case of Deep Learning the engineers of the features is performed automatically as part of the model building. This is a huge improvement, as the only difficult task is to have enough data and computer power to find the right weights matrices. Such an endeavor was performed also by nature for the eye — and is also the reason why one can choose it as an example for Deep Learning — evolution. It is not surprising that Deep Learning is one of the best direction scientists have of Artificial Intelligence today.

The evolution of the eye can be seen, from the perspective of Data Scientists, as the continuous training of a Deep Learning architecture which enables to recognize and track one or more objects. The performance of the evolutional process can be summed up as the fine tuning of the cells which are getting more and more susceptible to light and the adaptation of layers to enable a better vision. Different animals in different environments and different targets — as the hawk and the fly — developed different eyes than humans, but they all work according to the same principle. The tasks that Deep Learning is performing today are similar, for example it can be used to drive cars but there is still a difference:  there is no connection to other organs. Deep Learning is not the approximation of an Artificial Organism, like an android, but a simplified Artificial Organ that can work on its own.

Returning to the working mechanism of the Deep Learning architecture, we can already follow the analogy of what happens if a ray of light is hitting the eye. Once the eye is fully adapted to the task, one can followed how the information enters the Deep Learning architecture (Artificial Eye) by penetrating the input layer. already here arises the question, what kind of eye is the best? One where a small source of light can reach as many neurons as possible, or the one where the light sources reaches only few neurons? In order to take such a decision, a last piece of the puzzle is required: ReLu. One can see them as synapses between neurons (cells) and/or similarly for tissue. By using continuous functions, such as the shape of the latter ‘S’ (called sigmoid), the information from one neuron will be distributed over a large number of other neurons. If one uses the maximum function, then only few neurons are updated with processed information from earlier layers.

Such sparse structures between neurons, was a major improvement in the development of the technique of training Deep Learning architectures. Again, it has a strong evolutionary analogy: energy efficiency. By needing less neurons, the tissues and architecture are both kept to a minimal size which enables flexibility in development and less energy. As the information is process by the different layers, the Artificial Eye is gathering more and more complex (non-linear) structures — the adapted features –, which help to decide, from past experience, what kind of object is detected.

This was part 1 of 2 of the article series. Continue with Part 2.

Machine Learning vs Deep Learning – Wo liegt der Unterschied?

Machine Learning gehört zu den Industrie-Trends dieser Jahre, da besteht kein Zweifel. Oder war es Deep Learning? Oder Artificial Intelligence? Worin liegt da eigentlich der Unterschied? Dies ist Artikel 1 von 6 der Artikelserie –Einstieg in Deep Learning.

Machine Learning

Maschinelles Lernen (ML) ist eine Sammlung von mathematischen Methoden der Mustererkennung. Diese Methoden erkennen Muster beispielsweise durch bestmögliche, auf eine bestmögliche Entropie gerichtete, Zerlegung von Datenbeständen in hierarchische Strukturen (Entscheidungsbäume). Oder über Vektoren werden Ähnlichkeiten zwischen Datensätzen ermittelt und daraus trainiert (z. B. k-nearest-Neighbour, nachfolgend einfach kurz: k-nN) oder untrainiert (z.B. k-Means) Muster erschlossen.

Algorithmen des maschinellen Lernens sind tatsächlich dazu in der Lage, viele alltägliche oder auch sehr spezielle Probleme zu lösen. In der Praxis eines Entwicklers für Machine Learning stellen sich jedoch häufig Probleme, wenn es entweder zu wenige Daten gibt oder wenn es zu viele Dimensionen der Daten gibt. Entropie-getriebene Lern-Algorithmen wie Entscheidungsbäume werden bei vielen Dimensionen zu komplex, und auf Vektorräumen basierende Algorithmen wie der k-nächste-Nachbarn-Algorithmus sind durch den Fluch der Dimensionalität in ihrer Leistung eingeschränkt.


Der Fluch der Dimensionalität

Datenpunkte sind in einem zwei-dimensionalen Raum gut vorstellbar und auch ist es vorstellbar, das wir einen solchen Raum (z. B. ein DIN-A5-Papierblatt) mit vielen Datenpunkten vollschreiben. Belassen wir es bei der Anzahl an Datenpunkten, nehmen jedoch weitere Dimensionen hinzu (zumindest die 3. Dimension können wir uns noch gut vorstellen), werden die Abstände zwischen den Punkten größer. n-dimensionale Räume können gewaltig groß sein, so dass Algorithmen wie der k-nN nicht mehr gut funktionieren (der n-dimensionale Raum ist einfach zu leer).


Auch wenn es einige Konzepte zum besseren Umgang mit vielen Dimensionen gibt (z. B. einige Ideen des Ensemble Learnings)

Feature Engineering

Um die Anzahl an Dimensionen zu reduzieren, bedienen sich Machine Learning Entwickler statistischer Methoden, um viele Dimensionen auf die (wahrscheinlich) nützlichsten zu reduzieren: sogenannte Features. Dieser Auswahlprozess nennt sich Feature Engineering und bedingt den sicheren Umgang mit Statistik sowie idealerweise auch etwas Fachkenntnisse des zu untersuchenden Fachgebiets.
Bei der Entwicklung von Machine Learning für den produktiven Einsatz arbeiten Data Scientists den Großteil ihrer Arbeitszeit nicht an der Feinjustierung ihrer Algorithmen des maschinellen Lernens, sondern mit der Auswahl passender Features.

Deep Learning

Deep Learning (DL) ist eine Disziplin des maschinellen Lernes unter Einsatz von künstlichen neuronalen Netzen. Während die Ideen für Entscheidungsbäume, k-nN oder k-Means aus einer gewissen mathematischen Logik heraus entwickelt wurden, gibt es für künstliche neuronale Netze ein Vorbild aus der Natur: Biologische neuronale Netze.

Prinzip-Darstellung eines künstlichen neuronalen Netzes mit zwei Hidden-Layern zwischen einer Eingabe- und Ausgabe-Schicht.

Wie künstliche neuronale Netze im Detail funktionieren, erläutern wir in den nächsten zwei Artikeln dieser Artikelserie, jedoch vorab schon mal so viel: Ein Eingabe-Vektor (eine Reihe von Dimensionen) stellt eine erste Schicht dar, die über weitere Schichten mit sogenannten Neuronen erweitert oder reduziert und über Gewichtungen abstrahiert wird, bis eine Ausgabeschicht erreicht wird, die einen Ausgabe-Vektor erzeugt (im Grunde ein Ergebnis-Schlüssel, der beispielsweise eine bestimmte Klasse ausweist: z. B. Katze oder Hund). Durch ein Training werden die Gewichte zwischen den Neuronen so angepasst, dass bestimmte Eingabe-Muster (z. B. Fotos von Haustieren) immer zu einem bestimmten Ausgabe-Muster führen (z. B. “Das Foto zeigt eine Katze”).

Der Vorteil von künstlichen neuronalen Netzen ist die sehr tiefgehende Abstraktion von Zusammenhängen zwischen Eingabe-Daten und zwischen den abstrahierten Neuronen-Werten mit den Ausgabe-Daten. Dies geschieht über mehrere Schichten (Layer) der Netze, die sehr spezielle Probleme lösen können. Aus diesen Tatsachen leitet sich der übergeordnete Name ab: Deep Learning

Deep Learning kommt dann zum Einsatz, wenn andere maschinelle Lernverfahren an Grenzen stoßen und auch dann, wenn auf ein separates Feature Engineering verzichtet werden muss, denn neuronale Netze können über mehrere Schichten viele Eingabe-Dimensionen von selbst auf die Features reduzieren, die für die korrekte Bestimmung der Ausgabe notwendig sind.

Convolutional Neuronal Network

Convolutional Neuronal Networks (CNN) sind neuronale Netze, die vor allem für die Klassifikation von Bilddaten verwendet werden. Sie sind im Kern klassische neuronale Netze, die jedoch eine Faltungs- und eine Pooling-Schicht vorgeschaltet haben. Die Faltungsschicht ließt den Daten-Input (z. B. ein Foto) mehrfach hintereinander, doch jeweils immer nur einen Ausschnitt daraus (bei Fotos dann einen Sektor des Fotos), die Pooling-Schicht reduzierte die Ausschnittsdaten (bei Fotos: Pixel) auf reduzierte Informationen. Daraufhin folgt das eigentliche neuronale Netz.

CNNs sind im Grunde eine spezialisierte Form von künstlichen neuronalen Netzen, die das Feature-Engineering noch geschickter handhaben.

Deep Autoencoder

Gegenwärtig sind die meisten künstlichen neuronalen Netze ein Algorithmen-Modell für das überwachte maschinelle Lernen (Klassifikation oder Regression), jedoch kommen sie auch zum unüberwachten Lernen (Clustering oder Dimensionsreduktion) zum Einsatz, die sogenannten Deep Autoencoder.

Deep Autoencoder sind neuronale Netze, die im ersten Schritt eine große Menge an Eingabe-Dimensionen auf vergleichsweise wenige Dimensionen reduzieren. Die Reduktion (Encoder) erfolgt nicht abrupt, sondern schrittweise über mehrere Schichten, die reduzierten Dimensionen werden zum Feature-Vektor. Daraufhin kommt der zweite Teil des neuronalen Netzes zum Einsatz: Die reduzierten Dimensionen werden über weitere Schichten wieder erweitert, die ursprünglichen Dimensionen als abstrakteres Modell wieder rekonstruiert (Decoder). Der Sinn von Deep Autoencodern sind abstrakte Ähnlichkeitsmodelle zu erstellen. Ein häufiges Einsatzgebiet sind beispielsweise das maschinelle Identifizieren von ähnlichen Bildern, Texten oder akkustischen Signalmustern.

Artificial Intelligence

Artificial Intelligence (AI) oder künstliche Intelligenz (KI) ist ein wissenschaftlicher Bereich, der das maschinelle Lernen beinhaltet, jedoch noch weitere Bereiche kennt, die für den Aufbau einer KI von Nöten sind. Eine künstliche Intelligenz muss nicht nur Lernen, sie muss auch Wissen effizient abspeichern, einordnen bzw. sortieren und abrufen können. Sie muss ferner über eine Logik verfügen, wie sie das Wissen und das Gelernte einsetzen muss. Denken wir an biologische Intelligenzen, ist es etwa nicht so, dass jegliche Fähigkeiten erlernt wurden, einige sind mit der Geburt bereits ausgebildet oder liegen als sogenannter Instinkt vor.

Ein einzelner Machine Learning Algorithmus würde wohl kaum einen Turing-Test bestehen oder einen Roboter komplexe Aufgaben bewältigen lassen. Daher muss eine künstliche Intelligenz weit mehr können, als bestimmte Dinge zu erlernen. Zum wissenschaftlichen Gebiet der künstlichen Intelligenz gehören zumindest:

  • Machine Learning (inkl. Deep Learning und Ensemble Learning)
  • Mathematische Logik
    • Aussagenlogik
    • Prädikatenlogik
    • Default-Logik
    • Modal-Logik
  • Wissensbasierte Systeme
    • relationale Algebra
    • Graphentheorie
  • Such- und Optimierungsverfahren:
    • Gradientenverfahren
    • Breitensuche & Tiefensuche

AI(ML(DL))

Buch-Empfehlungen

Grundkurs Künstliche Intelligenz: Eine praxisorientierte Einführung (Computational Intelligence) Praxiseinstieg Deep Learning: Mit Python, Caffe, TensorFlow und Spark eigene Deep-Learning-Anwendungen erstellen

Wieviele Trainungsbeispiele benötigen Lernverfahren? (1/2)

Kurz nach der Jahrtausendwende begann das Zeitalter der digitalen Daten. Seitdem übertrifft die Menge der digitalen Daten die der Analogen [HL11] und dem Maschinellen Lernen stehen enorme Datenmengen zur Verfügung. Unter dem Buzzword „big data“ wird dabei meist nur das reine Volumen gesehen, andere Faktoren, wie die Frequenz mit der die Daten zu verarbeiten sind und die Variabilität der Formate werden oft vernachlässigt, obwohl auch solche Daten unter „big data“ zusammengefasst werden. Betrachtet man das Volumen dann spielen zwei Faktoren eine zentrale Rolle, die das „big“ von „big data“ ausmachen: die Anzahl der Beispieldatensätze und – und dies wird häufig übersehen – die Anzahl der Eigenschaften mit denen die Beispieldaten beschrieben werden.
Wenn von „big data“ gesprochen wird, wird dabei oft angenommen, dass genügend Datensätze vorhanden sind. Für bestimmte Anwendungen jedoch, müssen die Daten in unterschiedliche Gruppen unterschieden werden, um beim Lernen nicht Äpfel und Birnen in einen Topf zu werfen. In solchen Fällen kann es leicht passieren, dass pro Gruppe zu wenig Beispieldaten vorhanden sind und die Frage an Bedeutung gewinnt: „Reichen die Datensätze eigentlich aus, um ein Vorhersagemodel mit einer gewissen Mindestgüte zu lernen?“.
Leider gibt es bisher keine einfache Antwort auf diese Frage, da diese neben der Anzahl der Eigenschaften – der Dimensionalität – der Daten, von der Struktur des Datenraums, der Verteilung der Daten in diesem Raum, dem verwendeten Lernverfahren, der Ausdrucksfähigkeit seiner Hypothesenrepräsentation und seiner endgültigen Parametrisierung abhängt. In der “Computational Learning Theory” wurden jedoch Ansätze zur Abschätzungen von Untergrenzen erarbeitet, die, unter der Annahme idealer Lernverfahren, zu mindestens eine Aussage über die benötigte Mindestmenge an Trainingsdaten gestatten.
Ziel dieses Beitrags ist es auf möglichst anschauliche Art und Weise anhand eines praktischen Beispiels zu zeigen, welchen Einfluss die Dimensionalität der Daten auf die Abschätzung der Anzahl der benötigten Beispiele für das Erlernen von Vorhersagemodellen – genauer einfachen Klassifikationsmodellen[1] – hat und welche Methoden hierfür existieren. In diesem ersten Teil liegt das Hauptaugenmerk auf endlichen Daten- und Hypothesenräumen und wir werden sehen, dass selbst für eine kleine Anzahl von Eigenschaften – sprich Dimensionen – nützliche Aussagen nur für sehr einfache Hypothesenrepräsentationen möglich sind. Im zweiten Teil werden wir einen Abschätzungsansatz betrachten, der die „Unterscheidungsstärke“ unterschiedlicher Lernverfahren berücksichtigt und mit dem auch Abschätzungen für unendliche Daten- und Hypothesenräume möglich werden.

Anwendungsbeispiel

Betrachten wir das Beispiel eines Online-Shops, der Produkte über das Internet verkauft und dessen Produkte klassifiziert werden sollen. Wie die Produkte klassifiziert werden sollen ist für unsere Betrachtungen unerheblich, was wir aber im Kopf haben sollten: der Absatz unterschiedlicher Produkte folgt einer Potenzverteilung. Eine kleine Zahl von Produkten wird sehr häufig verkauft, so dass für sie viele Datensätze existieren (solche Produkte werden gewöhnlicher Weise in konventionellen Geschäften vertrieben, die nur begrenzte Lagerkapazitäten haben). Der Großteil der Produkte wird jedoch eher seltener umgesetzt (auch als „long tail“ bezeichnet), so dass die Anzahl ihrer Datensätze gering ist; u.U. so gering, dass für sie keine verlässlichen Vorhersagemodelle erlernbar sind.

Zur Illustration gehen wir davon aus, dass in dem Online-Shop Produkte von 500 Marken verkauft werden und diese Produkte neben ihrer Marke durch ihre Größe (10 mögliche Werte), ihre Farbe (20 mögliche Werte), die ersten drei Ebenen der Google Produktkategorien (auf der dritten Ebene 500 mögliche Werte) und ihren Preis (im Bereich 0,49 – 100 €) beschrieben werden.

In diesem Kontext besitzt die Antwort auf die Frage: „Wie viele Daten werden überhaupt für ein Lernverfahren benötigt?“ offensichtlich konkreten Nutzen,

  • da wir abschätzen können, ob für ein konkretes Produkt überhaupt ein sinnvolles Vorhersagemodell erlernbar ist,
  • da wir aus der Abschätzung auf die Dauer der Datensammlung schließen können und
  • um ggf. die Daten von selten verkauften Produkten inhaltlich oder zeitlich zu aggregieren.

Was uns vorweg klar sein sollte

Die Daten, die wir zum Erlernen von Vorhersagemodellen verwenden, werden durch Eigenschaften (normalerweise als Feature, in der Statistik auch als Variablen bezeichnet) beschrieben. Die Eigenschaften werden in beobachtete und abhängige Eigenschaften (im Maschinellen Lernen auch als Label bezeichnet) unterschieden. Die Wertebereiche der Eigenschaften können in endliche und unendliche Wertebereich unterschieden werden.

Wir können nicht erwarten, dass ein Lernverfahren ein 100%ig korrektes Modell erlernt. Lernverfahren versuchen durch einen induktiven Schluss aus Daten ein Vorhersagemodell zu ermitteln. Da die zur Verfügung stehende Datenmenge immer begrenzt sein wird und die Daten damit realistischer Weise unvollständig sein werden, Messfehler und Inkonsistenzen enthalten können, kann auch ein erlerntes Modell niemals 100%ig korrekt sein.

Viele unterschiedliche Modelle können konsistent mit den verfügbaren Daten sein. Ziel des Lernverfahrens ist es daher mit den verfügbaren Daten das bestmögliche Vorhersagemodell zu ermitteln.

Wir müssen in Kauf nehmen, dass unbekannte, zukünftige oder ungewöhnliche Daten zu fehlerhaften Vorhersagen führen. Zum Lernzeitpunkt ist nur ein Ausschnitt aller Daten verfügbar. Zukünftig erhobene Daten können Veränderungen unterliegen oder es können bisher noch nicht gesehene Fälle auftreten, auf die das erlernte Modell nicht mehr richtig passt.

Aus diesen Fakten ergibt sich die einzig realistische Annahme: ein gutes Lernverfahren soll mit großer Wahrscheinlichkeit eine gute Näherung des richtigen Vorhersagemodells erlernen.

Anzahl benötigter Trainingsfälle

Zur Abschätzung der Anzahl benötigter Trainingsfälle – als Beispielkomplexität (sample complexity) bezeichnet – wurden in der Computational Learning Theory unterschiedliche Ansätze entwickelt. Diese Ansätze beschreiben für idealisierte Lernverfahren unter welchen Bedingungen probabilistisch, approximativ, korrektes Lernen (PAC learning) effizient möglich ist. Grundlegend für die Einsetzbarkeit dieser Ansätze ist die Unterscheidung, ob das Lernen in einem endlichen oder unendlichen Hypothesenraum erfolgt, und ob das Lernverfahren konsistente Hypothesen oder nur näherungsweise Hypothesen, z.B. beim Vorliegen von Messfehlern, zu den Daten erlernen kann.

Endliche Datenräume

Sofern die Daten nur durch nominelle Eigenschaften mit endlichen Wertebereichen beschrieben werden[2], lässt sich die Größe des Datenraums relativ einfach bestimmen. Die folgende Tabelle beschreibt für die wichtigsten nominellen Eigenschaftstypen Größenfaktoren, die im Folgenden zur vereinheitlichten Darstellung verwendet werden:

Type
t
Fehlende Werte (NA) ? Größe des Wertebereichs
n
Größenfaktor g(t)
Boolean Nein 2 2
Boolean Ja 2 3
Nominal (Menge) Nein n_t n_t
Nominal (Menge) Ja n_t n_t+1

Die Größe eines endlichen d-dimensionalen Datenraums D kann allgemein mit folgender Formel bestimmt werden |D| = \prod_{i=1}^d{g(t_i)}.

Das Lernproblem besteht darin: aus einer Teilmenge von Trainingsbeispielen S  aus dem Datenraum D, i.e. S \subset D, die ein Trainer dem Lernverfahren vorgibt, um Zielkonzept c zu erlernen, eine Hypothese aus dem Hypothesenraum h \in H des Lernverfahrens zu ermitteln, welche (möglichst) alle positiven Beispiel S_p  umfasst und (möglichst) alle negativen Beispiele S_n  ausschließt.

Einfache Hypothesenrepräsentation

Die einfachste Hypothesenrepräsentation, in der Lernen, welches über einfaches Erinnern hinausgeht, sinnvoll ist, sind Disjunktionen von Bool’schen Eigenschaften. Eine Beispielanwendung für die diese Repräsentation Sinn macht, ist das Erkennen von Spam-Emails anhand des Vorliegens unterschiedlicher alternativer Eigenschaften, die Spam-Emails charakterisieren. Der Hypothesenraum dieser Sprache besitzt eine Größe von |H| = 2^d [FoDS18]. Ein Beispiel für ein verbreitetes Lernverfahren, das eine Hypothesenrepräsentation dieses Typs nutzt, ist Naive Bayes.

Beliebige nominelle Eigenschaften können durch One-Hot- oder Dummy-Encoding als Bool’sche Variablen kodiert werden. Damit ergibt sich zum Erlernen von Disjunktionen kodierter, Bool’scher Eigenschaften die Größe des Hypothesenraums als |H| = 2^{\sum_{i=1}^d{g(t_i)}}.

Um unser Produktbeispiel in dieser Sprache zu repräsentieren, müssen die Eigenschaften geeignet kodiert werden, z.B. durch One-Hot- oder Dummy-Encoding, bei dem jeder Wert einer Eigenschaft durch eine neue bool’sche Variable kodiert wird. Hieraus ergeben sich im Fall von One-Hot-Encoding 500+10+20+500+9941=10.971 und im Fall von Dummy-Encoding 499+9+19+499+9940=10.966 neue Bool’sche Eigenschaften.

Eigenschaftsvektoren (Feature-Vektoren, bzw. Konjunktionen von Eigenschaften) stellen die nächstkomplexere Repräsentationssprache dar, die, solange sie nicht um ein Konstrukt zur Verallgemeinerung erweitert wird, sehr unspektakulär ist, da Beispiele mit ihr lediglich erinnert werden. Erst wenn ein „don’t care“-Symbol, wie z.B. „?“, für beliebige Eigenschaftswerte hinzugefügt wird, wird die extremste Form von Generalisierung möglich, die von einzelnen Werten gleich auf alle Werte generalisiert [ML97]. Durch das „don’t care“-Symbol wird der Größenfaktor g um einen weiteren Wert erhöht. Für diese Repräsentation beträgt die Größe des Hypothesenraums  über rein bool‘schen Eigenschaften (inkl. „don’t care“)  |H| = 3^d und für allgemeine endliche Eigenschaften|H| = \prod_{i=1}^d{(g(t_i)+1)}. Diese Repräsentation ist sehr eingeschränkt und erlaubt es nur einzelne und keine kombinierten Konzepte zu erlernen. Sie ist daher eigentlich nur von theoretischem Interesse und wird – soweit bekannt – in keinem praktisch eingesetzten Lernverfahren genutzt.

Interessanter ist eine Verallgemeinerung dieser Repräsentationssprache, die k-CNF (konjunktive Normalform), die aus einer Konjunktion von Disjunktionen der Länge k besteht, die sowohl polynomielle Beispiel- als auch Zeitkomplexität besitzt [ML97] und für die ein effizienter Algorithmus existiert. Diese Repräsentation lässt sich auch auf einen d-dimensionalen Eigenschaftsvektor übertragen, in dem für jede Eigenschaft Generalisierungen über beliebige Teilmengen erlaubt werden. Die Größe des Hypothesenraums dieser Sprache beträgt |H| = \prod_{i=1}^d{2^{g(t_i)}} = 2^{\sum_{i=1}^d{g(t_i)}}. Mit dieser Sprache können alle Eigenschaften zwar separat auf beliebige Teilmengen generalisiert werden, Korrelationen zwischen Eigenschaften werden jedoch nicht berücksichtigt.

Für Repräsentationssprachen, die keinerlei Einschränkungen machen, besitzt der Hypothesenraum für Daten mit d bool‘schen Eigenschaften eine Größe von |H| = 2^{2^d}. Auf beliebige endliche Eigenschaften übertragen, kann diese Aussage zu |H| = 2^{|D|} = 2^{\prod_{i=1}^d{g(t_i)}} verallgemeinert werden.

Wie aus diesen Abschätzungen ersichtlich wird, hat die Dimensionalität d der Daten einen direkten Einfluss auf die Größe des Hypothesenraums und damit auf die Anzahl der von einem Lernverfahren zu berücksichtigenden Konzepte.

Realistische Hypothesenrepräsentation

Bis auf einfache Disjunktionen bool’scher Eigenschaften, sind einfache Hypothesenrepräsentationen entweder zu ausdrucksschwach, so dass nützliche Konzepte kaum ausdrückbar sind, oder zu ausdrucksstark, so dass Lernen in vertretbarer nicht-exponentieller Zeit nicht möglich ist. Die gängigen Lernverfahren, wie k-Nearest Neighbors, Naive Bayes, Decision Trees, Random Forrests, AdaBoost, XGBoost, Logistic Regression, Support Vector Machines und Neuronale Netze, etc. beschränken durch spezifische Annahmen (inductive bias) den Hypothesenraum, um so nützliche Konzepte in vernünftiger Zeit zu erlernen.

Leider lassen sich nur für wenige der real eingesetzten Verfahren Abschätzungen für die Größe des Hypothesenraums finden.

Verfahren |H| Parameter
Boolean-coded Naive Bayes 2^{\sum_{i=1}^d{g(t_i)}}
Boolean-coded Decision Trees[3] 2^{\sum_{i=1}^d{g(t_i)}}
Boolean-coded Decision Trees with limited depth [4] 2(2^k-1)(1+log_2{⁡\sum_{i=1}^d{g(t_i)}} ) +1 k = Tiefenbegrenzung

Lernen eines zu allen Trainingsdaten konsistenten Konzepts (aka Overfitting)

Unter der Annahme eines idealen Lernalgorithmus, kann die Größe des Hypothesenraums dazu verwendet werden die Anzahl der Trainingsdaten m die ein „konsistenter Lernalgorithmus“[5] benötigt, um ein beliebiges Konzept mit einem maximalen Fehler \epsilon und einer Unsicherheit \delta (bzw. einer Wahrscheinlichkeit von 1 - \delta ) zu erlernen, abgeschätzt werden mit[6]

    \[m \geq \frac{1}{\epsilon}(ln{(|H|)} + ln{(\frac{1}{\delta})})\]

Nehmen wir für unser Beispielszenario an Produkt A wird stündlich im Durchschnitt 100 mal verkauft und Produkt B wird jeden Tag im Schnitt nur 10 mal verkauft.  Zur Vereinfachung nehmen wir weiter an, die Produkte werden jeden Tag – egal ob Wochentag oder Wochenende – nur zwischen 6:00 und 20:00 Uhr verkauft. Pro Monat erhalten wir für Produkt A 42.000 Datensätze und für Produkt B 300 Datensätze.

Der Datenraum D hat eine Größe von |D| = 500*10*20*500*9941 \approx 497 Mrd. Punkten. Mit einer einfachen bool’schen Kodierung ergibt sich d = 500+10+20+500+9951 = 10.971 und |H| = 2^{10.961}.

Wollten wir Datensätze dieser Produkte mit einem Fehler \epsilon von maximal 10% und einer maximalen Unsicherheit \delta = 5% – wie auch immer – klassifizieren, so würden wir für den Einsatz von Naive Bayes oder unbegrenzten DecisionTrees mindestens 76.145 Datensätze benötigen. Weder die monatlichen Daten von Produkt A noch Produkt B würden ausreichen.

Mit einem tiefenbeschränkten Entscheidungsbaum-Verfahren mit 5 Stufen, sind, ungeachtet der Qualität des Lernergebnisses, die Daten von Produkt A und B ausreichend, um die Anforderungen an \epsilon und \delta einzuhalten, da nur mindestens 91 Datensätze benötigt werden.

Ein, dieser Abschätzung zugrundeliegender, idealer Lernalgorithmus, ist jedoch für praktische Anwendungen unrealistisch, da er zwar für die Trainingsdaten ein konsistentes Konzept ermitteln würde, welches aber bei unbekannten, neuen Daten versagen kann. Der angenommene Lernalgorithmus unterliegt der „Überanpassung“ (overfitting).

Nichts desto trotz ist diese Abschätzungsformel hilfreich, da sie eine Aussage erlaubt, wie viele Trainingsbeispiele im besten Fall ausreichen, um mit einem idealen Lernverfahren ein Konzept mit einem maximalen Fehler von \epsilon und einer Unsicherheit von höchstens \delta zu erlernen, das in der genutzten Hypothesenrepräsentation ausdrückbar ist.

Agnostisches Lernen eines Konzeptes, das möglichst gut zu den Trainingsdaten passt

Überanpassung wollen wir in der Regel vermeiden, damit die erlernten Vorhersagemodelle auch auf unbekannte, fehlerbehaftete oder teilweise inkonsistente Daten anwendbar sind. Anders ausgedrückt: das zu erlernende Konzept c kann etwas außerhalb des Hypothesenraums liegen, der durch das eingesetzte Lernverfahren erfasst wird. Dies bedeutet, dass wir im Hypothesenraum des Lernverfahrens nur eine Näherung c' erlernen können, die möglichst gut sein sollte. Solch ein – als agnostisch bezeichnetes – Lernverfahren muss daher bestrebt sein den Fehler zwischen den Trainingsdaten und dem Fehler der sich durch das Erlernen der Näherung c' ergibt möglichst klein zu halten.

Auch hierfür kann, unter der Annahme eines idealen Lernalgorithmus, die Größe des Hypothesenraums dazu verwendet werden die Anzahl der Trainingsdaten m die ein „agnostisches Lernverfahren“ benötigt, um eine gute Näherung an das zu erlernende Konzept in einem endlichen Hypothesenraum mit einem maximalen Fehler \epsilon und einer Unsicherheit \delta (bzw. einer Wahrscheinlichkeit von 1 - \delta) zu erlernen, abgeschätzt werden mit[6]

    \[m \geq \frac{1}{2\epsilon^2}(ln{(|H|)} + ln{(\frac{2}{\delta})})\]

Auf das Beispiel angewendet müsste sich – unter der Annahme gleicher Rahmenbedingungen – die Mindestzahl von Trainingsbeispielen auf m = 490 belaufen. D.h. die Daten von Produkt A könnten zum Lernen der Klassifikation verwendet werden, die Datenmenge für Produkt B wäre jedoch nicht ausreichend.

Folgerung

Mit diesem ersten Beitrag haben wir anhand eines kleinen realen Beispiels gezeigt, wie sich für einen idealen Lernalgorithmus über die Betrachtung der Größe endlicher Hypothesenräume, die Mindestanzahl der benötigten Trainingsbeispiel abschätzen lässt.

Auch wenn es sich hierbei um eine idealisierte Betrachtung handelt, erlauben solche Abschätzungen Aussagen darüber, wann Lernverfahren nur mit einem größeren Fehler behaftet einsetzbar sind.

Diese Betrachtung erstreckte sich bisher nur über endliche Eigenschaften und berücksichtigt die Komplexität der Hypothesenrepräsentation – eine der wesentlichen Eigenschaften eines Lernverfahrens – noch nicht. Dies wird Thema des zweiten Teils sein, in dem wir sehen werden, wie sich Abschätzung auf der Basis der – sogenannten – Vapnik-Chervonenkis-Dimension (VC-Dimension) für viele gängige Klassen von Lernverfahren einsetzen lassen.

Fußnoten

[1] Wir betrachten hierbei nur rein binäre, binomiale resp. Bool’sche Klassifikationsprobleme, deren Aussagen sich jedoch auch auf multinomiale Klassifikation und reell-wertige Vorhersagemodelle übertragen lassen (siehe [ESL09], Seite 238).

[2] Unendlich, überabzählbare Eigenschaften lassen sich in Abhängigkeit vom Anwendungsproblem und der erforderlichen Genauigkeit oft diskretisieren und als ordinale Daten oder Intervalle ganzer Zahlen repräsentieren, wie z.B. Alter, Körpergröße, Längen, Temperatur, und Zeitintervalle usw., wenn es ausreichend ist diese mit einer Genauigkeit von Jahren, cm, mm, Zehntelgrad oder Sekunden zu erfassen.

[3] Vollausgebaute Decision Trees unterliegen der Gefahr der „Überanpassung“ (overfitting) und werden in der Regel gestutzt, um dies zu vermeiden. Die Abschätzung stellt daher die Obergrenze dar.

[4] http://www.cs.cmu.edu/~guestrin/Class/10701/slides/learningtheory-bigpicture.pdf  und https://www.autonlab.org/_media/tutorials/pac05.pdf (Letzter Zugriff: 10.3.2018)

[5] Ein „konsistenter Lernalgorithmus“ erlernt Hypothesen, die – wann immer möglich – perfekt zu den Trainingsdaten passen [ML97].

[6] Details zur Ableitung der beschriebenen Untergrenzen finden sich u.a. in [ML97], [FoML12] oder [FoDS18].

Referenzen

[HL11] „The World’s Technological Capacity to Store, Communicate, and Compute Information“, M. Hilbert, P. López, Science 332, 60, 2011, http://www.uvm.edu/pdodds/files/papers/others/2011/hilbert2011a.pdf (letzter Zugriff: 14. März 2018)

[ESL09] “The Elements of Statistical Learning”, T. Hastie, R. Tibshirani, J. Friedman, 2nd Edition, Springer, 2009.

[ML97] „Machine Learning“, T. Mitchell, McGraw-Hill, 1997.

[FoML12] „Foundations of Machine Learning“, M. Mohri, A. Rostamizadeh, A. Talwalkar, The MIT Press, 2012.

[FoDS18] „Foundations of Data Science“, A. Blum, J. Hopcroft, R. Kannan, Cornell University, https://www.cs.cornell.edu/jeh/book.pdf, Jan. 4th, 2018 (letzter Zugriff: 14. März 2018)

Machine Learning: Online vs Offline

Das ist Artikel 4 von 4 aus der Artikelserie – Was ist eigentlich Machine Learning?

Die Begriffe online und offline sind mit vielen Bedeutungen versehen und so ist – wie bei vielen Unterscheidungsmöglichkeiten des maschinellen Lernens – die Verwirrung vorprogrammiert. Diese Unterscheidung betrifft die Trainingsphasen der parametrischen Verfahren des maschinellen Lernens.

Offline Learning

Mit Offline Learning ist nicht gemeint, dass der Algorithmus nicht ans Internet angebunden ist, sondern dass es sich bei der Trainingsprozedure um eine Stapelverarbeitung handelt. Daher wird manchmal auch vom Batch Learning gesprochen. Beim Batch Learning werden die Parameter bzw. das Modell erst angepasst, nachdem der gesamte Batch (Stapel an Datensätzen) das Training durchlaufen hat. Die gewöhnliche Gradientenmethode als ein Optimierungsverfahren ist das Gradientenabstiegsverfahren als Stapelverarbeitung. Dabei wird der Gradient, der die Richtung für die Anpassung der Gewichtungen der Funktionsparameter vorgibt, anhand der gesamten Trainingsdatenmenge berechnet.

Der Vorteil dieser Vorgehensweise ist, dass das Training als Prozess sehr schnell läuft und die Funktionsparameter direkt aus dem gesamten Datenbestand heraus bestimmt werden.

Demgegenüber steht der Nachteil, dass der ganze Stapel in den Arbeitsspeicher geladen werden muss, was eine entsprechend leistungsfähige Hardware voraussetzt. Soll das Lern-System für das Training live an einer Datenquelle (z. B. ein Data Stream aus dem Social Media) angebunden werden, müssen die Daten erstmal gespeichert werden (Bildung des Stapels), bevor sie verarbeitet und dann verworfen werden können, was den dafür nötigen Speicherplatz bedingt.

Online Learning

Beim Online-Learning wird nicht über einen Stapel (Batch) trainiert, sondern jeder einzelne Datensatz (aus einer großen Menge an Datensätzen oder live hinzugefügte Datensätze) wird dem Training einzeln hinzugefügt, trainiert und umgehend in eine Parameteranpassung (Modellanpassung) umgesetzt. Dies lässt sich beispielsweise mit der stochastischen Gradientenmethode realsieren, die iterativ arbeiten und den Gradienten zur Gewichtungsanpassung für jeden einzelnen Datensatz bestimmt, statt einen ganzen Batch zu verarbeiten und daraus einen Fehler zu berechnen. Online-Learning ist ein inkrementell arbeitendes Lernen, welches das Modell kontinuierlich – nämlich nach jedem Datensatz (Sample) – anpasst.

Die Optimierung läuft somit – wenn auf eine große Datenmenge angewendet wird – natürlich langsamer und ist eher nicht geeignet, wenn ein Training schnell verlaufen muss oder eine große Datenmenge die Hardware sowieso schon auslastet. Dafür wird das Modell beim Online-Learning in Echtzeit trainiert, wenn neue Daten zur Verfügung stehen. Neu hinzugefügte Daten fließen sofort ins Modell ein, so kann ein Lern-System als ein Live-System gleich auf Änderungen reagieren und die Trainingsdaten wieder verworfen werden (da sie bereits ins Training eingeflossen sind).

Mini-Batch-Verfahren

Während beim Online Learning alle Datensätze einzeln durchgegangen werden (dauert lange) und beim Offline Learning der gesamte Stapel an Datensätzen durchgearbeitet wird (viel Speicherplatzbedarf), ist der sogenannte Mini-Batch der Mittelweg. Wie der Name bereits andeutet, wird ein kleinerer Stapel (z. B. 50 Datensätze) gesammelt und verarbeitet.

Einstieg in Deep Learning – Artikelserie

Deep Learning gilt als ein Teilgebiet des maschinellen Lernens (Machine Learning), welches wiederum ein Teilgebiet der künstlichen Intelligenz (Artificial Intelligence) ist. Machine Learning umfasst alle (teilweise äußerst unterschiedliche) Methoden der Klassifikation oder Regression, die die Maschine über ein vom Menschen begleitetes Training selbst erlernt. Darüber hinaus umfasst Machine Learning auch unüberwachte Methoden zum Data Mining in besonders großen und vielfältigen Datenmengen.

Deep Learning ist eine Unterform des maschinellen Lernens und macht im Grunde nichts anderes: Es geht um antrainierte Klassifikation oder Regression. Seltener werden Deep Learning Algorithmen auch als unüberwachter Lernenmechanismus verwendet, zum Lernen von Rauschen zur Erkennung von Mustern (Data Mining). Deep Learning bezeichnet den Einsatz von künstlichen neuronalen Netzen, die gegenüber anderen Verfahren des maschinellen Lernens häufig überlegen sind und diesen gegenüber auch andere Vor- und Nachteile besitzen.

Im Rahmen dieser Artikelserie erscheinen im Laufe der kommenden Monate folgende Artikel:

  1. Machine Learning vs Deep Learning – Wo liegt der Unterschied?
  2. Funktionsweise künstlicher neuronaler Netze
  3. Training eines Neurons mit dem Gradientenverfahren
  4. Fehler-Rückführung mit der Backpropagation
  5. Künstliches neuronales Netz in Python (erscheint demnächst)
  6. Künstliches neuronales Netz mit dem TensorFlow-Framework (erscheint demnächst)

Buchempfehlungen

Seit 2016 arbeite ich mich in Deep Learning ein und biete auch Seminare und Workshops zu Machine Learning und Deep Learning an, dafür habe ich eine ausführliche Einarbeitung und ein immer wieder neu auflebendes Literaturstudium hinter mir. Unter Anderen habe ich folgende Bücher für mein Selbststudium verwendet und nutze ich auch Auszugsweise für meine Lehre:


Praxiseinstieg Machine Learning mit Scikit-Learn und TensorFlow: Konzepte, Tools und Techniken für intelligente Systeme (Animals)

Neuronale Netze selbst programmieren: Ein verständlicher Einstieg mit Python

Praxiseinstieg Deep Learning: Mit Python, Caffe, TensorFlow und Spark eigene Deep-Learning-Anwendungen erstellen

Machine Learning mit Python und Scikit-Learn und TensorFlow: Das umfassende Praxis-Handbuch für Data Science, Predictive Analytics und Deep Learning (mitp Professional)

 

Maschinelles Lernen: Parametrisierte und nicht-parametrisierte Verfahren

Das ist Artikel 3 von 4 aus der Artikelserie – Was ist eigentlich Machine Learning?

Maschinelle Lernverfahren können voneinander unterschiedlich abgegrenzt werden, die den meisten Einsteigern bekannte Abgrenzung ist die zwischen überwachten und unüberwachten Verfahren. Eine weitere Abgrenzung zwischen den Lernverfahren, die weit weniger bekannt und verständlich ist, und um die es in diesem Artikel der Reihe gehen soll, ist die Unterscheidung in parametrisierte und nicht parametrisierte Lernverfahren. Gleich vorweg: Parametrisiert und nicht-parametrisierte bezieht sich auf das Modell (Trainingsergebnis), nicht auf die Algorithmen selbst (also nicht Parameter wie k-Werte, Iterations-, Gewichtungs- oder Regularisierungs-Parameter).

Parametrisierte Lernverfahren (parametric learning)

Parametrisierte Lernverfahren sind solche, die über ein Training mit sogenannten Trainingsdaten eine Funktion mit festen Parametern entwickeln, beispielsweise y = f(x) = x³ * a + x² * b + x *c + d. Diese Funktion hat dank einer festgesetzten Anzahl an Parametern eine feste Struktur, und genau dieser Fakt der Parameter-Struktur-Bestimmung a-priori macht das Lernverfahren zu einem parametrischen Lernverfahren. Nach dem Training stehen die Sturkur und die Parameter-Werte fest, beispielsweise y = x³ * 32 + x² * -4 + x * 2 + 102. Diese Funktion beschreibt den Zusammenhang zwischen dem Input x und dem Output y. Am einfachsten kann man sich das Prinzip des parametrischen Lernens demnach mit der Regression vorstellen: Eine Gerade oder eine Kurve wird über ein Trainingslauf durch eine Punktwolke gezogen und daraus die Funktion abgeleitet. Bei der Prädiktion wird diese Funktion dann dazu verwendet, mit den neuen Input-Werten den Output zu berechnen.

Mit dem Festsetzen der Struktur der Funktion bereits vor dem Training sind einige Vor- und Nachteile verbunden:

Parametrische Lernverfahren sind manchmal etwas einfacher zu verstehen, da sich das Modell durchweg als “feste” Formel betrachten lässt. Dieser Vorteil ist jedoch gleichermaßen eine Einschränkung, denn parametrische Verfahren sind eher dazu geeignet, einfachere Zusammenhänge (mit nicht all zu vielen Dimensionen) zu berechnen. Dafür läuft das Training und vor allem die Prädiktion bei parametrischen Verfahren sehr viel schneller ab, als es bei nicht-parametrischen Verfahren der Fall ist, immerhin müssen die Eingabewerte bei der Prädiktion nur in die Funktion mit bekannter Struktur eingefügt und ausgerechnet werden. Man kann sich also merken: Beim parametrischen Lernen stehen die Parameter vorher fest, beim Training werden nur die “richtigen” Werte für die Parameter gefunden.

Schlussendlich kann generell gesagt werden, dass parametrische Funktionen weniger Datenpunkte als nicht-parametrische Lernverfahren benötigen und bei weniger Daten bessere Ergebnisse liefern. Bei sehr großen Datenmengen werden parametrische Funktionen eher schlechter gegenüber nicht-parametrischen Verfahren und neigen etwas zur Unteranpassung.

Zu den parametrischen Lernverfahren gehören:

  • Lineare und nicht-lineare Regression
  • Lineare Diskriminazanalyse
  • Logistische Regression
  • Naive Bayes Klassifikation
  • einfache künstliche neuronale Netze (z. B. MLP)
  • lineare Support Vector Machines (SVM)

Nicht-parametrisierte Lernverfahren (nonparametric learning)

Spricht man vom nicht-parametrisierten Lernen, ist die Verwirrung eigentlich vorprogrammiert, denn es bedeutet keinesfalls, dass es keine Parameter gibt, ganz im Gegenteil! Nicht-parametrische Verfahren arbeiten in aller Regel mit sehr viel mehr Parametern als die parametrischen Verfahren. Und nicht-parametrische Verfahren sind häufig dann im Einsatz, wenn die Anzahl an Daten und Dimensionen sehr groß ist und wenn nicht klar ist, welche Dimensionen voneinander unabhängig sind, aber in Abhängigkeit mit dem Klassifikations-/Regressionsergebnis stehen.

Auch nicht-parametrische Lernverfahren entwickeln eine Funktion, die den Zusammenhang zwischen dem Input und dem Output beschreibt. Jedoch wird die Struktur der Funktion vor dem Training nicht konkret über eine bestimmte Anzahl an Parametern festgelegt. Die Anzahl an Parametern wird erst zur Laufzeit des Trainings bestimmt und hier könnte jede neue Zeile in der Tabelle der Trainingsdaten einen neuen Parameter bedeuten (also beispielsweise dazu führen, dass ein neuer Ast eines Entscheidungsbaumes entsteht – oder auch nicht!).

Die Modellstruktur wird nicht über eine Funktion mit festen Parametern festgelegt, sondern bei jeder Prädiktion aus den Daten ermittelt. Tendenziell neigen nicht-parametrisierte Verfahren etwas mehr zur Überanpassung als parametrisierte Verfahren.

Zu den nicht-parametrisierten Lernverfahren gehören:

  • k-nächste Nachbarn Klassifikation/Regression
  • Entscheidungsbaum Klassifikation/Regression
  • Nicht-lineare Support Vector Machines (RBF Kernel SVM)

Kleiner Abgleich des Verständnisses

Der Unterschied zwischen parametrisierten und nicht-parametrisierten Verfahren wird so häufig falsch verstanden, dass es sich lohnt, etwas Zeit in eine kleine Wiederholung zu investieren, jedoch aus der FAQ-Perspektive:

Warum ist die Regressionsanalyse ein parametrisiertes Lernverfahren?

Bei der klassischen Regressionsrechnung müssen wir noch vor dem Training festlegen, über welche Funktion wir trainieren wollen. Eine lineare Funktion wie y = x * a + b? Oder doch lieber eine nicht-lineare Funktion wie y = x² * a + x * b + c? Die Struktur der Funktion, mit der wir die Punktwolke beschreiben möchten und mit der wir dann im Nachgang Prädiktionen auf Basis von neuer x-Werte berechnen möchten, muss vor dem Training bestimmt werden.

Warum ist die k-nächste-Nachbarn-Bestimmung ein nicht-parametrisiertes Lernverfahren?

Hierbei handelt es sich um ein Lernen durch Ähnlichkeitsanalyse. Es werden gelabelte Datenpunkte gesammelt und erst bei der Prädiktion wird die multidimensionale Ähnlichkeit des neuen Datenpunktes mit den bekannten Datenpunkten bestimmt (Matrizen-Bildung über Distanzen zwischen den Datenpunkten im multidimensionalen Vektorraum). Das Modell lässt sich vorher nicht mal adäquat bestimmen.

Das Modell liegt sozusagen in den Daten. Der k-nächste-Nachbarn-Algorithmus (k-nN) zählt deshalb übrigens nicht nur zum nicht-parametrisierten Lernen, sondern ist darüber hinaus auch noch ein instanzbasiertes Lernen (Lazy Learning).

Warum sind Entscheidungsbäume nicht-parametrisierte Lernverfahren?

Entscheidungsbäume entwerfen Funktionen, die eine auf das Ergebnis bezogene Datenverteilung beschreiben. Jedoch wird vor der Entstehung dieses Modells (also vor dem Training) nicht die Anzahl der Parameter vorgegeben. Zwar ist es üblich, eine maximale Tiefe des Baumes vorzugeben (auch um Überanpassung zu vermeiden),  das Modell (die Struktur des Baumes) hängt jedoch von den Daten ab.

Warum ist Naive Bayes Klassifikation ein parametrisiertes Lernverfahren?

Naive Bayes Klassifikation gilt grundsätzlich als ein parametrisches Lernverfahren. Der Klassifikator errechnet eine Wahrscheinlichkeit, einer bestimmten Klasse zugehörig zu sein, über ein Produkt aus Wahrscheinlichkeiten des Auftretens voneinander (naive) unabhängiger Eingaben (x1, x2,… xn), in der Regel als multinominales Vokabular. Jede Eingabe (eindeutiges Element aus dem Vokabular) ist im Grunde eine Dimension und stellt einen Parameter dar, der im Vorfeld bekannt sein muss.

Es gibt allerdings auch Abwandlungen des Naive Bayes Klassifikators, bei denen mit Dichteschätzungen (1D Kernel Dichteschätzung) gerechnet wird, dann haben wir es wiederum mit Parametern zutun, die erst während der Trainingsphase entstehen.

Warum können Support Vector Machines sowohl parametrisierte als auch nicht-parametrisierte Lernverfahren darstellen?

Bei der linearen SVM werden die Werte der Parameter einer linearen Funktion (= feste Anzahl an Parametern) berechnet, die zwei Klassen linear trennt. Bei der nicht-linearen Klassentrennung funktioniert das leider nicht so einfach und es müssen kompliziertere Verfahren verwendet werden. Die bekannteste ist die Radial Basis Function Kernel-basierte SVM. Bei dieser RBF Kernel SVM wird eine Matrix über berechnete Distanzen zwischen den Datenpunkten erstellt und als Parameter verwendet. Da diese Parameter-Anzahl von den Daten abhängt, haben wir es mit einer nicht-parametrisierten Methode zutun (ähnlich wie beim k-nN).

Data Science Modeling and Featurization

Overview

Data modeling is an essential part of the data science pipeline. This, combined with the fact that it is a very rewarding process, makes it the one that often receives the most attention among data science learners. However, things are not as simple as they may seem, since there is much more to it than applying a function from a particular class of a package and applying it on the data available.

A big part of data science modeling involves evaluating a model, for example, making sure that it is robust and therefore reliable. Also, data science modeling is closely linked to creating an information rich feature set. Moreover, it entails a variety of other processes that ensure that the data at hand is harnessed as much as possible.

What Is a Robust Data Model?

When it comes to robust models, worthy of making it to production, these need to tick several boxes. First of all, they need to have a good performance, based on various metrics. Oftentimes a single metric can be misleading, as how well a model performs has many aspects, especially for classification problems.

In addition, a robust model has good generalization. This means that the model performs well for various datasets, not just the one it has been trained on.

Sensitivity analysis is another aspect of a data science modeling, something essential for thoroughly testing a model to ensure it is robust enough. Sensitivity is a condition whereby a model’s output is bound to change significantly if the inputs change even slightly. This is quite undesirable and needs to be checked since a robust model ought to be stable.

Finally, interpretability is an important aspect too, though it’s not always possible. This has to do with how easy it is to interpret a model’s results. Many modern models, however, are more like black boxes, making it particularly difficult to interpret them. Nevertheless, it is often preferable to opt for an interpretable model, especially if we need to defend its outputs to others.

How Is Featurization Accomplished?

In order for a model to maximize its potential, it needs an information rich set of features. The latter can be created in various ways. Whatever the case, cleaning up the data is a prerequisite. This involves removing or correcting problematic data points, filling in missing values wherever possible, and in some cases removing noisy variables.

Before you can use variables in a model, you need to perform normalization on them. This is usually accomplished through a linear transformation ensuring that the variable’s values are around a certain range. Oftentimes, normalization is sufficient for turning your variables into features, once they are cleaned.

Binning is another process that can aid in featurization. This entails creating nominal (discreet) variables, which can in turn be broken down into binary features, to be used in a data model.

Finally, some dimensionality reduction method (e.g. PCA) can be instrumental in shaping up your feature-set. This has to do with creating linear combinations of features, aka meta-features, which express the same information in fewer dimensions.

Some Useful Considerations

Beyond these basic attributes of data science modeling there several more that every data scientist has in mind in order to create something of value from the available data. Things like in-depth testing using sensitivity analysis, specialized sampling, and various aspects of model performance (as well as tweaking the model to optimize for a particular performance metric) are parts of data science modeling that require meticulous study and ample practice. After all, even though this part of data science is fairly easy to pick up, it takes a while to master, while performing well in it is something that every organization can benefit from.

Resources

To delve more into all this, there are various relevant resources you can leverage, helping you in not just the methodologies involved but also in the mindset behind them. Here are two of the most useful ones.

  1. Data Science Modeling Tutorial on the Safari platform
  2. Data Science Mindset, Methodologies and Misconceptions book (Technics Publications)