Boost Your Model: Wie funktioniert Data-Science im Maschinenraum?
Shownotes
Summary: In this conversation, Aleksander Fegel and Dr. David Geisel discuss the critical aspects of feature selection and engineering in data science. They explore the importance of understanding features, the role of data quality, and the necessity of engaging with domain experts. The discussion covers various methods of feature selection, including filter methods, wrapper methods, and embedded methods, emphasizing the need for simplicity and clarity in model building. The conversation concludes with insights on how to effectively interpret model predictions and the significance of collaboration in data science projects.
Takeaways: -Feature selection is essential for successful data modeling. -Data quality significantly impacts model performance. -Engaging with domain experts enhances feature selection. -Simplicity in models often leads to better results. -Feature importance helps in understanding model predictions. -Different methods exist for feature selection, each with pros and cons. -Collaboration between data scientists and domain experts is crucial. -Feature engineering is a continuous process in data science. -Understanding the context of data is vital for effective modeling. -Iterative testing and validation are key to successful feature selection. titles
Transkript anzeigen
00:00:00: Hallo David!
00:00:02: Hey Alex!
00:00:04: Irgendwie fehlt hier heute einer in der Runde, der Janis.
00:00:08: Wir machen heute mal ein bisschen was Neues.
00:00:10: Ja, Janis hat sich gedrückt.
00:00:12: Ich glaube der muss die ganze Zeit Schachwärmen gucken.
00:00:14: Ja, ja, ja, er versucht immer noch dich irgendwann besiegen zu können.
00:00:18: Und vielleicht lernt er ja was von den großen, der weiß.
00:00:21: Also wenn er auf das Level kommt, wird es dunkel für mich.
00:00:24: Wenn er diese Podcasts voll gehört, wird er sich auf jeden Fall schon mal ärgern.
00:00:29: Aber so soll es ja auch sein.
00:00:32: Aber davon abgesehen, worum geht es heute überhaupt?
00:00:35: Wir haben ja eben mit ChatGBT schon einen Versuch, den Titel für die Podcastfolge zu finden,
00:00:39: weil wir da super in kreativ sind.
00:00:41: Dann sind irgendwo bei Boost Your Model rausgekommen.
00:00:44: Wie kann ich Modelle besser machen?
00:00:46: Wie kann ich Modelle überhaupt erfolgreich machen mit Daten?
00:00:49: Und das ist ja irgendwo unser Kerngeschäft, oder?
00:00:52: Genau, eine Sache, die immer wieder,
00:00:55: eine Herausforderung, vor der wir immer wieder stehen.
00:00:58: Und eher ein Beispiel, was wir im Kopf hatten,
00:01:03: worüber wir heute sprechen wollen, ist ja der Fall,
00:01:06: dass ich zum Beispiel irgendwo in der Produktion, in einer Fabrik Maschinen stehen habe.
00:01:13: Die haben Tausende von Sensoren, die schicken mir ganz viele Daten.
00:01:16: Und wie schaffe ich jetzt diese Daten so, dem Modell zur Verfügung zu stellen,
00:01:22: dass das sinnvolle Vorhersagen damit machen kann?
00:01:24: Und der technische Überbegriff für die ganze Sache ist Feature Selection.
00:01:28: Genau, und ich bin im Prinzip dafür da, um zu verhindern,
00:01:32: dass es zu technisch wird und sichert zu stellen,
00:01:34: dass auch Dummies wie ich noch was verstehen.
00:01:36: Meine Freundin hört ja auch den Podcast.
00:01:38: Meine Freundin sagt immer, wenn der David dabei ist,
00:01:41: dann ist das immer manchmal ein bisschen viel für sie.
00:01:44: Von daher bin ich heute da, um dich ein bisschen ins Saum zu halten.
00:01:50: Das kannst du versuchen, aber es hat noch niemand geschafft.
00:01:55: Ja, der Janis hat es nicht geschafft.
00:01:59: Es hat ja noch kein anderer versucht, aber wir gucken es mal.
00:02:01: Das wird schon.
00:02:03: Von daher, du hast ja schon den Begriff Feature Selection gerade gedroppt.
00:02:07: Und darum geht es ja heute im Großen und Ganzen.
00:02:12: Fangen wir vielleicht mal ein bisschen früher an für die Leute,
00:02:14: die sich wirklich mit Data Science gar nicht auskennen.
00:02:16: Was ist denn ein Feature überhaupt, wenn ich Feature höre,
00:02:18: denke ich erstmal an eine Software, die ohne Fähigkeit hat,
00:02:22: die man kann in Word die Schriftik machen.
00:02:24: Das ist ein Feature für mich erstmal.
00:02:26: Aber im Data Science Bereich ist das ganz klar definiert, oder?
00:02:30: Genau, also im Machine Learning ist ein Feature,
00:02:34: im Prinzip ein Teil der Infodaten, die du da im Modell gibst,
00:02:39: basierend auf denen es dann eine Vorhersage machen soll.
00:02:43: Und wenn wir eben bei dem Beispiel bleiben,
00:02:46: ich habe irgendwelche Sensordaten, dann ist es ja so,
00:02:49: so ein Temperatursensor, der schickt dir alle paar Sekunden,
00:02:53: alle paar Minuten eine Temperaturwert, da hast du jetzt ganz, ganz viele Werte.
00:02:57: Du willst irgendwas vorhersagen in deiner Maschine, geht die kaputt oder nicht,
00:03:01: wird der Test funktionieren oder nicht.
00:03:03: Und die Frage ist, was gebe ich meinem Modell mit?
00:03:06: Also welche Zahl gebe ich dem mit?
00:03:08: Gebe ich dem immer wirklich die Temperatur jetzt gerade
00:03:11: oder mache ich damit noch irgendwas?
00:03:14: Ich nenn das dann Feature Engineering, ich kann irgendwie den Mittelwert
00:03:17: über Temperatur nehmen oder den Minimalwert, irgendwie sowas.
00:03:20: Und das, wie ich diese Rohdaten in eine konsistente Form bringe,
00:03:24: das nenne ich dann Feature.
00:03:26: Das gebe ich dem Modell mit.
00:03:28: Du definierst quasi, wie diese Rohdaten am nützlichsten sind,
00:03:32: um dem Modell Informationen zu geben, damit es da auch schlauer wird
00:03:35: und trainieren kann.
00:03:37: Du bereitest quasi die Informationen vor,
00:03:39: so wie der Professor an der Uni jetzt nicht einfach das ganze Buch,
00:03:42: den Studenten hinschmeiß, sondern sich einfach mal rausguckt,
00:03:45: okay, was kann ich daraus am besten nutzen,
00:03:48: was ist wichtig für die und wie bringe ich den das an der Tafel beididaktisch.
00:03:52: Das machst du quasi fürs Modell an der Stelle als Data Scientist.
00:03:55: Genau, können wir so stehen lassen.
00:03:57: Super.
00:03:59: Und das ist ja eigentlich so eine Grundfähigkeit von einem Data Scientist.
00:04:03: Ich glaube, wenn du was studierst in die Richtung,
00:04:05: wenn du anfängst dich mit Data Science zu beschäftigen,
00:04:08: ist Feature Engineering Feature Selection wahrscheinlich eines der ersten Themen,
00:04:11: mit denen du irgendwie zu tun hast, oder?
00:04:13: Genau, und es ist abgehoben, was man dann irgendwann als Senior-Sinior
00:04:17: nach zehn Jahren sich mal anschaut.
00:04:19: Ne, du musst das eigentlich immer machen.
00:04:21: Also du kannst ja de facto kein Modell ohne ein Feature trainieren.
00:04:26: Aber es wird auch nie auf.
00:04:30: Also wir sind da immer noch dabei in unseren Projekten,
00:04:33: den immer wieder den besten Ansatz für das jeweilige Projekt zu finden,
00:04:38: das beste Featureset.
00:04:40: Und das ist dann so gesehen wie deine Wissenschaft für sich.
00:04:44: Ja, auf jeden Fall.
00:04:46: Ich würde sogar sagen, von dem was ich in unserem Projekt mitbekomme,
00:04:50: ist das das absolute A und O, ob ein Projekt erfolgreich ist oder nicht.
00:04:53: Am Ende scheitert es oft zum Teil vielleicht an der Datenqualität.
00:05:00: Aber wenn man halt eine gute Featureslection macht
00:05:03: und ein gutes Feature Engineering,
00:05:05: dann muss man die Datenqualität noch viel rausholen, oder?
00:05:08: Wäre ich jetzt vorsichtig, aber ich würde sagen,
00:05:14: es sind beides Sollen, auf die man nicht verzichten kann.
00:05:17: Also bleiben wir wieder bei den Sensordaten.
00:05:20: Erstmal müssen die Rohdaten stimmen.
00:05:22: Es muss vernünftig, also die Messungen müssen stimmen,
00:05:25: sagen wir, der Temperatursensor, wenn die Temperaturen falsch sind,
00:05:28: die der liefert, dann werde ich wahrscheinlich auch keinen Feature Engineering mehr hinbekommen,
00:05:33: wenn der Messer falsch wird und dann so schlechte Datenqualität,
00:05:37: die kann ich hinten raus nicht mehr retten.
00:05:39: Aber das muss ich haben.
00:05:41: Wenn ich nur das habe und ich habe ganz tolle Rohdaten,
00:05:44: und ich weiß aber nicht, wie ich die aufbreiten
00:05:46: und meinem Modell, die zur Verfügung stellen kann,
00:05:48: dann kann mein Modell trotzdem große Probleme haben,
00:05:51: überhaupt etwas draus zu lernen.
00:05:53: Der Jusges, da nehme ich uns ja -
00:05:55: Deswegen ist das auf jeden Fall der wichtige zweite Schritt.
00:05:58: Der Jusges, da nehmen wir uns ein bisschen langhangeln wollen,
00:06:01: der einen Maschinenbauer, der möchte ganz gerne
00:06:03: "Predictive Maintenance" für seine Maschinen anbieten als Service.
00:06:06: Und dem wollen wir jetzt in irgendeiner Form eine Software bauen,
00:06:10: die Modell getrieben ist, die Maschinenlearning getrieben ist,
00:06:12: die er einfach früher kennt und Probleme auftreten.
00:06:15: Und dann hat diese Maschine, die er hat,
00:06:17: 1000 Sensoren von Druck, Geschwindigkeit, Drehmoment und so weiter.
00:06:22: Es gibt ja ganz viele verschiedene Sachen, die da reinspielen.
00:06:25: Das ist gar nicht so ungewöhnlich aus unserer Erfahrung,
00:06:27: wenn ich mich richtig erinnere, dass Maschinen auch mal 1000 Sensoren haben
00:06:30: und Terabyte an Daten generieren.
00:06:32: Vor allem wenn im Sekunden, tagt dieses Sensoren irgendwas aufnehmen, oder?
00:06:35: Genau, das kommt vor.
00:06:37: Und dann hast du das Problem, dass du die erstmal alle
00:06:42: irgendwie in ein vernünftiges Format bringen musst.
00:06:46: Also du musst vielleicht da auch - also da sind zwischendurch mal Ausfälle,
00:06:50: da musst du Datenbereinigung machen,
00:06:52: dann musst du vielleicht, das sind ja Zeitreihen, die die geben,
00:06:56: vielleicht wirst du die resamplen, dass die vergleichbar sind,
00:06:59: vielleicht ist das auch gerade schlecht in deinem Fall,
00:07:01: musst du austesten.
00:07:03: Und dann hast du aber am Ende immer noch 1000 Sensoren
00:07:07: und die hängen wieder alle miteinander zusammen.
00:07:10: Also vielleicht der Wert, der in dem einen Temperatursensor ist,
00:07:13: der ist super ähnlich zu dem in dem anderen Wert.
00:07:15: Das heißt, ich habe korreierte Features
00:07:17: und das kann dafür sorgen, dass ein Modell schlechter wird.
00:07:20: Das heißt, ich möchte eigentlich solche Korrelationen entfernen.
00:07:23: Ich kann das Problem haben, dass 1000 Features,
00:07:27: das wird dann einfach auch rechend intensiv.
00:07:30: Das wird für das Modell schwer, den Überblick zu behalten.
00:07:32: Das heißt, ich möchte eigentlich weniger Feature haben,
00:07:35: vor allem dann auch hinterher als Mensch,
00:07:37: um das interpretieren zu können.
00:07:39: Weil am Ende kommt dann eine Aussage raus und dann sage ich,
00:07:41: ja, weil alle 1000 Feature und das ist das Ergebnis.
00:07:44: Und ein Mensch, ein Operator, der das versteht,
00:07:47: der will aber sagen, hey, warum glaubt denn dein Modell,
00:07:50: ich soll die Maschine ausschalten.
00:07:52: Und dann möchte ich ihm sagen können, na ja,
00:07:54: weil das und das schiefgegangen ist.
00:07:56: Wenn ich das aussehend auf 1000 Variablen mache,
00:07:58: wird diese Aussage immer schwer zu verstehen sein.
00:08:01: Ja, genau, das ist ja so diese,
00:08:03: der Glaube, dass man möglichst viele Daten
00:08:05: einfach in so ein Modell reinschieben muss.
00:08:07: Und dann wird das schon gut.
00:08:09: Aber wir haben ja auch auf Projekte gehabt,
00:08:11: wo man einfach viele Daten rausgenommen hat aus dem Modell,
00:08:14: weil die das Ganze nur aufgebläht haben
00:08:16: oder sogar die Performance noch verschlechtert haben
00:08:18: oder für Waschen haben.
00:08:20: Genau, genau, das stimmt.
00:08:22: Und es gibt da, ich glaube,
00:08:24: dass es in der Wissenschaft gibt es ein Aktion,
00:08:26: das heißt Occam's Rasiermesser.
00:08:28: Ich weiß nicht, ob du davon schon mal gehört hast.
00:08:30: Nee, das tut sich gefährlich an.
00:08:32: Ja, ich krieg das jetzt nicht perfekt zusammengefasst,
00:08:35: aber das sagt im Prinzip immer,
00:08:37: dass das einfachste Modell ist das beste Modell,
00:08:40: was du machen kannst.
00:08:42: Also du sollst quasi ein minimales Set an Annahmen treffen
00:08:46: und ein minimales Set an Eingaben,
00:08:48: um die richtige Antwort zu machen.
00:08:50: Und alles, was du darüber hinaus machst,
00:08:52: wie mit einem Rasiermesser abschneiden.
00:08:54: Keep it simple, Institute,
00:08:56: könnte man quasi sagen, ist da das A und O.
00:08:58: Aber gehen wir vielleicht noch mal einen Schritt zurück.
00:09:00: Jetzt haben wir diesen Maschinenbauer,
00:09:02: wir haben diesen News Case und der steht da jetzt
00:09:04: und hat seine 1000 Sensoren,
00:09:06: kann in irgendeiner Form
00:09:08: viele Terabyte an Daten erzeugen.
00:09:10: Was macht er jetzt?
00:09:12: Was brauchst du überhaupt von dem, um zu starten?
00:09:14: Mit Feature Selection schickt er dir dann einfach
00:09:16: einen Exel Sheet mit mehreren Terabyte an Zeilen
00:09:18: und dann liest das irgendwie ein
00:09:20: oder was ist nur der klassische Case,
00:09:22: wie du vorgehen würdest, wenn du so einen Kunden hast?
00:09:24: Was würdest du von dem...
00:09:26: Ich glaube, der große Vorteil ist,
00:09:28: dass du Terabyte nicht in den Exel Sheet bekommst.
00:09:30: Das ist dann...
00:09:32: Und davon abgesehen bin ich immer froh,
00:09:34: wenn ich nicht mit einem Exel Sheet arbeiten muss.
00:09:36: Das heißt, das wäre nicht optimal.
00:09:38: Also, was wir machen,
00:09:42: typischerweise liegen diese Daten dann ja
00:09:44: schon in irgendeinem Data-Historie,
00:09:46: in irgendeiner Datenbank wie auch immer.
00:09:48: Wir sind ja Datapricks Partner.
00:09:50: Wir arbeiten gerne mit Datapricks
00:09:52: um große Datenmengen zu verarbeiten.
00:09:54: Das heißt, wir fangen dann erstmal an
00:09:56: und nutzen PiSpark
00:09:58: auf Datapricks und machen Feature Engineering.
00:10:00: Das heißt, wir versuchen erstmal
00:10:02: uns mit den Leuten zusammenzusetzen,
00:10:04: sinnvoll herauszufinden,
00:10:06: was sind relevante
00:10:08: zeitliche Einheiten,
00:10:10: auf denen das Ganze passiert.
00:10:12: Was glaubt ihr, was sind die wichtigsten Sensoren?
00:10:14: Auf was sollten wir uns konzentrieren
00:10:16: und bauen uns erstmal
00:10:18: unsere Feature zusammen,
00:10:20: die alle theoretischen Fragen kommen könnten.
00:10:22: Dann haben wir schon mal ein Großset,
00:10:24: dann werden wir nicht alle 1000 Sensoren nehmen,
00:10:26: dann haben wir vielleicht noch 100, 150.
00:10:28: Und dann wollen wir noch mal gucken,
00:10:30: was sind jetzt von denen die wichtigsten
00:10:32: und da setzen dann die Feature Selection-Methoden an.
00:10:34: Verstehe.
00:10:36: Das heißt, am Ende des Tages hat der Kunde
00:10:38: der Maschinenbauer
00:10:40: eine Art kleine Datenbank schon in Organova
00:10:42: und dann haben wir die Datenbank
00:10:44: eine Art kleine Datenbank schon in Organova
00:10:46: bereit, den Historien.
00:10:48: Wenn er den nicht hat, dann müssen wir da ja auch irgendwie
00:10:50: eine Lösung finden.
00:10:52: Dann ist das irgendwo ein Data Engineering-Thema,
00:10:54: dass man mit einer Firma wie NLICE
00:10:56: zum Beispiel so ein Historien aufbaut,
00:10:58: um die Daten live zu erfassen von der Maschine.
00:11:00: Wir gehen einfach mal davon aus, dass er das schon irgendwo hat.
00:11:02: Und dann ist glaube ich der normale Weg,
00:11:04: dass man versucht,
00:11:06: ist das dann eine Live-Anbindung
00:11:08: an Databricks, die man dann baut
00:11:10: oder ist das ein einzelner Export von einem Paket-File
00:11:12: und dann normalerweise stattfinden?
00:11:14: Nee, also für das Training brauchst du typischerweise
00:11:16: ja keine Live-Daten.
00:11:18: Für das Training reicht es, wenn du einmal dir die Daten
00:11:20: des letzten halben Jahres,
00:11:22: des letzten Jahres, wie auch immer,
00:11:24: ziehst und dann versuchst du das Modell zu trainieren.
00:11:26: Live-Daten brauchst du dann, wenn du wirklich
00:11:28: Vorhersagen machen willst.
00:11:30: Und hast du da irgendwie so ein Daumen-Regel,
00:11:32: wie lange man Dat erfassen muss,
00:11:34: damit man damit irgendwas Sinnvolles
00:11:36: machen kann?
00:11:38: Ich glaube, es ist ja auch so, dass du auf jeden Fall
00:11:40: eine längere Zeitspanne allein dafür brauchst,
00:11:42: weil du ja auch einen Vergleichszeitraum haben möchtest.
00:11:44: Du möchtest ja auf einen gewissen Zeitraum trainieren
00:11:46: und dann auch irgendwo auf einen gewissen
00:11:48: Zeitraum die Performance messen, wie gut das geklappt hätte
00:11:50: das Modell, oder?
00:11:52: Grundsätzlich ja, aber ich habe keine Daumen-Regel,
00:11:54: weil das total
00:11:56: davon abhängig ist,
00:11:58: wie viele Daten werden in welcher Zeit produziert.
00:12:00: Wenn du an einem Tag
00:12:02: mir genug Daten produzieren kannst,
00:12:04: damit ich einen guten Datensplit
00:12:06: im Trainings- und Testzeit machen kann,
00:12:08: dann mag das reichen.
00:12:10: Vielleicht hast du ja die gleiche Maschine
00:12:12: 30 mal da stehen, auf 30 Linien.
00:12:14: Die haben alle die gleichen Sensor- und Funktionierendgleich.
00:12:16: Dann kannst du sehr schnell
00:12:18: Daten produziert haben.
00:12:20: Vielleicht musst du ein halbes Jahr lang warten,
00:12:22: bis deine eine Maschine, die du nur
00:12:24: jeden zweiten Sonntag im Monat benutzt,
00:12:26: die Daten produziert hat.
00:12:28: Genau, das kann man nicht sagen.
00:12:30: Wir hatten jetzt
00:12:32: in den letzten Projekten, die wir hatten,
00:12:34: haben wir einmal offener Jahresschicht
00:12:36: an Daten trainiert, weil es sie einfach schon gab.
00:12:38: In meinem letzten Projekt
00:12:40: habe ich Daten seit Oktober.
00:12:42: Das sind jetzt 2,5 Monate.
00:12:44: Theoretisch wäre es sogar
00:12:46: möglich, dass Daten von 1, 2, 3, 4 Wochen
00:12:48: ausreichen, damit das Modell daraus
00:12:50: Erkenntnisse und Muster erkennt.
00:12:52: Aber ich höre so raus, der Hauptfaktor,
00:12:54: wie lange man aufnehmen muss,
00:12:56: wie viele Qualitativ-
00:12:58: hochwertige Beispiele man generiert.
00:13:00: Gerade diese Graubereiche, wo man negativ Beispiele hat
00:13:02: in der Produktion, wo wir wirklich
00:13:04: Protective Maintenance machen wollen,
00:13:06: dann braucht man auch Beispiele, wo mal was kaputt gegangen ist.
00:13:08: Wenn in den 2 Wochen nichts kaputt geht,
00:13:10: dann ist es wahrscheinlich relativ schwer
00:13:12: für das Modell erkennen zu können, wann etwas kaputt geht.
00:13:14: Vor allem diese Graubereiche und negativ Beispiele
00:13:16: sind wahrscheinlich das A und O
00:13:18: davon genug zu haben, dass man die Muster,
00:13:20: die damit zusammenhängen, erkennen kann.
00:13:22: Genau, das ist aber auch
00:13:24: eine Geschichte, die du dann
00:13:26: einfach mal testen kannst.
00:13:28: Du kannst ja die Daten, die du hast,
00:13:30: die kannst du ja schon mal verwenden.
00:13:32: Wenn wir in einem kleinen
00:13:34: Machtbarkeitsstudio "Proof of Concept"
00:13:36: schauen, kommen wir damit schon irgendwo hin
00:13:38: oder können wir Erkenntnisse gewinnen,
00:13:40: an welcher Stelle brauchen wir noch Daten?
00:13:42: Okay, jetzt haben wir irgendwo die Daten
00:13:44: in Databricks. Wir können damit arbeiten
00:13:46: als Data Scientist.
00:13:48: Was ist so das klassische Vorgehen?
00:13:50: Was ist ja eben schon ein bisschen geschildert?
00:13:52: Dass wir jetzt in die Feature-Selection
00:13:54: reingehen, dass es jetzt darum geht,
00:13:56: mit den Leuten zu sprechen, herauszufinden,
00:13:58: was vielleicht die 100 Sensoren oder die 10 Sensoren sind,
00:14:00: die relevantesten sind.
00:14:02: Aber wie schaffen wir es überhaupt, die zu identifizieren?
00:14:04: Weil ich stell mir vor, du hast so eine Maschine,
00:14:06: 1000 Sensoren, Handbuch, 500 Seiten,
00:14:08: 10 Experten, die damit zu tun haben.
00:14:10: Jeder erzählt dir was anderes.
00:14:12: Wie kriegt man das irgendwie auseinanderdeviliert?
00:14:14: Also, eine Erfahrung, die ich da gemacht habe,
00:14:18: ist, dass tatsächlich wieder die Exelcheats
00:14:20: helfen, weil in all den Unternehmen,
00:14:22: die wir bisher gesehen haben,
00:14:24: die vielleicht noch nicht irgendein
00:14:26: Machine-Oarning-Modell dafür benutzen,
00:14:28: dass wir ja trotzdem Routine-Checks
00:14:30: Qualitätstests machen.
00:14:32: Und ganz oft passiert das in Form von irgendwelchen
00:14:34: Protokollen in Exelisten.
00:14:36: Und da schreiben die dann schon mal
00:14:38: Sensorwerte, der aus ihrer Sicht wichtigsten
00:14:40: Sensoren auf. Das heißt, allein wenn ich da reinschaue,
00:14:42: dann sehe ich schon mal, guck mal,
00:14:44: der guckt sich immer den einen Temperatursensor,
00:14:46: den Drucksensor an und dann noch,
00:14:48: weiß ich nicht, die Geschwindigkeit
00:14:50: der Förderschnecke auf dem Band.
00:14:52: Dann würde ich auf jeden Fall
00:14:54: diese Sensoren mir selber auch schon mal anschauen.
00:14:56: Weil das hat ja einen Grund, dass der Mensch
00:14:58: mit 20, 30 Jahren
00:15:00: Erfahrung sagt, da gucke ich hin
00:15:02: und da markiere ich vielleicht sogar Rot,
00:15:04: wenn der Wert falsch ist.
00:15:06: Im Prinzip versucht man an der Stelle,
00:15:08: dass Domänen-Business
00:15:10: noch auf von dem Experten, den man im Unternehmen
00:15:12: hat, in seinen Modellen in irgendeiner Form zu übertragen.
00:15:14: Genau, das ist immer so.
00:15:16: Und ich habe das tatsächlich auch jetzt gerade
00:15:18: im laufenden Projekt gemacht.
00:15:20: Ich habe wirklich in mehreren Calls
00:15:22: mit dem Experten, haben wir uns gefeinsam
00:15:24: vor dem Bildschirm gesetzt,
00:15:26: haben uns die Sensorwerte angeschaut.
00:15:28: Ich habe vorher identifiziert
00:15:30: Zeitpunkte an denen, was Besonderes passiert ist.
00:15:32: Und dann haben wir als Menschen versucht,
00:15:34: in den Sensoren zu erkennen,
00:15:36: wo passiert denn da was Verrücktes.
00:15:38: Und dann habe ich versucht,
00:15:40: ein entsprechendes Feature zu bauen
00:15:42: mit Programmieren
00:15:44: und mathematischen Ideen,
00:15:46: dass das dieses Verhalten, was wir als Mensch gesehen haben,
00:15:48: widerspiegelt. Also quasi Interaktion
00:15:50: von menschlicher Intelligenz
00:15:52: und Maschinenintelligenz ist da ganz wichtig.
00:15:54: Ja, hört sich für mich
00:15:56: erst mal so an, als ob diese Vorstellung
00:15:58: der Data Scientist sitzt irgendwo
00:16:00: auf der 14. Etage seines Towers
00:16:02: in Bielefeld
00:16:04: und schmeißt einfach ein Haufen
00:16:06: Terabyte an Daten in lustiges Modell
00:16:08: und dann kommt da die perfekte Prediction raus.
00:16:10: Nicht so realistisch ist,
00:16:12: sondern dass man wirklich eigentlich sehr viel
00:16:14: miteinander reden muss
00:16:16: und im Prozess verstehen muss
00:16:18: und dann doch einfach auch guckt, warum macht
00:16:20: man so etwas, was da drüber redet
00:16:22: und dann entsprechend Anpassungen vornimmt.
00:16:24: Das Modell erkennt selten einfach von Anhieb,
00:16:26: alles perfekt, weil im Endeffekt ist es nur so gut
00:16:28: wie unsere Feature Selection, die ist halt
00:16:30: durch unser eigenes Wissen beschränkt, oder?
00:16:32: Kann man so sagen, ja.
00:16:34: Und es geht halt in beide Richtungen.
00:16:36: Was halt auch passiert ist,
00:16:38: ich setze mich hin,
00:16:40: ich teste Feature Selection aus
00:16:42: und bekomme einen
00:16:44: Subset an Features, wo ich jetzt glaube,
00:16:46: guck mal, die sind wichtig
00:16:48: und ich habe den Experten nochmal vor und sage,
00:16:50: macht das für dich Sinn?
00:16:52: Glaubst du auch, dass das sein könnte?
00:16:54: Und wenn der dann irgendwo ganz energetisch den Kopf schüttelt,
00:16:56: dann hinterfahre ich das natürlich auch
00:16:58: und dann schauen wir das nochmal an.
00:17:00: Du hast eben schon von diesen Excel-Dateien,
00:17:02: die zum Teil in diesen Prozessen entstehen,
00:17:04: geredet.
00:17:06: So, da kommt ein Operator, den Sensor auf,
00:17:08: der nimmt die Situation auf, wenn was schief gelaufen ist,
00:17:10: kann tausend Gründe haben.
00:17:12: Wie ist so deine Erfahrung, was die Zufallessigkeit
00:17:14: und Qualität dieser Excel-Daten angeht?
00:17:16: Na ja gut, also alles,
00:17:18: wenn du dir vorstellst,
00:17:20: dass du als Mensch über Jahre
00:17:22: Dinge in Excel eintragen sollst,
00:17:24: kannst du ja selber mal überlegen,
00:17:26: wie viele Fehler du machst.
00:17:28: Ich glaube, da gibt es auch Studien zu,
00:17:30: die ich nur nicht im Kopf habe.
00:17:32: Du musst einfach Fehler machen,
00:17:34: als Mensch. Das ist ganz normal.
00:17:36: Das heißt, du hast dann immer mal
00:17:38: falsch geschriebenen Produktdaten,
00:17:40: hast mal einen Zahlendreh her drin,
00:17:42: bei meinem Nummernfeld erst die 1
00:17:44: und dann, wenn man es anders gemeint hat.
00:17:46: Insofern hast du da schon Fehler,
00:17:48: aber zum Start sind das
00:17:50: halt die Wortmittel, die du hast
00:17:52: und besser als nichts.
00:17:54: Und kannst sehen, wie du damit
00:17:56: vorankommst.
00:17:58: Grundsätzlich, aber es ist natürlich besser,
00:18:00: du hast so was dann irgendwann automatisiert.
00:18:02: Du hast technisch
00:18:04: übertragende Daten, wo dann auch kein Fehler
00:18:06: drin ist.
00:18:08: Dann ist der Aufwand, glaube ich,
00:18:10: in so einem Data Science POC auch oft einfach diese Daten
00:18:12: sprechen und die Qualität
00:18:14: zu verbessern und gar nicht so viel
00:18:16: zu programmieren.
00:18:18: Am Ende, was würdest du sagen,
00:18:20: was der Anteil aus miteinander reden
00:18:22: und die Daten verstehen und den Prozess
00:18:24: verstehen ist und der Anteil von ICTIP
00:18:26: pfeifen in einen Notenbuch rein?
00:18:28: Ein klassischer Data Science POC?
00:18:30: In Prozenden
00:18:32: fällt mir das schwer,
00:18:34: aber der Punkt, den du machen willst,
00:18:36: dem stimme ich zu.
00:18:38: Man muss viel reden.
00:18:40: Das ist sehr unterschiedlich.
00:18:42: Wir hatten auch schon Fälle,
00:18:44: wo die Excel-Daten nicht perfekt
00:18:46: waren, aber wir hatten dann
00:18:48: ein Modell, das sinnvolle Ergebnisse geliefert hat.
00:18:50: Und dann konnte man erstmal
00:18:52: in Ruhe das Modell aufbauen, hat sich das
00:18:54: angeschraut, hat dann hinterher noch ein paar Fehler
00:18:56: gefunden. Manchmal waren die
00:18:58: aufgrund fehlerhafter Daten, manchmal war
00:19:00: unser Modell noch nicht so gut, dann ist das okay.
00:19:02: Je schwieriger die Datenlage
00:19:04: grundsätzlich ist, desto mehr redest du.
00:19:06: Und dann kannst du auch an
00:19:08: Punkt kommen, wo du erstmal
00:19:10: über den Prozess sprechen musst,
00:19:12: den Prozess noch mal verbessern.
00:19:14: Ja, macht Sinn aus meiner Sicht.
00:19:18: Okay, lassen wir mal zurück
00:19:20: zur Fissure Selection gehen.
00:19:22: Und vielleicht ein bisschen tiefer in das Thema einsteigen.
00:19:24: Jetzt haben wir das Ganze ein bisschen drum herum.
00:19:26: Was bedeutet das überhaupt?
00:19:28: Wie komme ich dahin? Wie wichtig ist das?
00:19:30: Was nutze ich dafür besprochen?
00:19:32: Jetzt versuchen wir es mal ein bisschen wissenschaftlicher.
00:19:34: Was sind denn so die klassischen
00:19:36: Ansätze oder die verschiedenen
00:19:38: Ansätze, um in Feature Selection
00:19:40: reinzugehen?
00:19:42: Weil gibt es den einen Weg, den man immer geht
00:19:44: nach Schema F oder gibt es da viele Optionen?
00:19:46: Ne, es gibt
00:19:48: ganz unterschiedliche
00:19:50: Methoden, Feature Selection
00:19:52: zu betreiben.
00:19:54: Ich glaube,
00:19:56: wenn man so grob danach
00:19:58: googelt, gibt es so drei
00:20:00: grundlegende Hörnenzweisen.
00:20:04: Die erste ist die,
00:20:06: dass man sagt, ich schaue mir nur die Feature
00:20:08: für sich genommen an.
00:20:10: Und die Idee, die man immer hat,
00:20:12: ist, ich möchte
00:20:14: Korrelation entfernen.
00:20:16: Also Korrelation bedeutet,
00:20:18: die zwei Feature
00:20:20: tragen so ziemlich denselben Informationsgehalt.
00:20:22: Und dann reicht es mir,
00:20:24: wenn ich eines dieser beiden Feature
00:20:26: habe.
00:20:28: Das möchte ich entfernen und ich möchte
00:20:30: eben
00:20:32: das minimale Set an Feature haben,
00:20:34: was die maximale Information bereithält.
00:20:36: Da kann ich
00:20:38: im Prinzip Statistik machen.
00:20:40: Also ich kann wirklich einfach
00:20:42: eine Korrelationsmatrix aller Feature
00:20:44: untereinander angucken. Ich kann das auch
00:20:46: direkt schon zusammen mit dem Target
00:20:48: machen, was ich vorher sagen will.
00:20:50: Also sagen wir, ich möchte irgendwie den
00:20:52: irgendeinen
00:20:54: numerischen Wert vorhersagen. Wer am Ende raus
00:20:56: kommen will, dann kann ich gucken, wie stark
00:20:58: korrelieren meine Feature. Damit gibt es alles
00:21:00: Schiequatratests, Pierson-Korrelation,
00:21:02: Anova-Tests.
00:21:04: Jetzt würde deine Freundin gleich ausschalten.
00:21:06: Deswegen höre ich an der Stelle auf.
00:21:08: Und kann dann schauen, gibt mir die
00:21:12: 10, 15 besten Feature,
00:21:14: die
00:21:16: die die meisten Informationen tragen.
00:21:18: Okay, jetzt
00:21:20: du hast gerade schon ein bisschen erklärt,
00:21:22: was Korrelation überhaupt ist um das Ganze.
00:21:24: Ich versuche es mal mit meinen Worten
00:21:26: mit einem Beispiel zu füttern. Wenn ich jetzt
00:21:28: mal eine Maschine habe, da gibt es
00:21:30: zwei Sensoren, die die Temperatur
00:21:32: an verschiedenen Stellen messen. Und wir stellen
00:21:34: fest, okay, wenn bei einem die
00:21:36: Temperatur hoch geht, geht sie beim anderen
00:21:38: genauso hoch und eigentlich ist das immer
00:21:40: miteinander konstant hoch oder runter
00:21:42: geregelt, dann kann man den einen einfach weglassen, weil der einfach mit Coralie, das wäre jetzt ein sehr
00:21:45: einfaches Coralations Beispiel, oder? Genau, ich meine, man muss da natürlich aufpassen,
00:21:51: vielleicht sind die Fälle, wo deine Maschine ausfällt, vielleicht ist das genau dar spannend,
00:21:56: wo das einmal nicht so ist, weil dann in der Mitte was kaputt gegangen ist. Da musst du aufpassen,
00:22:01: aber grundsätzlich ja, da wo du im Prinzip durch hinzufügen, der ist neun Features, eigentlich
00:22:09: kein Mehrwertinformation gewinnt, dann kannst du es auch weglassen. Genau, ich hatte mal irgendwo
00:22:16: in einem Vortrag einen Spruch, ein Data Science Spruch gehört, den ich sehr schön finde, der hieß,
00:22:23: man will die Signale im Rauschen der Daten erkennen. Das ist ja eigentlich immer das,
00:22:27: worum es geht. Am Ende gibt es viel Mist, der da mitläuft und man will eigentlich die Signale
00:22:33: finden, die dir jetzt sagen, was du wissen möchtest, oder? Ja, ein schönes Methode, die kannst du dir
00:22:41: gut merken mit meinem Auto Nummernchild noch, weil ich ja in Marburg gewohnt und studiert habe,
00:22:47: und das Nummernchild ist MR, und die Methode ist MRMR, die ist tatsächlich bekannt geworden,
00:22:56: weil die bei Uber benutzt wurde, also Uber hat da glaube ich ein Paper drüber geschrieben, und MRMR
00:23:03: heißt, kann man sogar auf Deutsch übersetzen, maximale Relevanz bei minimaler Redundanz. Und was
00:23:11: man da versucht ist, man möchte immer, also man fängt an mit einem Feature von dem man ausgeht,
00:23:17: dass es wichtig ist, und jetzt will man Neues hinzunehmen, und jetzt sagt man, ich möchte das
00:23:21: Feature hinzunehmen, was mir jetzt noch ganz viele neue Informationen gibt, aber ganz wenig mit dem
00:23:27: Feature, was ich schon habe, was sie redundant ist, also zum Beispiel korreliert ist. Und dann nehme ich
00:23:34: das nächste hinzu, was das erfüllt, dann habe ich zwei, und dann nehme ich das dritte hinzu und
00:23:38: das vierte hinzu, und so kann ich dann festlegen, bis wie viele Feature gehe ich, und versuche immer,
00:23:43: ein neues Feature dazu zu nehmen, was mir ganz viele neue Infos gibt, und wenig sich mit den
00:23:48: anderen überschneidet, und da kriegt man dann ein relativ gutes Test-Z. Okay, jetzt haben wir zwei
00:23:57: Methoden aufgelistet, du hast eben von drei gesprochen, es gibt glaube ich noch eine Methode,
00:24:01: die sehr bekannt ist. Nein, wir sind immer noch bei der ersten, das ist nämlich theoretisch auch eine
00:24:06: Filtermethode. Was man da ja jetzt macht, ist, dass es im Prinzip immer nur Statistik, also ich gucke
00:24:12: mehr irgendwelche Tests, irgendwelche Korrelationen und vergleiche meine Feature mit meiner Target,
00:24:17: oder meinem Label. Was man auch machen kann, ist, man kann direkt das Modell schon dazu nehmen. Also
00:24:23: ich kann ja, ich weiß ja, ich möchte den Modell trainieren, und jetzt kann ich ja einfach sagen,
00:24:28: ich nehme mein Modell, irgendein Random Forest oder irgendein Regressionsmodell, was auch immer,
00:24:34: und ich trainiere das einfach mal mit den Features und gucke, wie gut ist mein Modell. Und der einfachste
00:24:41: Weg, also quasi die exhaustive Method wäre, ich probiere alle Kombinationen an Featuren aus,
00:24:47: die es gibt und die Beste nämlich. Ist natürlich doof, wenn du 1000 Feature hast, weil dann hast du
00:24:55: sehr viele Kombinationen auszuprobieren. Und selbst innerhalb dieser 1000 Features könntest du
00:24:59: jedes Feature ja einfach noch ein bisschen anders gestalten und anders definieren. Also ich würde
00:25:02: sogar behaupten, dass es unendlich viele theoretische Möglichkeiten gibt, das zu kombinieren, wenn man
00:25:08: einfach mal auch die Feature neu denken kann, anders definieren kann, oder? Das sowieso, aber das
00:25:13: ist dann auch wieder das Problem des Feature-Engineerings und nicht der Feature-Selection. Ich habe
00:25:18: eben kurz überlegt, ich glaube die exhaustive Methode, die müsste, ich weiß nicht, ob du in der
00:25:22: Schule Fakultät hast, Fakultätanzahlmöglichkeit, ist das mit dem Ausrufezeichen. Also wenn du fünf
00:25:27: Features hast. Ich erinnere mich noch an das Ausrufezeichen, aber ich kann ja nicht mehr genau sagen, was es tut.
00:25:31: Genau, ich glaube bei fünf Features hast du ja fünf mal vier mal dreimal zwei mal eine Möglichkeit,
00:25:37: das ist immer Fakultät. Vielleicht müssen mich die Hörer in unserer Kommentarspalte korrigieren,
00:25:43: aber ich glaube, das müsste so funktionieren. Ja, was hört sich danach an? Ich erinnere mich jetzt
00:25:48: auch wieder. Du hast es wieder in mein Gedächtnis gerufen. Genau, und weil das halt manchmal nicht
00:25:52: praktikabel ist, also ich kann manchmal nicht alle Kombinationen testen, gibt es zwei
00:25:57: anderen logischen Methoden noch. Die eine ist, ich wieder so ähnlich wie bei MRMR, ich fange einfach
00:26:05: mit einem Feature an und nehme dann immer noch eins dazu, das Netman Forward Selection. Nur eben
00:26:10: hier jetzt nicht mit irgendwelchen statistischen Tests, sondern wirklich für das Modell. Ich
00:26:14: trainiere mein Modell mit nur einem Feature. Modell ist vermutlich relativ schlecht. Ich nehme
00:26:18: ein zweites hinzu, Modell wird besser. Ich nehme ein drittes hinzu, Modell wird noch besser. Ich nehme
00:26:23: ein viertes hinzu und so weiter. Bis Modell wird nicht mehr besser, dann höre ich auf. Es ist die ganz
00:26:29: einfache Idee. Hört sich auch ein bisschen nach Bootforce an, also hört sich noch viel ausprobieren an,
00:26:34: oder? Ja, man versucht halt immer das nächste hinzuzunehmen und man muss eben festlegen, wann
00:26:40: hört man auf. Aber tatsächlich ist es nicht so, also das ist halt relativ effizient, weil ich halt
00:26:46: einfach nur Stück für Stück ein, zwei, drei, vier Features ausprobieren muss. Aber wie machst du das
00:26:55: dann, wenn du sowas im Projekt machen musst? Ist das was, was einfach ein Stück Code, eine Library
00:27:00: mit einem Befehl automatisch durchtestet, PüA Pü, oder gibst du dann im Code ein, mach jetzt das und
00:27:05: das Feature. Nächster Testrun macht das und das und das Feature. Nein, nein, nein, genau. Also
00:27:10: typischerweise mit Libraries, also zum Beispiel MMR gibt es ein ziemlich cooles GitHub repo, das hat
00:27:16: da sogar eine Version, um das mit Spark auf Databricks zu benutzen. Also auf großen Daten funktioniert
00:27:24: das auch gut. Scikit Learn bietet ganz viele Features, Elections, Libraries, die man ausprobieren
00:27:29: kann. Aber man kann da immer zum Teil noch eigenen Code schreiben, mit dem man dann bestimmte Dinge,
00:27:35: also quasi die Entscheidung, auf der ich jetzt sage, ist das besser geworden oder nicht.
00:27:40: Die ist ja erstmal abstrakt, da ist ja die Frage, nehm ich da irgendeine Metrik, root mean square error
00:27:44: oder irgendwas anderes oder und die kann man zum Teil selber definieren, da kann man auch
00:27:50: custom Code schreiben, der das macht. Und um das ganze Nachfolz überzumachen, das ist immer
00:27:54: gut, so zu klotten und dann sowas wie MLflow zu benutzen, die Sachen zu loggen und transparenter
00:28:03: Visualisierung am Ende des Tages bereitzustellen. Ich habe eine super entscheidende Frage noch
00:28:10: über, was jetzt diese Methoden angeht. Du hast jetzt ein paar Sachen vorgestellt. Woher weiß ich denn,
00:28:16: wo, wie kann ich Indikation haben, was jetzt der richtige Weg ist. Wenn ich sagen will, ich habe jetzt
00:28:21: diese Newscales, ich habe die 1000 Sensordaten. Woher weiß ich, welche vorgestellten Feature
00:28:27: Selection und Feature Engineering betrogen, die richtigen sind für diesen Newscales. Gerade ich
00:28:32: habe ich dann auch gefühlt, geht es dafür klare, klar definierte Ansätze, wann man was macht?
00:28:37: Also ehrlich gesagt, wenn du das weißt, dann würde ich dich immer gerne zur Hilfe holen,
00:28:43: weil ich bin ganz ehrlich, ich weiß das nicht immer vorher. Ich würde an der Stelle deinen
00:28:49: Kumpel Basti zitieren. Ein guter Data Scientist ist einer, der in kurzer Zeit viel ausprobiert.
00:28:53: Das heißt, im Optimalfall kennt man die Dinge und ist in der Lage, die schnell durchzuprobieren.
00:28:58: Und dann auch zu vergleichen. Also was ich jetzt auch gemacht habe, ich habe verschiedene dieser
00:29:04: Methoden nebeneinandergehalten, habe geschaut, kommen die auf ungefähr die gleichen Features
00:29:08: jetzt und wo ist die Modellperformance am Ende am besten. Das heißt, ich glaube, man kann eigentlich
00:29:14: sagen, dass es DEN-Experten gibt, der sich das einmal anschaut, das Szenario und sofort weiß,
00:29:19: okay, wir machen das jetzt so und so und dann kommen die besten Ergebnisse dabei raus. Der ist
00:29:23: eher unrealistisch und gibt es eigentlich nicht. In der Regel ist es, man hat einen breiten Werkzeug
00:29:28: Koffer und man probiert vieles aus mit Educated Gasses, nenne ich das mal liebevoll. Das ist
00:29:32: jetzt kein komplettes Raten und im leeren Stochern, man hat halt seine Erfahrungen aus anderen
00:29:36: Szenarien. Man weiß, was woanders schon mal funktioniert hat und man probiert halt viele
00:29:40: Sachen aus, die oberflächlich betrachtet Sinn machen könnten und dann guckt man, was davon am
00:29:46: besten performt und welches seiner Fertigen anfängt ins Ziel zu rennen. Ja genau, ich meine,
00:29:51: was du natürlich sagen kannst, ist, ja die Methoden unterschiedlich sind, haben die unterschiedliche
00:29:56: Vor-Nachteile und da kannst du vielleicht schon vorher sagen, was davon für dich gut ist oder
00:30:01: nicht. Also wenn wir sagen, diese Filtermethoden, wo ich noch nicht ein Modell im Kopf habe,
00:30:06: sondern nur Feature und Targets mir anschaue, die haben eben genau diesen Vorteil, diesen Modell
00:30:11: unabhängig und das heißt, ich hoffe, dass die auch für verschiedenste Modelle gleichermaßen
00:30:17: mir gute Features auswählen und dass ich da eine grundsätzliche statistische Herangehensweise habe,
00:30:23: mir Feature auszusuchen. Außerdem geht das relativ schnell und ich muss nicht ein komplettes
00:30:28: Modell trainieren und irgendwas, sondern ich muss nur ein paar Tests fahren. So eine Rapper-Methode,
00:30:34: wo ich verschiedene Features jetzt mit meinem Modell ausprobiere, die hat halt einerseits wieder
00:30:41: genau das als Vorteil, dass ich dann wirklich schon genau weiß, wie gut ist mein Modell damit,
00:30:45: weil ich es ja gerade ausgerechnet habe, aber die ist dann halt auch spezifisch für dieses
00:30:49: Modell. Also die Features, die ich für meinen Random Forest ausgewählt habe, sind vielleicht nicht
00:30:53: die besten, mit denen mein neuronales Netz am besten funktioniert oder irgendwas anderes. Das heißt,
00:30:58: ich habe dann im Prinzip schon eine Entscheidung getroffen, dass ich dieses Modell benutzen will
00:31:03: und da muss ich wissen, ob ich das tun möchte oder nicht. Genau, ich habe dann eine höhere Gefahr,
00:31:10: dass ich ins Overfitting laufe, weil die eben diesem Modell sehr gut mit meinen Trainings- und
00:31:15: Testdaten helfen, aber vielleicht overfittet das Modell an der Stelle, die gefällt bei diesen
00:31:20: statistischen Methoden ein bisschen geringer. Das sind so Dinge, die man im Kopf haben kann,
00:31:24: die man mitbedenkt. Gab es in den letzten Jahren, wenn du jetzt zu diesem Thema das nochmal so durchdenkst,
00:31:31: einen Aha-Moment an den du dich erinnerst, wo du, wenn du jetzt mit Industriedaten gearbeitet hast,
00:31:36: mit Sensordaten, mit größeren Datenmengen und dann in die Features-Election, in das Features-
00:31:41: Engineering reingegangen ist, gab es da irgendwas, nachdem du jetzt bei Aedio paar Jahre warst,
00:31:45: vorher an der Uni warst, da vielleicht noch einen anderen Arbeitstil hat, wo du gesagt hast, okay,
00:31:50: jetzt habe ich richtig was gelernt, richtig was mitgenommen, was mich in Zukunft besser macht?
00:31:54: Ich würde schon sagen, tatsächlich so profan, das klingt, es ist dieses Sprechen mit den Experten
00:32:03: und die da wirklich immer mit ins Boot nehmen. Also was mir aufgefallen ist, man ist ja Data,
00:32:10: sei es Experte, hat diese ganzen Techniken und deine Freundin ist geneigt abzuschalten und so
00:32:16: geht es auch ein bisschen dem Kunde, wenn du mit dem ein Weekly machst. Wenn du dem dann erzählst,
00:32:20: ja ich habe jetzt eine PCA gemacht für Dimensionsreduzierung und Blabberplan, dann habe ich noch
00:32:25: MRMR und jetzt sind das und das die Features und jetzt kommt am Ende die Metrik raus, dann
00:32:29: schaltet der Innerlich ein bisschen ab und dann ist das halt so und dann bist du aber auch hoffentlich
00:32:35: alleine gestellt. Und wenn du es aber schaffst dem anschaulich zu machen, ich habe, guck mal,
00:32:42: ich habe dieses Sensoren benutzt, mein Modell glaubt jetzt die Sensoren so wichtig und die
00:32:47: Kombination von dem Sensor und dem Sensor, da das Bein schluss die Vorhersage besonders stark.
00:32:54: Und dann fängt er auf einmal und spricht mit dir über seine Welt und sagt ja, das fällt uns auch
00:32:59: immer auf, weil wenn wir die Seitzäure hochdrehen, dann passiert immer das und das und deswegen
00:33:03: musst du auf jeden Fall auf die Temperatur gucken. Und das ist mir jetzt immer sehr wichtig, dass man
00:33:10: diese Ebenen immer wieder mit reinholt und immer wieder dazu wird und dann sind wir da eben auch
00:33:15: schon so Dinge untergekommen wie wir hatten mal ein Projekt, da hatten wir bestimmte Messwerte,
00:33:20: die sind immer sehr stark ausgerissen und da musste man in den Sensordaten sich das alles
00:33:26: zusammen joinen, wann habt ihr gemessen und was kam da raus und was waren die Sensorwerte und
00:33:31: irgendwann ist uns aufgefallen, diese Messwerte sind immer beim Anfahren der Maschine passiert.
00:33:35: Und das ist mir in dem Call mit dem Experten aufgefallen, als wir gemeinsam darauf geschaut haben,
00:33:41: wo er auch meinte, er könnte auch so ein Anfahrvorgang sein und dann haben wir mal systematisch
00:33:47: nach Anfahrvorgängen gesucht und haben gesehen, ach guck mal, da kommt immer dieser Messwert
00:33:50: raus und das ist eine Sache, die ist sehr schwer, wenn du ohne Domänen wissen, nur statistisch mit
00:33:57: den Daten arbeitest. Das heißt, als guter Data Scientist musst du eigentlich echt viel mitbringen,
00:34:02: weil du musst natürlich deinen breiten Werkzeugkoffer haben, wissenschaftlich,
00:34:05: technisch, programmiertechnisch, alle Werkzeuge kennen und begreifen, die man zur Verfügung hat,
00:34:12: um mit Daten zu arbeiten, um der Hauserkennisse zu gewinnen. Du musst irgendwie menschlich auch
00:34:16: eine gewisse Empathie, glaube ich, mitbringen, weil du redest damit Leuten, die eventuell dann
00:34:21: danach fahren sollen, wo es dann vielleicht für die einen Gefühl mitschwingt, hey soll das dann
00:34:25: besser sein als ich, brauch dir mich dann überhaupt noch, du musst irgendwie auf dich auf einer
00:34:29: guten Ebene mit den Leuten austauschen, die abholen und du musst noch irgendwie gute Storytelling
00:34:33: haben, um deine Stakeholdern, diese komplexen Zusammenhänge einfach und verständlich darzustellen,
00:34:38: dass sie nicht abschalten, sondern das verstehen und dranbleiben und Lust darauf fahren.
00:34:42: Diese ganzen Sachen musst du schon mitbringen, um erfolgreich zu sein.
00:34:45: Ja, an der Stelle kann ich nur sagen, Chef, da siehst du mal, was wir leisten müssen.
00:34:48: Bei Ali was das halt auch, weil das die Art ist, wie wir in Projekten arbeiten mit Kunden.
00:34:55: Ich glaube, du kannst doch irgendwo anders wirklich nur der Data Scientist sein, der dann mit
00:35:00: seinem Product Owner und Teamlead spricht und der gibt es wieder in einem Berater weiter
00:35:04: und der spricht mit dem Kunden und dann spielst du so ein bisschen stille Post.
00:35:08: Bei uns ist es so, dass du all das tust, was du gerade besprochen hast.
00:35:12: Ich glaube, das ist aber auch echt dann ein Vorteil.
00:35:15: Also wenn du darauf Lust hast und wenn du Lust hast, sich damit zu beschäftigen, dann
00:35:19: hilft es dir auch besser zu sein in deiner Arbeit und genau, also ich habe nämlich auch
00:35:23: gemerkt, man kann sich sehr darin verlieren, all diese Dinger auszuprobieren und kannst
00:35:28: wirklich einfach nur Feature Selection, kannst du zwei Wochen lang machen, alle Dinge durchprobieren
00:35:34: und vielleicht hättest dir geholfen, wenn du mal einmal mit dem Experten sprichst und
00:35:40: dann hättest du 80% nicht ausprobieren müssen.
00:35:43: Wir haben ja glaube ich auch öfters mal Kunden-Use-Cases gehabt, wo schon mal was ausprobiert wurde
00:35:48: und wo es dann heißt, geht nicht.
00:35:50: Und dann wurde was dann gemacht worden, ist einfach mal die Datenmodell schmeißen, gucken
00:35:54: ob die Ergebnisse gut sind.
00:35:55: Nee, war nicht gut, ja okay, Daten sind nicht gut genug, nicht genug davon funktioniert
00:36:01: halt einfach nicht der Use Case, wo halt was dann oft einfach gefehlt hat, sind dann
00:36:05: diese Gespräche im Detail und die Erkenntnisse, die dabei gewonnen werden, diese Daten anders
00:36:09: zu benutzen oder anders zu verstehen.
00:36:11: Mhm, genau.
00:36:13: Okay, hast du noch irgendwas, was du zum Thema Feature Selection, Feature Engineering,
00:36:18: Model Boosting gerne den Leuten mitgeben möchtest?
00:36:21: Ja, genau, es gibt theoretisch noch eine dritte Klasse von Methoden, das die, nennt man die
00:36:27: Embedded Methods.
00:36:28: Und jetzt kommt zu dem Begriff Feature Engineering und Feature Selection, noch der Begriff Feature
00:36:35: Importance.
00:36:36: Und was zum Teil manche Modelle schon selber mit liefern, wenn man die trainiert hat,
00:36:44: die sagen, welches Feature war wie wichtig.
00:36:47: Also die geben denen bestimmte Gewichtungen und wenn du dem dann zehn Features gibst,
00:36:51: dann sagst du Feature 2 ist immer für mich das Wichtigste.
00:36:54: Danach gehe ich am meisten und dann gucke ich mir Feature 3 und 4 an.
00:36:58: Da gibt es verschiedene Methoden, wie die das machen.
00:37:01: Das gibt es bei, also bei linearen Modellen sind das irgendwelche Koeffizienten.
00:37:08: In Random Forests ist das zum Beispiel a Ginny Impurity.
00:37:11: Man kann zum einen das nutzen, kann einfach sagen, was glaubt denn mein Modell, was die
00:37:17: wichtigen Features sind?
00:37:18: Es gibt noch eine sehr coole Library, die heißt CHAP, CHAP Feature Importance.
00:37:23: Das ist mit Methoden aus der Spieltheorie und die kann wirklich analysieren, was ist
00:37:28: der Beitrag eines jeden Features zum Modellvorhersage, unabhängig davon, was für ein Modell ich habe.
00:37:34: Und das ist eine ziemlich mächtige, ziemlich coole Geschichte, die man viel benutzen kann,
00:37:39: weil da kann ich bis hin bei der einzelnen Vorhersage sagen.
00:37:42: Also für diesen Datenpunkt habe ich den Wert 11 vorhergesagt.
00:37:46: Und ich kann dir genau sagen, welches Feature, wie viel dazu beigetragen hat.
00:37:51: So was kann man damit auswerten.
00:37:52: Und da kann man dann auch wirklich mit einem Experten drauf gucken und kann dann mit dem
00:37:57: gemeinsam sagen, macht das den Sinn.
00:37:59: Der hat jetzt gesehen, die eine Temperatur ist so, der Druck ist so und der so und alles
00:38:03: zusammen hat zu diesem Ergebnis geführt, ist das für dich nachvollziehbar.
00:38:07: Das ist eine Sache, die sehr cool zu benutzen ist, die ich grundsätzlich empfehlen kann.
00:38:14: Um kurz da einzusteigen, was ich, ich kenne natürlich auch unsere schönen Shepplots und
00:38:18: was ich daran aus Business Sicht richtig cool finde, ist, sagen wir mal, du hast jetzt
00:38:23: dieses Modell gebaut für Predictive Maintenance.
00:38:25: Das ist jetzt gut darin, frühzeitig zu erkennen, wenn Probleme sich anbahnen und dann eine
00:38:30: Wartung zu empfehlen und auch die richtige Wartung.
00:38:32: Super.
00:38:33: Jetzt hast du deinen Shepplot, der dir sagt, okay, warum ist es denn jetzt so, dass eine
00:38:38: Wartung voraussichtlich ansteht?
00:38:39: Ah, okay, hier der Drehmoment ist jetzt 10% höher im Schnitt, als er sonst eigentlich
00:38:45: war und im Zusammenhang mit der Temperatur, die es gerade draußen gibt, erzeugt das
00:38:48: halt potenziell dem Problem und den Verschleiß.
00:38:51: Das könnte ja keiner kennen, das heißt, in einem Shepplot könnte es sein, dass diese
00:38:54: eine Sensor für den Drehmoment halt einen ganz großen Balken nach rechts hat, weil er
00:38:59: eine hohe Importance hat.
00:39:00: Und aus Business Sicht kann ich daraus ja auch eine Erkenntnis ableiten, dass ich sage,
00:39:04: ah, darum kommen diese Wartungsprobleme, gut.
00:39:07: Das nächste Mal, wenn wir eine Maschine bauen, wissen wir das und konstruieren das ein bisschen
00:39:11: anders, damit diese Probleme gar nicht mehr auftreten in Zukunft.
00:39:14: Das heißt, ich kann auch Erkenntnisse über meine Produkte, über meine Systeme, über
00:39:18: mein auch vertrieblich gesehen natürlich, wenn ich das Ganze im Marketing oder mit
00:39:22: Kunden einsetze, über warum kaufen Leute, ich kann viele Erkenntnisse gewinnen und dann
00:39:26: nicht nur ein gutes Modell haben für den Iststand, sondern ich kann in Zukunft auch
00:39:29: einfach bessere datengetriebene Entscheidungen treffen, wie ich das in Zukunft aufbaue, oder?
00:39:35: Genau, das ist ein ganz wichtiger Weg hin zur Interpretierbarkeit von Modellvorhersagen.
00:39:41: Also es ist quasi ein Schlüssel zur Blackbox.
00:39:43: Damit kannst du so ein bisschen anfangen zu verstehen, warum macht mein Modell das, was
00:39:48: es tut.
00:39:49: Und letzte Kirche auf der Sahne, die ich dazu noch habe, auch da muss nämlich noch nicht
00:39:57: das Ende der Veranstaltung sein.
00:39:59: Also ich gucke mir Feature in Propen san und gucke mir an, was sind aus Modell Sicht
00:40:02: die wichtigen Features.
00:40:03: Was das macht, ist quasi, es guckt an, wie viel gibt mein Modell hin, mithin zur Modellvorhersage.
00:40:12: Wie wichtig ist es für den Wert, der vorhergesagt wurde?
00:40:15: Was man auch sich angucken kann, ist die sogenannte Error-Contribution.
00:40:19: Wie sehr hat sich der Fehler meines Modells geändert, dadurch, dass ich dieses Feature
00:40:24: benutzt habe?
00:40:25: Das geht nämlich auch.
00:40:27: Das heißt, ich kann mir angucken, de facto, wie gut war mein Modell mit dem Feature und
00:40:32: wie gut war es ohne das Feature.
00:40:34: Und gerade mit Chatvalues geht das sehr gut, weil die additiv sind.
00:40:37: Ich gehe da nicht tiefer rein, aber es geht damit.
00:40:39: Und jetzt kannst du dir quasi angucken für jedes Feature über deine ganzen Daten.
00:40:44: Wie wichtig ist das für die Vorhersage, wie stark beeinflusst es die Vorhersage und in
00:40:49: welche Richtung beeinflusst es den gesamten Modellfehler?
00:40:52: Und du wirst natürlich genau die Feature nehmen, die den gesamten Modellfehler klein machen.
00:40:56: Also jedes Feature, was dazu führt, dass du insgesamt einen kleineren Fehler machst,
00:41:00: das ist ja erstmal irgendwie ein gutes Feature.
00:41:02: Und es soll dann natürlich auch wichtig fürs Modell sein.
00:41:05: Und das ist noch eine coole zusätzliche Perspektive, die man in diesem ganzen Bereich Feature-Selection
00:41:10: haben kann, dass man sich auch die Error-Contribution der Feature anguckt.
00:41:14: Hört sich sehr sinnvoll an.
00:41:18: Habe ich tatsächlich auch gar keine Rückfrage geradezu, paar Hart.
00:41:22: Ich habe es verstanden.
00:41:23: Sehr gut.
00:41:24: Sehr schön.
00:41:25: Wir haben jetzt über 40 Minuten im Kasten, ich glaube, der Podcast nähert sich dem Ende.
00:41:32: Und wenn ich es einfach mal versuche, zusammenzufassen, es gibt verschiedene Möglichkeiten, Features
00:41:37: zu engenieren, also Features überhaupt zu erstellen und diese dann zu selekten.
00:41:42: Und das Ziel sollte, glaube ich, immer sein, das Ganze simple zu halten.
00:41:45: Man sollte es nicht überkomplizieren.
00:41:46: Man sollte viele Koalitionen rausnehmen, genutig wenig hochwertige Signale und Datenpunkte
00:41:51: haben, mit denen man dann sind voll arbeiten kann, aus denen man Erkenntnisse ableitet.
00:41:55: Und dann, was man jetzt genau nimmt, wie man genau vorgeht, das ist nicht immer zu 100%
00:42:00: klar am Anfang, auch wenn man viel Erfahrung hat.
00:42:02: Man muss einfach ein bisschen ausprobieren und gucken, was jetzt der gute Weg ist.
00:42:06: Wobei es natürlich bestimmte Präferenzen gibt, in welchen Szenarien was am meisten
00:42:10: Sinn macht.
00:42:11: Und am Ende des Tages ist es dann auch viel Arbeit mit Domenexperten.
00:42:15: Man muss mit den Leuten reden, man muss die Daten richtig verstehen und man muss in Zweifelsfall
00:42:21: auch mal Sachen nicht vertrauen, Sachen hinterfragen, um dann zu wissen, warum etwas nicht funktioniert.
00:42:27: Oder?
00:42:28: Das passt so.
00:42:30: Genau.
00:42:31: Ich habe aber auch noch eine Frage an dich, Alex, an der Stelle.
00:42:34: Mal gucken, ob du gut aufgepasst hast.
00:42:37: Nee, Scherz.
00:42:38: Auch weil an der Stelle beenden wir den Podcast einmal.
00:42:42: Nee, es ist eine wirklich wichtige Frage.
00:42:44: Okay.
00:42:45: Es ist ja im Mittwoch.
00:42:46: Hast du schon die Pizza bestellt?
00:42:47: Nee, ich habe die Pizza tatsächlich.
00:42:50: Ich wollte nicht, dass die Pizza kommt, während wir den Podcast aufnehmen, dass wir dann
00:42:55: in Zugzwang kommen und darum müssen jetzt alle einfach mal eine halbe Stunde mehr hungern,
00:43:00: damit wir das hier in Ruhe machen können.
00:43:02: Das war mein Problem.
00:43:03: Das ist ein sehr trauriges Ende unserer Folge.
00:43:06: Dann bin ich auch eiskalt und da stehe ich auch zu.
00:43:10: Das ist wie es ist.
00:43:11: Okay, dann muss ich jetzt leider aus mangelnder Energie aufgrund von Hunger in den Schach-Live-Stream,
00:43:16: der Schachwm-Wechse hin.
00:43:18: Alles klar.
00:43:19: wie fit er da ist. Mach ich. Mach's gut. Ciao.
00:43:22: Vielen Dank.
Neuer Kommentar